{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWuB;AACuC;AACvB;AAEoC;AACtB;AACe;AACnC;AAC8C;AAEhB;AACc;AACjB;;;;;;;;;;;;;;;IA0BpD,wEAcC;IADC,8UAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,kFAAiB;;;;;IAYnB,wEAaC;IADC,8UAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,kFAAiB;;;;IAYjB,qEAAwD;IACtD,mEAYE;IACJ,6DAAQ;;;;IAXJ,2DAAiB;IAAjB,kFAAiB;;;;;IA4BnB,qEAAsC;IAalC,kYAAU,mCAAuB,IAAC,+QACtB,0BAAkB,IADI,mRAEpB,4BAAoB,IAFA;IAZpC,6DAeE;;;;IAbA,2DAA2B;IAA3B,6FAA2B;;;;;IAlBjC,yEAA6D;IAA7B,4TAAc,qBAAa,IAAC;IAC1D,yEAYE;IADA,wTAAS,qCAA6B,IAAC;IAXzC,6DAYE;IAEF,qIAiBQ;IACV,6DAAQ;;;IA9BJ,2DAAa;IAAb,8EAAa;IAYW,2DAAU;IAAV,oFAAU;;;;IAkCxC,qEAAwD;IACtD,oEAWE;IACJ,6DAAQ;;;;IAVJ,2DAAyB;IAAzB,2FAAyB;;;;;;IAhB/B,yEAYC;IADC,2UAAkB,4BAAoB,IAAC;IAEvC,oIAaQ;IACV,6DAAQ;;;IAvBN,oFAAmB;IADnB,iGAAoC;IAUV,2DAAY;IAAZ,oFAAY;;AAqBvC,MAAM,4BAA6B,SAAQ,4EAAkB;IA3IpE;;QA4IW,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAGtD,mBAAc,GAAY,KAAK,CAAC;QAChC,mBAAc,GAAY,KAAK,CAAC;QAKhC,kBAAa,GAAY,IAAI,CAAC;QAC9B,UAAK,GAAQ,iDAAW,CAAC;QACzB,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,iBAAY,GAAY,KAAK,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;QAEhC,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAS7D,YAAO,GAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAQrC,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAGpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAIvB,eAAU,GAAG,uEAAU,CAAC;QAGxB,mBAAc,GAAW,EAAE,CAAC;QAK5B,oBAAe,GAAW,EAAE,CAAC;QAgM7B,YAAO,GAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KAwEH;IAxQC,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;SACjF;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;SACpC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,EAAE,GAAG,CAAC,CAAC;YAEX,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,GAAG,GAAG,CAAC;oBACZ,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;wBACrC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,EAAE;oBACL,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;iBAClB;aACF;YAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,GAAG,GAAG,CAAC;oBACZ,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;wBACrC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE;oBACL,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;oBACV,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;oBACpB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC;iBACf;qBAAM;oBACL,CAAC,GAAG;wBACF,IAAI,EAAE,GAAG;wBACT,KAAK,EAAE,CAAC;wBACR,EAAE;wBACF,EAAE,EAAE,EAAE;qBACP,CAAC;oBACF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACtB;gBAED,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC5B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC7B;qBAAM;oBACL,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACV;aACF;SACF;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvE,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;IAC7C,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,iBAAiB,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SAChF;IACH,CAAC;IAED,UAAU;QACR,IAAI,MAAM,GAAG,6EAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,GAAG,mEAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,KAAK,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,mDAAmD;YACnD,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;SACpB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,KAAa;QAC7B,IAAI,KAAK,CAAC;QAEV,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YACrC,KAAK,GAAG,qDAAS,EAAE,CAAC;SACrB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,KAAK,GAAG,qDAAW,EAAE,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YAC/C,KAAK,GAAG,gDAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,MAAc;QAC9B,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB,CAAC,IAAI;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,MAAO;QACnB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SAC5B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAkB;YAC1B,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAI;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,OAAO;SACR;QAED,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,IAAI;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;;gVAvUU,4BAA4B,SAA5B,4BAA4B;2HAA5B,4BAA4B;;;;;;;;+JAA5B,iBAAa;;QAxItB,uFASC;QAHC,2LAAoB,mBAAe,IAAC,wIACb,sBAAkB,IADL,4IAEX,wBAAoB,IAFT;QAIpC,+DAAU;QAAV,wEAAU;QAEN,mEAIE;QACJ,6DAAe;QAEjB,wEAA6D;QAC3D,2HAcS;QACT,0HAaS;QACT,qEAAmC;QACjC,2HAcQ;QAER,2HAiCQ;QACV,6DAAQ;QAEV,6HA2BQ;QACV,6DAAmB;;QAjIjB,iKAAwB;QAUR,2DAAsB;QAAtB,gFAAsB;QAEhC,2DAA8B;QAA9B,wFAA8B;QAM7B,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAYP,2DAA2B;QAA3B,qFAA2B;QACN,2DAAY;QAAZ,iFAAY;QAgB9B,2DAAsB;QAAtB,uFAAsB;QAsC/B,2DAAwC;QAAxC,6GAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3H1B;AACuC;AACvB;AAEoC;AACtB;AACe;AACnC;AAC8C;AAChB;AACc;AAEjB;;;;;;;;;;;;;;;IAyBpD,wEAcC;IADC,2UAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,kFAAiB;;;;;IAYnB,wEAaC;IADC,2UAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,kFAAiB;;;;IAYjB,qEAAwD;IACtD,mEAYE;IACJ,6DAAQ;;;;IAXJ,2DAAiB;IAAjB,kFAAiB;;;;;IA2BnB,qEAAwD;IAapD,+XAAU,mCAAuB,IAAC,4QACtB,0BAAkB,IADI,gRAEpB,4BAAoB,IAFA;IAZpC,6DAeE;;;;IAbA,2DAA2B;IAA3B,6FAA2B;;;;;IAjBjC,yEAA6D;IAA7B,yTAAc,qBAAa,IAAC;IAC1D,yEAWE;IADA,qTAAS,qCAA6B,IAAC;IAVzC,6DAWE;IAEF,iIAiBQ;IACV,6DAAQ;;;IA7BJ,2DAAa;IAAb,8EAAa;IAWW,2DAAY;IAAZ,oFAAY;;;;IAkC1C,qEAAwD;IACtD,oEAWE;IACJ,6DAAQ;;;;IAVJ,2DAAyB;IAAzB,2FAAyB;;;;;;IAhB/B,yEAYC;IADC,wUAAkB,4BAAoB,IAAC;IAEvC,iIAaQ;IACV,6DAAQ;;;IAvBN,oFAAmB;IADnB,iGAAoC;IAUV,2DAAY;IAAZ,oFAAY;;AAqBvC,MAAM,yBAA0B,SAAQ,4EAAkB;IA1IjE;;QA2IW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QACtD,UAAK,GAAY,KAAK,CAAC;QACvB,UAAK,GAAY,KAAK,CAAC;QAKvB,aAAQ,GAAY,KAAK,CAAC;QAE1B,kBAAa,GAAY,IAAI,CAAC;QAC9B,UAAK,GAAQ,iDAAW,CAAC;QACzB,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,iBAAY,GAAY,KAAK,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;QAMhC,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAiB7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAKvB,mBAAc,GAAW,EAAE,CAAC;QAK5B,oBAAe,GAAW,EAAE,CAAC;QAE7B,eAAU,GAAG,uEAAU,CAAC;KAwRzB;IAtRC,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;SACjF;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;SACpC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,GAAG,GAAG,CAAC;oBACZ,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;wBACrC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE;oBACL,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;oBACV,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;oBACpB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC;iBACf;qBAAM;oBACL,CAAC,GAAG;wBACF,IAAI,EAAE,GAAG;wBACT,KAAK,EAAE,CAAC;wBACR,EAAE;wBACF,EAAE,EAAE,EAAE;qBACP,CAAC;oBACF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACtB;aACF;SACF;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvE,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;IAC7C,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,iBAAiB,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SAChF;IACH,CAAC;IAED,UAAU;QACR,IAAI,MAAM,GAAG,6EAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,GAAG,mEAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YACvC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QAED,IAAI,GAAG,CAAC;QACR,IAAI,GAAG,CAAC;QACR,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC5E,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAE5D,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YACrC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,KAAK,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,mDAAmD;YACnD,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;SACpB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,GAAG,GAAG,CAAC;oBACZ,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;wBACrC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;qBACjB;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC;iBAChB;aACF;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAErE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,KAAa;QAC7B,IAAI,KAAK,CAAC;QAEV,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YACrC,KAAK,GAAG,qDAAS,EAAE,CAAC;SACrB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,KAAK,GAAG,qDAAW,EAAE,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YAC/C,KAAK,GAAG,gDAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,MAAc;QAC9B,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB,CAAC,IAAI;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,MAAO;QACnB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,IAAI;QACjB,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SAC5B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAI;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,OAAO;SACR;QAED,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,IAAI;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;;iUAxVU,yBAAyB,SAAzB,yBAAyB;wHAAzB,yBAAyB;;;;;;;;4JAAzB,iBAAa;;QAvItB,uFASC;QAHC,wLAAoB,mBAAe,IAAC,qIACb,sBAAkB,IADL,yIAEX,wBAAoB,IAFT;QAIpC,+DAAU;QAAV,wEAAU;QAEN,mEAIE;QACJ,6DAAe;QAEjB,wEAA6D;QAC3D,wHAcS;QACT,uHAaS;QACT,qEAAmC;QACjC,wHAcQ;QAER,wHAgCQ;QACV,6DAAQ;QAEV,0HA2BQ;QACV,6DAAmB;;QAhIjB,iKAAwB;QAUR,2DAAsB;QAAtB,gFAAsB;QAEhC,2DAA8B;QAA9B,wFAA8B;QAM7B,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAYP,2DAA2B;QAA3B,qFAA2B;QACN,2DAAY;QAAZ,iFAAY;QAgB9B,2DAAsB;QAAtB,uFAAsB;QAqC/B,2DAAwC;QAAxC,6GAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvH1B;AACuC;AACT;AAEsB;AACtB;AACe;AACnC;AAC8C;AAC7B;AAE2B;AAEjB;;;;;;;;;;;;;;;IAyBpD,wEAcC;IADC,oUAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,kFAAiB;;;;;IAYnB,wEAaC;IADC,oUAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,kFAAiB;;;;IAYjB,qEAAwD;IACtD,mEAYE;IACJ,6DAAQ;;;;IAXJ,2DAAiB;IAAjB,kFAAiB;;;;;IA2BnB,qEAAsC;IAYlC,wXAAU,mCAAuB,IAAC,qQACtB,0BAAkB,IADI,yQAEpB,4BAAoB,IAFA;IAXpC,6DAcE;;;;IAZA,2DAAiB;IAAjB,mFAAiB;;;;;IAjBvB,yEAA6D;IAA7B,kTAAc,qBAAa,IAAC;IAC1D,yEAWE;IADA,8SAAS,qCAA6B,IAAC;IAVzC,6DAWE;IAEF,0HAgBQ;IACV,6DAAQ;;;IA5BJ,2DAAa;IAAb,8EAAa;IAWW,2DAAU;IAAV,oFAAU;;;;IAiCxC,qEAAwD;IACtD,oEAWE;IACJ,6DAAQ;;;;IAVJ,2DAAyB;IAAzB,2FAAyB;;;;;;IAhB/B,yEAYC;IADC,iUAAkB,4BAAoB,IAAC;IAEvC,0HAaQ;IACV,6DAAQ;;;IAvBN,oFAAmB;IADnB,iGAAoC;IAUV,2DAAY;IAAZ,oFAAY;;AAqBvC,MAAM,kBAAmB,SAAQ,4EAAkB;IAzI1D;;QA0IW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QACtD,UAAK,GAAY,KAAK,CAAC;QACvB,UAAK,GAAY,KAAK,CAAC;QACvB,cAAS,GAAQ,MAAM,CAAC;QACxB,cAAS,GAAY,KAAK,CAAC;QAK3B,aAAQ,GAAY,KAAK,CAAC;QAE1B,kBAAa,GAAY,IAAI,CAAC;QAC9B,UAAK,GAAiB,iDAAW,CAAC;QAClC,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,iBAAY,GAAY,KAAK,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;QAMhC,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAkB7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAKvB,mBAAc,GAAW,EAAE,CAAC;QAK5B,oBAAe,GAAW,EAAE,CAAC;QAkM7B,YAAO,GAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KAwEH;IA1QC,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;SACjF;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;SACpC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtE,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;IAC7C,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,iBAAiB,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SAChF;IACH,CAAC;IAED,UAAU;QACR,IAAI,MAAM,GAAG,6EAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,GAAG,mEAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YACvC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QAED,IAAI,GAAG,CAAC;QACR,IAAI,GAAG,CAAC;QACR,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC5E,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAE5D,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YACrC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,KAAK,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,mDAAmD;YACnD,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;SACpB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAElE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,KAAa;QAC7B,IAAI,KAAK,CAAC;QAEV,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YACrC,KAAK,GAAG,qDAAS,EAAE,CAAC;SACrB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,KAAK,GAAG,qDAAW,EAAE,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YAC/C,KAAK,GAAG,gDAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,MAAwB,EAAE,MAAc;QAChD,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,oDAAM,CAAC,KAAK,CAAC,EAAE;gBACjB,IAAI,GAAG,KAAK,CAAC;aACd;YACD,IAAI,sDAAQ,CAAC,KAAK,CAAC,EAAE;gBACnB,GAAG,GAAG,KAAK,CAAC;aACb;SACF;QAED,IAAI,IAAI,EAAE;YACR,OAAO,yEAAc,CAAC;SACvB;QAED,IAAI,GAAG,EAAE;YACP,OAAO,2EAAgB,CAAC;SACzB;QAED,OAAO,4EAAiB,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB,CAAC,IAAI;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,MAAe;QAC3B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SAC5B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAkB;YAC1B,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAI;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,OAAO;SACR;QAED,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,IAAI;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;;8RA7UU,kBAAkB,SAAlB,kBAAkB;iHAAlB,kBAAkB;;;;;;;;qJAAlB,iBAAa;;QAtItB,uFASC;QAHC,iLAAoB,mBAAe,IAAC,8HACb,sBAAkB,IADL,kIAEX,wBAAoB,IAFT;QAIpC,+DAAU;QAAV,wEAAU;QAEN,mEAIE;QACJ,6DAAe;QAEjB,wEAA6D;QAC3D,iHAcS;QACT,gHAaS;QACT,qEAAmC;QACjC,iHAcQ;QAER,gHA+BQ;QACV,6DAAQ;QAEV,mHA2BQ;QACV,6DAAmB;;QA/HjB,iKAAwB;QAUR,2DAAsB;QAAtB,gFAAsB;QAEhC,2DAA8B;QAA9B,wFAA8B;QAM7B,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAYP,2DAA2B;QAA3B,qFAA2B;QACN,2DAAY;QAAZ,iFAAY;QAgB9B,2DAAsB;QAAtB,uFAAsB;QAoC/B,2DAAwC;QAAxC,6GAAwC;;;;;;;;;;;;;;;;;;;;;;;AClIW;AACqB;AACN;AACb;AACI;;AAO3D,MAAM,eAAe;;8EAAf,eAAe;4GAAf,eAAe;gHAJjB,CAAC,0EAAiB,CAAC;mIAIjB,eAAe,mBAHX,qEAAkB,EAAE,0FAA4B,EAAE,oFAAyB,EAAE,uEAAmB,aADrG,0EAAiB,aAEjB,qEAAkB,EAAE,0FAA4B,EAAE,oFAAyB,EAAE,uEAAmB;;;;;;;;;;;;;;;;;;;;;ACFrF;AACS;AAG4B;AAES;;;;AAsB9D,MAAM,mBAAmB;IApBhC;QAwBW,cAAS,GAAQ,MAAM,CAAC;QAGxB,YAAO,GAAY,KAAK,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAI5B,eAAU,GAAY,IAAI,CAAC;QAE1B,WAAM,GAAG,IAAI,uDAAY,EAAE,CAAC;KAmGvC;IA1FC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,WAAW,CAAC;QAChB,IAAI,YAAY,CAAC;QAEjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;YACnC,WAAW,GAAG,oDAAI,EAAO;iBACtB,CAAC,CAAC,SAAS,CAAC;iBACZ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC/B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnC,YAAY,GAAG,oDAAI,EAAO;iBACvB,CAAC,CAAC,SAAS,CAAC;iBACZ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC/B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;aAAM;YACL,WAAW,GAAG,oDAAI,EAAO;iBACtB,CAAC,CAAC,SAAS,CAAC;iBACZ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC5F,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAEjC,YAAY,GAAG,oDAAI,EAAO;iBACvB,CAAC,CAAC,SAAS,CAAC;iBACZ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC3F,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAChG;QAED,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QAEnB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,IAAI,CAAC,SAAS,KAAK,2EAAgB,EAAE;YACvC,IAAI,GAAG,uDAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,yEAAc,EAAE;YAC5C,IAAI,GAAG,uDAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACjC;aAAM;YACL,IAAI,GAAG,yDAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SAChE;QAED,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,2EAAgB,EAAE;YAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACnE;iBAAM;gBACL,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;aAC9D;SACF;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;SAChC;IACH,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;;sFAhHU,mBAAmB;iHAAnB,mBAAmB;QAjB5B,8DAaE;QAbF,kEAaE;;QAFA,2FAA+B;QAR/B,0EAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrB+C;AACnB;AACqB;AACK;AACgB;AACN;AACnB;AACK;AACgB;AACN;AACd;AACK;AACZ;;AAiCnD,MAAM,cAAc;;4EAAd,cAAc;4GAAd,cAAc;gHA9BhB,CAAC,0EAAiB,CAAC;oIA8BjB,cAAc,mBA5BvB,wDAAY;QACZ,6EAAsB;QACtB,kFAAwB;QACxB,kGAAgC;QAChC,4FAA6B;QAC7B,yEAAoB;QACpB,8EAAsB;QACtB,8FAA8B;QAC9B,wFAA2B;QAC3B,oEAAiB;QACjB,2EAAgB;QAChB,gFAAuB,aAbf,0EAAiB,aAgBzB,wDAAY;QACZ,6EAAsB;QACtB,kFAAwB;QACxB,kGAAgC;QAChC,4FAA6B;QAC7B,yEAAoB;QACpB,8EAAsB;QACtB,8FAA8B;QAC9B,wFAA2B;QAC3B,oEAAiB;QACjB,2EAAgB;QAChB,gFAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCJ;AAC4B;AACuB;AAExB;AAEyB;AACtB;AAGe;AACR;AACiB;AAEP;;;;;;;;;;;;IAwB9D,wEAcC;IADC,0UAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,sFAAqB;;;;;IAYvB,wEAaC;IADC,0UAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,sFAAqB;;;;;IAarB,qEAIC;IAkBG,4XAAU,iCAAsB,IAAC,uUACrB,oCAAyB,IADJ,2UAEnB,sCAA2B,IAFR,8VAGR,qDAAyC,IAHjC;IAjBnC,6DAqBE;;;;IAxBF,sFAA4B;IAC5B,wGAAwC;IAItC,2DAAqB;IAArB,sFAAqB;;;;IAR3B,qEAAsB;IACpB,gIA2BQ;IACV,6DAAQ;;;IA3Bc,2DAAY;IAAZ,oFAAY;;;;;IA6BhC,qEAGC;IAkBG,6XAAU,kCAAsB,IAAC,wUACrB,qCAAyB,IADJ,4UAEnB,uCAA2B,IAFR,8VAGR,qDAAyC,IAHjC;IAjBnC,6DAqBE;;;;IAvBF,0GAAwC;IAItC,2DAAqB;IAArB,uFAAqB;;;;IAP3B,qEAAqB;IACnB,gIA0BQ;IACV,6DAAQ;;;IA1Bc,2DAAY;IAAZ,oFAAY;;;AA6CnC,MAAM,wBAAyB,SAAQ,4EAAkB;IAjIhE;;QAkIW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,iBAAY,GAAW,EAAE,CAAC;QAC1B,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAC9B,eAAU,GAAY,IAAI,CAAC;QAE3B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAa7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,sBAAiB,GAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACtD,UAAK,GAAG,KAAK,CAAC;QAEd,mBAAc,GAAG,8EAAc,CAAC;QA6HhC,YAAO,GAA8B,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;YACrE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KA2FH;IAxNC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACvD;QAED,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEnG,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAErF,OAAO,qDAAS,EAAE;aACf,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACjC,YAAY,CAAC,OAAO,CAAC;aACrB,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAEzE,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5F,CAAC;IAED,aAAa;QACX,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,KAAe;QAC5B,OAAO,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAgB;QAC5B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,KAAK,EAAE,UAAkB;QAClD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/F;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/F;QACD,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,KAAe,EAAE,aAAsB,KAAK;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAe,EAAE,aAAsB,KAAK;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;4TA/QU,wBAAwB,SAAxB,wBAAwB;uHAAxB,wBAAwB;;;;;;QA9HjC,uFASC;QAHC,6LAAuB,uBAAmB,SAAS,EAAE,IAAI,CAAC,IAAC,wIAClC,yBAAqB,SAAS,EAAE,IAAI,CAAC,IADH,8HAEvC,mBAAe,IAFwB;QAI3D,+DAA4D;QAA5D,wEAA4D;QAC1D,mEAOS;QACT,uHAcS;QACT,sHAaS;QAET,sHA6BQ;QACR,sHA4BQ;QACV,6DAAQ;;QA3GR,iKAAwB;QASjB,2DAA4B;QAA5B,sFAA4B;QAG/B,2DAAqB;QAArB,mFAAqB;QAQpB,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAaN,2DAAY;QAAZ,6EAAY;QA8BZ,2DAAW;QAAX,4EAAW;2gMAmCb;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,GAAG;qBACf,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IoB;AACmD;AAExB;AAEyB;AACtB;AAGe;AACT;AACC;AACiB;AAE1B;;;;;;;;;;;IAgB3C,wEAcC;IADC,kVAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,kFAAiB;;;;;IAYnB,wEAYC;IADC,kVAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IATP,kFAAiB;;;;;IAWjB,qEAIC;IAeG,oYAAU,iCAAsB,IAAC,+UACrB,oCAAyB,IADJ,mVAEnB,sCAA2B,IAFR;IAdnC,6DAkBE;;;;IArBF,sFAA4B;IAC5B,wGAAwC;IAItC,2DAAgC;IAAhC,iGAAgC;;;;IARtC,qEAAsB;IACpB,wIAwBQ;IACV,6DAAQ;;;IAxBc,2DAAY;IAAZ,oFAAY;;;;;IA0BhC,qEAAgG;IAe5F,qYAAU,kCAAsB,IAAC,gVACrB,qCAAyB,IADJ,oVAEnB,uCAA2B,IAFR;IAdnC,6DAkBE;;;;IAnBmD,0GAAwC;IAG3F,2DAAgC;IAAhC,kGAAgC;;;;IAJtC,qEAAqB;IACnB,wIAoBQ;IACV,6DAAQ;;;IArBmB,2DAAY;IAAZ,oFAAY;;;AAwCxC,MAAM,gCAAiC,SAAQ,4EAAkB;IA9GxE;;QA+GW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAO7D,gBAAW,GAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAKzC,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,iBAAY,GAAG,oEAAY,CAAC;QAC5B,UAAK,GAAG,KAAK,CAAC;QAyFd,YAAO,GAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KAgFH;IAzKC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAEnF,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtG,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAc;QAC1B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;oWAxNU,gCAAgC,SAAhC,gCAAgC;+HAAhC,gCAAgC;;;;;;QA3GzC,uFASC;QAHC,qMAAuB,uBAAmB,SAAS,EAAE,IAAI,CAAC,IAAC,gJAClC,yBAAqB,SAAS,EAAE,IAAI,CAAC,IADH,sIAEvC,mBAAe,IAFwB;QAI3D,+DAA4D;QAA5D,wEAA4D;QAC1D,+HAcS;QACT,8HAYS;QACT,8HA0BQ;QACR,8HAsBQ;QACV,6DAAQ;;QAxFR,iKAAwB;QASjB,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAWN,2DAAY;QAAZ,6EAAY;QA2BZ,2DAAW;QAAX,4EAAW;+6LA6Bb;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,GAAG;qBACf,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5HoB;AAC4B;AACuB;AAExB;AAEyB;AACtB;AAEe;AACT;AACkB;AACjB;;;;;;;;;;;IAiBpD,wEAcC;IADC,+UAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,kFAAiB;;;;;IAYnB,wEAaC;IADC,+UAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,kFAAiB;;;;;IAYjB,qEAIC;IAkBG,iYAAU,iCAAsB,IAAC,4UACrB,oCAAyB,IADJ,gVAEnB,sCAA2B,IAFR,mWAGR,qDAAyC,IAHjC;IAjBnC,6DAqBE;;;;IAxBF,sFAA4B;IAC5B,wGAAwC;IAItC,2DAA6B;IAA7B,8FAA6B;;;;IARnC,qEAAsB;IACpB,qIA2BQ;IACV,6DAAQ;;;IA3Bc,2DAAY;IAAZ,oFAAY;;;;;IA6BhC,qEAGC;IAkBG,kYAAU,kCAAsB,IAAC,6UACrB,qCAAyB,IADJ,iVAEnB,uCAA2B,IAFR,mWAGR,qDAAyC,IAHjC;IAjBnC,6DAqBE;;;;IAvBF,0GAAwC;IAItC,2DAA6B;IAA7B,+FAA6B;;;;IAPnC,qEAAqB;IACnB,qIA0BQ;IACV,6DAAQ;;;IA1Bc,2DAAY;IAAZ,oFAAY;;;AA6CnC,MAAM,6BAA8B,SAAQ,4EAAkB;IAxHrE;;QAyHW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAE9B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAY7D,WAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,sBAAiB,GAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAEtD,iBAAY,GAAG,oEAAY,CAAC;QAC5B,UAAK,GAAG,KAAK,CAAC;QA2Hd,YAAO,GAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KA2FH;IAtNC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACvD;QAED,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEnG,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;oBACf,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC;iBACxB;qBAAM;oBACL,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC;iBACvB;gBACD,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACnD,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;aACjD;YACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAEnF,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtG,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAc;QAC1B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,KAAK,EAAE,UAAkB;QAClD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/F;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/F;QACD,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;qVA1QU,6BAA6B,SAA7B,6BAA6B;4HAA7B,6BAA6B;;;;;;QArHtC,uFASC;QAHC,kMAAuB,uBAAmB,SAAS,EAAE,IAAI,CAAC,IAAC,6IAClC,yBAAqB,SAAS,EAAE,IAAI,CAAC,IADH,mIAEvC,mBAAe,IAFwB;QAI3D,+DAA4D;QAA5D,wEAA4D;QAC1D,4HAcS;QACT,2HAaS;QACT,2HA6BQ;QACR,2HA4BQ;QACV,6DAAQ;;QAlGR,iKAAwB;QASjB,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAYN,2DAAY;QAAZ,6EAAY;QA8BZ,2DAAW;QAAX,4EAAW;+6LAmCb;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,GAAG;qBACf,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtIoB;AAC2B;AAEyB;AACtB;AACe;AACS;AACjB;;;;;;;;;;;IAiBpD,uEAcC;IADC,qUAAqB,gCAAyB,IAAC;IAChD,4DAAQ;;;IAXP,iFAAiB;;;;;IAYnB,uEAaC;IADC,qUAAqB,+BAAwB,IAAC;IAC/C,4DAAQ;;;IAVP,iFAAiB;;;AAuCpB,MAAM,sBAAuB,SAAQ,4EAAkB;IAvE9D;;QAwEW,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAC9B,eAAU,GAAY,IAAI,CAAC;QAG3B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,uDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,uDAAY,EAAE,CAAC;QAW7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,sBAAiB,GAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;KA8JvD;IA5JC,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACvD;QAED,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEnG,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,SAAS;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7E,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,SAAS;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAE/E,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClG,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAE1F,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,IAAI;QACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,KAAK;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/F;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/F;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED,UAAU,CAAC,IAAI,EAAE,aAAsB,KAAK;QAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC3B,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,OAAO;SACR;QAED,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,aAAsB,KAAK;QAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC3B,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;iTA9MU,sBAAsB,SAAtB,sBAAsB;oHAAtB,sBAAsB;;;;;;QApE/B,sFASC;QAHC,oLAAoB,mBAAe,IAAC,kIACb,uBAAmB,IAAI,CAAC,IADX,sIAEX,yBAAqB,IAAI,CAAC,IAFf;QAIpC,8DAA4D;QAA5D,uEAA4D;QAC1D,oHAcS;QACT,mHAaS;QACT,uEAoBC;QAJC,sJAAU,mBAAe,IAAC,kGACd,sBAAkB,IADJ,sGAEZ,wBAAoB,IAFR,4HAGD,sCAAkC,IAHjC;QAI3B,4DAAQ;;QA3DX,+JAAwB;QASjB,0DAA4B;QAA5B,qFAA4B;QAG9B,0DAAW;QAAX,2EAAW;QAeX,0DAAW;QAAX,2EAAW;QAcZ,0DAAiB;QAAjB,8EAAiB;;;;;;;;;;;;;;;;;;;ACvDJ;AAC8B;;;AAoB9C,MAAM,iBAAiB;IAoB5B,YAAY,OAAmB;QAXrB,sBAAiB,GAAsB,IAAI,uDAAY,EAAE,CAAC;QAKpE,sBAAiB,GAAW,CAAC,CAAC;QAC9B,oBAAe,GAAW,CAAC,CAAC;QAM1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,OAAO;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,eAAe;QACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvD;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,iEAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;YACrC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnC,4DAA4D;YAC5D,oDAAoD;YACpD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;aAC3B;YACD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACzC;aAAM;YACL,iCAAiC;YACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAEpC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;aAC3B;YACD,IAAI,CAAC,SAAS,GAAG,eAAe,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;SACvD;IACH,CAAC;;kFAvEU,iBAAiB;+GAAjB,iBAAiB;QAd1B,8DAOC;QAPD,0EAOC;QACC,uDACF;QAAA,4DAAW;;QANT,wFAA+B;QAK/B,0DACF;QADE,6FACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfmB;AACmD;AACxB;AAEyB;AACtB;AAGe;AACS;AACjB;AAEU;AACnB;;;;;;;;;;;;IAwB3C,wEAcC;IADC,wUAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,sFAAqB;;;;;IAYvB,wEAaC;IADC,wUAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,sFAAqB;;;;;IAYrB,wEAwBE;IAJA,0XAAU,iCAAsB,IAAC,qUACrB,oCAAyB,IADJ,yUAEnB,sCAA2B,IAFR,8VAGP,sDAA0C,IAHnC;IApBnC,6DAwBE;;;;IArBA,sFAA4B;IAC5B,wGAAwC;;;;IAL5C,qEAAsB;IACpB,8HAwBE;IACJ,6DAAQ;;;IAvBc,2DAAY;IAAZ,oFAAY;;;;;IA0BlC,wEAuBE;IAJA,2XAAU,kCAAsB,IAAC,sUACrB,qCAAyB,IADJ,0UAEnB,uCAA2B,IAFR,8VAGP,sDAA0C,IAHnC;IAnBnC,6DAuBE;;;;IAnBA,iGAA+B;IAD/B,0GAAwC;;;;IAJ5C,qEAAqB;IACnB,8HAuBE;IACJ,6DAAQ;;;IAtBc,2DAAY;IAAZ,oFAAY;;;AAwCjC,MAAM,sBAAuB,SAAQ,4EAAkB;IA1H9D;;QA2HW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QACjC,cAAS,GAAc,4EAAiB,CAAC;QAEzC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,iBAAY,GAAW,EAAE,CAAC;QAC1B,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAC9B,eAAU,GAAY,IAAI,CAAC;QAE3B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAa7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,uBAAkB,GAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACvD,UAAK,GAAG,KAAK,CAAC;QAEd,mBAAc,GAAG,8EAAc,CAAC;QAsIhC,YAAO,GAA8B,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;YACrE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KAgFH;IAtNC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACxD;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErG,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SACtD;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,CAAC;IAC5G,CAAC;IAED,2BAA2B,CAAC,KAAK,EAAE,UAAkB;QACnD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClG;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClG;QACD,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAErF,OAAO,qDAAS,EAAE;aACf,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC,YAAY,CAAC,OAAO,CAAC;aACrB,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACxE,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3F,CAAC;IAED,aAAa;QACX,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAE1F,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,KAAe;QAC5B,OAAO,aAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAgB;QAC5B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,KAAe,EAAE,aAAsB,KAAK;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAe,EAAE,aAAsB,KAAK;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;kTA9QU,sBAAsB,SAAtB,sBAAsB;qHAAtB,sBAAsB;;;;;;QAvH/B,uFASC;QAHC,2LAAuB,uBAAmB,SAAS,EAAE,IAAI,CAAC,IAAC,sIAClC,yBAAqB,SAAS,EAAE,IAAI,CAAC,IADH,4HAEvC,mBAAe,IAFwB;QAI3D,+DAA4D;QAA5D,wEAA4D;QAC1D,mEAOS;QACT,qHAcS;QACT,oHAaS;QACT,oHA0BQ;QACV,6DAAQ;QACR,oHAyBQ;QACV,6DAAmB;;QArGjB,iKAAwB;QASjB,2DAA4B;QAA5B,sFAA4B;QAG/B,2DAAqB;QAArB,mFAAqB;QAQpB,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAYN,2DAAY;QAAZ,6EAAY;QA4Bd,2DAAW;QAAX,4EAAW;ghMA+BX;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,GAAG;qBACf,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvIoB;AAC4B;AACuB;AACxB;AAEyB;AACtB;AAEe;AACT;AACkB;AACjB;;;;;;;;;;;IAiBpD,wEAaC;IADC,gVAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAVP,kFAAiB;;;;;IAWnB,wEAaC;IADC,gVAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,kFAAiB;;;;;IAYjB,qEAIC;IAgBG,kYAAU,iCAAsB,IAAC,6UACrB,oCAAyB,IADJ,iVAEnB,sCAA2B,IAFR;IAfnC,6DAkBE;;;;IArBF,sFAA4B;IAC5B,wGAAwC;IAItC,2DAAgC;IAAhC,iGAAgC;;;;IARtC,qEAAsB;IACpB,sIAwBQ;IACV,6DAAQ;;;IAxBc,2DAAY;IAAZ,oFAAY;;;;;IA0BhC,qEAAgG;IAgB5F,mYAAU,kCAAsB,IAAC,8UACrB,qCAAyB,IADJ,kVAEnB,uCAA2B,IAFR;IAfnC,6DAkBE;;;;IAnBmD,0GAAwC;IAG3F,2DAAgC;IAAhC,kGAAgC;;;;IAJtC,qEAAqB;IACnB,sIAoBQ;IACV,6DAAQ;;;IArBmB,2DAAY;IAAZ,oFAAY;;;AAwCxC,MAAM,8BAA+B,SAAQ,4EAAkB;IA9GtE;;QA+GW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAO7D,gBAAW,GAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAKzC,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,UAAK,GAAG,KAAK,CAAC;QAEd,iBAAY,GAAG,oEAAY,CAAC;QAuF5B,YAAO,GAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KAgFH;IAvKC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAElF,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrG,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAc;QAC1B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;0VAvNU,8BAA8B,SAA9B,8BAA8B;6HAA9B,8BAA8B;;;;;;QA3GvC,uFASC;QAHC,mMAAuB,uBAAmB,SAAS,EAAE,IAAI,CAAC,IAAC,8IAClC,yBAAqB,SAAS,EAAE,IAAI,CAAC,IADH,oIAEvC,mBAAe,IAFwB;QAI3D,+DAA4D;QAA5D,wEAA4D;QAC1D,4HAaS;QACT,4HAaS;QACT,4HA0BQ;QACR,4HAsBQ;QACV,6DAAQ;;QAxFR,iKAAwB;QASjB,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAcX,2DAAW;QAAX,4EAAW;QAYN,2DAAY;QAAZ,6EAAY;QA2BZ,2DAAW;QAAX,4EAAW;o7LA6Bb;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,GAAG;qBACf,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1HoB;AAC4B;AACuB;AACxB;AAEyB;AACtB;AAEe;AACT;AACkB;AACjB;;;;;;;;;;;IAiBpD,wEAcC;IADC,6UAAqB,gCAAyB,IAAC;IAChD,6DAAQ;;;IAXP,kFAAiB;;;;;IAYnB,wEAaC;IADC,6UAAqB,+BAAwB,IAAC;IAC/C,6DAAQ;;;IAVP,kFAAiB;;;;;IAYjB,qEAIC;IAkBG,+XAAU,iCAAsB,IAAC,0UACrB,oCAAyB,IADJ,8UAEnB,sCAA2B,IAFR,mWAGP,sDAA0C,IAHnC;IAjBnC,6DAqBE;;;;IAxBF,sFAA4B;IAC5B,wGAAwC;IAItC,2DAA6B;IAA7B,8FAA6B;;;;IARnC,qEAAsB;IACpB,mIA2BQ;IACV,6DAAQ;;;IA3Bc,2DAAY;IAAZ,oFAAY;;;;;IA8BlC,qEAGC;IAkBG,gYAAU,kCAAsB,IAAC,2UACrB,qCAAyB,IADJ,+UAEnB,uCAA2B,IAFR,mWAGP,sDAA0C,IAHnC;IAjBnC,6DAqBE;;;;IAvBF,0GAAwC;IAItC,2DAA6B;IAA7B,+FAA6B;;;;IAPnC,qEAAqB;IACnB,mIA0BQ;IACV,6DAAQ;;;IA1Bc,2DAAY;IAAZ,oFAAY;;;AA4CjC,MAAM,2BAA4B,SAAQ,4EAAkB;IAxHnE;;QAyHW,WAAM,GAAY,KAAK,CAAC;QACxB,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAY,KAAK,CAAC;QAE9B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAa7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,uBAAkB,GAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACvD,UAAK,GAAG,KAAK,CAAC;QAEd,iBAAY,GAAG,oEAAY,CAAC;QAoI5B,YAAO,GAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC;KAgFH;IApNC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACxD;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErG,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SACtD;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,CAAC;IAC5G,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;oBACf,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC;iBACxB;qBAAM;oBACL,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC;iBACvB;gBACD,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACnD,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;aACjD;YACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClF,OAAO,qDAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrG,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,2BAA2B,CAAC,KAAK,EAAE,UAAkB;QACnD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClG;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClG;QACD,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,OAAO,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAc;QAC1B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAMD,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,aAAsB,KAAK;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAClB,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,CAAC,EAAE;YACV,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAa,EAAE,aAAsB,KAAK;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;2UAzQU,2BAA2B,SAA3B,2BAA2B;0HAA3B,2BAA2B;;;;;;QArHpC,uFASC;QAHC,gMAAuB,uBAAmB,SAAS,EAAE,IAAI,CAAC,IAAC,2IAClC,yBAAqB,SAAS,EAAE,IAAI,CAAC,IADH,iIAEvC,mBAAe,IAFwB;QAI3D,+DAA4D;QAA5D,wEAA4D;QAC1D,0HAcS;QACT,yHAaS;QACT,yHA6BQ;QACV,6DAAQ;QACR,yHA4BQ;QACV,6DAAmB;;QAnGjB,iKAAwB;QASjB,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAYN,2DAAY;QAAZ,6EAAY;QA+Bd,2DAAW;QAAX,4EAAW;o7LAkCX;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,GAAG;qBACf,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIoB;AAC2B;AAEyB;AACtB;AACe;AAES;AACjB;;;;;;;;;;;IAiBpD,uEAeC;IADC,mUAAqB,gCAAyB,IAAC;IAChD,4DAAQ;;;IAZP,iFAAiB;;;;;IAanB,uEAaC;IADC,mUAAqB,+BAAwB,IAAC;IAC/C,4DAAQ;;;IAVP,iFAAiB;;;AAuCpB,MAAM,oBAAqB,SAAQ,4EAAkB;IAxE5D;;QAyEW,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QAOtD,oBAAe,GAAY,KAAK,CAAC;QAEjC,kBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAa,GAAU,EAAE,CAAC;QAE1B,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,eAAU,GAAG,CAAC,CAAC;QACf,iBAAY,GAAY,KAAK,CAAC;QAC9B,eAAU,GAAY,IAAI,CAAC;QAG3B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAsB,IAAI,uDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,uDAAY,EAAE,CAAC;QAW7D,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,uBAAkB,GAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;KAmKxD;IAjKC,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACxD;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErG,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SACtD;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,CAAC;IAC5G,CAAC;IAED,SAAS;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC9E,OAAO,qDAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,SAAS;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;QACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,IAAuB;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,SAAS;QACP,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI,CAAC,cAAc;SAC9B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAE;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAE;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,2BAA2B,CAAC,KAAK;QAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClG;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClG;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK;QACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC3B,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,OAAO;SACR;QAED,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK;QACnC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC3B,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;;uSAnNU,oBAAoB,SAApB,oBAAoB;kHAApB,oBAAoB;;;;;;QArE7B,sFASC;QAHC,kLAAoB,mBAAe,IAAC,gIACb,uBAAmB,IAAI,CAAC,IADX,oIAEX,yBAAqB,IAAI,CAAC,IAFf;QAIpC,8DAA4D;QAA5D,uEAA4D;QAC1D,kHAeS;QACT,iHAaS;QACT,uEAoBC;QAJC,wJAAY,sBAAkB,IAAC,oGACjB,wBAAoB,IADH,4FAErB,mBAAe,IAFM,4HAGL,uCAAmC,IAH9B;QAIhC,4DAAQ;;QA5DX,+JAAwB;QASjB,0DAA4B;QAA5B,qFAA4B;QAG9B,0DAAW;QAAX,2EAAW;QAgBX,0DAAW;QAAX,2EAAW;QAcZ,0DAAiB;QAAjB,8EAAiB;;;;;;;;;;;;;;;;;;;;;;;;ACxDJ;AACe;AACe;AACpB;AAEqC;;;;;;IAMlE,8DAA8B;IAA9B,uEAA8B;IAC5B,kEAAgH;IAClH,4DAAW;;;IAD6B,0DAA2B;IAA3B,2FAA2B;;AAiBhE,MAAM,YAAY;IA6BvB,YAAY,OAAmB;QArBtB,eAAU,GAAY,IAAI,CAAC;QAC3B,aAAQ,GAAY,KAAK,CAAC;QAC1B,WAAM,GAAW,CAAC,CAAC;QACnB,aAAQ,GAAY,KAAK,CAAC;QAE1B,eAAU,GAAY,IAAI,CAAC;QAE3B,kBAAa,GAAY,IAAI,CAAC;QAE7B,WAAM,GAA2B,IAAI,uDAAY,EAAE,CAAC;QACpD,aAAQ,GAA2B,IAAI,uDAAY,EAAE,CAAC;QACtD,eAAU,GAA2B,IAAI,uDAAY,EAAE,CAAC;QAOlE,gBAAW,GAAY,KAAK,CAAC;QAC7B,YAAO,GAAY,KAAK,CAAC;QAGvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,wDAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACjD;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACtB;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAED,OAAO;YACL;gBACE,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;aAChC;YACD;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,CAAC;aACX;SACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC;QAET,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,IAAI,CAAC,WAAW,KAAK,uFAAuB,EAAE;gBAChD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAChF;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,yFAAyB,EAAE;gBACzD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACnE;SACF;aAAM;YACL,IAAI,IAAI,CAAC,WAAW,KAAK,uFAAuB,EAAE;gBAChD,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAChF;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,yFAAyB,EAAE;gBACzD,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACnE;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC;QAET,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,IAAI,CAAC,WAAW,KAAK,uFAAuB,EAAE;gBAChD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACjF;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,yFAAyB,EAAE;gBACzD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACjF;SACF;aAAM;YACL,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACjF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YACxD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,GAAG,CAAC;SACZ;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAED,IAAI,KAAK;QACP,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,IAAI,CAAC,WAAW,KAAK,uFAAuB,EAAE;gBAChD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;oBACvB,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBACpC;qBAAM;oBACL,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACpC;aACF;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,yFAAyB,EAAE;gBACzD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;oBACvB,KAAK,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBACpC;qBAAM;oBACL,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBACpC;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,aAAa;gBAClB,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,uFAAuB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;oBAClE,CAAC,IAAI,CAAC,WAAW,KAAK,yFAAyB,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;;wEA5LU,YAAY;0GAAZ,YAAY;8IAAZ,kBAAc,kFAAd,kBAAc;;QAlBvB,+GAEW;QACX,8DAWE;QAXF,0EAWE;QADA,uIAAS,yBAAiB,IAAC;QAV7B,4DAWE;;QAdS,iFAAiB;QAQ1B,0DAAyB;QAAzB,iFAAyB;QAEzB,wEAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBE;AACmD;AACR;AAGN;AACF;AACC;AAEZ;AAEuB;AACV;;;;;;;;;IAKxD,+DA4BC;IA5BD,wEA4BC;IAfC,4SAAU,oBAAa,IAAC,uPAKZ,4BAAqB,IALT,2PAMV,8BAAuB,IANb;IAezB,6DAAQ;;;;IAzBP,sFAA4B;;;;;IA2B5B,wEAWE;IADA,kYAAqB,iEAAsD,IAAC;IAV9E,6DAWE;;;;IARA,yEAAY;;;IAJhB,+DAA6B;IAA7B,qEAA6B;IAC3B,uHAWE;IACJ,6DAAQ;;;IAVU,2DAAsB;IAAtB,8FAAsB;;AAwBrC,MAAM,gBAAgB;IA3D7B;QA6DW,SAAI,GAAiB,6EAAqB,CAAC;QAK3C,oBAAe,GAAY,KAAK,CAAC;QAMjC,eAAU,GAAY,IAAI,CAAC;QAC3B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,WAAM,GAA2B,IAAI,wDAAY,EAAE,CAAC;QACpD,aAAQ,GAAG,IAAI,wDAAY,EAAE,CAAC;QAC9B,eAAU,GAAG,IAAI,wDAAY,EAAE,CAAC;QAChC,0BAAqB,GAAG,IAAI,wDAAY,EAAkC,CAAC;QAKrF,sBAAiB,GAAkG,EAAE,CAAC;QAEtH,mBAAc,GAAG,8EAAc,CAAC;KAgLjC;IA9KC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG;YACT,CAAC,iEAAgB,CAAC,EAAE,CAAC;YACrB,CAAC,iEAAgB,CAAC,EAAE,CAAC;SACtB,CAAC;QACF,IAAI,MAAe,CAAC;QACpB,MAAM,GAAG,iEAAgB,CAAC;QAC1B,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,+EAAuB,EAAE;YACzC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAE,GAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/E;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC9B,IAAI,KAAK,GAAG,CAAC,CAAC,KAAY,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,cAAc,GAAG,iEAAW,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iEAAgB,CAAC,CAAC,CAAC,iEAAgB,CAAC;YAEzD,MAAM,GAAG,GAAQ;gBACf,KAAK;gBACL,KAAK;gBACL,UAAU;gBACV,IAAI,EAAE,CAAC;gBACP,cAAc;aACf,CAAC;YAEF,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAErC,IAAI,IAAI,CAAC,IAAI,KAAK,6EAAqB,EAAE;gBACvC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClE,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC5B;qBAAM;oBACL,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBAChC;gBACD,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC5B;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,4EAAoB,EAAE;gBAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC3B,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;gBAChC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;gBAEpB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxD,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;gBACtB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;aACvB;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,+EAAuB,EAAE;gBAChD,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;gBAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;gBAEpB,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,OAAO,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;oBAClC,OAAO,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;iBACnC;qBAAM;oBACL,OAAO,GAAG,CAAC,CAAC;oBACZ,OAAO,GAAG,CAAC,CAAC;iBACb;gBAED,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxD,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;gBACtB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;gBACtB,KAAK,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;aAC9C;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,4EAAiB,EAAE;gBAC/C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBACL,IAAI,IAAI,CAAC,IAAI,KAAK,6EAAqB,EAAE;oBACvC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACxC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM;oBACL,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC9C,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBAClF;aACF;YAED,IAAI,YAAY,GAAG,cAAc,CAAC;YAClC,GAAG,CAAC,SAAS,GAAG,cAAc,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC7D,YAAY,GAAG,GAAG,IAAI,CAAC,UAAU,MAAM,cAAc,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAClC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;aACvD;YAED,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe;gBACpC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;sCAC4B,iEAAW,CAAC,YAAY,CAAC;oCAErD,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EACnF;OACD,CAAC;YAEF,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,4EAAoB,EAAE;YACtC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,KAAK,GAAG,aAAa,GAAG,aAAa,CAAC;YAC9C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,2EAA2E;YAC3E,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;gBACrB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aAC5C;iBAAM;gBACL,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aAC5C;YACD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;gBAC3C,MAAM,OAAO,GAAQ,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,GAAG,UAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,KAAK,CAAC;gBAC5C,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;gBACxB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzC,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wEAAkB,CAAC;QAC9E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0EAAkB,CAAC;IAC3E,CAAC;IAED,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,QAAkB;QACzB,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClB,OAAO,QAAQ,CAAC,KAAK,CAAC;SACvB;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,GAAQ;QAC7B,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,QAAa;QAC3C,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAc;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;;gFA3MU,gBAAgB;+GAAhB,gBAAgB;QAxDzB,+GA4BS;QACT,8GAaQ;;QAxCU,8EAAS;QA2BnB,2DAAmB;QAAnB,oFAAmB;uXAgBjB;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACpC,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEoB;AACmD;AACR;AAEN;AACF;AAEC;AACZ;AAGuB;AACV;AACT;;;;;;;;;;IAM7C,wEA6BC;IAZC,6TAAU,sBAAe,IAAC,wQACd,4BAAqB,IADP,4QAEZ,8BAAuB,IAFX;IAY3B,6DAAQ;;;;IA1BP,sFAA4B;;;IAJhC,+DAAsB;IAAtB,qEAAsB;IACpB,+HA6BS;IACX,6DAAQ;;;IA5BY,2DAAS;IAAT,iFAAS;;;;;IA8B3B,wEA2BC;IAZC,+TAAU,uBAAe,IAAC,0QACd,6BAAqB,IADP,8QAEZ,+BAAuB,IAFX;IAY3B,6DAAQ;;;;IAxBP,iFAAmB;;;IAJvB,+DAAqB;IAArB,qEAAqB;IACnB,+HA2BS;IACX,6DAAQ;;;IA1BY,2DAAS;IAAT,iFAAS;;;;;IA4B3B,wEAWE;IADA,0YAAqB,mEAAuD,IAAC;IAV/E,6DAWE;;;;IARA,0EAAY;;;IAJhB,+DAA6B;IAA7B,qEAA6B;IAC3B,8HAWE;IACJ,6DAAQ;;;IAVU,2DAAsB;IAAtB,8FAAsB;;AAwBrC,MAAM,uBAAuB;IAiClC,YAAyC,UAAe;QAAf,eAAU,GAAV,UAAU,CAAK;QA/B/C,SAAI,GAAiB,6EAAqB,CAAC;QAQ3C,oBAAe,GAAY,KAAK,CAAC;QAGjC,eAAU,GAAY,IAAI,CAAC;QAC3B,kBAAa,GAAY,KAAK,CAAC;QAE/B,kBAAa,GAAY,IAAI,CAAC;QAE7B,WAAM,GAA2B,IAAI,wDAAY,EAAE,CAAC;QACpD,aAAQ,GAAG,IAAI,wDAAY,EAAE,CAAC;QAC9B,eAAU,GAAG,IAAI,wDAAY,EAAE,CAAC;QAChC,2BAAsB,GAAG,IAAI,wDAAY,EAAE,CAAC;QAMtD,sBAAiB,GAAkG,EAAE,CAAC;QAEtH,mBAAc,GAAG,8EAAc,CAAC;QAEhC,UAAK,GAAG,KAAK,CAAC;IAE6C,CAAC;IAE5D,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACjC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,EAAE,GAAG;YACT,CAAC,iEAAgB,CAAC,EAAE,CAAC;YACrB,CAAC,iEAAgB,CAAC,EAAE,CAAC;SACtB,CAAC;QACF,IAAI,MAAM,GAAG,iEAAgB,CAAC;QAE9B,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,+EAAuB,EAAE;YACzC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,KAAK,GAAG,CAAC,CAAC,KAAY,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,cAAc,GAAG,iEAAW,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iEAAgB,CAAC,CAAC,CAAC,iEAAgB,CAAC;YAEzD,MAAM,GAAG,GAAQ;gBACf,KAAK;gBACL,KAAK;gBACL,UAAU;gBACV,IAAI,EAAE,CAAC;gBACP,KAAK;gBACL,cAAc;gBACd,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL,CAAC;YAEF,IAAI,IAAI,CAAC,IAAI,KAAK,6EAAqB,EAAE;gBACvC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE3B,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACxB;qBAAM;oBACL,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC5B;aACF;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,4EAAoB,EAAE;gBAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC3B,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;gBAChC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;gBAEpB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzD,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;gBACtB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;aACvB;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,+EAAuB,EAAE;gBAChD,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;gBAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;gBAEpB,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,OAAO,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;oBAClC,OAAO,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;iBACnC;qBAAM;oBACL,OAAO,GAAG,CAAC,CAAC;oBACZ,OAAO,GAAG,CAAC,CAAC;iBACb;gBAED,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzD,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;gBACtB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;gBACtB,KAAK,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;aAC9C;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,4EAAiB,EAAE;gBAC/C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBACL,IAAI,IAAI,CAAC,IAAI,KAAK,6EAAqB,EAAE;oBACvC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACxC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM;oBACL,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC9C,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBAClF;aACF;YAED,IAAI,YAAY,GAAG,cAAc,CAAC;YAClC,GAAG,CAAC,SAAS,GAAG,cAAc,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC7D,YAAY,GAAG,GAAG,IAAI,CAAC,UAAU,MAAM,cAAc,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAClC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;aACvD;YAED,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe;gBACpC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;sCAC4B,iEAAW,CAAC,YAAY,CAAC;oCAErD,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EACnF;OACD,CAAC;YAEF,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,4EAAoB,EAAE;YACtC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,KAAK,GAAG,aAAa,GAAG,aAAa,CAAC;YAC9C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;gBACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aAC7C;iBAAM;gBACL,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aAC7C;YACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;gBAC3C,MAAM,OAAO,GAAQ,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,GAAG,UAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,KAAK,CAAC;gBAC5C,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;gBACxB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wEAAkB,CAAC;QAC9E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0EAAkB,CAAC;IAC3E,CAAC;IAED,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,QAAkB;QACzB,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClB,OAAO,QAAQ,CAAC,KAAK,CAAC;SACvB;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,GAAQ;QAC7B,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,QAAa;QAC3C,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9D,CAAC;;8FA9NU,uBAAuB,mEAiCd,uDAAW;sHAjCpB,uBAAuB;QAzFhC,qHA+BQ;QACR,qHA6BQ;QACR,qHAaQ;;QA3EA,6EAAY;QAgCZ,2DAAW;QAAX,4EAAW;QA8BX,2DAAmB;QAAnB,oFAAmB;uXAgBjB;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACpC,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;ACnHH,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB;IACrB,yCAAyB;IACzB,mCAAmB;AACrB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEJD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,gCAAqB;IACrB,gCAAqB;AACvB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACMsB;AAE6C;AACf;AAEqB;AACC;AAEE;AACjB;;;;;;;;;;;IAmCpD,oEAAwD;IAepD,8SAAY,yBAAkB,IAAC,0PACjB,2BAAoB,IADH,kPAErB,sBAAe,IAFM;IAdjC,4DAiBE;;;;IAfA,0DAAiB;IAAjB,iFAAiB;;;AAwBtB,MAAM,iBAAkB,SAAQ,4EAAkB;IA5DzD;;QA6DE,+BAA+B;QACtB,WAAM,GAAY,KAAK,CAAC;QACxB,mBAAc,GAAmB,4EAAoB,CAAC;QACtD,gBAAW,GAAW,QAAQ,CAAC;QAG/B,kBAAa,GAAY,IAAI,CAAC;QAC9B,UAAK,GAAY,IAAI,CAAC;QACtB,UAAK,GAAY,IAAI,CAAC;QACtB,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,iBAAY,GAAY,KAAK,CAAC;QAG9B,eAAU,GAAY,IAAI,CAAC;QAC3B,gBAAW,GAAW,SAAS,CAAC;QAChC,gBAAW,GAAW,CAAC,CAAC;QACxB,oBAAe,GAAY,KAAK,CAAC;QAGhC,WAAM,GAA4B,IAAI,uDAAY,EAAE,CAAC;QACrD,aAAQ,GAA4B,IAAI,uDAAY,EAAE,CAAC;QACvD,eAAU,GAA4B,IAAI,uDAAY,EAAE,CAAC;QAanE,wDAAwD;QACxD,WAAM,GAAqC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAU5D,8BAA8B;QAC9B,gBAAW,GAAW,CAAC,CAAC;QACxB,8BAA8B;QAC9B,eAAU,GAAW,CAAC,CAAC;KA2JxB;IAzJC,OAAO,CAAC,KAAa,EAAE,IAAoB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,SAAS;QACP,IAAI,MAAM,GAAwB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SAC5B;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,SAAS;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,MAAqC,EAAE,KAAa;QAC5D,MAAM,KAAK,GAAG,qDAAS,EAAE;aACtB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aACrC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACtB,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,MAAgB,EAAE,MAAc;QACxC,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,8BAA8B,CAAC,OAA4B;QACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACR,IAAI,MAAM,GAAkC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAkC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChG,IAAI,GAAW,CAAC;QAChB,IAAI,GAAW,CAAC;QAChB,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACjC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5C;aAAM,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACxC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrB;aAAM;YACL,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;SACF;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAE9C,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAE;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAE;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,IAAe;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,IAAe;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,IAAe;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,gBAAgB;QACtB,MAAM,UAAU,GAAkB;YAChC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,KAAK,EAAE,IAAI,CAAC,WAAW;SACxB,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAiB,EAAE;YACzC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SACjC;aAAM;YACL,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACvC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;;wRA5MU,iBAAiB,SAAjB,iBAAiB;+GAAjB,iBAAiB;;;;;;QAzD1B,sFAQC;QAHC,+KAAoB,mBAAe,IAAC,6HACb,sBAAkB,IADL,iIAEX,wBAAoB,IAFT;QAIpC,8DAA4D;QAA5D,uEAA4D;QAQxD,uKAAqB,6BAAyB,IAAC;QAPjD,4DAQE;QACF,uEAQE;QADA,uKAAqB,4BAAwB,IAAC;QAPhD,4DAQE;QAEJ,oEAAoC;QAClC,+GAmBQ;QACV,4DAAQ;;QAjDR,+JAAwB;QAQjB,0DAA4B;QAA5B,qFAA4B;QAG/B,0DAA+B;QAA/B,4FAA+B;QAS/B,0DAA+B;QAA/B,4FAA+B;QAQ5B,0DAA4B;QAA5B,qFAA4B;QACP,0DAAY;QAAZ,gFAAY;;;;;;;;;;;;;;;;;;;;;;ACpDoB;AACR;AACE;AACb;;AAOxC,MAAM,cAAc;;4EAAd,cAAc;2GAAd,cAAc;+GAJhB,CAAC,0EAAiB,CAAC;mIAIjB,cAAc,mBAHV,mEAAiB,EAAE,qEAAkB,EAAE,wDAAY,aADxD,0EAAiB,aAEjB,mEAAiB,EAAE,qEAAkB,EAAE,wDAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAxC;AACuB;AAI4B;AAER;AACR;AACE;AACA;;;;;AAgDrD,MAAM,kBAAkB;IA7C/B;QAmDW,eAAU,GAAY,IAAI,CAAC;QAG3B,oBAAe,GAAY,KAAK,CAAC;QAKjC,aAAQ,GAAY,KAAK,CAAC;QAEzB,WAAM,GAA4B,IAAI,uDAAY,EAAE,CAAC;QACrD,aAAQ,GAA4B,IAAI,uDAAY,EAAE,CAAC;QACvD,eAAU,GAA4B,IAAI,uDAAY,EAAE,CAAC;KAgIpE;IAvHC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,IAAe;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAEpC,sDAAsD;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,CAAC,oDAAG,CAAC,YAAY,CAAC,EAAE,oDAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAEvD,0EAA0E;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7G,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,iEAAW,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAc;YACrB,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,KAAK,EAAE,UAAU;YACjB,cAAc;YACd,KAAK;YACL,MAAM,EAAE,CAAC;YACT,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,GAAG,CAAC,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAExE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,4EAAiB,EAAE;YAC/C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACL,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9F;QAED,MAAM,YAAY,GAAG,cAAc,CAAC;QACpC,MAAM,qBAAqB,GAAG;kCACA,iEAAW,CAAC,YAAY,CAAC;;cAE7C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;eACtE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9C,CAAC;QAET,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QAEvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,SAA+B;QAC7C,OAAO,CAAC,oDAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,oDAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,oDAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,mBAAmB,CACjB,UAAkB,EAClB,QAA0B,EAC1B,SAAmC,EACnC,QAAgB;QAEhB,+EAA+E;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC;QAEvC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAc;YACzB,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE;YACzD,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE;SAC1D,CAAC;QACF,MAAM,UAAU,GAAc;YAC5B,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;YACnD,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;SACpD,CAAC;QACF,MAAM,UAAU,GAAc;YAC5B,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE;YACxD,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE;SACzD,CAAC;QACF,MAAM,YAAY,GAAc;YAC9B,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE;YAClC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE;SAClC,CAAC;QACF,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1B,IAAI,CAAC,gBAAgB,GAAG,wEAAkB,CAAC;aAC5C;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,0EAAkB,CAAC;aACvC;SACF;IACH,CAAC;;oFAjJU,kBAAkB;gHAAlB,kBAAkB;QA1C3B,8DA4BC;QA5BD,uEA4BC;QAXC,kJAAU,mBAAe,IAAC,8FACd,yBAAqB,IADP,kGAEZ,2BAAuB,IAFX;QAW3B,4DAAQ;;QA1BP,qFAA4B;uMA6BpB;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACpC,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDoB;AACyB;AACH;AACN;AAEJ;AAEkB;AACpB;AAGqC;;;;;;;IAShE,kEAME;;;IAHA,uGAAuC;;;;IAyBzC,qEAYE;;;;;IATA,mFAAwB;IACxB,6EAAqB;;AAatB,MAAM,YAAY;IAgDvB,YAAY,OAAmB,EAAY,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QAtCvD,eAAU,GAAY,IAAI,CAAC;QAC3B,aAAQ,GAAY,KAAK,CAAC;QAE1B,WAAM,GAAW,CAAC,CAAC;QACnB,aAAQ,GAAY,KAAK,CAAC;QAC1B,eAAU,GAAY,IAAI,CAAC;QAE3B,kBAAa,GAAY,IAAI,CAAC;QAE7B,WAAM,GAA4B,IAAI,uDAAY,EAAE,CAAC;QACrD,aAAQ,GAA4B,IAAI,uDAAY,EAAE,CAAC;QACvD,eAAU,GAA4B,IAAI,uDAAY,EAAE,CAAC;QAEnE,mBAAc,GAAG,8EAAc,CAAC;QAYhC,gBAAW,GAAY,KAAK,CAAC;QAC7B,gBAAW,GAAY,KAAK,CAAC;QAC7B,YAAO,GAAY,KAAK,CAAC;QAYvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAE9C,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;QAE3C,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SACxB;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC5D,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,wDAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;iBACJ,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;iBACvB,UAAU,EAAE;iBACZ,IAAI,CAAC,6CAAY,CAAC;iBAClB,QAAQ,CAAC,GAAG,CAAC;iBACb,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC5C;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,YAAY;QACV,MAAM,MAAM,GAAG,wDAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM;iBACH,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACxD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACxD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACxD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACxD,UAAU,EAAE;iBACZ,IAAI,CAAC,6CAAY,CAAC;iBAClB,QAAQ,CAAC,GAAG,CAAC;iBACb,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC1D;aAAM;YACL,MAAM;iBACH,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAY,EAAE,CAAM,EAAE,KAAa,EAAE,IAAsC;QACnF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAmB,CAAC;QACjD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,wGAAwG;IACxG,SAAS,CAAC,EAAU,EAAE,SAAiB;QACrC,OAAO;YACL,4DAA4D;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,CAAC;YACnC,6DAA6D;YAC7D,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACZ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,IAAI,EAAE,CAAC;aACT;YACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAElB,gDAAgD;YAChD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;gBACzC,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1C,OAAO,0DAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,+EAA+E;YAC/E,OAAO,CAAC,CAAM,EAAE,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5C,OAAO,iEAAW,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,GAAG,iEAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;SAClC;QAED,MAAM,eAAe,GAAoB,iDAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvJ,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,SAAS;QACP,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YACxD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW;QACT,OAAO;YACL;gBACE,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;aAChC;YACD;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,CAAC;aACX;SACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,GAAG,CAAC;SACZ;aAAM;YACL,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAED,IAAI,KAAK;QACP,IAAI,KAAK,GAAyC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAClC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACzD,CAAC;;wEA1QU,YAAY;0GAAZ,YAAY;8IAAZ,kBAAc,kFAAd,kBAAc;;QA9CvB,8DAAU;QAAV,uEAAU;QACR,yGAME;QACF,uEAAiC;QAE7B,qEAAiE;QAEnE,4DAAQ;QAGZ,oEAAO;QAYH,uIAAS,yBAAiB,IAAC;QAX7B,4DAYE;QACF,+GAYE;QACJ,4DAAQ;;QAxCH,0DAAiB;QAAjB,iFAAiB;QAMV,0DAAsB;QAAtB,+EAAsB;QAGV,0DAAkB;QAAlB,2EAAkB;QAStC,0DAAyB;QAAzB,iFAAyB;QAEzB,2EAAkB;QAQD,0DAAoB;QAApB,wFAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDtB;AACmD;AACnC;AAE6B;AACO;AACtB;AACE;AACI;AAC1B;AAE4C;AACjB;AAET;;;;;;;;;;;IAyB3C,wEAcE;IADA,sUAAqB,gCAAyB,IAAC;IAbjD,6DAcE;;;IAXA,gGAA+B;;;;;IAYjC,wEAaE;IADA,sUAAqB,+BAAwB,IAAC;IAZhD,6DAaE;;;IAVA,gGAA+B;;;;;IAqB/B,qEAAkF;IAe9E,yXAAU,kCAAuB,IAAC,uQACtB,0BAAkB,IADI,2QAEpB,4BAAoB,IAFA;IAdpC,6DAiBE;;;;IAlBiD,sFAA4B;IAG7E,2DAAiB;IAAjB,kFAAiB;;;;IAJvB,qEAAkD;IAChD,4HAmBQ;IACV,6DAAQ;;;IArBc,wFAA2B;IACrB,2DAAS;IAAT,iFAAS;;;;;IAsBnC,qEAAqD;IAejD,0XAAU,mCAAuB,IAAC,uQACtB,0BAAkB,IADI,2QAEpB,4BAAoB,IAFA;IAdpC,6DAiBE;;;;IAfA,2DAAiB;IAAjB,mFAAiB;;;;IAJvB,qEAAiD;IAC/C,4HAmBQ;IACV,6DAAQ;;;IArBa,wFAA2B;IACpB,2DAAS;IAAT,iFAAS;;;AA2CtC,MAAM,oBAAqB,SAAQ,4EAAkB;IA/H5D;;QAgIW,kBAAa,GAAY,IAAI,CAAC;QAC9B,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAW,QAAQ,CAAC;QAC/B,mBAAc,GAAmB,4EAAoB,CAAC;QACtD,UAAK,GAAY,IAAI,CAAC;QACtB,UAAK,GAAY,IAAI,CAAC;QAKtB,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAgB,GAAY,IAAI,CAAC;QACjC,uBAAkB,GAAW,EAAE,CAAC;QAChC,uBAAkB,GAAW,EAAE,CAAC;QAKhC,iBAAY,GAAY,KAAK,CAAC;QAC9B,cAAS,GAAW,EAAE,CAAC;QACvB,cAAS,GAAW,CAAC,CAAC;QAEtB,eAAU,GAAc,4EAAiB,CAAC;QAC1C,oBAAe,GAAY,KAAK,CAAC;QAMhC,aAAQ,GAAsB,IAAI,wDAAY,EAAE,CAAC;QACjD,eAAU,GAAsB,IAAI,wDAAY,EAAE,CAAC;QAM7D,cAAS,GAAc,2EAAgB,CAAC;QACxC,WAAM,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,kBAAa,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAqBvC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QAEvB,kBAAa,GAAU,EAAE,CAAC;QAE1B,UAAK,GAAG,KAAK,CAAC;KAqOf;IAnOC,QAAQ;QACN,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,uFAAuB,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAErE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,KAAK,4EAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAG,IAAI,6DAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7E,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE7C,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;IAC7C,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,MAAO;QACnB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAE3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,2EAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9F,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,2EAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9F,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;aAC/B;SACF;QAED,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,SAAS;QACP,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvC;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACzC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,MAAc;QAC9B,OAAO,6DAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/F,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,KAAa;QAC7B,OAAO,6DAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9F,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,KAAK;QACrB,MAAM,KAAK,GAAG,qDAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,UAAiB;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,KAAK,EAAE,SAAS;SACjB,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,KAAK,4EAAiB,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClB;aACF;SACF;QAED,IAAI,CAAC,UAAU,GAAG,mEAAY,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,8DAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClB;aACF;SACF;QAED,IAAI,CAAC,UAAU,GAAG,mEAAY,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,8DAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED,UAAU;QACR,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QAEpB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,gBAAgB,CAAC,EAAE,KAAK,EAAqB;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAsB;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAI;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACZ,OAAO;SACR;QAED,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,IAAI;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,IAAI;QACzB,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;;wSAtSU,oBAAoB,SAApB,oBAAoB;mHAApB,oBAAoB;;;;;;uJAApB,iBAAa;;QA5HtB,uFASC;QAHC,mLAAoB,mBAAe,IAAC,gIACb,sBAAkB,IADL,oIAEX,wBAAoB,IAFT;QAIpC,+DAAU;QAAV,wEAAU;QAEN,mEAIE;QACJ,6DAAe;QAEjB,wEAA+D;QAC7D,mHAcE;QACF,kHAaE;QACF,2EAQE;QADA,0JAAc,mBAAe,IAAC;QAPhC,6DAQE;QACF,kHAqBQ;QACR,kHAqBQ;QACV,6DAAQ;;QArGR,iKAAwB;QAUR,2DAAsB;QAAtB,gFAAsB;QAEhC,2DAA8B;QAA9B,wFAA8B;QAM7B,2DAA4B;QAA5B,sFAA4B;QAG9B,2DAAW;QAAX,4EAAW;QAeX,2DAAW;QAAX,4EAAW;QAgBZ,2DAAyB;QAAzB,mFAAyB;QAKnB,2DAAY;QAAZ,6EAAY;QAsBZ,2DAAW;QAAX,4EAAW;k7LA4Bb;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC;oBACF,6DAAO,CACL,GAAG,EACH,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC,CACH;iBACF,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;ACtJ+D;AACF;AACE;;AAO3D,MAAM,iBAAiB;;kFAAjB,iBAAiB;8GAAjB,iBAAiB;kHAJnB,CAAC,0EAAiB,CAAC;mIAIjB,iBAAiB,mBAHb,yEAAoB,EAAE,2EAAqB,aADhD,0EAAiB,aAEjB,yEAAoB,EAAE,2EAAqB;;;;;;;;;;;;;;;;;;;;;ACR2C;AACtC;AAErD,SAAS,SAAS,CACvB,MAAa,EACb,SAAoB,EACpB,SAAkB,EAClB,MAAe,EACf,MAAe;IAEf,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,IAAI,SAAS,KAAK,2EAAgB,EAAE;QAClC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;KACF;IAED,IAAI,SAAS,KAAK,yEAAc,IAAI,SAAS,KAAK,2EAAgB,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAElD,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACrB;SAAM;QACL,MAAM,GAAG,MAAM,CAAC;KACjB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,SAAS,QAAQ,CACtB,MAAgB,EAChB,KAAe,EACf,SAAoB,EACpB,YAAqB;IAErB,QAAQ,SAAS,EAAE;QACjB,KAAK,yEAAc;YACjB,OAAO,oDAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,2EAAgB,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,oDAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAChB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;aACrB;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,4EAAiB;YACpB,OAAO,+CAAU,EAAE;iBAChB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3C;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACzCsB;AACmD;AACR;AAGN;AACF;AACE;AACT;;;;;;;;;IAO3C,uEAwBE;IAVA,4YAAU,8BAAoB,IAAC,wVACnB,gCAAsB,IADH,4VAEjB,kCAAwB,IAFP;IAdjC,4DAwBE;;;;IAfA,uFAAgC;IAChC,uFAAgC;IAPhC,qFAA4B;;;;;IAsB9B,uEAuBE;IAVA,8YAAU,+BAAoB,IAAC,0VACnB,iCAAsB,IADH,8VAEjB,mCAAwB,IAFP;IAbjC,4DAuBE;;;;IAfA,uFAAgC;IAChC,uFAAgC;IALhC,iEAAQ;;;IA/Bd,8DAAwD;IAAxD,oEAAwD;IAEpD,4HAwBE;IACF,4HAuBE;IACJ,4DAAQ;;;;IAlDD,0DAAmC;IAAnC,2FAAmC;IAErC,0DAAY;IAAZ,+EAAY;IAyBZ,0DAAW;IAAX,8EAAW;;AAuCf,MAAM,qBAAqB;IA2BhC,YAAyC,UAAe;QAAf,eAAU,GAAV,UAAU,CAAK;QAf/C,oBAAe,GAAY,KAAK,CAAC;QAGhC,WAAM,GAAG,IAAI,uDAAY,EAAE,CAAC;QAC5B,aAAQ,GAAG,IAAI,uDAAY,EAAE,CAAC;QAC9B,eAAU,GAAG,IAAI,uDAAY,EAAE,CAAC;QAK1C,mBAAc,GAAG,oEAAc,CAAC;QAChC,eAAU,GAAG,kEAAU,CAAC;QAExB,UAAK,GAAG,KAAK,CAAC;IAE6C,CAAC;IAE5D,QAAQ;QACN,IAAI,iEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,UAAU;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,MAAM,YAAY,GAAG,iEAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAEzC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,2EAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1F,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,2EAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAE1F,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,2EAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAE1G,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAEnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE;oBAChC,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC,EAAE,CAAC,CAAC,CAAC;oBACN,MAAM,EAAE,CAAC,CAAC,CAAC;iBACZ,CAAC,CAAC;gBAEH,OAAO;oBACL,IAAI;oBACJ,CAAC;oBACD,CAAC;oBACD,CAAC;oBACD,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;oBAChC,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,EAAE;oBACF,EAAE;oBACF,MAAM;oBACN,YAAY;oBACZ,KAAK;oBACL,OAAO;oBACP,UAAU;oBACV,QAAQ;oBACR,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG;iBACpC,CAAC;aACH;QACH,CAAC,CAAC;aACD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,MAAM;QACnB,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,CAAC,KAAK,WAAW,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAEpE,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,iEAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,CAAC,GAAG,iEAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,iEAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GACR,aAAa,IAAI,eAAe;YAC9B,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,YAAY,EAAE;YACjD,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;QAC9C,MAAM,YAAY,GAChB,aAAa,IAAI,eAAe,CAAC,CAAC,CAAC,+BAA+B,iEAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpG,OAAO;QACH,YAAY;;iBAEH,iEAAW,CAAC,UAAU,CAAC,YAAY,iEAAW,CAAC,CAAC,CAAC;iBACjD,iEAAW,CAAC,UAAU,CAAC,YAAY,iEAAW,CAAC,CAAC,CAAC;;;UAGxD,iEAAW,CAAC,WAAW,CAAC;;KAE7B,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI;QACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,MAAM;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;SACnD;QAED,OAAO,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,MAAM;QACnB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB,CAAC,MAAM;QACrB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,MAAM;QACnB,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;;0FA7JU,qBAAqB,kEA2BZ,sDAAW;mHA3BpB,qBAAqB;QAnE9B,kHAoDQ;;QApDkB,gFAAY;6TAuD5B;YACV,4DAAO,CAAC,gBAAgB,EAAE;gBACxB,+DAAU,CAAC,QAAQ,EAAE;oBACnB,0DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,UAAU;qBACtB,CAAC;oBACF,4DAAO,CAAC,GAAG,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC3D,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;AC1FoH;AACjF;AACL;AAE6B;;;;;;IAM1D,8DAA2B;IAA3B,uEAA2B;IACzB,kEAKE;IACJ,4DAAW;;;IAJP,0DAAuC;IAAvC,uGAAuC;;AASxC,MAAM,aAAa;IAwBxB,YAAY,OAAmB;QAnBtB,YAAO,GAAW,CAAC,CAAC;QACpB,iBAAY,GAAW,GAAG,CAAC;QAC3B,eAAU,GAAW,CAAC,CAAC;QACvB,aAAQ,GAAY,KAAK,CAAC;QAE1B,eAAU,GAAY,IAAI,CAAC;QAE1B,WAAM,GAAG,IAAI,uDAAY,EAAE,CAAC;QAMtC,qBAAgB,GAAY,KAAK,CAAC;QAElC,gBAAW,GAAY,KAAK,CAAC;QAE7B,mBAAc,GAAG,uEAAc,CAAC;QAG9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,wDAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAED,OAAO;YACL;gBACE,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,IAAI,CAAC,YAAY;aAC3B;YACD;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,IAAI,CAAC,UAAU;aACzB;SACF,CAAC;IACJ,CAAC;;0EAnFU,aAAa;2GAAb,aAAa;QAZtB,gHAOW;QACX,8DAAoH;QAApH,qEAAoH;;QARzG,8EAAc;QAQ+D,0DAAyB;QAAzB,iFAAyB;QAA1F,4EAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACjBc;AACR;AACW;AACX;AACW;AAChB;;AAOxC,MAAM,UAAU;;oEAAV,UAAU;uGAAV,UAAU;2GAJZ,CAAC,yDAAY,CAAC;mIAIZ,UAAU,mBAHN,qEAAkB,EAAE,6DAAc,EAAE,wEAAmB,EAAE,6DAAc,EAAE,wEAAmB,aADjG,yDAAY,aAEZ,qEAAkB,EAAE,6DAAc,EAAE,wEAAmB,EAAE,6DAAc,EAAE,wEAAmB;;;;;;;;;;;;;;;;;;ACVhD;;;AAiBjD,MAAM,kBAAkB;IAgB7B,YAAY,OAAmB;QAH/B,eAAU,GAAG,EAAE,CAAC;QAChB,WAAM,GAAG,CAAC,CAAC;QAGT,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,oEAAe;gBAClB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,uEAAkB;gBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,qEAAgB;gBACnB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;gBAC/B,MAAM;YACR,KAAK,sEAAiB;gBACpB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;gBAC/B,MAAM;YACR,QAAQ;SACT;IACH,CAAC;;oFAlDU,kBAAkB;gHAAlB,kBAAkB;QAZ3B,8DAMC;QAND,uEAMC;QACC,uDACF;QAAA,4DAAW;;QAPT,0FAAiC;QAMjC,0DACF;QADE,qFACF;;;;;;;;;;;;;;;;;ACdG,SAAS,WAAW,CAAC,KAAY,EAAE,QAAgB;IACxD,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE;QAC3B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB;SACF;QACD,KAAK,GAAG,OAAO,CAAC;KACjB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;ACbmD;AAc7B;AAC0B;AACJ;AAEU;;;;;;;IAMjD,uEAAsF;IAC7E,uDAAsB;IAAA,4DAAQ;IACrC,0EAKC;IACC,uDACF;IAAA,4DAAW;;;;IATkC,qGAAsC;IAC5E,0DAAsB;IAAtB,2FAAsB;IAK3B,0DAA0B;IAA1B,8EAA0B;IAF1B,2FAA+B;IAI/B,0DACF;IADE,uHACF;;;;IAKF,oEAAoE;IAClE,qEAA4F;IAC9F,4DAAQ;;;IAFqB,kGAAsC;IACV,0DAA2B;IAA3B,uFAA2B;;;;IAFtF,oEAAyE;IACvE,yHAEQ;IACV,4DAAQ;;;;IAJ0B,qGAAsC;IAC9D,0DAAmB;IAAnB,sFAAmB;;AAO1B,MAAM,mBAAmB;IAiC9B,YAAyC,UAAe;QAAf,eAAU,GAAV,UAAU,CAAK;QA9B/C,kBAAa,GAAa,CAAC,CAAC,CAAC,CAAC;QAE9B,eAAU,GAAW,MAAM,CAAC;QAC5B,cAAS,GAAY,IAAI,CAAC;QAC1B,kBAAa,GAAW,EAAE,CAAC;QAE3B,kBAAa,GAAG,KAAK,CAAC;QAGtB,gBAAW,GAAY,IAAI,CAAC;QAE3B,sBAAiB,GAAG,IAAI,uDAAY,EAAE,CAAC;QAEjD,oBAAe,GAAW,EAAE,CAAC;QAC7B,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAW,CAAC,CAAC;QAC1B,kBAAa,GAAW,CAAC,CAAC;QAC1B,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAe,sEAAiB,CAAC;QAC3C,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAW,EAAE,CAAC;QAK9B,WAAM,GAAW,CAAC,CAAC;QACnB,iBAAY,GAAW,EAAE,CAAC;IAIiC,CAAC;IAE5D,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,eAAe;QACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,kEAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC,qDAAqD;YACrD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3D,OAAO;SACR;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACrC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;SACvC;aAAM,IAAI,KAAK,CAAC,UAAU,EAAE;YAC3B,yCAAyC;YACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC3B,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;oBACjC,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;iBAC/B;gBACD,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;YAC5B,CAAC,CAAC;SACH;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;YACvC,CAAC,CAAC,UAAU,CAAC;gBACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC;YACtD,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAEf,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,UAAU,KAAK,GAAG,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,mEAAc,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,sEAAiB,CAAC;SACrC;QAED,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB,CAAC,KAAY;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;aACzC;YAED,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;gBACpC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;aAClC;SACF;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,uBAAuB;QAC5C,MAAM,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;QAElC,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3D,0BAA0B;QAC1B,OAAO,SAAS,GAAG,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE;YAC9C,KAAK,IAAI,EAAE,CAAC;YACZ,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;SAC3D;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAE1F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,IAAI,KAAK,CAAC;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAC3B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;SAC7D;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,GAAG,0DAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SACtC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IACpF,CAAC;IAED,iBAAiB;QACf,OAAO,eAAe,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,6DAAS,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,CAAC;;sFAhKU,mBAAmB,kEAiCV,sDAAW;iHAjCpB,mBAAmB;;;;;;QAtB5B,8DAAgB;QAAhB,6EAAgB;QACd,gHAUQ;QACV,4DAAQ;QAER,gHAIQ;;QAjBkB,0DAAQ;QAAR,8EAAQ;QAaV,0DAAQ;QAAR,8EAAQ;;;;;;;;;;;;;;;;;;;;;;AC5Bb;AAEwC;AACP;;;;;;;;;IAOlD,uEAgBE;IADA,6TAAqB,8BAAuB,IAAC;IAf/C,4DAgBE;;;IAbA,uFAAuB;;;;IAczB,kEAQS;;;IALP,mFAAmB;;AAUpB,MAAM,cAAc;IAlC3B;QAsCW,gBAAW,GAAY,IAAI,CAAC;QAG5B,kBAAa,GAAG,KAAK,CAAC;QAKtB,YAAO,GAAgB,uEAAkB,CAAC;QAC1C,gBAAW,GAAW,CAAC,CAAC;QAEvB,sBAAiB,GAAG,IAAI,uDAAY,EAAE,CAAC;QAEjD,mBAAc,GAAW,QAAQ,CAAC;QAIlC,gBAAW,GAAW,CAAC,CAAC;QACxB,SAAI,GAAW,MAAM,CAAC;QACtB,WAAM,GAAW,QAAQ,CAAC;QAC1B,eAAU,GAAW,MAAM,CAAC;QAC5B,gBAAW,GAAW,MAAM,CAAC;QAC7B,YAAO,GAAW,CAAC,CAAC;QAEX,gBAAW,GAAG,gEAAW,CAAC;KAyBpC;IArBC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,GAAG,eAAe,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAEtF,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW,EAAE;YAC9C,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,eAAe,CAAC,EAAE,MAAM,EAAE;QACxB,MAAM,cAAc,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,EAAE;YACvC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;YAClC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;IACH,CAAC;;4EApDU,cAAc;4GAAd,cAAc;kEA8Bd,wEAAmB;;;;;QA7D5B,8DAAkE;QAAlE,oEAAkE;QAChE,4GAgBE;QACF,2GAQS;QACX,4DAAQ;;QA3BD,sFAA6B;QAG/B,0DAAY;QAAZ,4EAAY;QAiBZ,0DAAe;QAAf,+EAAe;;;;;;;;;;;;;;;;;;;;;;;;ACzBD;AAC0B;AACJ;AACW;AACJ;AACI;AACD;;;;;;;IAMjD,uEAAkF;IACzE,uDAAsB;IAAA,4DAAQ;IACrC,0EAOC;IACC,uDACF;IAAA,4DAAW;;;;IAXkC,iGAAkC;IACxE,0DAAsB;IAAtB,2FAAsB;IAO3B,0DAA0B;IAA1B,8EAA0B;IAJ1B,0EAAc;IAMd,0DACF;IADE,uHACF;;;;IAIJ,qEAKE;;;IAFA,wFAA4B;;;;IAK1B,qEAKE;;;IADA,qFAAyB;;;;IAE3B,qEAKE;;;IADA,sFAA0B;;;;IAX9B,oEAAoE;IAClE,wIAKE;IACF,wIAKE;IACJ,4DAAQ;;;IAbqB,kGAAsC;IAE9D,0DAAiC;IAAjC,2GAAiC;IAMjC,0DAAkC;IAAlC,4GAAkC;;;;IATzC,oEAAqE;IACnE,yHAaQ;IACV,4DAAQ;;;;IAf0B,iGAAkC;IAC1D,0DAAmB;IAAnB,sFAAmB;;;;IAwBzB,oEAA6B;IACpB,uDAAyC;IAAA,4DAAQ;IACxD,2EAMC;IACC,uDACF;IAAA,4DAAW;;;;IATJ,0DAAyC;IAAzC,wHAAyC;IAG9C,0DAAc;IAAd,2EAAc;IAKd,0DACF;IADE,4FACF;;;;IAjBJ,oEAAwE;IACtE,sEAKE;IACF,kIAWQ;IACV,4DAAQ;;;;IAnBoB,4GAA2C;IAInE,0DAAyB;IAAzB,sFAAyB;IAGnB,0DAAmB;IAAnB,uFAAmB;;;;IAR/B,oEAA8C;IAC5C,yHAmBQ;IACV,4DAAQ;;;IApBE,0DAAkB;IAAlB,qFAAkB;;AAwBzB,MAAM,mBAAmB;IA4C9B,YAAyC,UAAe;QAAf,eAAU,GAAV,UAAU,CAAK;QAzC/C,kBAAa,GAAa,CAAC,CAAC,CAAC,CAAC;QAE9B,eAAU,GAAG,MAAM,CAAC;QACpB,cAAS,GAAY,IAAI,CAAC;QAC1B,kBAAa,GAAW,EAAE,CAAC;QAE3B,kBAAa,GAAY,KAAK,CAAC;QAI/B,kBAAa,GAAY,KAAK,CAAC;QAC/B,iBAAY,GAAY,KAAK,CAAC;QAE7B,sBAAiB,GAAG,IAAI,uDAAY,EAAE,CAAC;QAEjD,kBAAa,GAAW,CAAC,CAAC;QAC1B,gBAAW,GAAW,CAAC,CAAC;QAExB,oBAAe,GAAW,EAAE,CAAC;QAC7B,eAAU,GAAe,sEAAiB,CAAC;QAU3C,UAAK,GAAW,CAAC,CAAC;QAClB,kBAAa,GAAW,CAAC,CAAC;QAC1B,iBAAY,GAAY,KAAK,CAAC;QAG9B,wBAAmB,GAAW,CAAC,CAAC;QAGvB,gBAAW,GAAG,gEAAW,CAAC;IAIwB,CAAC;IAE5D,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,eAAe;QACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,kEAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC,qDAAqD;YACrD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,OAAO;SACR;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACvC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACrC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,oEAAe,IAAI,IAAI,CAAC,MAAM,KAAK,sEAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAEtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;SACvC;aAAM,IAAI,KAAK,CAAC,UAAU,EAAE;YAC3B,yCAAyC;YACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC3B,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;oBACjC,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;iBAC/B;gBACD,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;YAC5B,CAAC,CAAC;SACH;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS;YAClC,CAAC,CAAC,UAAU,CAAC;gBACT,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC;YAC5C,CAAC;YACH,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,oEAAe;gBAClB,IAAI,CAAC,SAAS,GAAG,UAAU,IAAI;oBAC7B,OAAO,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBACzD,CAAC,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,sEAAiB,CAAC;gBACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;gBACrC,MAAM;YACR,KAAK,uEAAkB;gBACrB,IAAI,CAAC,SAAS,GAAG,UAAU,IAAI;oBAC7B,OAAO,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBACzD,CAAC,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,sEAAiB,CAAC;gBACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;gBACrC,MAAM;YACR,KAAK,qEAAgB;gBACnB,IAAI,CAAC,SAAS,GAAG,UAAU,IAAI;oBAC7B,OAAO,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBACzD,CAAC,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,mEAAc,CAAC;gBACjC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC;gBACrC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;gBACnC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;gBAClB,MAAM;YACR,KAAK,sEAAiB;gBACpB,IAAI,CAAC,SAAS,GAAG,UAAU,IAAI;oBAC7B,OAAO,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBACzD,CAAC,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,qEAAgB,CAAC;gBACnC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC;gBACrC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;gBACnC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;gBAClB,MAAM;YACR,QAAQ;SACT;QACD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,IAAI,EACJ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAC5C,CACF,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,IAAI,EACJ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAC5C,CACF,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAEtD,IAAI,CAAC,iBAAiB,GAAG,iEAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YACrG,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,KAAK,CAAC;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAC3B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;SAC7D;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,GAAG,0DAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SACtC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC;IAC1E,CAAC;IAED,iBAAiB;QACf,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,6DAAS,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,CAAC;IAED,uBAAuB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5F,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,OAAO,QAAQ,GAAG,SAAS,CAAC;IAC9B,CAAC;;sFA3MU,mBAAmB,kEA4CV,sDAAW;iHA5CpB,mBAAmB;;;;;;QAhE5B,8DAAgB;QAAhB,6EAAgB;QACd,gHAYQ;QACV,4DAAQ;QAER,sHAKE;QACF,gHAeQ;QAER,gHAqBQ;;QA3DkB,0DAAQ;QAAR,8EAAQ;QAgB/B,0DAAiE;QAAjE,6IAAiE;QAK5C,0DAAQ;QAAR,8EAAQ;QAiBL,0DAAiB;QAAjB,uFAAiB;;;;;;;;;;;;;;;;;;;;;;ACtDzB;AACwC;AACP;;;;;;;;;IAOlD,uEAkBE;IADA,6TAAqB,6BAAsB,IAAC;IAjB9C,4DAkBE;;;IAfA,uFAAuB;;;;IAiBzB,kEAQS;;;IALP,mFAAmB;;AAUpB,MAAM,cAAc;IArC3B;QA4CW,kBAAa,GAAY,KAAK,CAAC;QAI/B,YAAO,GAAgB,qEAAgB,CAAC;QAIxC,gBAAW,GAAW,CAAC,CAAC;QACvB,sBAAiB,GAAG,IAAI,uDAAY,EAAE,CAAC;QAEjD,mBAAc,GAAW,QAAQ,CAAC;QAIlC,gBAAW,GAAW,EAAE,CAAC;QACzB,SAAI,GAAW,MAAM,CAAC;QACtB,WAAM,GAAW,MAAM,CAAC;QACxB,eAAU,GAAW,MAAM,CAAC;QAC5B,gBAAW,GAAW,CAAC,CAAC;QACxB,YAAO,GAAW,CAAC,CAAC;KAmCrB;IA/BC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,OAAO,KAAK,sEAAiB,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;SACpE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,MAAM,OAAO,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,cAAc,CAAC,EAAE,KAAK,EAAE;QACtB,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,sEAAiB,EAAE;YACpE,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;aAAM,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;IACH,CAAC;;4EA7DU,cAAc;4GAAd,cAAc;kEA6Bd,wEAAmB;;;;;QA/D5B,8DAAkE;QAAlE,oEAAkE;QAChE,4GAkBE;QAEF,2GAQS;QACX,4DAAQ;;QA9BD,sFAA6B;QAG/B,0DAAY;QAAZ,4EAAY;QAoBZ,0DAAe;QAAf,+EAAe;;;;;;;;;;;;;;;;;;;;;;;;ACxC8C;AAgB/C;AAEiC;AACV;AACoB;AAC1B;AAEY;;AAO7C,MAAM,kBAAkB;IAe7B,YACY,YAAwB,EACxB,IAAY,EACZ,EAAqB,EACH,UAAe;QAHjC,iBAAY,GAAZ,YAAY,CAAY;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAmB;QACH,eAAU,GAAV,UAAU,CAAK;QAhBpC,WAAM,GAAmB,MAAM,CAAC;QAChC,eAAU,GAAc,qEAAiB,CAAC;QAE1C,eAAU,GAAY,IAAI,CAAC;QAE1B,WAAM,GAAG,IAAI,uDAAY,EAAE,CAAC;IAYnC,CAAC;IAEJ,QAAQ;QACN,IAAI,iEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,sEAAsE;QACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,0EAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;SACnC;IACH,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC5B;aAAM;YACL,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrC,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B;SACF;QAED,uDAAuD;QACvD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;SAClB;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACnB;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SACxB;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,KAAK,CAAC;QACV,IAAI,MAAM,CAAC;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;QAEjD,IAAI,kEAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE;YACtE,+BAA+B;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YACzD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SACtB;QAED,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,IAAI,oDAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACnB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;aACxC;YAED,IAAI,CAAC,CAAC,MAAM,EAAE;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;oBACjB,IAAI,oDAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACnB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;qBACxC;iBACF;aACF;SACF;IACH,CAAC;IAES,YAAY;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACvC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,kEAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC,OAAO;SACR;QAED,MAAM,MAAM,GAAG,+CAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,4DAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,IAAI;QACpB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;aACnB,CAAC;YAEF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/B;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACpB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACvC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACrD,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACrC;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC3D;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;;oFApLU,kBAAkB,6aAmBnB,sDAAW;gHAnBV,kBAAkB;QAFjB,iEAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BsB;AAEW;AACE;AACZ;AACS;AACS;AACb;AACO;AACa;AACI;AACA;AAC5B;AACU;AACJ;AACE;AACS;AACN;AACW;AACA;AACM;;AAE7E,MAAM,UAAU,GAAG;IACjB,2DAAa;IACb,qEAAkB;IAClB,qEAAgB;IAChB,iEAAW;IACX,mEAAc;IACd,sEAAe;IACf,iFAAoB;IACpB,iFAAoB;IACpB,8DAAe;IACf,2EAAqB;IACrB,qEAAkB;IAClB,kFAAwB;IACxB,sFAA0B;IAC1B,sFAA0B;IAC1B,mEAAQ;IACR,uFAAuB;CACxB,CAAC;AAOK,MAAM,iBAAiB;;kFAAjB,iBAAiB;+GAAjB,iBAAiB;mHAJnB,CAAC,0DAAY,EAAE,yDAAU,EAAE,kEAAa,CAAC,EAExC,0DAAY,EAAE,yDAAU,EAAE,kEAAa;oIAEtC,iBAAiB,mBAvB5B,2DAAa;QACb,qEAAkB;QAClB,qEAAgB;QAChB,iEAAW;QACX,mEAAc;QACd,sEAAe;QACf,iFAAoB;QACpB,iFAAoB;QACpB,8DAAe;QACf,2EAAqB;QACrB,qEAAkB;QAClB,kFAAwB;QACxB,sFAA0B;QAC1B,sFAA0B;QAC1B,mEAAQ;QACR,uFAAuB,EAKO,2EAAkB,aADtC,0DAAY,EAAE,yDAAU,EAAE,kEAAa,aAEvC,0DAAY,EAAE,yDAAU,EAAE,kEAAa,EArBjD,2DAAa;QACb,qEAAkB;QAClB,qEAAgB;QAChB,iEAAW;QACX,mEAAc;QACd,sEAAe;QACf,iFAAoB;QACpB,iFAAoB;QACpB,8DAAe;QACf,2EAAqB;QACrB,qEAAkB;QAClB,kFAAwB;QACxB,sFAA0B;QAC1B,sFAA0B;QAC1B,mEAAQ;QACR,uFAAuB,EAM2C,2EAAkB;;;;;;;;;;;;;;;;;;;;;;;ACrC/D;AACqC;AACsB;AAC7B;;;;;;;IAU/C,+DAQC;IARD,wFAS0B;;;IANxB,6JAA+E;;;;;IAOjF,+DAaC;IAbD,uFAaC;IAHC,qUAAc,oCAA6B,IAAC,mRAC3B,uCAAgC,IADL,uRAEzB,yCAAkC,IAFT;IAI9C,4DAAoB;;;IAXlB,6JAA+E;;;AAgBhF,MAAM,cAAc;IArC3B;QAuCW,eAAU,GAAY,KAAK,CAAC;QAI5B,eAAU,GAAY,IAAI,CAAC;QAE1B,qBAAgB,GAAG,IAAI,uDAAY,EAAU,CAAC;QAC9C,wBAAmB,GAAG,IAAI,uDAAY,EAAoB,CAAC;QAC3D,0BAAqB,GAAG,IAAI,uDAAY,EAAoB,CAAC;QAM9D,mBAAc,GAAG,+DAAc,CAAC;QAChC,eAAU,GAAG,2DAAU,CAAC;KAgClC;IA9BC,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,qEAAoB,EAAE;gBAC/E,IAAI,IAAI,CAAC,UAAU,KAAK,uEAAsB,EAAE;oBAC9C,aAAa,GAAG,CAAC,CAAC;iBACnB;qBAAM;oBACL,aAAa,GAAG,CAAC,CAAC;iBACnB;aACF;SACF;QAED,MAAM,YAAY,GAAG,EAAE,GAAG,aAAa,CAAC;QAExC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW;YACd,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,qEAAoB;gBACzE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,oEAAgB,CAAC,CAAC,CAAC,uEAAsB,CAAC,CAAC,CAAC,kEAAiB,CAAC;IACxG,CAAC;;4EAhDU,cAAc;4GAAd,cAAc,waApCd,CAAC,oEAAc,CAAC;;QAGzB,yEAAyD;QACvD,8DAA0E;QAA1E,yEAA0E;QACxE,6DAAyB;QAC3B,4DAAM;QACN,kJAS0B;QAC1B,sIAcoB;QACtB,4DAAM;;QA7BwB,qFAA0B;QAC9B,0DAAyB;QAAzB,kFAAyB;QAI9C,0DAAyD;QAAzD,iIAAyD;QAUzD,0DAAoD;QAApD,4HAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBtC;AACmD;AAChB;AACzB;AAGmB;AACF;AACY;AAEV;AACD;;;;;;;;;IAqC7C,qEASE;;;IAPA,qFAA4B;IAC5B,uGAAoC;;;;IAOtC,qEAQE;;;IANA,uGAAoC;;;;;IArBxC,8DAAsB;IAAtB,oEAAsB;IAElB,kEAKE;IACJ,4DAAO;IACP,iIASE;IACF,iIAQE;IACF,uEAqBE;IAVA,wSAAU,kCAAoB,IAAC,oPACnB,uBAAgB,IADG,wPAEjB,yBAAkB,IAFD;IAXjC,4DAqBE;;;IA7CE,0DAAuC;IAAvC,uGAAuC;IAMxC,0DAAiD;IAAjD,kIAAiD;IAUjD,0DAAgD;IAAhD,iIAAgD;IAejD,0DAAsD;IAAtD,sLAAsD;IAJtD,gFAAgB;;AAzDxB,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mCAAqB;IACrB,iCAAmB;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAuFM,MAAM,qBAAqB;IA4BhC,YAAyC,UAAe;QAAf,eAAU,GAAV,UAAU,CAAK;QA1B/C,SAAI,GAAe,UAAU,CAAC,QAAQ,CAAC;QAOvC,oBAAe,GAAY,KAAK,CAAC;QAGhC,WAAM,GAA2B,IAAI,uDAAY,EAAE,CAAC;QACpD,aAAQ,GAAiD,IAAI,uDAAY,EAAE,CAAC;QAC5E,eAAU,GAAiD,IAAI,uDAAY,EAAE,CAAC;QAIxF,eAAU,GAAY,KAAK,CAAC;QAI5B,mBAAc,GAAG,uEAAc,CAAC;QAChC,mBAAc,GAAG,6DAAc,CAAC;QAChC,eAAU,GAAG,2DAAU,CAAC;QAExB,UAAK,GAAG,KAAK,CAAC;IAE6C,CAAC;IAE5D,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,6CAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;QAE/C,IAAI,kEAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED,eAAe;QACb,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,OAAO,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;QAClH,CAAC,CAAC,CAAC;QAEH,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE;YAC/B,0DAA0D;YAC1D,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACjG,CAAC;IAED,oBAAoB,CAAC,CAAM,EAAE,CAAS;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAc,CAAC;QAE5C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACrB,MAAM,YAAY,GAAG,0DAAW,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,SAAS,KAAK,kEAAc,EAAE;YACrC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,oEAAgB,EAAE;YAC9C,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACjC;aAAM;YACL,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,CAAC;QAElB,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,oEAAgB,EAAE;YAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE;gBACrC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACrC;iBAAM;gBACL,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACpC;SACF;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE;YAChC,MAAM,EAAE,UAAU;YAClB,KAAK;YACL,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,OAAO;YACL,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,KAAK;YACL,KAAK;YACL,IAAI;YACJ,EAAE;YACF,EAAE;YACF,MAAM;YACN,MAAM;YACN,YAAY;YACZ,KAAK;YACL,OAAO;YACP,UAAU;YACV,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3C,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,GAAG,EAAE,CAAC,CAAC,GAAG;SACX,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,EACb,YAAY,EACZ,KAAK,EACL,UAAU,EACV,GAAG,EACH,GAAG,EAOJ;QACC,OAAO;oCACyB,0DAAW,CAAC,UAAU,CAAC,MAAM,0DAAW,CAAC,YAAY,CAAC;kCACxD,KAAK,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC;KACzF,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,GAAW,EAAE,GAAW;QAC3C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE;YAC1C,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,IAAI,GAAG,KAAK,SAAS,EAAE;oBACrB,MAAM,IAAI,GAAG,CAAC;iBACf;gBACD,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC/B,IAAI,GAAG,KAAK,SAAS,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC;iBACjB;aACF;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE;gBAC5B,MAAM,IAAI,GAAG,CAAC;aACf;YACD,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;aAChC;YACD,MAAM,IAAI,GAAG,CAAC;YACd,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC5B,OAAO;YACL;gBACE,MAAM,EAAE,CAAC;gBACT,KAAK;gBACL,OAAO,EAAE,GAAG;aACb;YACD;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK;gBACL,OAAO,EAAE,CAAC;aACX;SACF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;;0FArMU,qBAAqB,kEA4BZ,sDAAW;mHA5BpB,qBAAqB;QAhE9B,mHAkDQ;;QAlDA,4EAAY;kVAqDV;YACV,6DAAO,CAAC,gBAAgB,EAAE;gBACxB,gEAAU,CAAC,QAAQ,EAAE;oBACnB,2DAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC;oBACF,6DAAO,CAAC,GAAG,EAAE,2DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACpC,CAAC;aACH,CAAC;SACH;;;;;;;;;;;;;;;;;ACvGoB;;;AAkBhB,MAAM,eAAe;IAhB5B;QA2BY,WAAM,GAAkC,IAAI,uDAAY,EAAE,CAAC;QAC3D,aAAQ,GAAkC,IAAI,uDAAY,EAAE,CAAC;QAC7D,eAAU,GAAkC,IAAI,uDAAY,EAAE,CAAC;KAqB1E;IAlBC,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC;IAC9B,CAAC;;8EAjCU,eAAe;6GAAf,eAAe;uIAAf,aAAS,qFAAT,kBAAc,qFAAd,kBAAc;;QAbvB,8DASE;QATF,oEASE;;QARA,uEAAc;;;;;;;;;;;;;;;;;;;;;;;;ACfa;AASf;AAEqC;AAEH;AAG7C,MAAM,WAAW;IAOtB,YAAY,MAAsB,EAAE,IAAe,EAAE,MAA2B,EAAE,YAAa;QAC7F,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,MAAM,GAAG,6DAAc,CAAC,EAAE,CAAC,EAAE;gBAC3B,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,mBAAmB,CAAC,MAAsB,EAAE,IAAe,EAAE,MAA2B;QACtF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,MAAM,GAAG,6DAAc,CAAC,EAAE,CAAC,EAAE;gBAC3B,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,UAA+F,CAAC;QACpG,QAAQ,IAAI,EAAE;YACZ,KAAK,sEAAkB;gBACrB,UAAU,GAAG,oDAAa,EAAE;qBACzB,KAAK,CAAC,MAAM,CAAC,MAAa,CAAC;qBAC3B,MAAM,CAAC,MAAkB,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,qEAAiB;gBACpB,UAAU,GAAG,oDAAY,EAAE;qBACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;qBACpB,MAAM,CAAC,MAAkB,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,oEAAgB;gBACnB;oBACE,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC5B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;qBAChC;oBAED,MAAM,MAAM,GAAG,oDAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBACrD,UAAU,GAAG,oDAAW,EAAE;yBACvB,KAAK,CAAC,WAAkB,CAAC;yBACzB,MAAM,CAAC,MAAM,CAAC,CAAC;iBACnB;gBACD,MAAM;YACR;gBACE,MAAM;SACT;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAA2B;QAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,oEAAgB,EAAE;YACvC,MAAM,UAAU,GAAG,oDAAW,EAAE;iBAC7B,MAAM,CAAC,IAAI,CAAC,MAAkB,CAAC;iBAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEjB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC,CAAC;SAChD;aAAM;YACL,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACjC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,KAAU,CAAC,CAAC,yBAAyB;YACzC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBACvC,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;gBACrE,CAAC,CAAC,CAAC;aACJ;YAED,IAAI,KAAK,EAAE;gBACT,OAAO,KAAK,CAAC,KAAK,CAAC;aACpB;iBAAM;gBACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;IACH,CAAC;IAED,sBAAsB,CAAC,KAAsB,EAAE,KAAuB;QACpE,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,MAAM,UAAU,GAAG,oDAAW,EAAE;aAC7B,MAAM,CAAC,IAAI,CAAC,MAAkB,CAAC;aAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjB,MAAM,eAAe,GAAG,oDAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtC,qBAAqB;QACrB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAe,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAe,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,UAAU,GAAG,QAAQ,CAAC;QAC1B,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,OAAO,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,MAAM,IAAI,QAAQ,EAAE;gBACtB,CAAC,EAAE,CAAC;gBACJ,SAAS;aACV;YAED,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC1E,MAAM;aACP;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK;gBACL,MAAM;gBACN,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;YACH,UAAU,GAAG,MAAM,CAAC;YACpB,CAAC,EAAE,CAAC;SACL;QAED,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE;YACxC,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;SACJ;QAED,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;SACvB;aAAM;YACL,yCAAyC;YACzC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;oBACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;iBAChE;aACF;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;;;;;;;;;;;;;;;;ACnLM,MAAM,yBAAyB,GAAG;IACvC,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,CAAC,EAAE,EAAE;IACL,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,CAAC,EAAE,EAAE;IACL,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,E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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./projects/swimlane/ngx-charts/src/lib/area-chart/area-chart-normalized.component.ts","./projects/swimlane/ngx-charts/src/lib/area-chart/area-chart-stacked.component.ts","./projects/swimlane/ngx-charts/src/lib/area-chart/area-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/area-chart/area-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/area-chart/area-series.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-horizontal-2d.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-horizontal-normalized.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-horizontal-stacked.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-horizontal.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-label.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-vertical-2d.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-vertical-normalized.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-vertical-stacked.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar-vertical.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/bar.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/series-horizontal.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/series-vertical.component.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/types/bar-chart-type.enum.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/types/bar.model.ts","./projects/swimlane/ngx-charts/src/lib/bar-chart/types/d0-type.enum.ts","./projects/swimlane/ngx-charts/src/lib/box-chart/box-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/box-chart/box-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/box-chart/box-series.component.ts","./projects/swimlane/ngx-charts/src/lib/box-chart/box.component.ts","./projects/swimlane/ngx-charts/src/lib/bubble-chart/bubble-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/bubble-chart/bubble-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/bubble-chart/bubble-chart.utils.ts","./projects/swimlane/ngx-charts/src/lib/bubble-chart/bubble-series.component.ts","./projects/swimlane/ngx-charts/src/lib/common/area.component.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/axes.module.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/axis-label.component.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/ticks.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/x-axis-ticks.component.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/x-axis.component.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/y-axis-ticks.component.ts","./projects/swimlane/ngx-charts/src/lib/common/axes/y-axis.component.ts","./projects/swimlane/ngx-charts/src/lib/common/base-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/common/chart-common.module.ts","./projects/swimlane/ngx-charts/src/lib/common/charts/chart.component.ts","./projects/swimlane/ngx-charts/src/lib/common/circle-series.component.ts","./projects/swimlane/ngx-charts/src/lib/common/circle.component.ts","./projects/swimlane/ngx-charts/src/lib/common/color.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/constants/font-widths.ts","./projects/swimlane/ngx-charts/src/lib/common/count/count.directive.ts","./projects/swimlane/ngx-charts/src/lib/common/count/count.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/domain.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/grid-layout.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/grid-panel-series.component.ts","./projects/swimlane/ngx-charts/src/lib/common/grid-panel.component.ts","./projects/swimlane/ngx-charts/src/lib/common/label.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/legend/advanced-legend.component.ts","./projects/swimlane/ngx-charts/src/lib/common/legend/legend-entry.component.ts","./projects/swimlane/ngx-charts/src/lib/common/legend/legend.component.ts","./projects/swimlane/ngx-charts/src/lib/common/legend/scale-legend.component.ts","./projects/swimlane/ngx-charts/src/lib/common/shape.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/svg-linear-gradient.component.ts","./projects/swimlane/ngx-charts/src/lib/common/svg-radial-gradient.component.ts","./projects/swimlane/ngx-charts/src/lib/common/tick-format.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/timeline/timeline.component.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip-area.component.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/injection-registery.service.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/injection.service.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/position/index.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/position/placement-type.enum.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/position/position.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/show.type.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/style.type.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/tooltip.component.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/tooltip.directive.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/tooltip.module.ts","./projects/swimlane/ngx-charts/src/lib/common/tooltip/tooltip.service.ts","./projects/swimlane/ngx-charts/src/lib/common/trim-label.helper.ts","./projects/swimlane/ngx-charts/src/lib/common/types/bar-orientation.enum.ts","./projects/swimlane/ngx-charts/src/lib/common/types/gradient.interface.ts","./projects/swimlane/ngx-charts/src/lib/common/types/legend.model.ts","./projects/swimlane/ngx-charts/src/lib/common/types/orientation.enum.ts","./projects/swimlane/ngx-charts/src/lib/common/types/scale-type.enum.ts","./projects/swimlane/ngx-charts/src/lib/common/types/text-anchor.enum.ts","./projects/swimlane/ngx-charts/src/lib/common/types/view-dimension.interface.ts","./projects/swimlane/ngx-charts/src/lib/common/view-dimensions.helper.ts","./projects/swimlane/ngx-charts/src/lib/events.ts","./projects/swimlane/ngx-charts/src/lib/gauge/gauge-arc.component.ts","./projects/swimlane/ngx-charts/src/lib/gauge/gauge-axis.component.ts","./projects/swimlane/ngx-charts/src/lib/gauge/gauge.component.ts","./projects/swimlane/ngx-charts/src/lib/gauge/gauge.module.ts","./projects/swimlane/ngx-charts/src/lib/gauge/linear-gauge.component.ts","./projects/swimlane/ngx-charts/src/lib/heat-map/heat-map-cell-series.component.ts","./projects/swimlane/ngx-charts/src/lib/heat-map/heat-map-cell.component.ts","./projects/swimlane/ngx-charts/src/lib/heat-map/heat-map.component.ts","./projects/swimlane/ngx-charts/src/lib/heat-map/heat-map.module.ts","./projects/swimlane/ngx-charts/src/lib/line-chart/line-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/line-chart/line-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/line-chart/line-series.component.ts","./projects/swimlane/ngx-charts/src/lib/line-chart/line.component.ts","./projects/swimlane/ngx-charts/src/lib/models/chart-data.model.ts","./projects/swimlane/ngx-charts/src/lib/ngx-charts.module.ts","./projects/swimlane/ngx-charts/src/lib/number-card/card-series.component.ts","./projects/swimlane/ngx-charts/src/lib/number-card/card.component.ts","./projects/swimlane/ngx-charts/src/lib/number-card/number-card.component.ts","./projects/swimlane/ngx-charts/src/lib/number-card/number-card.module.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/advanced-pie-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-arc.component.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-grid-series.component.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-grid.component.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-label.component.ts","./projects/swimlane/ngx-charts/src/lib/pie-chart/pie-series.component.ts","./projects/swimlane/ngx-charts/src/lib/polar-chart/polar-chart.component.ts","./projects/swimlane/ngx-charts/src/lib/polar-chart/polar-chart.module.ts","./projects/swimlane/ngx-charts/src/lib/polar-chart/polar-series.component.ts","./projects/swimlane/ngx-charts/src/lib/polyfills.ts","./projects/swimlane/ngx-charts/src/lib/tree-map/tree-map-cell-series.component.ts","./projects/swimlane/ngx-charts/src/lib/tree-map/tree-map-cell.component.ts","./projects/swimlane/ngx-charts/src/lib/tree-map/tree-map.component.ts","./projects/swimlane/ngx-charts/src/lib/tree-map/tree-map.module.ts","./projects/swimlane/ngx-charts/src/lib/utils/calculate-width.ts","./projects/swimlane/ngx-charts/src/lib/utils/color-sets.ts","./projects/swimlane/ngx-charts/src/lib/utils/color-utils.ts","./projects/swimlane/ngx-charts/src/lib/utils/id.ts","./projects/swimlane/ngx-charts/src/lib/utils/sort.ts","./projects/swimlane/ngx-charts/src/lib/utils/throttle.ts","./projects/swimlane/ngx-charts/src/lib/utils/types.ts","./projects/swimlane/ngx-charts/src/lib/utils/visibility-observer.ts","./projects/swimlane/ngx-charts/src/public-api.ts","./src/app/account/auth/auth.service.ts","./src/app/account/auth/login/login.component.ts","./src/app/account/auth/login/login.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/common-services.service.ts","./src/app/core/guards/auth.guard.ts","./src/app/custom-charts/bubble-chart-interactive/bubble-chart-interactive.component.ts","./src/app/custom-charts/bubble-chart-interactive/bubble-chart-interactive.module.ts","./src/app/custom-charts/bubble-chart-interactive/bubble-series-interactive.component.ts","./src/app/custom-charts/bubble-chart-interactive/data.ts","./src/app/custom-charts/bubble-chart-interactive/index.ts","./src/app/custom-charts/bubble-chart-interactive/models.ts","./src/app/custom-charts/combo-chart/combo-chart.component.ts","./src/app/custom-charts/combo-chart/combo-chart.component.html","./src/app/custom-charts/combo-chart/combo-series-vertical.component.ts","./src/app/custom-charts/combo-chart/index.ts","./src/app/custom-charts/sparkline/sparkline.component.ts","./src/app/custom-charts/timeline-filter-bar-chart/timeline-filter-bar-chart.component.ts","./src/app/error-handler.service.ts","./src/app/httpclient.service.ts","./src/app/interfaces/icons.ts","./src/app/interfaces/notification-event.type.ts","./src/app/interfaces/notification.type.ts","./src/app/interfaces/options.type.ts","./src/app/landingpage/landingpage.component.ts","./src/app/landingpage/landingpage.component.html","./src/app/layout/agemtscontacts/agemtscontacts.component.ts","./src/app/layout/agemtscontacts/agemtscontacts.component.html","./src/app/layout/date-time-picker/date-time-picker.component.ts","./src/app/layout/date-time-picker/date-time-picker.component.html","./src/app/layout/date-time-picker/date-time.model.ts","./src/app/layout/footer/footer.component.ts","./src/app/layout/footer/footer.component.html","./src/app/layout/layout-routing.module.ts","./src/app/layout/layout.component.ts","./src/app/layout/layout.component.html","./src/app/layout/layout.module.ts","./src/app/layout/layout.service.ts","./src/app/layout/notification/notification.component.ts","./src/app/layout/notification/notification.component.html","./src/app/layout/project-change/project-change.component.ts","./src/app/layout/project-change/project-change.component.html","./src/app/layout/project-change/projectchange.service.ts","./src/app/layout/sidebar/activelink.directive.ts","./src/app/layout/sidebar/removelink.directive.ts","./src/app/layout/sidebar/sidebar.component.ts","./src/app/layout/sidebar/sidebar.component.html","./src/app/layout/topbar/components/enquiry-calls/enquiry-calls.component.ts","./src/app/layout/topbar/components/enquiry-calls/enquiry-calls.component.html","./src/app/layout/topbar/components/enquiry-calls/enquiry-calls.service.ts","./src/app/layout/topbar/components/incoming-calls/incoming-calls.component.ts","./src/app/layout/topbar/components/incoming-calls/incoming-calls.component.html","./src/app/layout/topbar/components/incoming-calls/incoming-calls.service.ts","./src/app/layout/topbar/topbar.component.ts","./src/app/layout/topbar/topbar.component.html","./src/app/mail-response/mail-response.component.ts","./src/app/mail-response/mail-response.component.html","./src/app/material.module.ts","./src/app/moment-format-service.ts","./src/app/notification.service.ts","./src/app/notificaton.module.ts","./src/app/pages/calendar/appointment/appointment.component.ts","./src/app/pages/calendar/appointment/appointment.component.html","./src/app/pages/calendar/auto-call-sms/auto-call-sms.component.ts","./src/app/pages/calendar/auto-call-sms/auto-call-sms.component.html","./src/app/pages/calendar/calendar.component.ts","./src/app/pages/calendar/calendar.component.html","./src/app/pages/calendar/event-calendar.service.ts","./src/app/pages/calllogs/calllogs.component.ts","./src/app/pages/calllogs/calllogs.component.html","./src/app/pages/chat/agentname.pipe.ts","./src/app/pages/chat/agentsdialog/agentsdialog.component.ts","./src/app/pages/chat/agentsdialog/agentsdialog.component.html","./src/app/pages/chat/chat-routing.module.ts","./src/app/pages/chat/chat.module.ts","./src/app/pages/chat/chatdetails/chatdetails.component.ts","./src/app/pages/chat/chatinfo/chatinfo.component.ts","./src/app/pages/chat/chatinfo/chatinfo.component.html","./src/app/pages/chat/chatlist/chatlist.component.ts","./src/app/pages/chat/chatlist/chatlist.component.html","./src/app/pages/chat/chatview.component.ts","./src/app/pages/chat/chatview.component.html","./src/app/pages/chat/loginstatus.pipe.ts","./src/app/pages/chat/profilephoto.pipe.ts","./src/app/pages/company-management/company-management.component.ts","./src/app/pages/company-management/company-management.component.html","./src/app/pages/companymodules/companymodules.component.ts","./src/app/pages/companymodules/companymodules.component.html","./src/app/pages/contacts/contacts.component.ts","./src/app/pages/contacts/contacts.component.html","./src/app/pages/create-agent/create-agent.component.ts","./src/app/pages/create-agent/create-agent.component.html","./src/app/pages/create-agent/create-agent.service.ts","./src/app/pages/create-agent/models/group.model.ts","./src/app/pages/create-agent/role-name.pipe.ts","./src/app/pages/cu-next/cu-next.component.ts","./src/app/pages/cu-next/cu-next.component.html","./src/app/pages/cunext.service.ts","./src/app/pages/custom-table/custom-table.component.ts","./src/app/pages/custom-table/custom-table.component.html","./src/app/pages/custom-table/pageheaders.pipe.ts","./src/app/pages/dashboard-reports/app-analytics/app-analytics.component.ts","./src/app/pages/dashboard-reports/app-analytics/app-analytics.component.html","./src/app/pages/dashboard-reports/call-analytics/call-analytics.component.ts","./src/app/pages/dashboard-reports/call-analytics/call-analytics.component.html","./src/app/pages/dashboard-reports/chartTypes.ts","./src/app/pages/dashboard-reports/combo-chart-data.ts","./src/app/pages/dashboard-reports/dashboard-reports.component.ts","./src/app/pages/dashboard-reports/dashboard-reports.component.html","./src/app/pages/dashboard-reports/dashboard-reports.service.ts","./src/app/pages/dashboard-reports/data.ts","./src/app/pages/dashboard/dashboard-routing.module.ts","./src/app/pages/dashboard/dashboard.module.ts","./src/app/pages/dashboard/dashboard.service.ts","./src/app/pages/dashboard/dashboard/dashboard.component.ts","./src/app/pages/dashboard/dashboard/dashboard.component.html","./src/app/pages/dashboard/models/ticket.model.ts","./src/app/pages/dashboard/sort.pipe.ts","./src/app/pages/documentation/documentation.component.ts","./src/app/pages/documentation/documentation.component.html","./src/app/pages/emailsettings/emailsettings.component.ts","./src/app/pages/emailsettings/emailsettings.component.html","./src/app/pages/enquiry/enquiry.component.ts","./src/app/pages/enquiry/enquiry.component.html","./src/app/pages/enquiry/enquiry.service.ts","./src/app/pages/event-schedule/event-schedule.component.ts","./src/app/pages/event-schedule/event-schedule.component.html","./src/app/pages/event-schedule/event-schedule.service.ts","./src/app/pages/frejun.service.ts","./src/app/pages/google-analytics/google-analytics/google-analytics.component.ts","./src/app/pages/google-analytics/google-analytics/google-analytics.component.html","./src/app/pages/group-management/group-management.component.ts","./src/app/pages/group-management/group-management.component.html","./src/app/pages/group.service.ts","./src/app/pages/hellosign/hellosign.component.ts","./src/app/pages/hellosign/hellosign.component.html","./src/app/pages/judsonu-leads/judsonu-leads.component.ts","./src/app/pages/judsonu-leads/judsonu-leads.component.html","./src/app/pages/mailservice.service.ts","./src/app/pages/management.service.ts","./src/app/pages/marketing/agent-calls-dashboard/agent-calls-dashboard.component.ts","./src/app/pages/marketing/agent-calls-dashboard/agent-calls-dashboard.component.html","./src/app/pages/marketing/auto-mail/auto-mail.component.ts","./src/app/pages/marketing/auto-mail/auto-mail.component.html","./src/app/pages/marketing/autosms/autosms.component.ts","./src/app/pages/marketing/autosms/autosms.component.html","./src/app/pages/marketing/callmarketing/callmarketing.component.ts","./src/app/pages/marketing/callmarketing/callmarketing.component.html","./src/app/pages/marketing/callmarketing/tablevalue.pipe.ts","./src/app/pages/marketing/demopage/demopage.component.ts","./src/app/pages/marketing/demopage/demopage.component.html","./src/app/pages/marketing/eventcalender/eventcalender.component.ts","./src/app/pages/marketing/eventcalender/eventcalender.component.html","./src/app/pages/marketing/helperpipes/tabletitle.pipe.ts","./src/app/pages/marketing/helperpipes/textpipe.pipe.ts","./src/app/pages/marketing/infomarketing/infomarketing.component.ts","./src/app/pages/marketing/infomarketing/infomarketing.component.html","./src/app/pages/marketing/infomarketing/valuehelper.pipe.ts","./src/app/pages/marketing/leads-dashboard/form-name.pipe.ts","./src/app/pages/marketing/leads-dashboard/leads-dashboard.component.ts","./src/app/pages/marketing/leads-dashboard/leads-dashboard.component.html","./src/app/pages/marketing/marketing-routing.module.ts","./src/app/pages/marketing/marketing.module.ts","./src/app/pages/marketing/marketing.service.ts","./src/app/pages/marketing/pipes/statusvalue.pipe.ts","./src/app/pages/marketing/sales-dashboard/sales-dashboard.component.ts","./src/app/pages/marketing/sales-dashboard/sales-dashboard.component.html","./src/app/pages/marketing/smsmarketing/models/ExecelData.model.ts","./src/app/pages/marketing/smsmarketing/models/ExecelData.model2.ts","./src/app/pages/marketing/smsmarketing/smsmarketing.component.ts","./src/app/pages/marketing/smsmarketing/smsmarketing.component.html","./src/app/pages/monitoring/monitoring.component.ts","./src/app/pages/monitoring/monitoring.component.html","./src/app/pages/pages-routing.module.ts","./src/app/pages/pages.module.ts","./src/app/pages/profile/profile.component.ts","./src/app/pages/profile/profile.component.html","./src/app/pages/project-management/project-management.component.ts","./src/app/pages/project-management/project-management.component.html","./src/app/pages/project-management/project.service.ts","./src/app/pages/recruiter/recruiter.component.ts","./src/app/pages/recruiter/recruiter.component.html","./src/app/pages/recruiter/recruiter.service.ts","./src/app/pages/referral/referral.component.ts","./src/app/pages/referral/referral.component.html","./src/app/pages/referral/referral.service.ts","./src/app/pages/referree/referree.component.ts","./src/app/pages/referree/referree.component.html","./src/app/pages/referree/referree.service.ts","./src/app/pages/reports/report-filter/created-at/created-at.component.ts","./src/app/pages/reports/report-filter/created-at/created-at.component.html","./src/app/pages/reports/report-filter/multi-select-dropdown/multi-select-dropdown.component.ts","./src/app/pages/reports/report-filter/multi-select-dropdown/multi-select-dropdown.component.html","./src/app/pages/reports/report-filter/report-filter.component.ts","./src/app/pages/reports/report-filter/report-filter.component.html","./src/app/pages/reports/report-filter/updated-at/updated-at.component.ts","./src/app/pages/reports/report-filter/updated-at/updated-at.component.html","./src/app/pages/reports/report-filter2/report-filter.component.ts","./src/app/pages/reports/report-filter2/report-filter.component.html","./src/app/pages/reports/reports.component.ts","./src/app/pages/reports/reports.component.html","./src/app/pages/reports/reports.service.ts","./src/app/pages/role-management/role-management.component.ts","./src/app/pages/role-management/role-management.component.html","./src/app/pages/role-management/role.service.ts","./src/app/pages/sfc-leads/sfc-leads.component.ts","./src/app/pages/sfc-leads/sfc-leads.component.html","./src/app/pages/smsmodules/smsmodules.component.ts","./src/app/pages/smsmodules/smsmodules.component.html","./src/app/pages/templates/templates.component.ts","./src/app/pages/templates/templates.component.html","./src/app/pages/tickets/add-update-view-tickets/add-update-view-tickets.component.ts","./src/app/pages/tickets/add-update-view-tickets/add-update-view-tickets.component.html","./src/app/pages/tickets/googledirections/googledirections.component.ts","./src/app/pages/tickets/googledirections/googledirections.component.html","./src/app/pages/tickets/maps/maps.component.ts","./src/app/pages/tickets/maps/maps.component.html","./src/app/pages/tickets/nameformatting.pipe.ts","./src/app/pages/tickets/safe-html.pipe.ts","./src/app/pages/tickets/ticketpipes/attachments.pipe.ts","./src/app/pages/tickets/ticketpipes/profile-photo.pipe.ts","./src/app/pages/tickets/ticketpipes/requeststatus.pipe.ts","./src/app/pages/tickets/ticketpipes/updatedby-name.pipe.ts","./src/app/pages/tickets/tickets-routing.module.ts","./src/app/pages/tickets/tickets.module.ts","./src/app/pages/tickets/tickets.service.ts","./src/app/pages/trasnfers/agents/agents.component.ts","./src/app/pages/trasnfers/agents/agents.component.html","./src/app/pages/trasnfers/pagination-custom.directive.ts","./src/app/pages/trasnfers/pagination-custom/pagination-custom.component.ts","./src/app/pages/trasnfers/pagination-custom/pagination-custom.component.html","./src/app/pages/trasnfers/students/students.component.ts","./src/app/pages/trasnfers/students/students.component.html","./src/app/pages/trasnfers/transfers.service.ts","./src/app/pages/trasnfers/trasnfers-routing.module.ts","./src/app/pages/trasnfers/trasnfers.module.ts","./src/app/pages/uhleads.service.ts","./src/app/pages/uhleads/material.module.ts","./src/app/pages/uhleads/table-data/table-data.component.ts","./src/app/pages/uhleads/table-data/table-data.component.html","./src/app/pages/uhleads/uhleads.component.ts","./src/app/pages/uhleads/uhleads.component.html","./src/app/pages/uhleads/uhleadsfilter/uhleadsfilter.component.ts","./src/app/pages/uhleads/uhleadsfilter/uhleadsfilter.component.html","./src/app/pages/uhub-dashboard/recruiterleads/recruiterleads.component.ts","./src/app/pages/uhub-dashboard/recruiterleads/recruiterleads.component.html","./src/app/pages/uhub-dashboard/recruiterleads/recruiterleads.service.ts","./src/app/pages/uhub-dashboard/socialmedialeads/socialmedialeads.component.ts","./src/app/pages/uhub-dashboard/socialmedialeads/socialmedialeads.component.html","./src/app/pages/uhub-dashboard/socialmedialeads/socialmedialeads.service.ts","./src/app/pages/uhub-dashboard/uhub-dashboard.component.ts","./src/app/pages/uhub-dashboard/uhub-dashboard.component.html","./src/app/pages/uhub-dashboard/uhub-dashboard.service.ts","./src/app/pages/upload/upload.component.ts","./src/app/pages/upload/upload.component.html","./src/app/pages/upload/upload.service.ts","./src/app/pages/uwla/uwla.component.ts","./src/app/pages/uwla/uwla.component.html","./src/app/privacypolicy/privacypolicy.component.ts","./src/app/privacypolicy/privacypolicy.component.html","./src/app/shared/activity.pipe.ts","./src/app/shared/activity2.pipe.ts","./src/app/shared/custom-pagination/custom-pagination.component.ts","./src/app/shared/custom-pagination/custom-pagination.component.html","./src/app/shared/custom-pagination/pagination.directive.ts","./src/app/shared/custom-paginationuhub/custom-paginationuhub.component.ts","./src/app/shared/custom-paginationuhub/custom-paginationuhub.component.html","./src/app/shared/directives/count-to.directive.ts","./src/app/shared/shared.module.ts","./src/app/shared/shared.service.ts","./src/app/shared/transfer-search.pipe.ts","./src/app/socket.service.ts","./src/app/twilio-socket.service.ts","./src/app/videocalling/video-calling.service.ts","./src/components/notification/notification.component.ts","./src/components/notification/notification.component.html","./src/components/progress/progress.component.ts","./src/components/progress/progress.component.html","./src/components/settings/settings.component.ts","./src/components/settings/settings.component.html","./src/components/settings/settings.service.ts","./src/components/simple-notifications/simple-notifications.component.ts","./src/components/simple-notifications/simple-notifications.component.html","./src/environments/environment.ts","./src/main.ts","/codebuild/output/src1288877819/src/CRM_UniversityHuB_PROD_UI/node_modules/moment/locale|sync|/^\\.\\/.*$/","ignored|/codebuild/output/src1288877819/src/CRM_UniversityHuB_PROD_UI/node_modules/xlsx|crypto","ignored|/codebuild/output/src1288877819/src/CRM_UniversityHuB_PROD_UI/node_modules/xlsx|fs","ignored|/codebuild/output/src1288877819/src/CRM_UniversityHuB_PROD_UI/node_modules/xlsx|stream"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\nimport { Series } from '../models/chart-data.model';\nimport { SeriesType } from '../common/circle-series.component';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'ngx-charts-area-chart-normalized',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AreaChartNormalizedComponent extends BaseChartComponent {\n @Input() legend = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean;\n @Input() yAxis: boolean;\n @Input() showXAxisLabel: boolean = false;\n @Input() showYAxisLabel: boolean = false;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() timeline;\n @Input() gradient;\n @Input() showGridLines: boolean = true;\n @Input() curve: any = curveLinear;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() roundDomains: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n scaleType: ScaleType;\n xDomain: any[];\n xSet: any[]; // the set of all values on the X Axis\n yDomain: [number, number] = [0, 100];\n seriesDomain: any;\n xScale: any;\n yScale: any;\n transform: string;\n clipPathId: string;\n clipPath: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n tooltipAreas: any[];\n hoveredVertical: any; // the value of the x axis that is hovered over\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n filteredDomain: any;\n legendOptions: LegendOptions;\n\n seriesType = SeriesType;\n\n timelineWidth: any;\n timelineHeight: number = 50;\n timelineXScale: any;\n timelineYScale: any;\n timelineXDomain: any;\n timelineTransform: any;\n timelinePadding: number = 10;\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n\n this.seriesDomain = this.getSeriesDomain();\n\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let d0 = 0;\n\n let total = 0;\n for (const group of this.results) {\n const d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n if (d) {\n total += d.value;\n }\n }\n\n for (const group of this.results) {\n let d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n\n if (d) {\n d.d0 = d0;\n d.d1 = d0 + d.value;\n d0 += d.value;\n } else {\n d = {\n name: val,\n value: 0,\n d0,\n d1: d0\n };\n group.series.push(d);\n }\n\n if (total > 0) {\n d.d0 = (d.d0 * 100) / total;\n d.d1 = (d.d1 * 100) / total;\n } else {\n d.d0 = 0;\n d.d1 = 0;\n }\n }\n }\n\n this.updateTimeline();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n\n updateTimeline(): void {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n\n getXDomain(): any[] {\n let values = getUniqueXDomainValues(this.results);\n\n this.scaleType = getScaleType(values);\n let domain = [];\n\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate) return 1;\n if (bDate > aDate) return -1;\n return 0;\n });\n } else if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n } else {\n domain = values;\n this.xSet = values;\n }\n\n return domain;\n }\n\n getSeriesDomain(): string[] {\n return this.results.map(d => d.name);\n }\n\n getXScale(domain, width: number): any {\n let scale;\n\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n\n scale.range([0, width]).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getYScale(domain, height: number): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n updateDomain(domain): void {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n\n updateHoveredVertical(item): void {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n\n onClick(data, series?): void {\n if (series) {\n data.series = series.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: Series) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts: LegendOptions = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll(): void {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\nimport { SeriesType } from '../common/circle-series.component';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-area-chart-stacked',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AreaChartStackedComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean = false;\n @Input() yAxis: boolean = false;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() timeline: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() curve: any = curveLinear;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() roundDomains: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() xScaleMin: any;\n @Input() xScaleMax: any;\n @Input() yScaleMin: number;\n @Input() yScaleMax: number;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n scaleType: ScaleType;\n xDomain: any[];\n xSet: any[]; // the set of all values on the X Axis\n yDomain: [number, number];\n seriesDomain: any;\n xScale: any;\n yScale: any;\n transform: string;\n clipPathId: string;\n clipPath: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n hoveredVertical: any; // the value of the x axis that is hovered over\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n filteredDomain: any;\n legendOptions: any;\n\n timelineWidth: number;\n timelineHeight: number = 50;\n timelineXScale: any;\n timelineYScale: any;\n timelineXDomain: any;\n timelineTransform: any;\n timelinePadding: number = 10;\n\n seriesType = SeriesType;\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let d0 = 0;\n for (const group of this.results) {\n let d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n\n if (d) {\n d.d0 = d0;\n d.d1 = d0 + d.value;\n d0 += d.value;\n } else {\n d = {\n name: val,\n value: 0,\n d0,\n d1: d0\n };\n group.series.push(d);\n }\n }\n }\n\n this.updateTimeline();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n\n updateTimeline(): void {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n\n getXDomain(): any[] {\n let values = getUniqueXDomainValues(this.results);\n\n this.scaleType = getScaleType(values);\n let domain = [];\n\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n\n if (this.scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate) return 1;\n if (bDate > aDate) return -1;\n return 0;\n });\n } else if (this.scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n } else {\n domain = values;\n this.xSet = values;\n }\n\n return domain;\n }\n\n getYDomain(): [number, number] {\n const domain = [];\n\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let sum = 0;\n for (const group of this.results) {\n const d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n\n if (d) {\n sum += d.value;\n }\n }\n\n domain.push(sum);\n }\n\n const min = this.yScaleMin ? this.yScaleMin : Math.min(0, ...domain);\n\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...domain);\n return [min, max];\n }\n\n getSeriesDomain(): string[] {\n return this.results.map(d => d.name);\n }\n\n getXScale(domain, width: number): any {\n let scale;\n\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n\n scale.range([0, width]).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getYScale(domain, height: number): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n updateDomain(domain): void {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n\n onClick(data, series?): void {\n if (series) {\n data.series = series.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy(index, item): string {\n return `${item.name}`;\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport { CurveFactory, curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\nimport { isDate, isNumber } from '../utils/types';\nimport { Series } from '../models/chart-data.model';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-area-chart',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AreaChartComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean = false;\n @Input() yAxis: boolean = false;\n @Input() baseValue: any = 'auto';\n @Input() autoScale: boolean = false;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() timeline: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() curve: CurveFactory = curveLinear;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() roundDomains: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() xScaleMin: any;\n @Input() xScaleMax: any;\n @Input() yScaleMin: number;\n @Input() yScaleMax: number;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n xSet: any;\n xDomain: any[];\n yDomain: [number, number];\n seriesDomain: string[];\n xScale: any;\n yScale: any;\n transform: string;\n colors: ColorHelper;\n clipPathId: string;\n clipPath: string;\n scaleType: ScaleType;\n series: Series;\n margin: number[] = [10, 20, 10, 20];\n hoveredVertical: any; // the value of the x axis that is hovered over\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n filteredDomain: any;\n legendOptions: LegendOptions;\n\n timelineWidth: number;\n timelineHeight: number = 50;\n timelineXScale: any;\n timelineYScale: any;\n timelineXDomain: any[];\n timelineTransform: any;\n timelinePadding: number = 10;\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n this.updateTimeline();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n\n updateTimeline(): void {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n\n getXDomain(): any[] {\n let values = getUniqueXDomainValues(this.results);\n\n this.scaleType = getScaleType(values);\n let domain = [];\n\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n\n if (this.scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate) return 1;\n if (bDate > aDate) return -1;\n return 0;\n });\n } else if (this.scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n } else {\n domain = values;\n this.xSet = values;\n }\n\n return domain;\n }\n\n getYDomain(): [number, number] {\n const domain = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n\n const values = [...domain];\n if (!this.autoScale) {\n values.push(0);\n }\n if (this.baseValue !== 'auto') {\n values.push(this.baseValue);\n }\n\n const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n\n return [min, max];\n }\n\n getSeriesDomain(): string[] {\n return this.results.map(d => d.name);\n }\n\n getXScale(domain, width: number): number {\n let scale;\n\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n\n scale.range([0, width]).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getYScale(domain: [number, number], height: number): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getScaleType(values): ScaleType {\n let date = true;\n let num = true;\n for (const value of values) {\n if (isDate(value)) {\n date = false;\n }\n if (isNumber(value)) {\n num = false;\n }\n }\n\n if (date) {\n return ScaleType.Time;\n }\n\n if (num) {\n return ScaleType.Linear;\n }\n\n return ScaleType.Ordinal;\n }\n\n updateDomain(domain): void {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n\n updateHoveredVertical(item): void {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n\n onClick(data, series?: Series): void {\n if (series) {\n data.series = series.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: Series) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts: LegendOptions = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll(): void {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AreaChartComponent } from './area-chart.component';\nimport { AreaChartNormalizedComponent } from './area-chart-normalized.component';\nimport { AreaChartStackedComponent } from './area-chart-stacked.component';\nimport { AreaSeriesComponent } from './area-series.component';\nimport { ChartCommonModule } from '../common/chart-common.module';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [AreaChartComponent, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaSeriesComponent],\n exports: [AreaChartComponent, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaSeriesComponent]\n})\nexport class AreaChartModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { area } from 'd3-shape';\nimport { ColorHelper } from '../common/color.helper';\nimport { Gradient } from '../common/types/gradient.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { AreaChartSeries } from '../models/chart-data.model';\nimport { sortLinear, sortByTime, sortByDomain } from '../utils/sort';\n\n@Component({\n selector: 'g[ngx-charts-area-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AreaSeriesComponent implements OnChanges {\n @Input() data: AreaChartSeries;\n @Input() xScale: any;\n @Input() yScale: any;\n @Input() baseValue: any = 'auto';\n @Input() colors: ColorHelper;\n @Input() scaleType: ScaleType;\n @Input() stacked: boolean = false;\n @Input() normalized: boolean = false;\n @Input() gradient: boolean;\n @Input() curve: any;\n @Input() activeEntries: any[];\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n opacity: number;\n path: string;\n startingPath: string;\n\n hasGradient: boolean;\n gradientStops: Gradient[];\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.updateGradient();\n\n let currentArea;\n let startingArea;\n\n const xProperty = d => {\n const label = d.name;\n return this.xScale(label);\n };\n\n if (this.stacked || this.normalized) {\n currentArea = area()\n .x(xProperty)\n .y0((d, i) => this.yScale(d.d0))\n .y1((d, i) => this.yScale(d.d1));\n\n startingArea = area()\n .x(xProperty)\n .y0(d => this.yScale.range()[0])\n .y1(d => this.yScale.range()[0]);\n } else {\n currentArea = area()\n .x(xProperty)\n .y0(() => (this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)))\n .y1(d => this.yScale(d.value));\n\n startingArea = area()\n .x(xProperty)\n .y0(d => (this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)))\n .y1(d => (this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)));\n }\n\n currentArea.curve(this.curve);\n startingArea.curve(this.curve);\n\n this.opacity = 0.8;\n\n let data = this.data.series;\n if (this.scaleType === ScaleType.Linear) {\n data = sortLinear(data, 'name');\n } else if (this.scaleType === ScaleType.Time) {\n data = sortByTime(data, 'name');\n } else {\n data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n\n this.path = currentArea(data);\n this.startingPath = startingArea(data);\n }\n\n updateGradient() {\n if (this.colors.scaleType === ScaleType.Linear) {\n this.hasGradient = true;\n if (this.stacked || this.normalized) {\n const d0values = this.data.series.map(d => d.d0);\n const d1values = this.data.series.map(d => d.d1);\n const max = Math.max(...d1values);\n const min = Math.min(...d0values);\n this.gradientStops = this.colors.getLinearGradientStops(max, min);\n } else {\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n this.gradientStops = this.colors.getLinearGradientStops(max);\n }\n } else {\n this.hasGradient = false;\n this.gradientStops = undefined;\n }\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n\n isInactive(entry): boolean {\n if (!this.activeEntries || this.activeEntries.length === 0) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item === undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { BarComponent } from './bar.component';\nimport { BarHorizontalComponent } from './bar-horizontal.component';\nimport { BarHorizontal2DComponent } from './bar-horizontal-2d.component';\nimport { BarHorizontalNormalizedComponent } from './bar-horizontal-normalized.component';\nimport { BarHorizontalStackedComponent } from './bar-horizontal-stacked.component';\nimport { BarVerticalComponent } from './bar-vertical.component';\nimport { BarVertical2DComponent } from './bar-vertical-2d.component';\nimport { BarVerticalNormalizedComponent } from './bar-vertical-normalized.component';\nimport { BarVerticalStackedComponent } from './bar-vertical-stacked.component';\nimport { SeriesHorizontal } from './series-horizontal.component';\nimport { SeriesVerticalComponent } from './series-vertical.component';\nimport { BarLabelComponent } from './bar-label.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [\n BarComponent,\n BarHorizontalComponent,\n BarHorizontal2DComponent,\n BarHorizontalNormalizedComponent,\n BarHorizontalStackedComponent,\n BarVerticalComponent,\n BarVertical2DComponent,\n BarVerticalNormalizedComponent,\n BarVerticalStackedComponent,\n BarLabelComponent,\n SeriesHorizontal,\n SeriesVerticalComponent\n ],\n exports: [\n BarComponent,\n BarHorizontalComponent,\n BarHorizontal2DComponent,\n BarHorizontalNormalizedComponent,\n BarHorizontalStackedComponent,\n BarVerticalComponent,\n BarVertical2DComponent,\n BarVerticalNormalizedComponent,\n BarVerticalStackedComponent,\n BarLabelComponent,\n SeriesHorizontal,\n SeriesVerticalComponent\n ]\n})\nexport class BarChartModule {}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { DataItem } from '../models/chart-data.model';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\n\n@Component({\n selector: 'ngx-charts-bar-horizontal-2d',\n template: `\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class BarHorizontal2DComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() groupPadding: number = 16;\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() roundEdges: boolean = true;\n @Input() xScaleMax: number;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n groupDomain: string[];\n innerDomain: string[];\n valueDomain: [number, number];\n groupScale: any;\n innerScale: any;\n valueScale: any;\n transform: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n dataLabelMaxWidth: any = { negative: 0, positive: 0 };\n isSSR = false;\n\n barOrientation = BarOrientation;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n\n this.groupScale = this.getGroupScale();\n this.innerScale = this.getInnerScale();\n this.valueScale = this.getValueScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getGroupScale(): any {\n const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n\n return scaleBand()\n .rangeRound([0, this.dims.height])\n .paddingInner(spacing)\n .paddingOuter(spacing / 2)\n .domain(this.groupDomain);\n }\n\n getInnerScale(): any {\n const height = this.groupScale.bandwidth();\n const spacing = this.innerDomain.length / (height / this.barPadding + 1);\n\n return scaleBand().rangeRound([0, height]).paddingInner(spacing).domain(this.innerDomain);\n }\n\n getValueScale(): any {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getGroupDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n\n return domain;\n }\n\n getInnerDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n\n return domain;\n }\n\n getValueDomain(): [number, number] {\n const domain = [];\n\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n\n const min = Math.min(0, ...domain);\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...domain) : Math.max(0, ...domain);\n return [min, max];\n }\n\n groupTransform(group: DataItem): string {\n return `translate(0, ${this.groupScale(group.label)})`;\n }\n\n onClick(data, group?: DataItem): void {\n if (group) {\n data.series = group.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: DataItem) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onDataLabelMaxWidthChanged(event, groupIndex: number): void {\n if (event.size.negative) {\n this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n } else {\n this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n\n onActivate(event, group: DataItem, fromLegend: boolean = false): void {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group: DataItem, fromLegend: boolean = false): void {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n Output,\n ViewEncapsulation,\n EventEmitter,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { Series } from '../models/chart-data.model';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { BarChartType } from './types/bar-chart-type.enum';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'ngx-charts-bar-horizontal-normalized',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class BarHorizontalNormalizedComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n groupDomain: string[];\n innerDomain: string[];\n valueDomain: [number, number] = [0, 100];\n xScale: any;\n yScale: any;\n transform: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n barChartType = BarChartType;\n isSSR = false;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getGroupDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n\n return domain;\n }\n\n getInnerDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n\n return domain;\n }\n\n getYScale(): any {\n const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.groupDomain);\n }\n\n getXScale(): any {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n groupTransform(group: Series): string {\n return `translate(0, ${this.yScale(group.name)})`;\n }\n\n onClick(data, group?: Series): void {\n if (group) {\n data.series = group.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: Series) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { Series } from '../models/chart-data.model';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { BarChartType } from './types/bar-chart-type.enum';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'ngx-charts-bar-horizontal-stacked',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class BarHorizontalStackedComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() xScaleMax: number;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n groupDomain: string[];\n innerDomain: string[];\n valueDomain: [number, number];\n xScale: any;\n yScale: any;\n transform: string;\n colors: ColorHelper;\n margin = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n dataLabelMaxWidth: any = { negative: 0, positive: 0 };\n\n barChartType = BarChartType;\n isSSR = false;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getGroupDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n\n return domain;\n }\n\n getInnerDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n\n return domain;\n }\n\n getValueDomain(): [number, number] {\n const domain = [];\n let smallest = 0;\n let biggest = 0;\n for (const group of this.results) {\n let smallestSum = 0;\n let biggestSum = 0;\n for (const d of group.series) {\n if (d.value < 0) {\n smallestSum += d.value;\n } else {\n biggestSum += d.value;\n }\n smallest = d.value < smallest ? d.value : smallest;\n biggest = d.value > biggest ? d.value : biggest;\n }\n domain.push(smallestSum);\n domain.push(biggestSum);\n }\n domain.push(smallest);\n domain.push(biggest);\n\n const min = Math.min(0, ...domain);\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...domain) : Math.max(...domain);\n return [min, max];\n }\n\n getYScale(): any {\n const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.groupDomain);\n }\n\n getXScale(): any {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n groupTransform(group: Series): string {\n return `translate(0, ${this.yScale(group.name)})`;\n }\n\n onClick(data, group?: Series): void {\n if (group) {\n data.series = group.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: Series) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onDataLabelMaxWidthChanged(event, groupIndex: number) {\n if (event.size.negative) {\n this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n } else {\n this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n\n onActivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'ngx-charts-bar-horizontal',\n template: `\n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BarHorizontalComponent extends BaseChartComponent {\n @Input() legend = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() roundEdges: boolean = true;\n @Input() xScaleMax: number;\n @Input() xScaleMin: number;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n yScale: any;\n xScale: any;\n xDomain: [number, number];\n yDomain: string[];\n transform: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n dataLabelMaxWidth: any = { negative: 0, positive: 0 };\n\n update(): void {\n super.update();\n\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getXScale(): any {\n this.xDomain = this.getXDomain();\n\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.xDomain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getYScale(): any {\n this.yDomain = this.getYDomain();\n const spacing = this.yDomain.length / (this.dims.height / this.barPadding + 1);\n\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.yDomain);\n }\n\n getXDomain(): [number, number] {\n const values = this.results.map(d => d.value);\n const min = this.xScaleMin ? Math.min(this.xScaleMin, ...values) : Math.min(0, ...values);\n\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...values) : Math.max(0, ...values);\n return [min, max];\n }\n\n getYDomain(): string[] {\n return this.results.map(d => d.label);\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.yDomain;\n } else {\n domain = this.xDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === 'ordinal') {\n opts.domain = this.yDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.xDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onDataLabelMaxWidthChanged(event) {\n if (event.size.negative) {\n this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n } else {\n this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n }\n if (event.index === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n\n onActivate(item, fromLegend: boolean = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item, fromLegend: boolean = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n ElementRef,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { formatLabel } from '../common/label.helper';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\n\n@Component({\n selector: 'g[ngx-charts-bar-label]',\n template: `\n \n {{ formatedValue }}\n \n `,\n styleUrls: ['./bar-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarLabelComponent implements OnChanges {\n @Input() value;\n @Input() valueFormatting: any;\n @Input() barX;\n @Input() barY;\n @Input() barWidth;\n @Input() barHeight;\n @Input() orientation: BarOrientation;\n\n @Output() dimensionsChanged: EventEmitter = new EventEmitter();\n\n element: any;\n x: number;\n y: number;\n horizontalPadding: number = 2;\n verticalPadding: number = 5;\n formatedValue: string;\n transform: string;\n textAnchor: string;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n getSize(): any {\n const h = this.element.getBoundingClientRect().height;\n const w = this.element.getBoundingClientRect().width;\n return { height: h, width: w, negative: this.value < 0 };\n }\n\n ngAfterViewInit() {\n this.dimensionsChanged.emit(this.getSize());\n }\n\n update(): void {\n if (this.valueFormatting) {\n this.formatedValue = this.valueFormatting(this.value);\n } else {\n this.formatedValue = formatLabel(this.value);\n }\n\n if (this.orientation === 'horizontal') {\n this.x = this.barX + this.barWidth;\n // if the value is negative then it's on the left of the x0.\n // we need to put the data label in front of the bar\n if (this.value < 0) {\n this.x = this.x - this.horizontalPadding;\n this.textAnchor = 'end';\n } else {\n this.x = this.x + this.horizontalPadding;\n this.textAnchor = 'start';\n }\n this.y = this.barY + this.barHeight / 2;\n } else {\n // orientation must be \"vertical\"\n this.x = this.barX + this.barWidth / 2;\n this.y = this.barY + this.barHeight;\n\n if (this.value < 0) {\n this.y = this.y + this.verticalPadding;\n this.textAnchor = 'end';\n } else {\n this.y = this.y - this.verticalPadding;\n this.textAnchor = 'start';\n }\n this.transform = `rotate(-45, ${this.x} , ${this.y})`;\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n ViewEncapsulation,\n EventEmitter,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { DataItem } from '../models/chart-data.model';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'ngx-charts-bar-vertical-2d',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class BarVertical2DComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() scaleType: ScaleType = ScaleType.Ordinal;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() groupPadding: number = 16;\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() roundEdges: boolean = true;\n @Input() yScaleMax: number;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n groupDomain: string[];\n innerDomain: string[];\n valueDomain: [number, number];\n groupScale: any;\n innerScale: any;\n valueScale: any;\n transform: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n dataLabelMaxHeight: any = { negative: 0, positive: 0 };\n isSSR = false;\n\n barOrientation = BarOrientation;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n\n this.formatDates();\n\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n\n this.groupScale = this.getGroupScale();\n this.innerScale = this.getInnerScale();\n this.valueScale = this.getValueScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n\n onDataLabelMaxHeightChanged(event, groupIndex: number): void {\n if (event.size.negative) {\n this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n } else {\n this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n\n getGroupScale(): any {\n const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n\n return scaleBand()\n .rangeRound([0, this.dims.width])\n .paddingInner(spacing)\n .paddingOuter(spacing / 2)\n .domain(this.groupDomain);\n }\n\n getInnerScale(): any {\n const width = this.groupScale.bandwidth();\n const spacing = this.innerDomain.length / (width / this.barPadding + 1);\n return scaleBand().rangeRound([0, width]).paddingInner(spacing).domain(this.innerDomain);\n }\n\n getValueScale(): any {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getGroupDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n\n return domain;\n }\n\n getInnerDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n\n return domain;\n }\n\n getValueDomain(): [number, number] {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n\n const min = Math.min(0, ...domain);\n const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(0, ...domain);\n\n return [min, max];\n }\n\n groupTransform(group: DataItem): string {\n return `translate(${this.groupScale(group.label)}, 0)`;\n }\n\n onClick(data, group?: DataItem): void {\n if (group) {\n data.series = group.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: DataItem) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(event, group: DataItem, fromLegend: boolean = false): void {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group: DataItem, fromLegend: boolean = false): void {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { Series } from '../models/chart-data.model';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { BarChartType } from './types/bar-chart-type.enum';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'ngx-charts-bar-vertical-normalized',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class BarVerticalNormalizedComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n groupDomain: string[];\n innerDomain: string[];\n valueDomain: [number, number] = [0, 100];\n xScale: any;\n yScale: any;\n transform: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n isSSR = false;\n\n barChartType = BarChartType;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getGroupDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n\n return domain;\n }\n\n getInnerDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n\n return domain;\n }\n\n getXScale(): any {\n const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).domain(this.groupDomain);\n }\n\n getYScale(): any {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n groupTransform(group: Series): string {\n return `translate(${this.xScale(group.name)}, 0)`;\n }\n\n onClick(data, group?: Series) {\n if (group) {\n data.series = group.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: Series) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }) {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }) {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n TrackByFunction\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { Series } from '../models/chart-data.model';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { BarChartType } from './types/bar-chart-type.enum';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'ngx-charts-bar-vertical-stacked',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class BarVerticalStackedComponent extends BaseChartComponent {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() barPadding: number = 8;\n @Input() roundDomains: boolean = false;\n @Input() yScaleMax: number;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n groupDomain: string[];\n innerDomain: string[];\n valueDomain: [number, number];\n xScale: any;\n yScale: any;\n transform: string;\n tickFormatting: (label: string) => string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n dataLabelMaxHeight: any = { negative: 0, positive: 0 };\n isSSR = false;\n\n barChartType = BarChartType;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n\n this.formatDates();\n\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n\n getGroupDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n\n getInnerDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n\n getValueDomain(): [number, number] {\n const domain = [];\n let smallest = 0;\n let biggest = 0;\n for (const group of this.results) {\n let smallestSum = 0;\n let biggestSum = 0;\n for (const d of group.series) {\n if (d.value < 0) {\n smallestSum += d.value;\n } else {\n biggestSum += d.value;\n }\n smallest = d.value < smallest ? d.value : smallest;\n biggest = d.value > biggest ? d.value : biggest;\n }\n domain.push(smallestSum);\n domain.push(biggestSum);\n }\n domain.push(smallest);\n domain.push(biggest);\n\n const min = Math.min(0, ...domain);\n const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(...domain);\n return [min, max];\n }\n\n getXScale(): any {\n const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).domain(this.groupDomain);\n }\n\n getYScale(): any {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n onDataLabelMaxHeightChanged(event, groupIndex: number) {\n if (event.size.negative) {\n this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n } else {\n this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n\n groupTransform(group: Series): string {\n return `translate(${this.xScale(group.name) || 0}, 0)`;\n }\n\n onClick(data, group?: Series) {\n if (group) {\n data.series = group.name;\n }\n\n this.select.emit(data);\n }\n\n trackBy: TrackByFunction = (index: number, item: Series) => {\n return item.name;\n };\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(event, group, fromLegend: boolean = false): void {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group: Series, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { DataItem } from '../models/chart-data.model';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'ngx-charts-bar-vertical',\n template: `\n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BarVerticalComponent extends BaseChartComponent {\n @Input() legend = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() barPadding = 8;\n @Input() roundDomains: boolean = false;\n @Input() roundEdges: boolean = true;\n @Input() yScaleMax: number;\n @Input() yScaleMin: number;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n xScale: any;\n yScale: any;\n xDomain: any;\n yDomain: any;\n transform: string;\n colors: ColorHelper;\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n dataLabelMaxHeight: any = { negative: 0, positive: 0 };\n\n update(): void {\n super.update();\n\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n\n getXScale(): any {\n this.xDomain = this.getXDomain();\n const spacing = this.xDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().range([0, this.dims.width]).paddingInner(spacing).domain(this.xDomain);\n }\n\n getYScale(): any {\n this.yDomain = this.getYDomain();\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.yDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getXDomain(): any[] {\n return this.results.map(d => d.label);\n }\n\n getYDomain(): [number, number] {\n const values = this.results.map(d => d.value);\n\n let min = this.yScaleMin ? Math.min(this.yScaleMin, ...values) : Math.min(0, ...values);\n if (this.yAxisTicks && !this.yAxisTicks.some(isNaN)) {\n min = Math.min(min, ...this.yAxisTicks);\n }\n\n let max = this.yScaleMax ? Math.max(this.yScaleMax, ...values) : Math.max(0, ...values);\n if (this.yAxisTicks && !this.yAxisTicks.some(isNaN)) {\n max = Math.max(max, ...this.yAxisTicks);\n }\n return [min, max];\n }\n\n onClick(data: DataItem | string) {\n this.select.emit(data);\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.xDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.xDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n\n updateYAxisWidth({ width }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onDataLabelMaxHeightChanged(event) {\n if (event.size.negative) {\n this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n } else {\n this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n }\n if (event.index === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { select } from 'd3-selection';\nimport { roundedRect } from '../common/shape.helper';\nimport { id } from '../utils/id';\nimport { DataItem } from '../models/chart-data.model';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { Gradient } from '../common/types/gradient.interface';\n\n@Component({\n selector: 'g[ngx-charts-bar]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarComponent implements OnChanges {\n @Input() fill: string;\n @Input() data: DataItem;\n @Input() width: number;\n @Input() height: number;\n @Input() x: number;\n @Input() y: number;\n @Input() orientation: BarOrientation;\n @Input() roundEdges: boolean = true;\n @Input() gradient: boolean = false;\n @Input() offset: number = 0;\n @Input() isActive: boolean = false;\n @Input() stops: Gradient[];\n @Input() animations: boolean = true;\n @Input() ariaLabel: string;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n element: HTMLElement;\n path: string;\n gradientId: string;\n gradientFill: string;\n gradientStops: Gradient[];\n hasGradient: boolean = false;\n hideBar: boolean = false;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.roundEdges) {\n this.loadAnimation();\n }\n this.update();\n }\n\n update(): void {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n\n if (this.gradient || this.stops) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n } else {\n this.hasGradient = false;\n }\n\n this.updatePathEl();\n this.checkToHideBar();\n }\n\n loadAnimation(): void {\n this.path = this.getStartingPath();\n setTimeout(this.update.bind(this), 100);\n }\n\n updatePathEl(): void {\n const node = select(this.element).select('.bar');\n const path = this.getPath();\n if (this.animations) {\n node.transition().duration(500).attr('d', path);\n } else {\n node.attr('d', path);\n }\n }\n\n getGradient(): Gradient[] {\n if (this.stops) {\n return this.stops;\n }\n\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.getStartOpacity()\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n\n getStartingPath(): string {\n if (!this.animations) {\n return this.getPath();\n }\n\n let radius = this.getRadius();\n let path;\n\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.Vertical) {\n radius = Math.min(this.height, radius);\n path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n } else if (this.orientation === BarOrientation.Horizontal) {\n radius = Math.min(this.width, radius);\n path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n }\n } else {\n if (this.orientation === BarOrientation.Vertical) {\n path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n } else if (this.orientation === BarOrientation.Horizontal) {\n path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n }\n }\n\n return path;\n }\n\n getPath(): string {\n let radius = this.getRadius();\n let path;\n\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.Vertical) {\n radius = Math.min(this.height, radius);\n path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n } else if (this.orientation === BarOrientation.Horizontal) {\n radius = Math.min(this.width, radius);\n path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n }\n } else {\n path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n }\n\n return path;\n }\n\n getRadius(): number {\n let radius = 0;\n\n if (this.roundEdges && this.height > 5 && this.width > 5) {\n radius = Math.floor(Math.min(5, this.height / 2, this.width / 2));\n }\n\n return radius;\n }\n\n getStartOpacity(): number {\n if (this.roundEdges) {\n return 0.2;\n } else {\n return 0.5;\n }\n }\n\n get edges(): boolean[] {\n let edges = [false, false, false, false];\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.Vertical) {\n if (this.data.value > 0) {\n edges = [true, true, false, false];\n } else {\n edges = [false, false, true, true];\n }\n } else if (this.orientation === BarOrientation.Horizontal) {\n if (this.data.value > 0) {\n edges = [false, true, false, true];\n } else {\n edges = [true, false, true, false];\n }\n }\n }\n return edges;\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.activate.emit(this.data);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.deactivate.emit(this.data);\n }\n\n private checkToHideBar(): void {\n this.hideBar =\n this.noBarWhenZero &&\n ((this.orientation === BarOrientation.Vertical && this.height === 0) ||\n (this.orientation === BarOrientation.Horizontal && this.width === 0));\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { DataItem, StringOrNumberOrDate } from '../models/chart-data.model';\nimport { ColorHelper } from '../common/color.helper';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { BarChartType } from './types/bar-chart-type.enum';\nimport { Bar } from './types/bar.model';\nimport { D0Types } from './types/d0-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'g[ngx-charts-series-horizontal]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ]\n})\nexport class SeriesHorizontal implements OnChanges {\n @Input() dims: ViewDimensions;\n @Input() type: BarChartType = BarChartType.Standard;\n @Input() series: DataItem[];\n @Input() xScale;\n @Input() yScale;\n @Input() colors: ColorHelper;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() activeEntries: DataItem[];\n @Input() seriesName: StringOrNumberOrDate;\n @Input() tooltipTemplate: TemplateRef;\n @Input() roundEdges: boolean;\n @Input() animations: boolean = true;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n @Output() dataLabelWidthChanged = new EventEmitter<{ size: Event; index: number }>();\n\n tooltipPlacement: PlacementTypes;\n tooltipType: StyleTypes;\n bars: Bar[];\n barsForDataLabels: Array<{ x: number; y: number; width: number; height: number; total: number; series: string }> = [];\n\n barOrientation = BarOrientation;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.updateTooltipSettings();\n const d0 = {\n [D0Types.positive]: 0,\n [D0Types.negative]: 0\n };\n let d0Type: D0Types;\n d0Type = D0Types.positive;\n let total;\n if (this.type === BarChartType.Normalized) {\n total = this.series.map(d => d.value).reduce((sum, d) => (sum as any) + d, 0);\n }\n const xScaleMin = Math.max(this.xScale.domain()[0], 0);\n\n this.bars = this.series.map(d => {\n let value = d.value as any;\n const label = this.getLabel(d);\n const formattedLabel = formatLabel(label);\n const roundEdges = this.roundEdges;\n d0Type = value > 0 ? D0Types.positive : D0Types.negative;\n\n const bar: any = {\n value,\n label,\n roundEdges,\n data: d,\n formattedLabel\n };\n\n bar.height = this.yScale.bandwidth();\n\n if (this.type === BarChartType.Standard) {\n bar.width = Math.abs(this.xScale(value) - this.xScale(xScaleMin));\n if (value < 0) {\n bar.x = this.xScale(value);\n } else {\n bar.x = this.xScale(xScaleMin);\n }\n bar.y = this.yScale(label);\n } else if (this.type === BarChartType.Stacked) {\n const offset0 = d0[d0Type];\n const offset1 = offset0 + value;\n d0[d0Type] += value;\n\n bar.width = this.xScale(offset1) - this.xScale(offset0);\n bar.x = this.xScale(offset0);\n bar.y = 0;\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n } else if (this.type === BarChartType.Normalized) {\n let offset0 = d0[d0Type];\n let offset1 = offset0 + value;\n d0[d0Type] += value;\n\n if (total > 0) {\n offset0 = (offset0 * 100) / total;\n offset1 = (offset1 * 100) / total;\n } else {\n offset0 = 0;\n offset1 = 0;\n }\n\n bar.width = this.xScale(offset1) - this.xScale(offset0);\n bar.x = this.xScale(offset0);\n bar.y = 0;\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n value = (offset1 - offset0).toFixed(2) + '%';\n }\n\n if (this.colors.scaleType === ScaleType.Ordinal) {\n bar.color = this.colors.getColor(label);\n } else {\n if (this.type === BarChartType.Standard) {\n bar.color = this.colors.getColor(value);\n bar.gradientStops = this.colors.getLinearGradientStops(value);\n } else {\n bar.color = this.colors.getColor(bar.offset1);\n bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n }\n }\n\n let tooltipLabel = formattedLabel;\n bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n if (this.seriesName !== null && this.seriesName !== undefined) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n bar.data.series = this.seriesName;\n bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n }\n\n bar.tooltipText = this.tooltipDisabled\n ? undefined\n : `\n ${escapeLabel(tooltipLabel)}\n ${\n this.dataLabelFormatting ? this.dataLabelFormatting(value) : value.toLocaleString()\n }\n `;\n\n return bar;\n });\n\n this.updateDataLabels();\n }\n\n updateDataLabels(): void {\n if (this.type === BarChartType.Stacked) {\n this.barsForDataLabels = [];\n const section: any = {};\n section.series = this.seriesName;\n const totalPositive = this.series.map(d => d.value).reduce((sum, d) => (d > 0 ? sum + d : sum), 0);\n const totalNegative = this.series.map(d => d.value).reduce((sum, d) => (d < 0 ? sum + d : sum), 0);\n section.total = totalPositive + totalNegative;\n section.x = 0;\n section.y = 0;\n // if total is positive then we show it on the right, otherwise on the left\n if (section.total > 0) {\n section.width = this.xScale(totalPositive);\n } else {\n section.width = this.xScale(totalNegative);\n }\n section.height = this.yScale.bandwidth();\n this.barsForDataLabels.push(section);\n } else {\n this.barsForDataLabels = this.series.map(d => {\n const section: any = {};\n section.series = this.seriesName ?? d.label;\n section.total = d.value;\n section.x = this.xScale(0);\n section.y = this.yScale(d.label);\n section.width = this.xScale(section.total) - this.xScale(0);\n section.height = this.yScale.bandwidth();\n return section;\n });\n }\n }\n\n updateTooltipSettings(): void {\n this.tooltipPlacement = this.tooltipDisabled ? undefined : PlacementTypes.Top;\n this.tooltipType = this.tooltipDisabled ? undefined : StyleTypes.tooltip;\n }\n\n isActive(entry: DataItem): boolean {\n if (!this.activeEntries) return false;\n\n const item = this.activeEntries.find(active => {\n return entry.name === active.name && entry.value === active.value;\n });\n\n return item !== undefined;\n }\n\n getLabel(dataItem: DataItem): StringOrNumberOrDate {\n if (dataItem.label) {\n return dataItem.label;\n }\n return dataItem.name;\n }\n\n trackBy(index: number, bar: Bar): string {\n return bar.label;\n }\n\n trackDataLabelBy(index: number, barLabel: any): string {\n return index + '#' + barLabel.series + '#' + barLabel.total;\n }\n\n click(data: DataItem): void {\n this.select.emit(data);\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n ChangeDetectionStrategy,\n TemplateRef,\n PLATFORM_ID,\n Inject\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { DataItem, StringOrNumberOrDate } from '../models/chart-data.model';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { ColorHelper } from '../common/color.helper';\nimport { BarChartType } from './types/bar-chart-type.enum';\nimport { D0Types } from './types/d0-type.enum';\nimport { Bar } from './types/bar.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'g[ngx-charts-series-vertical]',\n template: `\n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ]\n})\nexport class SeriesVerticalComponent implements OnChanges {\n @Input() dims: ViewDimensions;\n @Input() type: BarChartType = BarChartType.Standard;\n @Input() series: DataItem[];\n @Input() xScale;\n @Input() yScale;\n @Input() colors: ColorHelper;\n @Input() gradient: boolean;\n @Input() activeEntries: DataItem[];\n @Input() seriesName: StringOrNumberOrDate;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n @Input() roundEdges: boolean;\n @Input() animations: boolean = true;\n @Input() showDataLabel: boolean = false;\n @Input() dataLabelFormatting: any;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n @Output() dataLabelHeightChanged = new EventEmitter();\n\n tooltipPlacement: PlacementTypes;\n tooltipType: StyleTypes;\n\n bars: Bar[];\n barsForDataLabels: Array<{ x: number; y: number; width: number; height: number; total: number; series: string }> = [];\n\n barOrientation = BarOrientation;\n\n isSSR = false;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any) {}\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n ngOnChanges(changes): void {\n this.update();\n }\n\n update(): void {\n this.updateTooltipSettings();\n let width;\n if (this.series.length) {\n width = this.xScale.bandwidth();\n }\n width = Math.round(width);\n const yScaleMin = Math.max(this.yScale.domain()[0], 0);\n\n const d0 = {\n [D0Types.positive]: 0,\n [D0Types.negative]: 0\n };\n let d0Type = D0Types.positive;\n\n let total;\n if (this.type === BarChartType.Normalized) {\n total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n\n this.bars = this.series.map((d, index) => {\n let value = d.value as any;\n const label = this.getLabel(d);\n const formattedLabel = formatLabel(label);\n const roundEdges = this.roundEdges;\n d0Type = value > 0 ? D0Types.positive : D0Types.negative;\n\n const bar: any = {\n value,\n label,\n roundEdges,\n data: d,\n width,\n formattedLabel,\n height: 0,\n x: 0,\n y: 0\n };\n\n if (this.type === BarChartType.Standard) {\n bar.height = Math.abs(this.yScale(value) - this.yScale(yScaleMin));\n bar.x = this.xScale(label);\n\n if (value < 0) {\n bar.y = this.yScale(0);\n } else {\n bar.y = this.yScale(value);\n }\n } else if (this.type === BarChartType.Stacked) {\n const offset0 = d0[d0Type];\n const offset1 = offset0 + value;\n d0[d0Type] += value;\n\n bar.height = this.yScale(offset0) - this.yScale(offset1);\n bar.x = 0;\n bar.y = this.yScale(offset1);\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n } else if (this.type === BarChartType.Normalized) {\n let offset0 = d0[d0Type];\n let offset1 = offset0 + value;\n d0[d0Type] += value;\n\n if (total > 0) {\n offset0 = (offset0 * 100) / total;\n offset1 = (offset1 * 100) / total;\n } else {\n offset0 = 0;\n offset1 = 0;\n }\n\n bar.height = this.yScale(offset0) - this.yScale(offset1);\n bar.x = 0;\n bar.y = this.yScale(offset1);\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n value = (offset1 - offset0).toFixed(2) + '%';\n }\n\n if (this.colors.scaleType === ScaleType.Ordinal) {\n bar.color = this.colors.getColor(label);\n } else {\n if (this.type === BarChartType.Standard) {\n bar.color = this.colors.getColor(value);\n bar.gradientStops = this.colors.getLinearGradientStops(value);\n } else {\n bar.color = this.colors.getColor(bar.offset1);\n bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n }\n }\n\n let tooltipLabel = formattedLabel;\n bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n if (this.seriesName !== null && this.seriesName !== undefined) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n bar.data.series = this.seriesName;\n bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n }\n\n bar.tooltipText = this.tooltipDisabled\n ? undefined\n : `\n ${escapeLabel(tooltipLabel)}\n ${\n this.dataLabelFormatting ? this.dataLabelFormatting(value) : value.toLocaleString()\n }\n `;\n\n return bar;\n });\n\n this.updateDataLabels();\n }\n\n updateDataLabels(): void {\n if (this.type === BarChartType.Stacked) {\n this.barsForDataLabels = [];\n const section: any = {};\n section.series = this.seriesName;\n const totalPositive = this.series.map(d => d.value).reduce((sum, d) => (d > 0 ? sum + d : sum), 0);\n const totalNegative = this.series.map(d => d.value).reduce((sum, d) => (d < 0 ? sum + d : sum), 0);\n section.total = totalPositive + totalNegative;\n section.x = 0;\n section.y = 0;\n if (section.total > 0) {\n section.height = this.yScale(totalPositive);\n } else {\n section.height = this.yScale(totalNegative);\n }\n section.width = this.xScale.bandwidth();\n this.barsForDataLabels.push(section);\n } else {\n this.barsForDataLabels = this.series.map(d => {\n const section: any = {};\n section.series = this.seriesName ?? d.label;\n section.total = d.value;\n section.x = this.xScale(d.label);\n section.y = this.yScale(0);\n section.height = this.yScale(section.total) - this.yScale(0);\n section.width = this.xScale.bandwidth();\n return section;\n });\n }\n }\n\n updateTooltipSettings(): void {\n this.tooltipPlacement = this.tooltipDisabled ? undefined : PlacementTypes.Top;\n this.tooltipType = this.tooltipDisabled ? undefined : StyleTypes.tooltip;\n }\n\n isActive(entry: DataItem): boolean {\n if (!this.activeEntries) return false;\n\n const item = this.activeEntries.find(active => {\n return entry.name === active.name && entry.value === active.value;\n });\n\n return item !== undefined;\n }\n\n onClick(data: DataItem): void {\n this.select.emit(data);\n }\n\n getLabel(dataItem: DataItem): StringOrNumberOrDate {\n if (dataItem.label) {\n return dataItem.label;\n }\n return dataItem.name;\n }\n\n trackBy(index: number, bar: Bar): string {\n return bar.label;\n }\n\n trackDataLabelBy(index: number, barLabel: any): string {\n return index + '#' + barLabel.series + '#' + barLabel.total;\n }\n}\n","export enum BarChartType {\n Standard = 'standard',\n Normalized = 'normalized',\n Stacked = 'stacked'\n}\n","import { DataItem } from '../../models/chart-data.model';\nimport { Gradient } from '../../common/types/gradient.interface';\n\nexport interface Bar {\n ariaLabel: string;\n color: string;\n data: DataItem;\n formattedLabel: string;\n gradientStops: Gradient[];\n height: number;\n label: string;\n roundEdges: boolean;\n tooltipText: string;\n value: number;\n width: number;\n x: number;\n y: number;\n}\n","export enum D0Types {\n positive = 'positive',\n negative = 'negative'\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { ColorHelper } from '../common/color.helper';\nimport { BoxChartMultiSeries, BoxChartSeries, IBoxModel, StringOrNumberOrDate } from '../models/chart-data.model';\nimport { scaleLinear, ScaleLinear, scaleBand, ScaleBand } from 'd3-scale';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { LegendPosition, LegendOptions } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-box-chart',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class BoxChartComponent extends BaseChartComponent {\n /** Show or hide the legend. */\n @Input() legend: boolean = false;\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() legendTitle: string = 'Legend';\n /** I think it is better to handle legend options as single Input object of type ILegendOptions */\n @Input() legendOptionsConfig: LegendOptions;\n @Input() showGridLines: boolean = true;\n @Input() xAxis: boolean = true;\n @Input() yAxis: boolean = true;\n @Input() showXAxisLabel: boolean = true;\n @Input() showYAxisLabel: boolean = true;\n @Input() roundDomains: boolean = false;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() roundEdges: boolean = true;\n @Input() strokeColor: string = '#FFFFFF';\n @Input() strokeWidth: number = 2;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef;\n\n /** Input Data, this came from Base Chart Component. */\n results: BoxChartMultiSeries;\n /** Chart Dimensions, this came from Base Chart Component. */\n dims: ViewDimensions;\n /** Color data. */\n colors: ColorHelper;\n /** Transform string css attribute for the chart container */\n transform: string;\n\n /** Chart Margins (For each side, counterclock wise). */\n margin: [number, number, number, number] = [10, 20, 10, 20];\n\n /** Legend Options object to handle positioning, title, colors and domain. */\n legendOptions: LegendOptions;\n\n xScale: ScaleBand;\n yScale: ScaleLinear;\n xDomain: StringOrNumberOrDate[];\n yDomain: number[];\n seriesDomain: string[];\n /** Chart X axis dimension. */\n xAxisHeight: number = 0;\n /** Chart Y axis dimension. */\n yAxisWidth: number = 0;\n\n trackBy(index: number, item: BoxChartSeries): StringOrNumberOrDate {\n return item.name;\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendPosition: this.legendPosition\n });\n\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.setScales();\n this.setColors();\n\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n setColors(): void {\n let domain: string[] | number[] = [];\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n setScales() {\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n }\n\n getXScale(domain: Array, width: number): ScaleBand {\n const scale = scaleBand()\n .domain(domain.map(d => d.toString()))\n .rangeRound([0, width])\n .padding(0.5);\n\n return scale;\n }\n\n getYScale(domain: number[], height: number): ScaleLinear {\n const scale = scaleLinear().domain(domain).range([height, 0]);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getUniqueBoxChartXDomainValues(results: BoxChartMultiSeries) {\n const valueSet = new Set();\n for (const result of results) {\n valueSet.add(result.name);\n }\n return Array.from(valueSet);\n }\n\n getXDomain(): Array {\n let domain: Array = [];\n const values: Array = this.getUniqueBoxChartXDomainValues(this.results);\n let min: number;\n let max: number;\n if (typeof values[0] === 'string') {\n domain = values.map(val => val.toString());\n } else if (typeof values[0] === 'number') {\n const mappedValues = values.map(v => Number(v));\n min = Math.min(...mappedValues);\n max = Math.max(...mappedValues);\n domain = [min, max];\n } else {\n const mappedValues = values.map(v => Number(new Date(v)));\n min = Math.min(...mappedValues);\n max = Math.max(...mappedValues);\n domain = [new Date(min), new Date(max)];\n }\n return domain;\n }\n\n getYDomain(): number[] {\n const domain: Array = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n }\n }\n\n const values = [...domain];\n const mappedValues = values.map(v => Number(v));\n\n const min: number = Math.min(...mappedValues);\n const max: number = Math.max(...mappedValues);\n\n return [min, max];\n }\n\n getSeriesDomain(): string[] {\n return this.results.map(d => `${d.name}`);\n }\n\n updateYAxisWidth({ width }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onClick(data: IBoxModel): void {\n this.select.emit(data);\n }\n\n onActivate(data: IBoxModel): void {\n this.activate.emit(data);\n }\n\n onDeactivate(data: IBoxModel): void {\n this.deactivate.emit(data);\n }\n\n private getLegendOptions(): LegendOptions {\n const legendOpts: LegendOptions = {\n scaleType: this.schemeType,\n colors: this.colors,\n domain: [],\n position: this.legendPosition,\n title: this.legendTitle\n };\n if (this.schemeType === ScaleType.Ordinal) {\n legendOpts.domain = this.xDomain;\n legendOpts.colors = this.colors;\n } else {\n legendOpts.domain = this.yDomain;\n legendOpts.colors = this.colors.scale;\n }\n return legendOpts;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { BoxChartComponent } from './box-chart.component';\nimport { BoxSeriesComponent } from './box-series.component';\nimport { BoxComponent } from './box.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [BoxChartComponent, BoxSeriesComponent, BoxComponent],\n exports: [BoxChartComponent, BoxSeriesComponent, BoxComponent]\n})\nexport class BoxChartModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { min, max, quantile } from 'd3-array';\nimport { ScaleLinear, ScaleBand } from 'd3-scale';\nimport { IBoxModel, BoxChartSeries, DataItem } from '../models/chart-data.model';\nimport { IVector2D } from '../models/coordinates.model';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { ColorHelper } from '../common/color.helper';\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'g[ngx-charts-box-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ]\n})\nexport class BoxSeriesComponent implements OnChanges {\n @Input() dims: ViewDimensions;\n @Input() series: BoxChartSeries;\n @Input() xScale: ScaleBand;\n @Input() yScale: ScaleLinear;\n @Input() colors: ColorHelper;\n @Input() animations: boolean = true;\n @Input() strokeColor: string;\n @Input() strokeWidth: number;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n @Input() tooltipPlacement: PlacementTypes;\n @Input() tooltipType: StyleTypes;\n @Input() roundEdges: boolean;\n @Input() gradient: boolean = false;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n box: IBoxModel;\n counts: DataItem[];\n quartiles: [number, number, number];\n whiskers: [number, number];\n lineCoordinates: [IVector2D, IVector2D, IVector2D, IVector2D];\n tooltipTitle: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n onClick(data: IBoxModel): void {\n this.select.emit(data);\n }\n\n update(): void {\n this.updateTooltipSettings();\n const width = this.series && this.series.series.length ? Math.round(this.xScale.bandwidth()) : null;\n const seriesName = this.series.name;\n\n // Calculate Quantile and Whiskers for each box serie.\n this.counts = this.series.series;\n\n const mappedCounts = this.counts.map(serie => Number(serie.value));\n this.whiskers = [min(mappedCounts), max(mappedCounts)];\n\n // We get the group count and must sort it in order to retrieve quantiles.\n const groupCounts = this.counts.map(item => item.value).sort((a, b) => Number(a) - Number(b));\n this.quartiles = this.getBoxQuantiles(groupCounts);\n this.lineCoordinates = this.getLinesCoordinates(seriesName.toString(), this.whiskers, this.quartiles, width);\n\n const value = this.quartiles[1];\n const formattedLabel = formatLabel(seriesName);\n const box: IBoxModel = {\n value,\n data: this.counts,\n label: seriesName,\n formattedLabel,\n width,\n height: 0,\n x: 0,\n y: 0,\n roundEdges: this.roundEdges,\n quartiles: this.quartiles,\n lineCoordinates: this.lineCoordinates\n };\n\n box.height = Math.abs(this.yScale(this.quartiles[0]) - this.yScale(this.quartiles[2]));\n box.x = this.xScale(seriesName.toString());\n box.y = this.yScale(this.quartiles[2]);\n box.ariaLabel = formattedLabel + ' - Median: ' + value.toLocaleString();\n\n if (this.colors.scaleType === ScaleType.Ordinal) {\n box.color = this.colors.getColor(seriesName);\n } else {\n box.color = this.colors.getColor(this.quartiles[1]);\n box.gradientStops = this.colors.getLinearGradientStops(this.quartiles[0], this.quartiles[2]);\n }\n\n const tooltipLabel = formattedLabel;\n const formattedTooltipLabel = `\n ${escapeLabel(tooltipLabel)}\n \n • Q1: ${this.quartiles[0]} • Q2: ${this.quartiles[1]} • Q3: ${this.quartiles[2]}
\n • Min: ${this.whiskers[0]} • Max: ${this.whiskers[1]}\n
`;\n\n box.tooltipText = this.tooltipDisabled ? undefined : formattedTooltipLabel;\n this.tooltipTitle = this.tooltipDisabled ? undefined : box.tooltipText;\n\n this.box = box;\n }\n\n getBoxQuantiles(inputData: Array): [number, number, number] {\n return [quantile(inputData, 0.25), quantile(inputData, 0.5), quantile(inputData, 0.75)];\n }\n\n getLinesCoordinates(\n seriesName: string,\n whiskers: [number, number],\n quartiles: [number, number, number],\n barWidth: number\n ): [IVector2D, IVector2D, IVector2D, IVector2D] {\n // The X value is not being centered, so had to sum half the width to align it.\n const commonX = this.xScale(seriesName);\n const offsetX = commonX + barWidth / 2;\n\n const medianLineWidth = Math.max(barWidth + 4 * this.strokeWidth, 1);\n const whiskerLineWidth = Math.max(barWidth / 3, 1);\n\n const whiskerZero = this.yScale(whiskers[0]);\n const whiskerOne = this.yScale(whiskers[1]);\n const median = this.yScale(quartiles[1]);\n\n const topLine: IVector2D = {\n v1: { x: offsetX + whiskerLineWidth / 2, y: whiskerZero },\n v2: { x: offsetX - whiskerLineWidth / 2, y: whiskerZero }\n };\n const medianLine: IVector2D = {\n v1: { x: offsetX + medianLineWidth / 2, y: median },\n v2: { x: offsetX - medianLineWidth / 2, y: median }\n };\n const bottomLine: IVector2D = {\n v1: { x: offsetX + whiskerLineWidth / 2, y: whiskerOne },\n v2: { x: offsetX - whiskerLineWidth / 2, y: whiskerOne }\n };\n const verticalLine: IVector2D = {\n v1: { x: offsetX, y: whiskerZero },\n v2: { x: offsetX, y: whiskerOne }\n };\n return [verticalLine, topLine, medianLine, bottomLine];\n }\n\n updateTooltipSettings() {\n if (this.tooltipDisabled) {\n this.tooltipPlacement = undefined;\n this.tooltipType = undefined;\n } else {\n if (!this.tooltipPlacement) {\n this.tooltipPlacement = PlacementTypes.Top;\n }\n if (!this.tooltipType) {\n this.tooltipType = StyleTypes.tooltip;\n }\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ElementRef,\n SimpleChanges,\n OnChanges,\n ChangeDetectionStrategy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { select, BaseType } from 'd3-selection';\nimport { interpolate } from 'd3-interpolate';\nimport { easeSinInOut } from 'd3-ease';\n\nimport cloneDeep from 'clone-deep';\n\nimport { roundedRect } from '../common/shape.helper';\nimport { id } from '../utils/id';\nimport { IBoxModel } from '../models/chart-data.model';\nimport { IVector2D } from '../models/coordinates.model';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { Gradient } from '../common/types/gradient.interface';\n\ntype LineCoordinates = [IVector2D, IVector2D, IVector2D, IVector2D];\n\n@Component({\n selector: 'g[ngx-charts-box]',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BoxComponent implements OnChanges {\n @Input() strokeColor: string;\n @Input() strokeWidth: number;\n @Input() fill: string;\n @Input() data: IBoxModel;\n @Input() width: number;\n @Input() height: number;\n @Input() x: number;\n @Input() y: number;\n @Input() lineCoordinates: LineCoordinates;\n @Input() roundEdges: boolean = true;\n @Input() gradient: boolean = false;\n @Input() gradientStops: Gradient[];\n @Input() offset: number = 0;\n @Input() isActive: boolean = false;\n @Input() animations: boolean = true;\n @Input() ariaLabel: string;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n BarOrientation = BarOrientation;\n\n nativeElm: any;\n\n // Path related properties.\n oldPath: string;\n boxPath: string;\n oldLineCoordinates: LineCoordinates;\n\n // Color related properties.\n gradientId: string;\n gradientFill: string;\n initialized: boolean = false;\n hasGradient: boolean = false;\n hideBar: boolean = false;\n\n /** Mask Path to cut the line on the box part. */\n maskLine: string;\n /** Mask Path Id to keep track of the mask element */\n maskLineId: string;\n\n boxStrokeWidth: number;\n whiskerStrokeWidth: number;\n medianLineWidth: number;\n\n constructor(element: ElementRef, protected cd: ChangeDetectorRef) {\n this.nativeElm = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.initialized) {\n this.loadAnimation();\n this.initialized = true;\n } else {\n this.update();\n }\n }\n\n update(): void {\n this.boxStrokeWidth = Math.max(this.strokeWidth, 1);\n this.whiskerStrokeWidth = Math.max(this.strokeWidth / 2, 1);\n this.medianLineWidth = 1.5 * this.strokeWidth;\n\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n\n if (this.gradient) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n } else {\n this.hasGradient = false;\n }\n\n this.updateLineEl();\n this.updatePathEl();\n this.checkToHideBar();\n this.maskLineId = 'mask' + id().toString();\n this.maskLine = `url(#${this.maskLineId})`;\n\n if (this.cd) {\n this.cd.markForCheck();\n }\n }\n\n loadAnimation(): void {\n this.boxPath = this.oldPath = this.getStartingPath();\n this.oldLineCoordinates = this.getStartingLineCoordinates();\n setTimeout(this.update.bind(this), 100);\n }\n\n updatePathEl(): void {\n const nodeBar = select(this.nativeElm).selectAll('.bar');\n const path = this.getPath();\n if (this.animations) {\n nodeBar\n .attr('d', this.oldPath)\n .transition()\n .ease(easeSinInOut)\n .duration(500)\n .attrTween('d', this.pathTween(path, 4));\n } else {\n nodeBar.attr('d', path);\n }\n this.oldPath = path;\n }\n\n updateLineEl(): void {\n const lineEl = select(this.nativeElm).selectAll('.bar-line');\n const lineCoordinates = this.lineCoordinates;\n const oldLineCoordinates = this.oldLineCoordinates;\n if (this.animations) {\n lineEl\n .attr('x1', (_, index) => oldLineCoordinates[index].v1.x)\n .attr('y1', (_, index) => oldLineCoordinates[index].v1.y)\n .attr('x2', (_, index) => oldLineCoordinates[index].v2.x)\n .attr('y2', (_, index) => oldLineCoordinates[index].v2.y)\n .transition()\n .ease(easeSinInOut)\n .duration(500)\n .attr('x1', (_, index) => lineCoordinates[index].v1.x)\n .attr('y1', (_, index) => lineCoordinates[index].v1.y)\n .attr('x2', (_, index) => lineCoordinates[index].v2.x)\n .attr('y2', (_, index) => lineCoordinates[index].v2.y);\n } else {\n lineEl\n .attr('x1', (_, index) => lineCoordinates[index].v1.x)\n .attr('y1', (_, index) => lineCoordinates[index].v1.y)\n .attr('x2', (_, index) => lineCoordinates[index].v2.x)\n .attr('y2', (_, index) => lineCoordinates[index].v2.y);\n }\n this.oldLineCoordinates = [...lineCoordinates];\n }\n\n /**\n * See [D3 Selections](https://www.d3indepth.com/selections/)\n * @param d The joined data.\n * @param index The index of the element within the selection\n * @param node The node element (Line).\n */\n lineTween(attr: string, d: any, index: number, node: BaseType[] | ArrayLike) {\n const nodeLineEl = node[index] as SVGLineElement;\n return nodeLineEl[attr].baseVal.value;\n }\n\n // TODO: Refactor into another .ts file if https://github.com/swimlane/ngx-charts/pull/1179 gets merged.\n pathTween(d1: string, precision: number) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const path0 = this;\n const path1 = this.cloneNode();\n path1.setAttribute('d', d1);\n const n0 = path0?.getTotalLength();\n const n1 = path1?.getTotalLength();\n // Uniform sampling of distance based on specified precision.\n const distances = [0];\n let i = 0;\n const dt = precision / Math.max(n0, n1);\n while (i < 1) {\n distances.push(i);\n i += dt;\n }\n distances.push(1);\n\n // Compute point-interpolators at each distance.\n const points = distances.map((t: number) => {\n const p0 = path0.getPointAtLength(t * n0);\n const p1 = path1.getPointAtLength(t * n1);\n return interpolate([p0.x, p0.y], [p1.x, p1.y]);\n });\n\n // 't': T is the fraction of time (between 0 and 1) since the transition began.\n return (t: any) => {\n return t < 1 ? 'M' + points.map((p: (t: number) => any[]) => p(t)).join('L') : d1;\n };\n };\n }\n\n getStartingPath(): string {\n if (!this.animations) {\n return this.getPath();\n }\n\n const radius = this.roundEdges ? 1 : 0;\n const { x, y } = this.lineCoordinates[2].v1;\n\n return roundedRect(x - this.width, y - 1, this.width, 2, radius, this.edges);\n }\n\n getPath(): string {\n const radius = this.getRadius();\n let path = '';\n\n path = roundedRect(this.x, this.y, this.width, this.height, Math.min(this.height, radius), this.edges);\n\n return path;\n }\n\n getStartingLineCoordinates(): LineCoordinates {\n if (!this.animations) {\n return [...this.lineCoordinates];\n }\n\n const lineCoordinates: LineCoordinates = cloneDeep(this.lineCoordinates);\n\n lineCoordinates[1].v1.y = lineCoordinates[1].v2.y = lineCoordinates[3].v1.y = lineCoordinates[3].v2.y = lineCoordinates[0].v1.y = lineCoordinates[0].v2.y =\n lineCoordinates[2].v1.y;\n\n return lineCoordinates;\n }\n\n getRadius(): number {\n let radius = 0;\n\n if (this.roundEdges && this.height > 5 && this.width > 5) {\n radius = Math.floor(Math.min(5, this.height / 2, this.width / 2));\n }\n\n return radius;\n }\n\n getGradient(): Gradient[] {\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.getStartOpacity()\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n\n getStartOpacity(): number {\n if (this.roundEdges) {\n return 0.2;\n } else {\n return 0.5;\n }\n }\n\n get edges(): boolean[] {\n let edges: [boolean, boolean, boolean, boolean] = [false, false, false, false];\n if (this.roundEdges) {\n edges = [true, true, true, true];\n }\n return edges;\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.activate.emit(this.data);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.deactivate.emit(this.data);\n }\n\n private checkToHideBar(): void {\n this.hideBar = this.noBarWhenZero && this.height === 0;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { getScaleType } from '../common/domain.helper';\nimport { getDomain, getScale } from './bubble-chart.utils';\nimport { id } from '../utils/id';\nimport { BubbleChartSeries } from '../models/chart-data.model';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'ngx-charts-bubble-chart',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(\n 500,\n style({\n opacity: 0\n })\n )\n ])\n ])\n ]\n})\nexport class BubbleChartComponent extends BaseChartComponent {\n @Input() showGridLines: boolean = true;\n @Input() legend = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean = true;\n @Input() yAxis: boolean = true;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() roundDomains: boolean = false;\n @Input() maxRadius: number = 10;\n @Input() minRadius: number = 3;\n @Input() autoScale: boolean;\n @Input() schemeType: ScaleType = ScaleType.Ordinal;\n @Input() tooltipDisabled: boolean = false;\n @Input() xScaleMin: number;\n @Input() xScaleMax: number;\n @Input() yScaleMin: number;\n @Input() yScaleMax: number;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n colors: ColorHelper;\n scaleType: ScaleType = ScaleType.Linear;\n margin: number[] = [10, 20, 10, 20];\n bubblePadding: number[] = [0, 0, 0, 0];\n data: BubbleChartSeries[];\n\n legendOptions: LegendOptions;\n transform: string;\n\n clipPath: string;\n clipPathId: string;\n\n seriesDomain: number[];\n xDomain: number[];\n yDomain: number[];\n rDomain: number[];\n\n xScaleType: ScaleType;\n yScaleType: ScaleType;\n\n yScale: any;\n xScale: any;\n rScale: any;\n\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n\n activeEntries: any[] = [];\n\n isSSR = false;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n this.seriesDomain = this.results.map(d => d.name);\n this.rDomain = this.getRDomain();\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n\n this.transform = `translate(${this.dims.xOffset},${this.margin[0]})`;\n\n const colorDomain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.rDomain;\n this.colors = new ColorHelper(this.scheme, this.schemeType, colorDomain, this.customColors);\n\n this.data = this.results;\n\n this.minRadius = Math.max(this.minRadius, 1);\n this.maxRadius = Math.max(this.maxRadius, 1);\n\n this.rScale = this.getRScale(this.rDomain, [this.minRadius, this.maxRadius]);\n\n this.bubblePadding = [0, 0, 0, 0];\n this.setScales();\n\n this.bubblePadding = this.getBubblePadding();\n this.setScales();\n\n this.legendOptions = this.getLegendOptions();\n\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.deactivateAll();\n }\n\n onClick(data, series?): void {\n if (series) {\n data.series = series.name;\n }\n\n this.select.emit(data);\n }\n\n getBubblePadding(): number[] {\n let yMin = 0;\n let xMin = 0;\n let yMax = this.dims.height;\n let xMax = this.dims.width;\n\n for (const s of this.data) {\n for (const d of s.series) {\n const r = this.rScale(d.r);\n const cx = this.xScaleType === ScaleType.Linear ? this.xScale(Number(d.x)) : this.xScale(d.x);\n const cy = this.yScaleType === ScaleType.Linear ? this.yScale(Number(d.y)) : this.yScale(d.y);\n xMin = Math.max(r - cx, xMin);\n yMin = Math.max(r - cy, yMin);\n yMax = Math.max(cy + r, yMax);\n xMax = Math.max(cx + r, xMax);\n }\n }\n\n xMax = Math.max(xMax - this.dims.width, 0);\n yMax = Math.max(yMax - this.dims.height, 0);\n\n return [yMin, xMax, yMax, xMin];\n }\n\n setScales() {\n let width = this.dims.width;\n if (this.xScaleMin === undefined && this.xScaleMax === undefined) {\n width = width - this.bubblePadding[1];\n }\n let height = this.dims.height;\n if (this.yScaleMin === undefined && this.yScaleMax === undefined) {\n height = height - this.bubblePadding[2];\n }\n this.xScale = this.getXScale(this.xDomain, width);\n this.yScale = this.getYScale(this.yDomain, height);\n }\n\n getYScale(domain, height: number): any {\n return getScale(domain, [height, this.bubblePadding[0]], this.yScaleType, this.roundDomains);\n }\n\n getXScale(domain, width: number): any {\n return getScale(domain, [this.bubblePadding[3], width], this.xScaleType, this.roundDomains);\n }\n\n getRScale(domain, range): any {\n const scale = scaleLinear().range(range).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n position: this.legendPosition,\n title: undefined\n };\n\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.rDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n getXDomain(): number[] {\n const values = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.x)) {\n values.push(d.x);\n }\n }\n }\n\n this.xScaleType = getScaleType(values);\n return getDomain(values, this.xScaleType, this.autoScale, this.xScaleMin, this.xScaleMax);\n }\n\n getYDomain(): number[] {\n const values = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.y)) {\n values.push(d.y);\n }\n }\n }\n\n this.yScaleType = getScaleType(values);\n return getDomain(values, this.yScaleType, this.autoScale, this.yScaleMin, this.yScaleMax);\n }\n\n getRDomain(): [number, number] {\n let min = Infinity;\n let max = -Infinity;\n\n for (const results of this.results) {\n for (const d of results.series) {\n const value = Number(d.r) || 1;\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n\n return [min, max];\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll(): void {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n\n trackBy(index: number, item): string {\n return `${item.name}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { BubbleChartComponent } from './bubble-chart.component';\nimport { BubbleSeriesComponent } from './bubble-series.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [BubbleChartComponent, BubbleSeriesComponent],\n exports: [BubbleChartComponent, BubbleSeriesComponent]\n})\nexport class BubbleChartModule {}\n","import { ScaleLinear, scaleLinear, ScalePoint, scalePoint, ScaleTime, scaleTime } from 'd3-scale';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\nexport function getDomain(\n values: any[],\n scaleType: ScaleType,\n autoScale: boolean,\n minVal?: number,\n maxVal?: number\n): number[] {\n let domain: number[] = [];\n if (scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n if (!autoScale) {\n values.push(0);\n }\n }\n\n if (scaleType === ScaleType.Time || scaleType === ScaleType.Linear) {\n const min = minVal ? minVal : Math.min(...values);\n const max = maxVal ? maxVal : Math.max(...values);\n\n domain = [min, max];\n } else {\n domain = values;\n }\n\n return domain;\n}\n\nexport function getScale(\n domain: number[],\n range: number[],\n scaleType: ScaleType,\n roundDomains: boolean\n): ScaleTime | ScaleLinear | ScalePoint {\n switch (scaleType) {\n case ScaleType.Time:\n return scaleTime().range(range).domain(domain);\n case ScaleType.Linear: {\n const scale = scaleLinear().range(range).domain(domain);\n if (roundDomains) {\n return scale.nice();\n }\n return scale;\n }\n case ScaleType.Ordinal:\n return scalePoint()\n .range([range[0], range[1]])\n .domain(domain.map(r => r.toString()));\n default:\n return undefined;\n }\n}\n","import {\n Component,\n Input,\n Output,\n SimpleChanges,\n EventEmitter,\n OnChanges,\n ChangeDetectionStrategy,\n TemplateRef,\n PLATFORM_ID,\n Inject,\n OnInit\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BubbleChartSeries } from '../models/chart-data.model';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'g[ngx-charts-bubble-series]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'scale(0)'\n }),\n animate(250, style({ opacity: 1, transform: 'scale(1)' }))\n ])\n ])\n ]\n})\nexport class BubbleSeriesComponent implements OnChanges, OnInit {\n @Input() data: BubbleChartSeries;\n @Input() xScale;\n @Input() yScale;\n @Input() rScale;\n @Input() xScaleType: ScaleType;\n @Input() yScaleType: ScaleType;\n @Input() colors: ColorHelper;\n @Input() visibleValue;\n @Input() activeEntries: any[];\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n\n areaPath: any;\n circles: any[]; // TODO type this\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n isSSR = false;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any) {}\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.circles = this.getCircles();\n }\n\n getCircles(): any[] {\n const seriesName = this.data.name;\n\n return this.data.series\n .map((d, i) => {\n if (typeof d.y !== 'undefined' && typeof d.x !== 'undefined') {\n const y = d.y;\n const x = d.x;\n const r = d.r;\n\n const radius = this.rScale(r || 1);\n const tooltipLabel = formatLabel(d.name);\n\n const cx = this.xScaleType === ScaleType.Linear ? this.xScale(Number(x)) : this.xScale(x);\n const cy = this.yScaleType === ScaleType.Linear ? this.yScale(Number(y)) : this.yScale(y);\n\n const color =\n this.colors.scaleType === ScaleType.Linear ? this.colors.getColor(r) : this.colors.getColor(seriesName);\n\n const isActive = !this.activeEntries.length ? true : this.isActive({ name: seriesName });\n const opacity = isActive ? 1 : 0.3;\n\n const data = Object.assign({}, d, {\n series: seriesName,\n name: d.name,\n value: d.y,\n x: d.x,\n radius: d.r\n });\n\n return {\n data,\n x,\n y,\n r,\n classNames: [`circle-data-${i}`],\n value: y,\n label: x,\n cx,\n cy,\n radius,\n tooltipLabel,\n color,\n opacity,\n seriesName,\n isActive,\n transform: `translate(${cx},${cy})`\n };\n }\n })\n .filter(circle => circle !== undefined);\n }\n\n getTooltipText(circle): string {\n const hasRadius = typeof circle.r !== 'undefined';\n const hasTooltipLabel = circle.tooltipLabel && circle.tooltipLabel.length;\n const hasSeriesName = circle.seriesName && circle.seriesName.length;\n\n const radiusValue = hasRadius ? formatLabel(circle.r) : '';\n const xAxisLabel = this.xAxisLabel && this.xAxisLabel !== '' ? `${this.xAxisLabel}:` : '';\n const yAxisLabel = this.yAxisLabel && this.yAxisLabel !== '' ? `${this.yAxisLabel}:` : '';\n const x = formatLabel(circle.x);\n const y = formatLabel(circle.y);\n const name =\n hasSeriesName && hasTooltipLabel\n ? `${circle.seriesName} • ${circle.tooltipLabel}`\n : circle.seriesName + circle.tooltipLabel;\n const tooltipTitle =\n hasSeriesName || hasTooltipLabel ? `${escapeLabel(name)}` : '';\n\n return `\n ${tooltipTitle}\n \n ${escapeLabel(x)}
\n ${escapeLabel(y)}\n
\n \n ${escapeLabel(radiusValue)}\n \n `;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n\n isVisible(circle): boolean {\n if (this.activeEntries.length > 0) {\n return this.isActive({ name: circle.seriesName });\n }\n\n return circle.opacity !== 0;\n }\n\n activateCircle(circle): void {\n circle.barVisible = true;\n this.activate.emit({ name: this.data.name });\n }\n\n deactivateCircle(circle): void {\n circle.barVisible = false;\n this.deactivate.emit({ name: this.data.name });\n }\n\n trackBy(index, circle): string {\n return `${circle.data.series} ${circle.data.name}`;\n }\n}\n","import { Component, Input, Output, EventEmitter, ElementRef, OnChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { select } from 'd3-selection';\nimport { id } from '../utils/id';\nimport { AreaChartSeries } from '../models/chart-data.model';\nimport { BarOrientation } from './types/bar-orientation.enum';\nimport { Gradient } from './types/gradient.interface';\n\n@Component({\n selector: 'g[ngx-charts-area]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AreaComponent implements OnChanges {\n @Input() data: AreaChartSeries;\n @Input() path: string;\n @Input() startingPath: string;\n @Input() fill: string;\n @Input() opacity: number = 1;\n @Input() startOpacity: number = 0.5;\n @Input() endOpacity: number = 1;\n @Input() gradient: boolean = false;\n @Input() stops: Gradient[];\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n element: HTMLElement;\n gradientId: string;\n gradientFill: string;\n areaPath: string;\n animationsLoaded: boolean = false;\n gradientStops: Gradient[];\n hasGradient: boolean = false;\n\n barOrientation = BarOrientation;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(): void {\n this.update();\n\n if (!this.animationsLoaded) {\n this.loadAnimation();\n this.animationsLoaded = true;\n }\n }\n\n update(): void {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n\n if (this.gradient || this.stops) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n } else {\n this.hasGradient = false;\n }\n\n this.updatePathEl();\n }\n\n loadAnimation(): void {\n this.areaPath = this.startingPath;\n setTimeout(this.updatePathEl.bind(this), 100);\n }\n\n updatePathEl(): void {\n const node = select(this.element).select('.area');\n\n if (this.animations) {\n node.transition().duration(750).attr('d', this.path);\n } else {\n node.attr('d', this.path);\n }\n }\n\n getGradient(): Gradient[] {\n if (this.stops) {\n return this.stops;\n }\n\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.startOpacity\n },\n {\n offset: 100,\n color: this.fill,\n opacity: this.endOpacity\n }\n ];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AxisLabelComponent } from './axis-label.component';\nimport { XAxisComponent } from './x-axis.component';\nimport { XAxisTicksComponent } from './x-axis-ticks.component';\nimport { YAxisComponent } from './y-axis.component';\nimport { YAxisTicksComponent } from './y-axis-ticks.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent],\n exports: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent]\n})\nexport class AxesModule {}\n","import { Component, Input, ElementRef, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { Orientation } from '../types/orientation.enum';\n\n@Component({\n selector: 'g[ngx-charts-axis-label]',\n template: `\n \n {{ label }}\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AxisLabelComponent implements OnChanges {\n @Input() orient: Orientation;\n @Input() label: string;\n @Input() offset: number;\n @Input() width: number;\n @Input() height: number;\n\n x: number;\n y: number;\n transform: string;\n strokeWidth: string;\n textAnchor: string;\n element: ElementRef;\n textHeight = 25;\n margin = 5;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.strokeWidth = '0.01';\n this.textAnchor = 'middle';\n this.transform = '';\n\n switch (this.orient) {\n case Orientation.Top:\n this.y = this.offset;\n this.x = this.width / 2;\n break;\n case Orientation.Bottom:\n this.y = this.offset;\n this.x = this.width / 2;\n break;\n case Orientation.Left:\n this.y = -(this.offset + this.textHeight + this.margin);\n this.x = -this.height / 2;\n this.transform = 'rotate(270)';\n break;\n case Orientation.Right:\n this.y = this.offset + this.margin;\n this.x = -this.height / 2;\n this.transform = 'rotate(270)';\n break;\n default:\n }\n }\n}\n","export function reduceTicks(ticks: any[], maxTicks: number): any[] {\n if (ticks.length > maxTicks) {\n const reduced = [];\n const modulus = Math.floor(ticks.length / maxTicks);\n for (let i = 0; i < ticks.length; i++) {\n if (i % modulus === 0) {\n reduced.push(ticks[i]);\n }\n }\n ticks = reduced;\n }\n\n return ticks;\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n ElementRef,\n ViewChild,\n SimpleChanges,\n AfterViewInit,\n ChangeDetectionStrategy,\n Inject,\n PLATFORM_ID\n} from '@angular/core';\nimport { trimLabel } from '../trim-label.helper';\nimport { reduceTicks } from './ticks.helper';\nimport { Orientation } from '../types/orientation.enum';\nimport { TextAnchor } from '../types/text-anchor.enum';\n\n@Component({\n selector: 'g[ngx-charts-x-axis-ticks]',\n template: `\n \n \n {{ tickFormat(tick) }}\n \n {{ tickTrim(tickFormat(tick)) }}\n \n \n \n\n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class XAxisTicksComponent implements OnChanges, AfterViewInit {\n @Input() scale;\n @Input() orient: Orientation;\n @Input() tickArguments: number[] = [5];\n @Input() tickValues: string[] | number[];\n @Input() tickStroke: string = '#ccc';\n @Input() trimTicks: boolean = true;\n @Input() maxTickLength: number = 16;\n @Input() tickFormatting;\n @Input() showGridLines = false;\n @Input() gridLineHeight: number;\n @Input() width: number;\n @Input() rotateTicks: boolean = true;\n\n @Output() dimensionsChanged = new EventEmitter();\n\n verticalSpacing: number = 20;\n rotateLabels: boolean = false;\n innerTickSize: number = 6;\n outerTickSize: number = 6;\n tickPadding: number = 3;\n textAnchor: TextAnchor = TextAnchor.Middle;\n maxTicksLength: number = 0;\n maxAllowedLength: number = 16;\n adjustedScale: any;\n textTransform: string;\n ticks: any[];\n tickFormat: (o: any) => any;\n height: number = 0;\n approxHeight: number = 10;\n\n @ViewChild('ticksel') ticksElement: ElementRef;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.updateDims());\n }\n\n updateDims(): void {\n if (!isPlatformBrowser(this.platformId)) {\n // for SSR, use approximate value instead of measured\n this.dimensionsChanged.emit({ height: this.approxHeight });\n return;\n }\n\n const height = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().height, 10);\n if (height !== this.height) {\n this.height = height;\n this.dimensionsChanged.emit({ height: this.height });\n setTimeout(() => this.updateDims());\n }\n }\n\n update(): void {\n const scale = this.scale;\n this.ticks = this.getTicks();\n\n if (this.tickFormatting) {\n this.tickFormat = this.tickFormatting;\n } else if (scale.tickFormat) {\n // eslint-disable-next-line prefer-spread\n this.tickFormat = scale.tickFormat.apply(scale, this.tickArguments);\n } else {\n this.tickFormat = function (d) {\n if (d.constructor.name === 'Date') {\n return d.toLocaleDateString();\n }\n return d.toLocaleString();\n };\n }\n\n const angle = this.rotateTicks ? this.getRotationAngle(this.ticks) : null;\n\n this.adjustedScale = this.scale.bandwidth\n ? function (d) {\n return this.scale(d) + this.scale.bandwidth() * 0.5;\n }\n : this.scale;\n\n this.textTransform = '';\n if (angle && angle !== 0) {\n this.textTransform = `rotate(${angle})`;\n this.textAnchor = TextAnchor.End;\n this.verticalSpacing = 10;\n } else {\n this.textAnchor = TextAnchor.Middle;\n }\n\n setTimeout(() => this.updateDims());\n }\n\n getRotationAngle(ticks: any[]): number {\n let angle = 0;\n this.maxTicksLength = 0;\n for (let i = 0; i < ticks.length; i++) {\n const tick = this.tickFormat(ticks[i]).toString();\n let tickLength = tick.length;\n if (this.trimTicks) {\n tickLength = this.tickTrim(tick).length;\n }\n\n if (tickLength > this.maxTicksLength) {\n this.maxTicksLength = tickLength;\n }\n }\n\n const len = Math.min(this.maxTicksLength, this.maxAllowedLength);\n const charWidth = 7; // need to measure this\n const wordWidth = len * charWidth;\n\n let baseWidth = wordWidth;\n const maxBaseWidth = Math.floor(this.width / ticks.length);\n\n // calculate optimal angle\n while (baseWidth > maxBaseWidth && angle > -90) {\n angle -= 30;\n baseWidth = Math.cos(angle * (Math.PI / 180)) * wordWidth;\n }\n\n this.approxHeight = Math.max(Math.abs(Math.sin(angle * (Math.PI / 180)) * wordWidth), 10);\n\n return angle;\n }\n\n getTicks(): any[] {\n let ticks;\n const maxTicks = this.getMaxTicks(20);\n const maxScaleTicks = this.getMaxTicks(100);\n\n if (this.tickValues) {\n ticks = this.tickValues;\n } else if (this.scale.ticks) {\n ticks = this.scale.ticks.apply(this.scale, [maxScaleTicks]);\n } else {\n ticks = this.scale.domain();\n ticks = reduceTicks(ticks, maxTicks);\n }\n\n return ticks;\n }\n\n getMaxTicks(tickWidth: number): number {\n return Math.floor(this.width / tickWidth);\n }\n\n tickTransform(tick: number): string {\n return 'translate(' + this.adjustedScale(tick) + ',' + this.verticalSpacing + ')';\n }\n\n gridLineTransform(): string {\n return `translate(0,${-this.verticalSpacing - 5})`;\n }\n\n tickTrim(label: string): string {\n return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n }\n}\n","import {\n Component,\n Input,\n SimpleChanges,\n Output,\n EventEmitter,\n OnChanges,\n ViewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { XAxisTicksComponent } from './x-axis-ticks.component';\nimport { Orientation } from '../types/orientation.enum';\nimport { ViewDimensions } from '../types/view-dimension.interface';\n\n@Component({\n selector: 'g[ngx-charts-x-axis]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class XAxisComponent implements OnChanges {\n @Input() xScale;\n @Input() dims: ViewDimensions;\n @Input() trimTicks: boolean;\n @Input() rotateTicks: boolean = true;\n @Input() maxTickLength: number;\n @Input() tickFormatting;\n @Input() showGridLines = false;\n @Input() showLabel: boolean;\n @Input() labelText: string;\n @Input() ticks: any[];\n @Input() xAxisTickCount: number;\n @Input() xOrient: Orientation = Orientation.Bottom;\n @Input() xAxisOffset: number = 0;\n\n @Output() dimensionsChanged = new EventEmitter();\n\n xAxisClassName: string = 'x axis';\n\n tickArguments: number[];\n transform: string;\n labelOffset: number = 0;\n fill: string = 'none';\n stroke: string = 'stroke';\n tickStroke: string = '#ccc';\n strokeWidth: string = 'none';\n padding: number = 5;\n\n readonly orientation = Orientation;\n\n @ViewChild(XAxisTicksComponent) ticksComponent: XAxisTicksComponent;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.transform = `translate(0,${this.xAxisOffset + this.padding + this.dims.height})`;\n\n if (typeof this.xAxisTickCount !== 'undefined') {\n this.tickArguments = [this.xAxisTickCount];\n }\n }\n\n emitTicksHeight({ height }): void {\n const newLabelOffset = height + 25 + 5;\n if (newLabelOffset !== this.labelOffset) {\n this.labelOffset = newLabelOffset;\n setTimeout(() => {\n this.dimensionsChanged.emit({ height });\n }, 0);\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n OnChanges,\n ElementRef,\n ViewChild,\n EventEmitter,\n AfterViewInit,\n ChangeDetectionStrategy,\n SimpleChanges,\n PLATFORM_ID,\n Inject\n} from '@angular/core';\nimport { trimLabel } from '../trim-label.helper';\nimport { reduceTicks } from './ticks.helper';\nimport { roundedRect } from '../../common/shape.helper';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Orientation } from '../types/orientation.enum';\nimport { TextAnchor } from '../types/text-anchor.enum';\n\n@Component({\n selector: 'g[ngx-charts-y-axis-ticks]',\n template: `\n \n \n {{ tickFormat(tick) }}\n \n {{ tickTrim(tickFormat(tick)) }}\n \n \n \n\n 1 && refMax && refMin && showRefLines\"\n class=\"reference-area\"\n [attr.d]=\"referenceAreaPath\"\n [attr.transform]=\"gridLineTransform()\"\n />\n \n \n \n \n \n \n\n \n \n \n \n {{ tickTrim(tickFormat(refLine.value)) }}\n \n {{ refLine.name }}\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YAxisTicksComponent implements OnChanges, AfterViewInit {\n @Input() scale;\n @Input() orient: Orientation;\n @Input() tickArguments: number[] = [5];\n @Input() tickValues: string[] | number[];\n @Input() tickStroke = '#ccc';\n @Input() trimTicks: boolean = true;\n @Input() maxTickLength: number = 16;\n @Input() tickFormatting;\n @Input() showGridLines: boolean = false;\n @Input() gridLineWidth: number;\n @Input() height: number;\n @Input() referenceLines;\n @Input() showRefLabels: boolean = false;\n @Input() showRefLines: boolean = false;\n\n @Output() dimensionsChanged = new EventEmitter();\n\n innerTickSize: number = 6;\n tickPadding: number = 3;\n tickSpacing: number;\n verticalSpacing: number = 20;\n textAnchor: TextAnchor = TextAnchor.Middle;\n dy: string;\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n adjustedScale: any;\n transform: (o: any) => string;\n tickFormat: (o: any) => string;\n ticks: any[];\n width: number = 0;\n outerTickSize: number = 6;\n rotateLabels: boolean = false;\n refMax: number;\n refMin: number;\n referenceLineLength: number = 0;\n referenceAreaPath: string;\n\n readonly Orientation = Orientation;\n\n @ViewChild('ticksel') ticksElement: ElementRef;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.updateDims());\n }\n\n updateDims(): void {\n if (!isPlatformBrowser(this.platformId)) {\n // for SSR, use approximate value instead of measured\n this.width = this.getApproximateAxisWidth();\n this.dimensionsChanged.emit({ width: this.width });\n return;\n }\n\n const width = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().width, 10);\n if (width !== this.width) {\n this.width = width;\n this.dimensionsChanged.emit({ width });\n setTimeout(() => this.updateDims());\n }\n }\n\n update(): void {\n const scale = this.scale;\n const sign = this.orient === Orientation.Top || this.orient === Orientation.Right ? -1 : 1;\n this.tickSpacing = Math.max(this.innerTickSize, 0) + this.tickPadding;\n\n this.ticks = this.getTicks();\n\n if (this.tickFormatting) {\n this.tickFormat = this.tickFormatting;\n } else if (scale.tickFormat) {\n // eslint-disable-next-line prefer-spread\n this.tickFormat = scale.tickFormat.apply(scale, this.tickArguments);\n } else {\n this.tickFormat = function (d) {\n if (d.constructor.name === 'Date') {\n return d.toLocaleDateString();\n }\n return d.toLocaleString();\n };\n }\n\n this.adjustedScale = scale.bandwidth\n ? function (d) {\n return scale(d) + scale.bandwidth() * 0.5;\n }\n : scale;\n\n if (this.showRefLines && this.referenceLines) {\n this.setReferencelines();\n }\n\n switch (this.orient) {\n case Orientation.Top:\n this.transform = function (tick) {\n return 'translate(' + this.adjustedScale(tick) + ',0)';\n };\n this.textAnchor = TextAnchor.Middle;\n this.y2 = this.innerTickSize * sign;\n this.y1 = this.tickSpacing * sign;\n this.dy = sign < 0 ? '0em' : '.71em';\n break;\n case Orientation.Bottom:\n this.transform = function (tick) {\n return 'translate(' + this.adjustedScale(tick) + ',0)';\n };\n this.textAnchor = TextAnchor.Middle;\n this.y2 = this.innerTickSize * sign;\n this.y1 = this.tickSpacing * sign;\n this.dy = sign < 0 ? '0em' : '.71em';\n break;\n case Orientation.Left:\n this.transform = function (tick) {\n return 'translate(0,' + this.adjustedScale(tick) + ')';\n };\n this.textAnchor = TextAnchor.End;\n this.x2 = this.innerTickSize * -sign;\n this.x1 = this.tickSpacing * -sign;\n this.dy = '.32em';\n break;\n case Orientation.Right:\n this.transform = function (tick) {\n return 'translate(0,' + this.adjustedScale(tick) + ')';\n };\n this.textAnchor = TextAnchor.Start;\n this.x2 = this.innerTickSize * -sign;\n this.x1 = this.tickSpacing * -sign;\n this.dy = '.32em';\n break;\n default:\n }\n setTimeout(() => this.updateDims());\n }\n\n setReferencelines(): void {\n this.refMin = this.adjustedScale(\n Math.min.apply(\n null,\n this.referenceLines.map(item => item.value)\n )\n );\n this.refMax = this.adjustedScale(\n Math.max.apply(\n null,\n this.referenceLines.map(item => item.value)\n )\n );\n this.referenceLineLength = this.referenceLines.length;\n\n this.referenceAreaPath = roundedRect(0, this.refMax, this.gridLineWidth, this.refMin - this.refMax, 0, [\n false,\n false,\n false,\n false\n ]);\n }\n\n getTicks(): any[] {\n let ticks;\n const maxTicks = this.getMaxTicks(20);\n const maxScaleTicks = this.getMaxTicks(50);\n\n if (this.tickValues) {\n ticks = this.tickValues;\n } else if (this.scale.ticks) {\n ticks = this.scale.ticks.apply(this.scale, [maxScaleTicks]);\n } else {\n ticks = this.scale.domain();\n ticks = reduceTicks(ticks, maxTicks);\n }\n\n return ticks;\n }\n\n getMaxTicks(tickHeight: number): number {\n return Math.floor(this.height / tickHeight);\n }\n\n tickTransform(tick: number): string {\n return `translate(${this.adjustedScale(tick)},${this.verticalSpacing})`;\n }\n\n gridLineTransform(): string {\n return `translate(5,0)`;\n }\n\n tickTrim(label: string): string {\n return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n }\n\n getApproximateAxisWidth(): number {\n const maxChars = Math.max(...this.ticks.map(t => this.tickTrim(this.tickFormat(t)).length));\n const charWidth = 7;\n return maxChars * charWidth;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n ViewChild,\n SimpleChanges,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { YAxisTicksComponent } from './y-axis-ticks.component';\nimport { Orientation } from '../types/orientation.enum';\nimport { ViewDimensions } from '../types/view-dimension.interface';\n\n@Component({\n selector: 'g[ngx-charts-y-axis]',\n template: `\n \n \n\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YAxisComponent implements OnChanges {\n @Input() yScale;\n @Input() dims: ViewDimensions;\n @Input() trimTicks: boolean;\n @Input() maxTickLength: number;\n @Input() tickFormatting;\n @Input() ticks: any[];\n @Input() showGridLines: boolean = false;\n @Input() showLabel: boolean;\n @Input() labelText: string;\n @Input() yAxisTickCount: any;\n @Input() yOrient: Orientation = Orientation.Left;\n @Input() referenceLines;\n @Input() showRefLines: boolean;\n @Input() showRefLabels: boolean;\n @Input() yAxisOffset: number = 0;\n @Output() dimensionsChanged = new EventEmitter();\n\n yAxisClassName: string = 'y axis';\n tickArguments: number[];\n offset: number;\n transform: string;\n labelOffset: number = 15;\n fill: string = 'none';\n stroke: string = '#CCC';\n tickStroke: string = '#CCC';\n strokeWidth: number = 1;\n padding: number = 5;\n\n @ViewChild(YAxisTicksComponent) ticksComponent: YAxisTicksComponent;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.offset = -(this.yAxisOffset + this.padding);\n if (this.yOrient === Orientation.Right) {\n this.labelOffset = 65;\n this.transform = `translate(${this.offset + this.dims.width} , 0)`;\n } else {\n this.transform = `translate(${this.offset} , 0)`;\n }\n\n if (this.yAxisTickCount !== undefined) {\n this.tickArguments = [this.yAxisTickCount];\n }\n }\n\n emitTicksWidth({ width }): void {\n if (width !== this.labelOffset && this.yOrient === Orientation.Right) {\n this.labelOffset = width + this.labelOffset;\n setTimeout(() => {\n this.dimensionsChanged.emit({ width });\n }, 0);\n } else if (width !== this.labelOffset) {\n this.labelOffset = width;\n setTimeout(() => {\n this.dimensionsChanged.emit({ width });\n }, 0);\n }\n }\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport {\n ElementRef,\n NgZone,\n ChangeDetectorRef,\n Component,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n PLATFORM_ID,\n Inject,\n OnInit\n} from '@angular/core';\n\nimport { fromEvent as observableFromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { VisibilityObserver } from '../utils/visibility-observer';\nimport { isDate } from '../utils/types';\nimport { Color } from '../utils/color-sets';\nimport { ScaleType } from './types/scale-type.enum';\nimport { ViewDimensions } from './types/view-dimension.interface';\n\n@Component({\n selector: 'base-chart',\n template: `
`\n})\nexport class BaseChartComponent implements OnChanges, AfterViewInit, OnDestroy, OnInit {\n @Input() results: any;\n @Input() view: [number, number];\n @Input() scheme: string | Color = 'cool';\n @Input() schemeType: ScaleType = ScaleType.Ordinal;\n @Input() customColors: any;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n width: number;\n height: number;\n resizeSubscription: any;\n visibilityObserver: VisibilityObserver;\n\n constructor(\n protected chartElement: ElementRef,\n protected zone: NgZone,\n protected cd: ChangeDetectorRef,\n @Inject(PLATFORM_ID) public platformId: any\n ) {}\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.animations = false;\n }\n }\n\n ngAfterViewInit(): void {\n this.bindWindowResizeEvent();\n\n // listen for visibility of the element for hidden by default scenario\n this.visibilityObserver = new VisibilityObserver(this.chartElement, this.zone);\n this.visibilityObserver.visible.subscribe(this.update.bind(this));\n }\n\n ngOnDestroy(): void {\n this.unbindEvents();\n if (this.visibilityObserver) {\n this.visibilityObserver.visible.unsubscribe();\n this.visibilityObserver.destroy();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n if (this.results) {\n this.results = this.cloneData(this.results);\n } else {\n this.results = [];\n }\n\n if (this.view) {\n this.width = this.view[0];\n this.height = this.view[1];\n } else {\n const dims = this.getContainerDims();\n if (dims) {\n this.width = dims.width;\n this.height = dims.height;\n }\n }\n\n // default values if width or height are 0 or undefined\n if (!this.width) {\n this.width = 600;\n }\n\n if (!this.height) {\n this.height = 400;\n }\n\n this.width = Math.floor(this.width);\n this.height = Math.floor(this.height);\n\n if (this.cd) {\n this.cd.markForCheck();\n }\n }\n\n getContainerDims(): ViewDimensions {\n let width;\n let height;\n const hostElem = this.chartElement.nativeElement;\n\n if (isPlatformBrowser(this.platformId) && hostElem.parentNode !== null) {\n // Get the container dimensions\n const dims = hostElem.parentNode.getBoundingClientRect();\n width = dims.width;\n height = dims.height;\n }\n\n if (width && height) {\n return { width, height };\n }\n\n return null;\n }\n\n /**\n * Converts all date objects that appear as name\n * into formatted date strings\n */\n formatDates(): void {\n for (let i = 0; i < this.results.length; i++) {\n const g = this.results[i];\n g.label = g.name;\n if (isDate(g.label)) {\n g.label = g.label.toLocaleDateString();\n }\n\n if (g.series) {\n for (let j = 0; j < g.series.length; j++) {\n const d = g.series[j];\n d.label = d.name;\n if (isDate(d.label)) {\n d.label = d.label.toLocaleDateString();\n }\n }\n }\n }\n }\n\n protected unbindEvents(): void {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n\n private bindWindowResizeEvent(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const source = observableFromEvent(window, 'resize');\n const subscription = source.pipe(debounceTime(200)).subscribe(e => {\n this.update();\n if (this.cd) {\n this.cd.markForCheck();\n }\n });\n this.resizeSubscription = subscription;\n }\n\n /**\n * Clones the data into a new object\n *\n * @memberOf BaseChart\n */\n private cloneData(data): any {\n const results = [];\n\n for (const item of data) {\n const copy = {\n name: item['name']\n };\n\n if (item['value'] !== undefined) {\n copy['value'] = item['value'];\n }\n\n if (item['series'] !== undefined) {\n copy['series'] = [];\n for (const seriesItem of item['series']) {\n const seriesItemCopy = Object.assign({}, seriesItem);\n copy['series'].push(seriesItemCopy);\n }\n }\n\n if (item['extra'] !== undefined) {\n copy['extra'] = JSON.parse(JSON.stringify(item['extra']));\n }\n\n results.push(copy);\n }\n\n return results;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ChartComponent } from './charts/chart.component';\nimport { BaseChartComponent } from './base-chart.component';\nimport { AxesModule } from './axes/axes.module';\nimport { TooltipModule } from './tooltip/tooltip.module';\nimport { CircleSeriesComponent } from './circle-series.component';\nimport { CircleComponent } from './circle.component';\nimport { GridPanelComponent } from './grid-panel.component';\nimport { GridPanelSeriesComponent } from './grid-panel-series.component';\nimport { SvgLinearGradientComponent } from './svg-linear-gradient.component';\nimport { SvgRadialGradientComponent } from './svg-radial-gradient.component';\nimport { AreaComponent } from './area.component';\nimport { CountUpDirective } from './count/count.directive';\nimport { TooltipArea } from './tooltip-area.component';\nimport { Timeline } from './timeline/timeline.component';\nimport { VisibilityObserver } from '../utils/visibility-observer';\nimport { LegendComponent } from './legend/legend.component';\nimport { LegendEntryComponent } from './legend/legend-entry.component';\nimport { ScaleLegendComponent } from './legend/scale-legend.component';\nimport { AdvancedLegendComponent } from './legend/advanced-legend.component';\n\nconst COMPONENTS = [\n AreaComponent,\n BaseChartComponent,\n CountUpDirective,\n TooltipArea,\n ChartComponent,\n LegendComponent,\n LegendEntryComponent,\n ScaleLegendComponent,\n CircleComponent,\n CircleSeriesComponent,\n GridPanelComponent,\n GridPanelSeriesComponent,\n SvgLinearGradientComponent,\n SvgRadialGradientComponent,\n Timeline,\n AdvancedLegendComponent\n];\n\n@NgModule({\n imports: [CommonModule, AxesModule, TooltipModule],\n declarations: [...COMPONENTS, VisibilityObserver],\n exports: [CommonModule, AxesModule, TooltipModule, ...COMPONENTS, VisibilityObserver]\n})\nexport class ChartCommonModule {}\n","import {\n Component,\n Input,\n OnChanges,\n ChangeDetectionStrategy,\n EventEmitter,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { TooltipService } from '../tooltip/tooltip.service';\nimport { LegendOptions, LegendType, LegendPosition } from '../types/legend.model';\nimport { ScaleType } from '../types/scale-type.enum';\n\n@Component({\n providers: [TooltipService],\n selector: 'ngx-charts-chart',\n template: `\n
\n \n \n \n \n \n \n \n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChartComponent implements OnChanges {\n @Input() view: [number, number];\n @Input() showLegend: boolean = false;\n @Input() legendOptions: LegendOptions;\n @Input() legendType: LegendType;\n @Input() activeEntries: any[];\n @Input() animations: boolean = true;\n\n @Output() legendLabelClick = new EventEmitter();\n @Output() legendLabelActivate = new EventEmitter<{ name: string }>();\n @Output() legendLabelDeactivate = new EventEmitter<{ name: string }>();\n\n chartWidth: number;\n title: string;\n legendWidth: number;\n\n readonly LegendPosition = LegendPosition;\n readonly LegendType = LegendType;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n let legendColumns = 0;\n if (this.showLegend) {\n this.legendType = this.getLegendType();\n\n if (!this.legendOptions || this.legendOptions.position === LegendPosition.Right) {\n if (this.legendType === LegendType.ScaleLegend) {\n legendColumns = 1;\n } else {\n legendColumns = 2;\n }\n }\n }\n\n const chartColumns = 12 - legendColumns;\n\n this.chartWidth = Math.floor((this.view[0] * chartColumns) / 12.0);\n this.legendWidth =\n !this.legendOptions || this.legendOptions.position === LegendPosition.Right\n ? Math.floor((this.view[0] * legendColumns) / 12.0)\n : this.chartWidth;\n }\n\n getLegendType(): LegendType {\n return this.legendOptions.scaleType === ScaleType.Linear ? LegendType.ScaleLegend : LegendType.Legend;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n OnInit,\n ChangeDetectionStrategy,\n TemplateRef,\n PLATFORM_ID,\n Inject\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel, escapeLabel } from './label.helper';\nimport { id } from '../utils/id';\nimport { ColorHelper } from './color.helper';\nimport { DataItem, Series, StringOrNumberOrDate } from '../models/chart-data.model';\nimport { PlacementTypes } from './tooltip/position';\nimport { StyleTypes } from './tooltip/style.type';\nimport { BarOrientation } from './types/bar-orientation.enum';\nimport { Gradient } from './types/gradient.interface';\nimport { ScaleType } from './types/scale-type.enum';\nimport { isPlatformServer } from '@angular/common';\n\nexport enum SeriesType {\n Standard = 'standard',\n Stacked = 'stacked'\n}\n\nexport interface Circle {\n classNames: string[];\n value: string | number;\n label: string;\n data: DataItem;\n cx: number;\n cy: number;\n radius: number;\n height: number;\n tooltipLabel: string;\n color: string;\n opacity: number;\n seriesName: string;\n gradientStops: Gradient[];\n min: number;\n max: number;\n}\n\n@Component({\n selector: 'g[ngx-charts-circle-series]',\n template: `\n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0\n }),\n animate(250, style({ opacity: 1 }))\n ])\n ])\n ]\n})\nexport class CircleSeriesComponent implements OnChanges, OnInit {\n @Input() data: Series;\n @Input() type: SeriesType = SeriesType.Standard;\n @Input() xScale;\n @Input() yScale;\n @Input() colors: ColorHelper;\n @Input() scaleType: ScaleType;\n @Input() visibleValue: boolean;\n @Input() activeEntries: any[];\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter<{ name: StringOrNumberOrDate }> = new EventEmitter();\n @Output() deactivate: EventEmitter<{ name: StringOrNumberOrDate }> = new EventEmitter();\n\n areaPath: any;\n circle: Circle; // active circle\n barVisible: boolean = false;\n gradientId: string;\n gradientFill: string;\n\n barOrientation = BarOrientation;\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n isSSR = false;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any) {}\n\n ngOnInit() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n ngOnChanges(): void {\n this.update();\n }\n\n update(): void {\n this.circle = this.getActiveCircle();\n }\n\n getActiveCircle(): Circle {\n const indexActiveDataPoint = this.data.series.findIndex(d => {\n const label = d.name;\n return label && this.visibleValue && label.toString() === this.visibleValue.toString() && d.value !== undefined;\n });\n\n if (indexActiveDataPoint === -1) {\n // No valid point is 'active/hovered over' at this moment.\n return undefined;\n }\n\n return this.mapDataPointToCircle(this.data.series[indexActiveDataPoint], indexActiveDataPoint);\n }\n\n mapDataPointToCircle(d: any, i: number): Circle {\n const seriesName = this.data.name as string;\n\n const value = d.value;\n const label = d.name;\n const tooltipLabel = formatLabel(label);\n\n let cx;\n if (this.scaleType === ScaleType.Time) {\n cx = this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n cx = this.xScale(Number(label));\n } else {\n cx = this.xScale(label);\n }\n\n const cy = this.yScale(this.type === SeriesType.Standard ? value : d.d1);\n const radius = 5;\n const height = this.yScale.range()[0] - cy;\n const opacity = 1;\n\n let color;\n if (this.colors.scaleType === ScaleType.Linear) {\n if (this.type === SeriesType.Standard) {\n color = this.colors.getColor(value);\n } else {\n color = this.colors.getColor(d.d1);\n }\n } else {\n color = this.colors.getColor(seriesName);\n }\n\n const data = Object.assign({}, d, {\n series: seriesName,\n value,\n name: label\n });\n\n return {\n classNames: [`circle-data-${i}`],\n value,\n label,\n data,\n cx,\n cy,\n radius,\n height,\n tooltipLabel,\n color,\n opacity,\n seriesName,\n gradientStops: this.getGradientStops(color),\n min: d.min,\n max: d.max\n };\n }\n\n getTooltipText({\n tooltipLabel,\n value,\n seriesName,\n min,\n max\n }: {\n tooltipLabel: string;\n value: any;\n seriesName: string;\n min: number;\n max: number;\n }): string {\n return `\n ${escapeLabel(seriesName)} • ${escapeLabel(tooltipLabel)}\n ${value.toLocaleString()}${this.getTooltipMinMaxText(min, max)}\n `;\n }\n\n getTooltipMinMaxText(min: number, max: number): string {\n if (min !== undefined || max !== undefined) {\n let result = ' (';\n if (min !== undefined) {\n if (max === undefined) {\n result += '≥';\n }\n result += min.toLocaleString();\n if (max !== undefined) {\n result += ' - ';\n }\n } else if (max !== undefined) {\n result += '≤';\n }\n if (max !== undefined) {\n result += max.toLocaleString();\n }\n result += ')';\n return result;\n } else {\n return '';\n }\n }\n\n getGradientStops(color: string): Gradient[] {\n return [\n {\n offset: 0,\n color,\n opacity: 0.2\n },\n {\n offset: 100,\n color,\n opacity: 1\n }\n ];\n }\n\n onClick(data: DataItem): void {\n this.select.emit(data);\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n\n activateCircle(): void {\n this.barVisible = true;\n this.activate.emit({ name: this.data.name });\n }\n\n deactivateCircle(): void {\n this.barVisible = false;\n this.circle.opacity = 0;\n this.deactivate.emit({ name: this.data.name });\n }\n}\n","import {\n Component,\n Input,\n SimpleChanges,\n Output,\n EventEmitter,\n OnChanges,\n ChangeDetectionStrategy,\n HostListener\n} from '@angular/core';\n\n@Component({\n selector: 'g[ngx-charts-circle]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CircleComponent implements OnChanges {\n @Input() cx: number;\n @Input() cy: number;\n @Input() r: number;\n @Input() fill: string;\n @Input() stroke: string;\n @Input() data: number | string;\n @Input() classNames: string[] | string;\n @Input() circleOpacity: number;\n @Input() pointerEvents: string;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @HostListener('click')\n onClick() {\n this.select.emit(this.data);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.activate.emit(this.data);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.deactivate.emit(this.data);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classNames = Array.isArray(this.classNames) ? this.classNames.join(' ') : '';\n this.classNames += 'circle';\n }\n}\n","import { range } from 'd3-array';\nimport {\n scaleBand,\n ScaleLinear,\n scaleLinear,\n ScaleOrdinal,\n scaleOrdinal,\n ScaleQuantile,\n scaleQuantile\n} from 'd3-scale';\n\nimport { Color, colorSets } from '../utils/color-sets';\nimport { StringOrNumberOrDate } from '../models/chart-data.model';\nimport { ScaleType } from './types/scale-type.enum';\nimport { Gradient } from './types/gradient.interface';\n\nexport class ColorHelper {\n scale: any;\n scaleType: ScaleType;\n colorDomain: string[];\n domain: number[] | string[];\n customColors: any;\n\n constructor(scheme: string | Color, type: ScaleType, domain: number[] | string[], customColors?) {\n if (typeof scheme === 'string') {\n scheme = colorSets.find(cs => {\n return cs.name === scheme;\n });\n }\n this.colorDomain = scheme.domain;\n this.scaleType = type;\n this.domain = domain;\n this.customColors = customColors;\n\n this.scale = this.generateColorScheme(scheme, type, this.domain);\n }\n\n generateColorScheme(scheme: string | Color, type: ScaleType, domain: number[] | string[]): any {\n if (typeof scheme === 'string') {\n scheme = colorSets.find(cs => {\n return cs.name === scheme;\n });\n }\n\n let colorScale: ScaleQuantile | ScaleOrdinal | ScaleLinear;\n switch (type) {\n case ScaleType.Quantile:\n colorScale = scaleQuantile()\n .range(scheme.domain as any)\n .domain(domain as number[]);\n break;\n case ScaleType.Ordinal:\n colorScale = scaleOrdinal()\n .range(scheme.domain)\n .domain(domain as string[]);\n break;\n case ScaleType.Linear:\n {\n const colorDomain = [...scheme.domain];\n if (colorDomain.length === 1) {\n colorDomain.push(colorDomain[0]);\n this.colorDomain = colorDomain;\n }\n\n const points = range(0, 1, 1.0 / colorDomain.length);\n colorScale = scaleLinear()\n .range(colorDomain as any)\n .domain(points);\n }\n break;\n default:\n break;\n }\n\n return colorScale;\n }\n\n getColor(value: StringOrNumberOrDate): string {\n if (value === undefined || value === null) {\n throw new Error('Value can not be null');\n }\n if (this.scaleType === ScaleType.Linear) {\n const valueScale = scaleLinear()\n .domain(this.domain as number[])\n .range([0, 1]);\n\n return this.scale(valueScale(value as number));\n } else {\n if (typeof this.customColors === 'function') {\n return this.customColors(value);\n }\n\n const formattedValue = value.toString();\n let found: any; // todo type customColors\n if (this.customColors && this.customColors.length > 0) {\n found = this.customColors.find(mapping => {\n return mapping.name.toLowerCase() === formattedValue.toLowerCase();\n });\n }\n\n if (found) {\n return found.value;\n } else {\n return this.scale(value);\n }\n }\n }\n\n getLinearGradientStops(value: number | string, start?: number | string): Gradient[] {\n if (start === undefined) {\n start = this.domain[0];\n }\n const valueScale = scaleLinear()\n .domain(this.domain as number[])\n .range([0, 1]);\n\n const colorValueScale = scaleBand().domain(this.colorDomain).range([0, 1]);\n\n const endColor = this.getColor(value);\n\n // generate the stops\n const startVal = valueScale(start as number);\n const startColor = this.getColor(start);\n\n const endVal = valueScale(value as number);\n let i = 1;\n let currentVal = startVal;\n const stops: Gradient[] = [];\n\n stops.push({\n color: startColor,\n offset: startVal,\n originalOffset: startVal,\n opacity: 1\n });\n\n while (currentVal < endVal && i < this.colorDomain.length) {\n const color = this.colorDomain[i];\n const offset = colorValueScale(color);\n if (offset <= startVal) {\n i++;\n continue;\n }\n\n if (offset.toFixed(4) >= (endVal - colorValueScale.bandwidth()).toFixed(4)) {\n break;\n }\n\n stops.push({\n color,\n offset,\n opacity: 1\n });\n currentVal = offset;\n i++;\n }\n\n if (stops[stops.length - 1].offset < 100) {\n stops.push({\n color: endColor,\n offset: endVal,\n opacity: 1\n });\n }\n\n if (endVal === startVal) {\n stops[0].offset = 0;\n stops[1].offset = 100;\n } else {\n // normalize the offsets into percentages\n if (stops[stops.length - 1].offset !== 100) {\n for (const s of stops) {\n s.offset = ((s.offset - startVal) / (endVal - startVal)) * 100;\n }\n }\n }\n\n return stops;\n }\n}\n","export const VERDANA_FONT_WIDTHS_16_PX = {\n '0': 10,\n '1': 10,\n '2': 10,\n '3': 10,\n '4': 10,\n '5': 10,\n '6': 10,\n '7': 10,\n '8': 10,\n '9': 10,\n A: 11,\n B: 11,\n C: 11,\n D: 12,\n E: 10,\n F: 9,\n G: 12,\n H: 12,\n I: 7,\n J: 7,\n K: 11,\n L: 9,\n M: 13,\n N: 12,\n O: 13,\n P: 10,\n Q: 13,\n R: 11,\n S: 11,\n T: 10,\n U: 12,\n V: 11,\n W: 16,\n X: 11,\n Y: 10,\n Z: 11,\n a: 10,\n b: 10,\n c: 8,\n d: 10,\n e: 10,\n f: 6,\n g: 10,\n h: 10,\n i: 4,\n j: 6,\n k: 9,\n l: 4,\n m: 16,\n n: 10,\n o: 10,\n p: 10,\n q: 10,\n r: 7,\n s: 8,\n t: 6,\n u: 10,\n v: 9,\n w: 13,\n x: 9,\n y: 9,\n z: 8,\n '!': 6,\n '@': 16,\n '#': 13,\n $: 10,\n '%': 17,\n '^': 13,\n '&': 12,\n '*': 10,\n '(': 7,\n ')': 7,\n _: 10,\n '-': 7,\n '+': 13,\n '=': 13,\n ',': 6,\n '.': 6,\n '/': 7,\n \"'\": 4,\n ':': 7,\n '|': 7,\n '?': 9,\n ';': 7,\n '<': 13,\n '>': 13\n};\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, ElementRef } from '@angular/core';\nimport { count, decimalChecker } from './count.helper';\n\n/**\n * Count up component\n *\n * Loosely inspired by:\n * - https://github.com/izupet/angular2-counto\n * - https://inorganik.github.io/countUp.js/\n *\n * @export\n */\n@Component({\n selector: '[ngx-charts-count-up]',\n template: ` {{ value }} `\n})\nexport class CountUpDirective implements OnDestroy {\n @Input() countDuration: number = 1;\n @Input() countPrefix: string = '';\n @Input() countSuffix: string = '';\n @Input() valueFormatting: any;\n\n @Input()\n set countDecimals(val: number) {\n this._countDecimals = val;\n }\n\n get countDecimals(): number {\n if (this._countDecimals) return this._countDecimals;\n return decimalChecker(this.countTo);\n }\n\n @Input()\n set countTo(val) {\n this._countTo = parseFloat(val);\n this.start();\n }\n\n get countTo(): any {\n return this._countTo;\n }\n\n @Input()\n set countFrom(val) {\n this._countFrom = parseFloat(val);\n this.start();\n }\n\n get countFrom(): any {\n return this._countFrom;\n }\n\n @Output() countChange = new EventEmitter();\n @Output() countFinish = new EventEmitter();\n\n nativeElement: any;\n\n value: any = '';\n formattedValue: string;\n\n private animationReq: any;\n\n private _countDecimals: number = 0;\n private _countTo: number = 0;\n private _countFrom: number = 0;\n\n constructor(private cd: ChangeDetectorRef, element: ElementRef) {\n this.nativeElement = element.nativeElement;\n }\n\n ngOnDestroy(): void {\n cancelAnimationFrame(this.animationReq);\n }\n\n start(): void {\n cancelAnimationFrame(this.animationReq);\n\n const valueFormatting =\n this.valueFormatting || (value => `${this.countPrefix}${value.toLocaleString()}${this.countSuffix}`);\n\n const callback = ({ value, progress, finished }) => {\n this.value = valueFormatting(value);\n this.cd.markForCheck();\n if (!finished) this.countChange.emit({ value: this.value, progress });\n if (finished) this.countFinish.emit({ value: this.value, progress });\n };\n\n this.animationReq = count(this.countFrom, this.countTo, this.countDecimals, this.countDuration, callback);\n }\n}\n","// Robert Penner's easeOutExpo\nfunction easeOutExpo(t, b, c, d): number {\n return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b;\n}\n\n/**\n * Counts from a number to the end incrementally.\n */\nexport function count(countFrom: number, countTo: number, countDecimals: number, countDuration: number, callback: any) {\n const startVal = Number(countFrom);\n const endVal = Number(countTo);\n const countDown = startVal > endVal;\n const decimals = Math.max(0, countDecimals);\n const dec = Math.pow(10, decimals);\n const duration = Number(countDuration) * 1000;\n let startTime;\n\n function runCount(timestamp: number) {\n let frameVal;\n const progress = timestamp - startTime;\n\n if (countDown) {\n frameVal = startVal - easeOutExpo(progress, 0, startVal - endVal, duration);\n } else {\n frameVal = easeOutExpo(progress, startVal, endVal - startVal, duration);\n }\n\n if (countDown) {\n frameVal = frameVal < endVal ? endVal : frameVal;\n } else {\n frameVal = frameVal > endVal ? endVal : frameVal;\n }\n\n frameVal = Math.round(frameVal * dec) / dec;\n\n const tick = progress < duration;\n callback({\n value: frameVal,\n progress,\n timestamp,\n finished: !tick\n });\n\n if (tick) {\n return requestAnimationFrame(val => runCount(val));\n }\n }\n\n return requestAnimationFrame(timestamp => {\n startTime = timestamp;\n return runCount(timestamp);\n });\n}\n\n/**\n * Determine decimals places\n *\n * @export\n */\nexport function decimalChecker(countTo: number): number {\n const endVal = Number(countTo);\n\n if (endVal % 1 !== 0 && Math.abs(endVal) <= 10) {\n return 2;\n }\n\n return 0;\n}\n","import { ScaleType } from './types/scale-type.enum';\nimport { StringOrNumberOrDate } from '../models/chart-data.model';\n/**\n * Based on the data, return an array with unique values.\n *\n * @export\n * @returns array\n */\nexport function getUniqueXDomainValues(results: any[]): any[] {\n const valueSet = new Set();\n for (const result of results) {\n for (const d of result.series) {\n valueSet.add(d.name);\n }\n }\n return Array.from(valueSet);\n}\n\n/**\n * Get the scaleType of enumerable of values.\n * @returns 'time', 'linear' or 'ordinal'\n */\nexport function getScaleType(values: any[], checkDateType: boolean = true): ScaleType {\n if (checkDateType) {\n const allDates = values.every(value => value instanceof Date);\n if (allDates) {\n return ScaleType.Time;\n }\n }\n\n const allNumbers = values.every(value => typeof value === 'number');\n if (allNumbers) {\n return ScaleType.Linear;\n }\n\n return ScaleType.Ordinal;\n}\n\nexport function getXDomainArray(\n values: Array,\n xScaleMin?: number,\n xScaleMax?: number\n): { domain: any[]; xSet: any[]; scaleType: string } {\n const scaleType = getScaleType(values);\n let xSet: StringOrNumberOrDate[] = [];\n let domain: StringOrNumberOrDate[] = [];\n\n if (scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n\n let min: number;\n let max: number;\n if (scaleType === ScaleType.Time || scaleType === ScaleType.Linear) {\n const mappedValues = values.map(v => Number(v));\n min = xScaleMin ? xScaleMin : Math.min(...mappedValues);\n max = xScaleMax ? xScaleMax : Math.max(...mappedValues);\n }\n\n if (scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n xSet = [...values].sort((a: Date, b: Date) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate) return 1;\n if (bDate > aDate) return -1;\n return 0;\n });\n } else if (scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n xSet = [...values].sort((a: number, b: number) => a - b);\n } else {\n domain = values;\n xSet = values;\n }\n\n return { domain, xSet, scaleType };\n}\n","import { scaleBand } from 'd3-scale';\nimport { ViewDimensions } from './types/view-dimension.interface';\nimport { StringOrNumberOrDate } from '../models/chart-data.model';\n\nexport interface GridItem {\n data: GridData;\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\nexport interface GridData {\n extra?: any;\n label: string;\n name: StringOrNumberOrDate;\n percent: number;\n total: number;\n value: number;\n}\n\nexport function gridSize(dims: ViewDimensions, len: number, minWidth: number): [number, number] {\n let rows = 1;\n let cols = len;\n const width = dims.width;\n\n if (width > minWidth) {\n while (width / cols < minWidth) {\n rows += 1;\n cols = Math.ceil(len / rows);\n }\n }\n\n return [cols, rows];\n}\n\nexport function gridLayout(\n dims: ViewDimensions,\n data: GridData[],\n minWidth: number,\n designatedTotal: number\n): GridItem[] {\n const xScale: any = scaleBand();\n const yScale: any = scaleBand();\n const width = dims.width;\n const height = dims.height;\n\n const [columns, rows] = gridSize(dims, data.length, minWidth);\n\n const xDomain = [];\n const yDomain = [];\n for (let i = 0; i < rows; i++) {\n yDomain.push(i);\n }\n for (let i = 0; i < columns; i++) {\n xDomain.push(i);\n }\n xScale.domain(xDomain);\n yScale.domain(yDomain);\n\n xScale.rangeRound([0, width], 0.1);\n yScale.rangeRound([0, height], 0.1);\n\n const res = [];\n const total = designatedTotal ? designatedTotal : getTotal(data);\n const cardWidth = xScale.bandwidth();\n const cardHeight = yScale.bandwidth();\n\n for (let i = 0; i < data.length; i++) {\n res[i] = {};\n res[i].data = {\n name: data[i] ? data[i].name : '',\n value: data[i] ? data[i].value : undefined,\n extra: data[i] ? data[i].extra : undefined,\n label: data[i] ? data[i].label : ''\n };\n res[i].x = xScale(i % columns);\n res[i].y = yScale(Math.floor(i / columns));\n res[i].width = cardWidth;\n res[i].height = cardHeight;\n res[i].data.percent = total > 0 ? res[i].data.value / total : 0;\n res[i].data.total = total;\n }\n return res;\n}\n\nfunction getTotal(results: any): number {\n return results.map(d => (d ? d.value : 0)).reduce((sum, val) => sum + val, 0);\n}\n","import { Component, SimpleChanges, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { BarOrientation } from './types/bar-orientation.enum';\nimport { ViewDimensions } from './types/view-dimension.interface';\n\ninterface GridPanel {\n class: ClassEnum;\n height: number;\n name: string;\n width: number;\n x: number;\n y: number;\n}\n\nenum ClassEnum {\n Odd = 'odd',\n Even = 'even'\n}\n\n@Component({\n selector: 'g[ngx-charts-grid-panel-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridPanelSeriesComponent implements OnChanges {\n gridPanels: GridPanel[];\n\n @Input() data: any[];\n\n @Input() dims: ViewDimensions;\n\n @Input() xScale: any;\n\n @Input() yScale: any;\n\n @Input() orient: BarOrientation;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.gridPanels = this.getGridPanels();\n }\n\n getGridPanels(): GridPanel[] {\n return this.data.map(d => {\n let offset;\n let width;\n let height;\n let x;\n let y;\n let className = ClassEnum.Odd;\n\n if (this.orient === BarOrientation.Vertical) {\n const position: number = this.xScale(d.name);\n const positionIndex = Number.parseInt((position / this.xScale.step()).toString(), 10);\n\n if (positionIndex % 2 === 1) {\n className = ClassEnum.Even;\n }\n offset = this.xScale.bandwidth() * this.xScale.paddingInner();\n width = this.xScale.bandwidth() + offset;\n height = this.dims.height;\n x = this.xScale(d.name) - offset / 2;\n y = 0;\n } else if (this.orient === BarOrientation.Horizontal) {\n const position = this.yScale(d.name);\n const positionIndex = Number.parseInt((position / this.yScale.step()).toString(), 10);\n\n if (positionIndex % 2 === 1) {\n className = ClassEnum.Even;\n }\n offset = this.yScale.bandwidth() * this.yScale.paddingInner();\n\n width = this.dims.width;\n height = this.yScale.bandwidth() + offset;\n x = 0;\n y = this.yScale(d.name) - offset / 2;\n }\n\n return {\n name: d.name,\n class: className,\n height,\n width,\n x,\n y\n };\n });\n }\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'g[ngx-charts-grid-panel]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridPanelComponent {\n @Input() width: number;\n @Input() height: number;\n @Input() x: number;\n @Input() y: number;\n}\n","/**\n * Formats a label given a date, number or string.\n *\n * @export\n */\nexport function formatLabel(label: any): string {\n if (label instanceof Date) {\n label = label.toLocaleDateString();\n } else {\n label = label.toLocaleString();\n }\n\n return label;\n}\n\n/**\n * Escapes a label.\n *\n * @export\n */\nexport function escapeLabel(label: any): string {\n return label.toLocaleString().replace(/[&'`\"<>]/g, match => {\n return {\n '&': '&',\n // tslint:disable-next-line: quotemark\n \"'\": ''',\n '`': '`',\n '\"': '"',\n '<': '<',\n '>': '>'\n }[match];\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { trimLabel } from '../trim-label.helper';\nimport { formatLabel } from '../label.helper';\nimport { DataItem, StringOrNumberOrDate } from '../../models/chart-data.model';\nimport { ColorHelper } from '../color.helper';\n\nexport interface AdvancedLegendItem {\n value: StringOrNumberOrDate;\n _value: StringOrNumberOrDate;\n color: string;\n data: DataItem;\n label: string;\n displayLabel: string;\n originalLabel: string;\n percentage: string;\n}\n\n@Component({\n selector: 'ngx-charts-advanced-legend',\n template: `\n
\n
\n
\n {{ valueFormatting ? valueFormatting(roundedTotal) : defaultValueFormatting(roundedTotal) }}\n
\n
\n {{ label }}\n
\n
\n
\n \n
\n
\n
\n {{ valueFormatting ? valueFormatting(legendItem.value) : defaultValueFormatting(legendItem.value) }}\n
\n
{{ legendItem.displayLabel }}
\n
\n
{{ legendItem.percentage.toLocaleString() }}%
\n \n \n \n \n `,\n styleUrls: ['./advanced-legend.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdvancedLegendComponent implements OnChanges {\n @Input() width: number;\n @Input() data: DataItem[];\n @Input() colors: ColorHelper;\n @Input() label: string = 'Total';\n @Input() animations: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n legendItems: AdvancedLegendItem[] = [];\n total: number;\n roundedTotal: number;\n\n @Input() valueFormatting: (value: StringOrNumberOrDate) => any;\n @Input() labelFormatting: (value: string) => string = label => label;\n @Input() percentageFormatting: (value: number) => number = percentage => percentage;\n\n defaultValueFormatting: (value: StringOrNumberOrDate) => string = value => value.toLocaleString();\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n getTotal(): number {\n return this.data.map(d => Number(d.value)).reduce((sum, d) => sum + d, 0);\n }\n\n update(): void {\n this.total = this.getTotal();\n this.roundedTotal = this.total;\n\n this.legendItems = this.getLegendItems();\n }\n\n getLegendItems(): AdvancedLegendItem[] {\n return (this.data as any).map(d => {\n const label = formatLabel(d.name);\n const value = d.value;\n const color = this.colors.getColor(label);\n const percentage = this.total > 0 ? (value / this.total) * 100 : 0;\n const formattedLabel = typeof this.labelFormatting === 'function' ? this.labelFormatting(label) : label;\n\n return {\n _value: value,\n data: d,\n value,\n color,\n label: formattedLabel,\n displayLabel: trimLabel(formattedLabel, 20),\n origialLabel: d.name,\n percentage: this.percentageFormatting ? this.percentageFormatting(percentage) : percentage.toLocaleString()\n };\n });\n }\n\n trackBy(index: number, item: AdvancedLegendItem) {\n return item.label;\n }\n}\n","import { Component, Input, Output, ChangeDetectionStrategy, HostListener, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ngx-charts-legend-entry',\n template: `\n \n \n \n {{ trimmedLabel }}\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LegendEntryComponent {\n @Input() color: string;\n @Input() label: string;\n @Input() formattedLabel: string;\n @Input() isActive: boolean = false;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter<{ name: string }> = new EventEmitter();\n @Output() deactivate: EventEmitter<{ name: string }> = new EventEmitter();\n @Output() toggle: EventEmitter = new EventEmitter();\n\n get trimmedLabel(): string {\n return this.formattedLabel || '(empty)';\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.activate.emit({ name: this.label });\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.deactivate.emit({ name: this.label });\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n SimpleChanges,\n OnChanges,\n ChangeDetectorRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { formatLabel } from '../label.helper';\nimport { ColorHelper } from '../color.helper';\n\nexport interface LegendEntry {\n color: string;\n formattedLabel: string;\n label: string;\n}\n\n@Component({\n selector: 'ngx-charts-legend',\n template: `\n
\n
0\">\n {{ title }}\n
\n
\n
    \n
  • \n \n \n
  • \n
\n
\n
\n `,\n styleUrls: ['./legend.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LegendComponent implements OnChanges {\n @Input() data: string[];\n @Input() title: string;\n @Input() colors: ColorHelper;\n @Input() height: number;\n @Input() width: number;\n @Input() activeEntries;\n @Input() horizontal = false;\n\n @Output() labelClick: EventEmitter = new EventEmitter();\n @Output() labelActivate: EventEmitter<{ name: string }> = new EventEmitter();\n @Output() labelDeactivate: EventEmitter<{ name: string }> = new EventEmitter();\n\n legendEntries: LegendEntry[] = [];\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.cd.markForCheck();\n this.legendEntries = this.getLegendEntries();\n }\n\n getLegendEntries(): LegendEntry[] {\n const items = [];\n for (const label of this.data) {\n const formattedLabel = formatLabel(label);\n\n const idx = items.findIndex(i => {\n return i.label === formattedLabel;\n });\n\n if (idx === -1) {\n items.push({\n label,\n formattedLabel,\n color: this.colors.getColor(label)\n });\n }\n }\n\n return items;\n }\n\n isActive(entry: LegendEntry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.label === d.name;\n });\n return item !== undefined;\n }\n\n activate(item: { name: string }) {\n this.labelActivate.emit(item);\n }\n\n deactivate(item: { name: string }) {\n this.labelDeactivate.emit(item);\n }\n\n trackBy(index: number, item: LegendEntry): string {\n return item.label;\n }\n}\n","import { Component, Input, OnChanges, ChangeDetectionStrategy, SimpleChanges, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ngx-charts-scale-legend',\n template: `\n \n
\n {{ valueRange[1].toLocaleString() }}\n
\n
\n
\n {{ valueRange[0].toLocaleString() }}\n
\n \n `,\n styleUrls: ['./scale-legend.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScaleLegendComponent implements OnChanges {\n @Input() valueRange: number[];\n @Input() colors: any;\n @Input() height: number;\n @Input() width: number;\n @Input() horizontal: boolean = false;\n\n gradient: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n const gradientValues = this.gradientString(this.colors.range(), this.colors.domain());\n const direction = this.horizontal ? 'right' : 'bottom';\n this.gradient = `linear-gradient(to ${direction}, ${gradientValues})`;\n }\n\n /**\n * Generates the string used in the gradient stylesheet properties\n * @param colors array of colors\n * @param splits array of splits on a scale of (0, 1)\n */\n gradientString(colors: string[], splits: number[]): string {\n // add the 100%\n splits.push(1);\n const pairs = [];\n colors.reverse().forEach((c, i) => {\n pairs.push(`${c} ${Math.round(splits[i] * 100)}%`);\n });\n\n return pairs.join(', ');\n }\n}\n","/**\n * Generates a rounded rectanglar path\n *\n * @export\n * @param x, y, w, h, r, tl, tr, bl, br\n */\nexport function roundedRect(\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n [tl, tr, bl, br]: boolean[]\n): string {\n let retval = '';\n\n w = Math.floor(w);\n h = Math.floor(h);\n\n w = w === 0 ? 1 : w;\n h = h === 0 ? 1 : h;\n\n retval = `M${[x + r, y]}`;\n retval += `h${w - 2 * r}`;\n\n if (tr) {\n retval += `a${[r, r]} 0 0 1 ${[r, r]}`;\n } else {\n retval += `h${r}v${r}`;\n }\n\n retval += `v${h - 2 * r}`;\n\n if (br) {\n retval += `a${[r, r]} 0 0 1 ${[-r, r]}`;\n } else {\n retval += `v${r}h${-r}`;\n }\n\n retval += `h${2 * r - w}`;\n\n if (bl) {\n retval += `a${[r, r]} 0 0 1 ${[-r, -r]}`;\n } else {\n retval += `h${-r}v${-r}`;\n }\n\n retval += `v${2 * r - h}`;\n\n if (tl) {\n retval += `a${[r, r]} 0 0 1 ${[r, -r]}`;\n } else {\n retval += `v${-r}h${r}`;\n }\n\n retval += `z`;\n\n return retval;\n}\n","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { BarOrientation } from './types/bar-orientation.enum';\nimport { Gradient } from './types/gradient.interface';\n\n@Component({\n selector: 'g[ngx-charts-svg-linear-gradient]',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SvgLinearGradientComponent implements OnChanges {\n @Input() orientation = BarOrientation.Vertical;\n @Input() name: string;\n @Input() stops: Gradient[];\n\n x1: string;\n x2: string;\n y1: string;\n y2: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.x1 = '0%';\n this.x2 = '0%';\n this.y1 = '0%';\n this.y2 = '0%';\n\n if (this.orientation === BarOrientation.Horizontal) {\n this.x2 = '100%';\n } else if (this.orientation === BarOrientation.Vertical) {\n this.y1 = '100%';\n }\n }\n}\n","import { Component, Input, OnChanges, ChangeDetectionStrategy, SimpleChanges } from '@angular/core';\nimport { Gradient } from './types/gradient.interface';\n\n@Component({\n selector: 'g[ngx-charts-svg-radial-gradient]',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SvgRadialGradientComponent implements OnChanges {\n @Input() color: string;\n @Input() name: string;\n @Input() startOpacity: number;\n @Input() endOpacity = 1;\n @Input() cx: number = 0;\n @Input() cy: number = 0;\n\n @Input()\n get stops(): Gradient[] {\n return this.stopsInput || this.stopsDefault;\n }\n\n set stops(value: Gradient[]) {\n this.stopsInput = value;\n }\n\n r: string;\n\n private stopsInput: Gradient[];\n private stopsDefault: Gradient[];\n\n ngOnChanges(changes: SimpleChanges): void {\n this.r = '30%';\n if ('color' in changes || 'startOpacity' in changes || 'endOpacity' in changes) {\n this.stopsDefault = [\n {\n offset: 0,\n color: this.color,\n opacity: this.startOpacity\n },\n {\n offset: 100,\n color: this.color,\n opacity: this.endOpacity\n }\n ];\n }\n }\n}\n","import { timeFormat } from 'd3-time-format';\n\nexport function tickFormat(fieldType, groupByType): (label: string) => string {\n return function (label: string): string {\n if (label === 'No Value' || label === 'Other') {\n return label;\n }\n if (fieldType === 'date' && groupByType === 'groupBy') {\n const formatter = timeFormat('MM/DD/YYYY');\n return formatter(label);\n }\n\n return label.toString();\n };\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n SimpleChanges,\n ViewEncapsulation,\n OnInit\n} from '@angular/core';\nimport { brushX } from 'd3-brush';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { select } from 'd3-selection';\nimport { id } from '../../utils/id';\nimport { ScaleType } from '../types/scale-type.enum';\nimport { ViewDimensions } from '../types/view-dimension.interface';\n\n@Component({\n selector: 'g[ngx-charts-timeline]',\n template: `\n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['./timeline.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class Timeline implements OnChanges {\n @Input() view: [number, number];\n @Input() results; // type this\n @Input() scheme; // type this\n @Input() customColors; // type this\n @Input() legend: boolean;\n @Input() autoScale: boolean;\n @Input() scaleType: ScaleType;\n @Input() height: number = 50;\n\n @Output() select = new EventEmitter();\n @Output() onDomainChange = new EventEmitter();\n\n element: HTMLElement;\n dims: ViewDimensions;\n xDomain: any[];\n xScale: any;\n brush: any;\n transform: string;\n initialized: boolean = false;\n filterId: string;\n filter: string;\n\n constructor(element: ElementRef, private cd: ChangeDetectorRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n\n if (!this.initialized) {\n this.addBrush();\n this.initialized = true;\n }\n }\n\n update(): void {\n this.dims = this.getDims();\n this.height = this.dims.height;\n const offsetY = this.view[1] - this.height;\n\n this.xDomain = this.getXDomain();\n this.xScale = this.getXScale();\n\n if (this.brush) {\n this.updateBrush();\n }\n\n this.transform = `translate(0 , ${offsetY})`;\n\n this.filterId = 'filter' + id().toString();\n this.filter = `url(#${this.filterId})`;\n\n this.cd.markForCheck();\n }\n\n getXDomain(): any[] {\n let values = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.name)) {\n values.push(d.name);\n }\n }\n }\n\n let domain = [];\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n } else if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n } else {\n domain = values;\n }\n\n return domain;\n }\n\n getXScale() {\n let scale;\n\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime().range([0, this.dims.width]).domain(this.xDomain);\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear().range([0, this.dims.width]).domain(this.xDomain);\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().range([0, this.dims.width]).padding(0.1).domain(this.xDomain);\n }\n\n return scale;\n }\n\n addBrush(): void {\n if (this.brush) return;\n\n const height = this.height;\n const width = this.view[0];\n\n this.brush = brushX()\n .extent([\n [0, 0],\n [width, height]\n ])\n .on('brush end', ({ selection }) => {\n const newSelection = selection || this.xScale.range();\n const newDomain = newSelection.map(this.xScale.invert);\n\n this.onDomainChange.emit(newDomain);\n this.cd.markForCheck();\n });\n\n select(this.element).select('.brush').call(this.brush);\n }\n\n updateBrush(): void {\n if (!this.brush) return;\n\n const height = this.height;\n const width = this.view[0];\n\n this.brush.extent([\n [0, 0],\n [width, height]\n ]);\n select(this.element).select('.brush').call(this.brush);\n\n // clear hardcoded properties so they can be defined by CSS\n select(this.element)\n .select('.selection')\n .attr('fill', undefined)\n .attr('stroke', undefined)\n .attr('fill-opacity', undefined);\n\n this.cd.markForCheck();\n }\n\n getDims(): ViewDimensions {\n const width = this.view[0];\n\n const dims = {\n width,\n height: this.height\n };\n\n return dims;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ChangeDetectionStrategy,\n TemplateRef,\n PLATFORM_ID,\n Inject\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { createMouseEvent } from '../events';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ColorHelper } from '../common/color.helper';\nimport { PlacementTypes } from './tooltip/position';\nimport { StyleTypes } from './tooltip/style.type';\nimport { ViewDimensions } from './types/view-dimension.interface';\nimport { ScaleType } from './types/scale-type.enum';\n\nexport interface Tooltip {\n color: string;\n d0: number;\n d1: number;\n max: number;\n min: number;\n name: any;\n series: any;\n value: any;\n}\n\n@Component({\n selector: 'g[ngx-charts-tooltip-area]',\n template: `\n \n \n \n \n \n \n {{ getToolTipText(tooltipItem) }}\n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition('inactive => active', [\n style({\n opacity: 0\n }),\n animate(250, style({ opacity: 0.7 }))\n ]),\n transition('active => inactive', [\n style({\n opacity: 0.7\n }),\n animate(250, style({ opacity: 0 }))\n ])\n ])\n ]\n})\nexport class TooltipArea {\n anchorOpacity: number = 0;\n anchorPos: number = -1;\n anchorValues: Tooltip[] = [];\n lastAnchorPos: number;\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n @Input() dims: ViewDimensions;\n @Input() xSet: any[];\n @Input() xScale;\n @Input() yScale;\n @Input() results: any[];\n @Input() colors: ColorHelper;\n @Input() showPercentage: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n\n @Output() hover: EventEmitter<{ value: any }> = new EventEmitter();\n\n @ViewChild('tooltipAnchor', { static: false }) tooltipAnchor;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any) {}\n\n getValues(xVal): Tooltip[] {\n const results = [];\n\n for (const group of this.results) {\n const item = group.series.find(d => d.name.toString() === xVal.toString());\n let groupName = group.name;\n if (groupName instanceof Date) {\n groupName = groupName.toLocaleDateString();\n }\n\n if (item) {\n const label = item.name;\n let val = item.value;\n if (this.showPercentage) {\n val = (item.d1 - item.d0).toFixed(2) + '%';\n }\n let color;\n if (this.colors.scaleType === ScaleType.Linear) {\n let v = val;\n if (item.d1) {\n v = item.d1;\n }\n color = this.colors.getColor(v);\n } else {\n color = this.colors.getColor(group.name);\n }\n\n const data = Object.assign({}, item, {\n value: val,\n name: label,\n series: groupName,\n min: item.min,\n max: item.max,\n color\n });\n\n results.push(data);\n }\n }\n\n return results;\n }\n\n mouseMove(event) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const xPos = event.pageX - event.target.getBoundingClientRect().left;\n\n const closestIndex = this.findClosestPointIndex(xPos);\n const closestPoint = this.xSet[closestIndex];\n this.anchorPos = this.xScale(closestPoint);\n this.anchorPos = Math.max(0, this.anchorPos);\n this.anchorPos = Math.min(this.dims.width, this.anchorPos);\n\n this.anchorValues = this.getValues(closestPoint);\n if (this.anchorPos !== this.lastAnchorPos) {\n const ev = createMouseEvent('mouseleave');\n this.tooltipAnchor.nativeElement.dispatchEvent(ev);\n this.anchorOpacity = 0.7;\n this.hover.emit({\n value: closestPoint\n });\n this.showTooltip();\n\n this.lastAnchorPos = this.anchorPos;\n }\n }\n\n findClosestPointIndex(xPos: number): number {\n let minIndex = 0;\n let maxIndex = this.xSet.length - 1;\n let minDiff = Number.MAX_VALUE;\n let closestIndex = 0;\n\n while (minIndex <= maxIndex) {\n const currentIndex = ((minIndex + maxIndex) / 2) | 0;\n const currentElement = this.xScale(this.xSet[currentIndex]);\n\n const curDiff = Math.abs(currentElement - xPos);\n\n if (curDiff < minDiff) {\n minDiff = curDiff;\n closestIndex = currentIndex;\n }\n\n if (currentElement < xPos) {\n minIndex = currentIndex + 1;\n } else if (currentElement > xPos) {\n maxIndex = currentIndex - 1;\n } else {\n minDiff = 0;\n closestIndex = currentIndex;\n break;\n }\n }\n\n return closestIndex;\n }\n\n showTooltip(): void {\n const event = createMouseEvent('mouseenter');\n this.tooltipAnchor.nativeElement.dispatchEvent(event);\n }\n\n hideTooltip(): void {\n const event = createMouseEvent('mouseleave');\n this.tooltipAnchor.nativeElement.dispatchEvent(event);\n this.anchorOpacity = 0;\n this.lastAnchorPos = -1;\n }\n\n getToolTipText(tooltipItem: Tooltip): string {\n let result: string = '';\n if (tooltipItem.series !== undefined) {\n result += tooltipItem.series;\n } else {\n result += '???';\n }\n result += ': ';\n if (tooltipItem.value !== undefined) {\n result += tooltipItem.value.toLocaleString();\n }\n if (tooltipItem.min !== undefined || tooltipItem.max !== undefined) {\n result += ' (';\n if (tooltipItem.min !== undefined) {\n if (tooltipItem.max === undefined) {\n result += '≥';\n }\n result += tooltipItem.min.toLocaleString();\n if (tooltipItem.max !== undefined) {\n result += ' - ';\n }\n } else if (tooltipItem.max !== undefined) {\n result += '≤';\n }\n if (tooltipItem.max !== undefined) {\n result += tooltipItem.max.toLocaleString();\n }\n result += ')';\n }\n return result;\n }\n}\n","import { ComponentRef, Type } from '@angular/core';\nimport { InjectionService } from './injection.service';\n\nexport interface PartialBindings {\n inputs?: object;\n outputs?: object;\n}\n\nexport abstract class InjectionRegisteryService {\n protected abstract type: Type;\n\n protected defaults: PartialBindings = {};\n protected components: Map>> = new Map();\n\n constructor(public injectionService: InjectionService) {}\n\n getByType(type: Type = this.type) {\n return this.components.get(type);\n }\n\n create(bindings: object): ComponentRef {\n return this.createByType(this.type, bindings);\n }\n\n createByType(type: Type, bindings: PartialBindings): ComponentRef {\n bindings = this.assignDefaults(bindings);\n\n const component = this.injectComponent(type, bindings);\n this.register(type, component);\n\n return component;\n }\n\n destroy(instance: ComponentRef): void {\n const compsByType = this.components.get(instance.componentType);\n\n if (compsByType && compsByType.length) {\n const idx = compsByType.indexOf(instance);\n\n if (idx > -1) {\n const component = compsByType[idx];\n component.destroy();\n compsByType.splice(idx, 1);\n }\n }\n }\n\n destroyAll(): void {\n this.destroyByType(this.type);\n }\n\n destroyByType(type: Type): void {\n const comps = this.components.get(type);\n\n if (comps && comps.length) {\n let i = comps.length - 1;\n while (i >= 0) {\n this.destroy(comps[i--]);\n }\n }\n }\n\n protected injectComponent(type: Type, bindings: PartialBindings): ComponentRef {\n return this.injectionService.appendComponent(type, bindings);\n }\n\n protected assignDefaults(bindings: PartialBindings): PartialBindings {\n const inputs = { ...this.defaults.inputs };\n const outputs = { ...this.defaults.outputs };\n\n if (!bindings.inputs && !bindings.outputs) {\n bindings = { inputs: bindings };\n }\n\n if (inputs) {\n bindings.inputs = { ...inputs, ...bindings.inputs };\n }\n\n if (outputs) {\n bindings.outputs = { ...outputs, ...bindings.outputs };\n }\n\n return bindings;\n }\n\n protected register(type: Type, component: ComponentRef): void {\n if (!this.components.has(type)) {\n this.components.set(type, []);\n }\n\n const types = this.components.get(type);\n types.push(component);\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Injectable,\n Injector,\n ViewContainerRef,\n EmbeddedViewRef,\n Type\n} from '@angular/core';\nimport { DomPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\n\nfunction isViewContainerRef(x: any): x is ViewContainerRef {\n return x.element;\n}\n\n/**\n * Injection service is a helper to append components\n * dynamically to a known location in the DOM, most\n * noteably for dialogs/tooltips appending to body.\n *\n * @export\n */\n@Injectable()\nexport class InjectionService {\n static globalRootViewContainer: ViewContainerRef = null;\n\n /**\n * Sets a default global root view container. This is useful for\n * things like ngUpgrade that doesn't have a ApplicationRef root.\n *\n * @param container\n */\n static setGlobalRootViewContainer(container: ViewContainerRef): void {\n InjectionService.globalRootViewContainer = container;\n }\n\n private _container: ViewContainerRef;\n\n constructor(\n private applicationRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n /**\n * Gets the root view container to inject the component to.\n *\n * @memberOf InjectionService\n */\n getRootViewContainer(): ViewContainerRef | ComponentRef {\n if (this._container) return this._container;\n if (InjectionService.globalRootViewContainer) return InjectionService.globalRootViewContainer;\n\n if (this.applicationRef.components.length) return this.applicationRef.components[0];\n\n throw new Error(\n 'View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.'\n );\n }\n\n /**\n * Overrides the default root view container. This is useful for\n * things like ngUpgrade that doesn't have a ApplicationRef root.\n *\n * @param container\n *\n * @memberOf InjectionService\n */\n setRootViewContainer(container: ViewContainerRef): void {\n this._container = container;\n }\n\n /**\n * Gets the html element for a component ref.\n *\n * @param componentRef\n *\n * @memberOf InjectionService\n */\n getComponentRootNode(component: ViewContainerRef | ComponentRef): HTMLElement {\n if (isViewContainerRef(component)) {\n return component.element.nativeElement;\n }\n if (component.hostView && (component.hostView as EmbeddedViewRef).rootNodes.length > 0) {\n return (component.hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\n }\n\n // the top most component root node has no `hostView`\n return component.location.nativeElement;\n }\n\n /**\n * Gets the root component container html element.\n *\n * @memberOf InjectionService\n */\n getRootViewContainerNode(component: ViewContainerRef | ComponentRef): HTMLElement {\n return this.getComponentRootNode(component);\n }\n\n /**\n * Projects the bindings onto the component\n *\n * @param component\n * @param options\n *\n * @memberOf InjectionService\n */\n projectComponentBindings(component: ComponentRef, bindings: any): ComponentRef {\n if (bindings) {\n if (bindings.inputs !== undefined) {\n const bindingKeys = Object.getOwnPropertyNames(bindings.inputs);\n for (const bindingName of bindingKeys) {\n component.instance[bindingName] = bindings.inputs[bindingName];\n }\n }\n\n if (bindings.outputs !== undefined) {\n const eventKeys = Object.getOwnPropertyNames(bindings.outputs);\n for (const eventName of eventKeys) {\n component.instance[eventName] = bindings.outputs[eventName];\n }\n }\n }\n\n return component;\n }\n\n /**\n * Appends a component to a adjacent location\n *\n * @param componentClass\n * @param [options={}]\n * @param [location]\n *\n * @memberOf InjectionService\n */\n appendComponent(componentClass: Type, bindings: any = {}, location?: any): ComponentRef {\n if (!location) location = this.getRootViewContainer();\n const appendLocation = this.getComponentRootNode(location);\n\n const portalHost = new DomPortalOutlet(\n appendLocation,\n this.componentFactoryResolver,\n this.applicationRef,\n this.injector\n );\n\n const portal = new ComponentPortal(componentClass);\n\n const componentRef = portalHost.attach(portal);\n this.projectComponentBindings(componentRef, bindings);\n return componentRef;\n }\n}\n","export * from './placement-type.enum';\nexport * from './position';\n","export enum PlacementTypes {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n Center = 'center'\n}\n","import { PlacementTypes } from './placement-type.enum';\n\nconst caretOffset = 7;\n\nfunction verticalPosition(elDimensions: DOMRect, popoverDimensions: DOMRect, alignment: PlacementTypes): number {\n if (alignment === PlacementTypes.Top) {\n return elDimensions.top - caretOffset;\n }\n\n if (alignment === PlacementTypes.Bottom) {\n return elDimensions.top + elDimensions.height - popoverDimensions.height + caretOffset;\n }\n\n if (alignment === PlacementTypes.Center) {\n return elDimensions.top + elDimensions.height / 2 - popoverDimensions.height / 2;\n }\n\n return undefined;\n}\n\nfunction horizontalPosition(elDimensions: DOMRect, popoverDimensions: DOMRect, alignment: PlacementTypes): number {\n if (alignment === PlacementTypes.Left) {\n return elDimensions.left - caretOffset;\n }\n\n if (alignment === PlacementTypes.Right) {\n return elDimensions.left + elDimensions.width - popoverDimensions.width + caretOffset;\n }\n\n if (alignment === PlacementTypes.Center) {\n return elDimensions.left + elDimensions.width / 2 - popoverDimensions.width / 2;\n }\n\n return undefined;\n}\n\n/**\n * Position helper for the popover directive.\n *\n * @export\n */\nexport class PositionHelper {\n /**\n * Calculate vertical alignment position\n *\n * @memberOf PositionHelper\n */\n static calculateVerticalAlignment(\n elDimensions: DOMRect,\n popoverDimensions: DOMRect,\n alignment: PlacementTypes\n ): number {\n let result = verticalPosition(elDimensions, popoverDimensions, alignment);\n\n if (result + popoverDimensions.height > window.innerHeight) {\n result = window.innerHeight - popoverDimensions.height;\n }\n\n return result;\n }\n\n /**\n * Calculate vertical caret position\n *\n * @memberOf PositionHelper\n */\n static calculateVerticalCaret(\n elDimensions: DOMRect,\n popoverDimensions: DOMRect,\n caretDimensions: DOMRect,\n alignment: PlacementTypes\n ): number {\n let result;\n\n if (alignment === PlacementTypes.Top) {\n result = elDimensions.height / 2 - caretDimensions.height / 2 + caretOffset;\n }\n\n if (alignment === PlacementTypes.Bottom) {\n result = popoverDimensions.height - elDimensions.height / 2 - caretDimensions.height / 2 - caretOffset;\n }\n\n if (alignment === PlacementTypes.Center) {\n result = popoverDimensions.height / 2 - caretDimensions.height / 2;\n }\n\n const popoverPosition = verticalPosition(elDimensions, popoverDimensions, alignment);\n if (popoverPosition + popoverDimensions.height > window.innerHeight) {\n result += popoverPosition + popoverDimensions.height - window.innerHeight;\n }\n\n return result;\n }\n\n /**\n * Calculate horz alignment position\n *\n * @memberOf PositionHelper\n */\n static calculateHorizontalAlignment(\n elDimensions: DOMRect,\n popoverDimensions: DOMRect,\n alignment: PlacementTypes\n ): number {\n let result = horizontalPosition(elDimensions, popoverDimensions, alignment);\n\n if (result + popoverDimensions.width > window.innerWidth) {\n result = window.innerWidth - popoverDimensions.width;\n }\n\n return result;\n }\n\n /**\n * Calculate horz caret position\n *\n * @memberOf PositionHelper\n */\n static calculateHorizontalCaret(\n elDimensions: DOMRect,\n popoverDimensions: DOMRect,\n caretDimensions: DOMRect,\n alignment: PlacementTypes\n ): number {\n let result;\n\n if (alignment === PlacementTypes.Left) {\n result = elDimensions.width / 2 - caretDimensions.width / 2 + caretOffset;\n }\n\n if (alignment === PlacementTypes.Right) {\n result = popoverDimensions.width - elDimensions.width / 2 - caretDimensions.width / 2 - caretOffset;\n }\n\n if (alignment === PlacementTypes.Center) {\n result = popoverDimensions.width / 2 - caretDimensions.width / 2;\n }\n\n const popoverPosition = horizontalPosition(elDimensions, popoverDimensions, alignment);\n if (popoverPosition + popoverDimensions.width > window.innerWidth) {\n result += popoverPosition + popoverDimensions.width - window.innerWidth;\n }\n\n return result;\n }\n\n /**\n * Checks if the element's position should be flipped\n *\n * @memberOf PositionHelper\n */\n static shouldFlip(\n elDimensions: DOMRect,\n popoverDimensions: DOMRect,\n placement: PlacementTypes,\n spacing: number\n ): boolean {\n let flip = false;\n\n if (placement === PlacementTypes.Right) {\n if (elDimensions.left + elDimensions.width + popoverDimensions.width + spacing > window.innerWidth) {\n flip = true;\n }\n }\n\n if (placement === PlacementTypes.Left) {\n if (elDimensions.left - popoverDimensions.width - spacing < 0) {\n flip = true;\n }\n }\n\n if (placement === PlacementTypes.Top) {\n if (elDimensions.top - popoverDimensions.height - spacing < 0) {\n flip = true;\n }\n }\n\n if (placement === PlacementTypes.Bottom) {\n if (elDimensions.top + elDimensions.height + popoverDimensions.height + spacing > window.innerHeight) {\n flip = true;\n }\n }\n\n return flip;\n }\n\n /**\n * Position caret\n *\n * @memberOf PositionHelper\n */\n static positionCaret(placement, elmDim, hostDim, caretDimensions, alignment: PlacementTypes): any {\n let top = 0;\n let left = 0;\n\n if (placement === PlacementTypes.Right) {\n left = -7;\n top = PositionHelper.calculateVerticalCaret(hostDim, elmDim, caretDimensions, alignment);\n } else if (placement === PlacementTypes.Left) {\n left = elmDim.width;\n top = PositionHelper.calculateVerticalCaret(hostDim, elmDim, caretDimensions, alignment);\n } else if (placement === PlacementTypes.Top) {\n top = elmDim.height;\n left = PositionHelper.calculateHorizontalCaret(hostDim, elmDim, caretDimensions, alignment);\n } else if (placement === PlacementTypes.Bottom) {\n top = -7;\n left = PositionHelper.calculateHorizontalCaret(hostDim, elmDim, caretDimensions, alignment);\n }\n\n return { top, left };\n }\n\n /**\n * Position content\n *\n * @memberOf PositionHelper\n */\n static positionContent(placement, elmDim, hostDim, spacing, alignment): any {\n let top = 0;\n let left = 0;\n\n if (placement === PlacementTypes.Right) {\n left = hostDim.left + hostDim.width + spacing;\n top = PositionHelper.calculateVerticalAlignment(hostDim, elmDim, alignment);\n } else if (placement === PlacementTypes.Left) {\n left = hostDim.left - elmDim.width - spacing;\n top = PositionHelper.calculateVerticalAlignment(hostDim, elmDim, alignment);\n } else if (placement === PlacementTypes.Top) {\n top = hostDim.top - elmDim.height - spacing;\n left = PositionHelper.calculateHorizontalAlignment(hostDim, elmDim, alignment);\n } else if (placement === PlacementTypes.Bottom) {\n top = hostDim.top + hostDim.height + spacing;\n left = PositionHelper.calculateHorizontalAlignment(hostDim, elmDim, alignment);\n }\n\n return { top, left };\n }\n\n /**\n * Determine placement based on flip\n *\n * @memberOf PositionHelper\n */\n static determinePlacement(placement: PlacementTypes, elmDim: DOMRect, hostDim: DOMRect, spacing: number): any {\n const shouldFlip = PositionHelper.shouldFlip(hostDim, elmDim, placement, spacing);\n\n if (shouldFlip) {\n if (placement === PlacementTypes.Right) {\n return PlacementTypes.Left;\n } else if (placement === PlacementTypes.Left) {\n return PlacementTypes.Right;\n } else if (placement === PlacementTypes.Top) {\n return PlacementTypes.Bottom;\n } else if (placement === PlacementTypes.Bottom) {\n return PlacementTypes.Top;\n }\n }\n\n return placement;\n }\n}\n","export enum ShowTypes {\n all = 'all' as any,\n focus = 'focus' as any,\n mouseover = 'mouseover' as any\n}\n","export enum StyleTypes {\n popover = 'popover',\n tooltip = 'tooltip'\n}\n","import {\n Input,\n Component,\n ElementRef,\n AfterViewInit,\n ViewEncapsulation,\n HostListener,\n ViewChild,\n HostBinding,\n Renderer2,\n PLATFORM_ID,\n Inject,\n TemplateRef\n} from '@angular/core';\n\nimport { throttleable } from '../../utils/throttle';\nimport { PositionHelper, PlacementTypes } from './position';\n\nimport { StyleTypes } from './style.type';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n selector: 'ngx-tooltip-content',\n template: `\n
\n \n
\n \n \n \n \n
\n
\n `,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tooltip.component.scss']\n})\nexport class TooltipContentComponent implements AfterViewInit {\n @Input() host: ElementRef;\n @Input() showCaret: boolean;\n @Input() type: StyleTypes;\n @Input() placement: PlacementTypes;\n @Input() alignment: PlacementTypes;\n @Input() spacing: number;\n @Input() cssClass: string;\n @Input() title: string;\n @Input() template: TemplateRef;\n @Input() context: any;\n\n @ViewChild('caretElm') caretElm: ElementRef;\n\n @HostBinding('class')\n get cssClasses(): string {\n let clz = 'ngx-charts-tooltip-content';\n clz += ` position-${this.placement}`;\n clz += ` type-${this.type}`;\n clz += ` ${this.cssClass}`;\n return clz;\n }\n\n constructor(public element: ElementRef, private renderer: Renderer2, @Inject(PLATFORM_ID) private platformId: any) {}\n\n ngAfterViewInit(): void {\n setTimeout(this.position.bind(this));\n }\n\n position(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const nativeElm = this.element.nativeElement;\n const hostDim = this.host.nativeElement.getBoundingClientRect();\n\n // if no dims were found, never show\n if (!hostDim.height && !hostDim.width) return;\n\n const elmDim = nativeElm.getBoundingClientRect();\n this.checkFlip(hostDim, elmDim);\n this.positionContent(nativeElm, hostDim, elmDim);\n\n if (this.showCaret) {\n this.positionCaret(hostDim, elmDim);\n }\n\n // animate its entry\n setTimeout(() => this.renderer.addClass(nativeElm, 'animate'), 1);\n }\n\n positionContent(nativeElm: HTMLElement, hostDim: DOMRect, elmDim: DOMRect): void {\n const { top, left } = PositionHelper.positionContent(this.placement, elmDim, hostDim, this.spacing, this.alignment);\n\n this.renderer.setStyle(nativeElm, 'top', `${top}px`);\n this.renderer.setStyle(nativeElm, 'left', `${left}px`);\n }\n\n positionCaret(hostDim: DOMRect, elmDim: DOMRect): void {\n const caretElm = this.caretElm.nativeElement;\n const caretDimensions = caretElm.getBoundingClientRect();\n const { top, left } = PositionHelper.positionCaret(\n this.placement,\n elmDim,\n hostDim,\n caretDimensions,\n this.alignment\n );\n\n this.renderer.setStyle(caretElm, 'top', `${top}px`);\n this.renderer.setStyle(caretElm, 'left', `${left}px`);\n }\n\n checkFlip(hostDim: DOMRect, elmDim: DOMRect): void {\n this.placement = PositionHelper.determinePlacement(this.placement, elmDim, hostDim, this.spacing);\n }\n\n @HostListener('window:resize')\n @throttleable(100)\n onWindowResize(): void {\n this.position();\n }\n}\n","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ViewContainerRef,\n Renderer2,\n OnDestroy,\n TemplateRef,\n ComponentRef\n} from '@angular/core';\n\nimport { PlacementTypes } from './position';\nimport { StyleTypes } from './style.type';\nimport { ShowTypes } from './show.type';\n\nimport { TooltipService } from './tooltip.service';\n\n@Directive({ selector: '[ngx-tooltip]' })\nexport class TooltipDirective implements OnDestroy {\n @Input() tooltipCssClass: string = '';\n @Input() tooltipTitle?: string;\n @Input() tooltipAppendToBody: boolean = true;\n @Input() tooltipSpacing: number = 10;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipShowCaret: boolean = true;\n @Input() tooltipPlacement: PlacementTypes = PlacementTypes.Top;\n @Input() tooltipAlignment: PlacementTypes = PlacementTypes.Center;\n @Input() tooltipType: StyleTypes = StyleTypes.popover;\n @Input() tooltipCloseOnClickOutside: boolean = true;\n @Input() tooltipCloseOnMouseLeave: boolean = true;\n @Input() tooltipHideTimeout: number = 300;\n @Input() tooltipShowTimeout: number = 100;\n @Input() tooltipTemplate: TemplateRef;\n @Input() tooltipShowEvent: ShowTypes = ShowTypes.all;\n @Input() tooltipContext: any;\n @Input() tooltipImmediateExit: boolean = false;\n\n @Output() show: EventEmitter = new EventEmitter();\n @Output() hide: EventEmitter = new EventEmitter();\n\n private get listensForFocus(): boolean {\n return this.tooltipShowEvent === ShowTypes.all || this.tooltipShowEvent === ShowTypes.focus;\n }\n\n private get listensForHover(): boolean {\n return this.tooltipShowEvent === ShowTypes.all || this.tooltipShowEvent === ShowTypes.mouseover;\n }\n\n private component: ComponentRef;\n private timeout: ReturnType;\n private mouseLeaveContentEvent: any;\n private mouseEnterContentEvent: any;\n private documentClickEvent: any;\n\n constructor(\n private tooltipService: TooltipService,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnDestroy(): void {\n this.hideTooltip(true);\n }\n\n @HostListener('focusin')\n onFocus(): void {\n if (this.listensForFocus) {\n this.showTooltip();\n }\n }\n\n @HostListener('blur')\n onBlur(): void {\n if (this.listensForFocus) {\n this.hideTooltip(true);\n }\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n if (this.listensForHover) {\n this.showTooltip();\n }\n }\n\n @HostListener('mouseleave', ['$event.target'])\n onMouseLeave(target): void {\n if (this.listensForHover && this.tooltipCloseOnMouseLeave) {\n clearTimeout(this.timeout);\n\n if (this.component) {\n const contentDom = this.component.instance.element.nativeElement;\n const contains = contentDom.contains(target);\n if (contains) return;\n }\n\n this.hideTooltip(this.tooltipImmediateExit);\n }\n }\n\n @HostListener('click')\n onMouseClick() {\n if (this.listensForHover) {\n this.hideTooltip(true);\n }\n }\n\n showTooltip(immediate?: boolean): void {\n if (this.component || this.tooltipDisabled) return;\n\n const time = immediate\n ? 0\n : this.tooltipShowTimeout + (navigator.userAgent.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/) ? 300 : 0);\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.tooltipService.destroyAll();\n\n const options = this.createBoundOptions();\n this.component = this.tooltipService.create(options);\n\n // add a tiny timeout to avoid event re-triggers\n setTimeout(() => {\n if (this.component) {\n this.addHideListeners(this.component.instance.element.nativeElement);\n }\n }, 10);\n\n this.show.emit(true);\n }, time);\n }\n\n addHideListeners(tooltip: HTMLElement): void {\n // on mouse enter, cancel the hide triggered by the leave\n this.mouseEnterContentEvent = this.renderer.listen(tooltip, 'mouseenter', () => {\n clearTimeout(this.timeout);\n });\n\n // content mouse leave listener\n if (this.tooltipCloseOnMouseLeave) {\n this.mouseLeaveContentEvent = this.renderer.listen(tooltip, 'mouseleave', () => {\n this.hideTooltip(this.tooltipImmediateExit);\n });\n }\n\n // content close on click outside\n if (this.tooltipCloseOnClickOutside) {\n this.documentClickEvent = this.renderer.listen('window', 'click', event => {\n const contains = tooltip.contains(event.target);\n if (!contains) this.hideTooltip();\n });\n }\n }\n\n hideTooltip(immediate: boolean = false): void {\n if (!this.component) return;\n\n const destroyFn = () => {\n // remove events\n if (this.mouseLeaveContentEvent) this.mouseLeaveContentEvent();\n if (this.mouseEnterContentEvent) this.mouseEnterContentEvent();\n if (this.documentClickEvent) this.documentClickEvent();\n\n // emit events\n this.hide.emit(true);\n\n // destroy component\n this.tooltipService.destroy(this.component);\n this.component = undefined;\n };\n\n clearTimeout(this.timeout);\n if (!immediate) {\n this.timeout = setTimeout(destroyFn, this.tooltipHideTimeout);\n } else {\n destroyFn();\n }\n }\n\n private createBoundOptions(): any {\n return {\n title: this.tooltipTitle,\n template: this.tooltipTemplate,\n host: this.viewContainerRef.element,\n placement: this.tooltipPlacement,\n alignment: this.tooltipAlignment,\n type: this.tooltipType,\n showCaret: this.tooltipShowCaret,\n cssClass: this.tooltipCssClass,\n spacing: this.tooltipSpacing,\n context: this.tooltipContext\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TooltipDirective } from './tooltip.directive';\nimport { TooltipContentComponent } from './tooltip.component';\nimport { TooltipService } from './tooltip.service';\n\nimport { InjectionService } from './injection.service';\n\n@NgModule({\n declarations: [TooltipContentComponent, TooltipDirective],\n providers: [InjectionService, TooltipService],\n exports: [TooltipContentComponent, TooltipDirective],\n imports: [CommonModule],\n entryComponents: [TooltipContentComponent]\n})\nexport class TooltipModule {}\n","import { Injectable } from '@angular/core';\nimport { InjectionService } from './injection.service';\nimport { TooltipContentComponent } from './tooltip.component';\nimport { InjectionRegisteryService } from './injection-registery.service';\n@Injectable()\nexport class TooltipService extends InjectionRegisteryService {\n type: any = TooltipContentComponent;\n\n constructor(injectionService: InjectionService) {\n super(injectionService);\n }\n}\n","export function trimLabel(s: any, max: number = 16): string {\n if (typeof s !== 'string') {\n if (typeof s === 'number') {\n return s + '';\n } else {\n return '';\n }\n }\n\n s = s.trim();\n if (s.length <= max) {\n return s;\n } else {\n return `${s.slice(0, max)}...`;\n }\n}\n","export enum BarOrientation {\n Vertical = 'vertical',\n Horizontal = 'horizontal'\n}\n","export interface Gradient {\n offset: number;\n originalOffset?: number;\n color: string;\n opacity: number;\n}\n","import { ScaleType } from './scale-type.enum';\n\nexport interface LegendOptions {\n colors: any;\n domain: any[];\n position: LegendPosition;\n title: string;\n scaleType: ScaleType;\n}\n\nexport enum LegendPosition {\n Right = 'right',\n Below = 'below'\n}\n\nexport enum LegendType {\n ScaleLegend = 'scaleLegend',\n Legend = 'legend'\n}\n","export enum Orientation {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right'\n}\n","export enum ScaleType {\n Time = 'time',\n Linear = 'linear',\n Ordinal = 'ordinal',\n Quantile = 'quantile'\n}\n","export enum TextAnchor {\n Start = 'start',\n Middle = 'middle',\n End = 'end'\n}\n","export interface ViewDimensions {\n width: number;\n height: number;\n xOffset?: number;\n yOffset?: number;\n}\n","import { LegendPosition } from './types/legend.model';\nimport { ScaleType } from './types/scale-type.enum';\nimport { ViewDimensions } from './types/view-dimension.interface';\n\nexport function calculateViewDimensions({\n width,\n height,\n margins,\n showXAxis = false,\n showYAxis = false,\n xAxisHeight = 0,\n yAxisWidth = 0,\n showXLabel = false,\n showYLabel = false,\n showLegend = false,\n legendType = ScaleType.Ordinal,\n legendPosition = LegendPosition.Right,\n columns = 12\n}): ViewDimensions {\n let xOffset = margins[3];\n let chartWidth = width;\n let chartHeight = height - margins[0] - margins[2];\n\n if (showLegend && legendPosition === LegendPosition.Right) {\n if (legendType === ScaleType.Ordinal) {\n columns -= 2;\n } else {\n columns -= 1;\n }\n }\n\n chartWidth = (chartWidth * columns) / 12;\n\n chartWidth = chartWidth - margins[1] - margins[3];\n\n if (showXAxis) {\n chartHeight -= 5;\n chartHeight -= xAxisHeight;\n\n if (showXLabel) {\n // text height + spacing between axis label and tick labels\n const offset = 25 + 5;\n chartHeight -= offset;\n }\n }\n\n if (showYAxis) {\n chartWidth -= 5;\n chartWidth -= yAxisWidth;\n xOffset += yAxisWidth;\n xOffset += 10;\n\n if (showYLabel) {\n // text height + spacing between axis label and tick labels\n const offset = 25 + 5;\n chartWidth -= offset;\n xOffset += offset;\n }\n }\n\n chartWidth = Math.max(0, chartWidth);\n chartHeight = Math.max(0, chartHeight);\n\n return {\n width: Math.floor(chartWidth),\n height: Math.floor(chartHeight),\n xOffset: Math.floor(xOffset)\n };\n}\n","declare let global: any;\n\n// If we don't check whether 'window' and 'global' variables are defined,\n// code will fail in browser/node with 'variable is undefined' error.\nlet root: any;\nif (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n}\n\n// tslint:disable-next-line:variable-name\nexport const MouseEvent = root.MouseEvent as any & {\n prototype?: MouseEvent;\n new (typeArg: string, eventInitDict?: MouseEventInit): MouseEvent;\n};\n\nexport function createMouseEvent(name: string, bubbles: boolean = false, cancelable: boolean = true): MouseEvent {\n // Calling new of an event does not work correctly on IE. The following is a tested workaround\n // See https://stackoverflow.com/questions/27176983/dispatchevent-not-working-in-ie11\n if (typeof MouseEvent === 'function') {\n // Sane browsers\n return new MouseEvent(name, { bubbles, cancelable });\n } else {\n // IE\n const event = document.createEvent('MouseEvent');\n event.initEvent(name, bubbles, cancelable);\n return event;\n }\n}\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, TemplateRef } from '@angular/core';\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { DataItem } from '../models/chart-data.model';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\n\nexport interface ArcItem {\n data: DataItem;\n endAngle: number;\n innerRadius: number;\n outerRadius: number;\n}\n\n@Component({\n selector: 'g[ngx-charts-gauge-arc]',\n template: `\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GaugeArcComponent {\n @Input() backgroundArc: ArcItem;\n @Input() valueArc: ArcItem;\n @Input() cornerRadius: number;\n @Input() colors: ColorHelper;\n @Input() isActive: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() valueFormatting: (value: any) => string;\n @Input() tooltipTemplate: TemplateRef;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n tooltipText(arc: ArcItem): string {\n const label = formatLabel(arc.data.name);\n let val;\n\n if (this.valueFormatting) {\n val = this.valueFormatting(arc.data.value);\n } else {\n val = formatLabel(arc.data.value);\n }\n\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { line } from 'd3-shape';\nimport { TextAnchor } from '../common/types/text-anchor.enum';\n\ninterface Big {\n line: string;\n text: string;\n textAnchor: string;\n textTransform: string;\n}\n\ninterface Ticks {\n big: Big[];\n small: Array<{ line: string }>;\n}\n\n@Component({\n selector: 'g[ngx-charts-gauge-axis]',\n template: `\n \n \n \n \n \n \n {{ tick.text }}\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GaugeAxisComponent implements OnChanges {\n @Input() bigSegments: number;\n @Input() smallSegments: number;\n @Input() min: number;\n @Input() max: number;\n @Input() angleSpan: number;\n @Input() startAngle: number;\n @Input() radius: number;\n @Input() valueScale: any;\n @Input() tickFormatting: any;\n\n ticks: Ticks;\n rotationAngle: number;\n rotate: string = '';\n\n ngOnChanges(changes: SimpleChanges) {\n this.update();\n }\n\n update(): void {\n this.rotationAngle = -90 + this.startAngle;\n this.rotate = `rotate(${this.rotationAngle})`;\n this.ticks = this.getTicks();\n }\n\n getTicks(): Ticks {\n const bigTickSegment = this.angleSpan / this.bigSegments;\n const smallTickSegment = bigTickSegment / this.smallSegments;\n const tickLength = 20;\n const ticks = {\n big: [],\n small: []\n };\n\n const startDistance = this.radius + 10;\n const textDist = startDistance + tickLength + 10;\n\n for (let i = 0; i <= this.bigSegments; i++) {\n const angleDeg = i * bigTickSegment;\n const angle = (angleDeg * Math.PI) / 180;\n\n const textAnchor = this.getTextAnchor(angleDeg);\n\n let skip = false;\n if (i === 0 && this.angleSpan === 360) {\n skip = true;\n }\n\n if (!skip) {\n let text = Number.parseFloat(this.valueScale.invert(angleDeg).toString()).toLocaleString();\n if (this.tickFormatting) {\n text = this.tickFormatting(text);\n }\n ticks.big.push({\n line: this.getTickPath(startDistance, tickLength, angle),\n textAnchor,\n text,\n textTransform: `\n translate(${textDist * Math.cos(angle)}, ${textDist * Math.sin(angle)}) rotate(${-this.rotationAngle})\n `\n });\n }\n\n if (i === this.bigSegments) {\n continue;\n }\n\n for (let j = 1; j <= this.smallSegments; j++) {\n const smallAngleDeg = angleDeg + j * smallTickSegment;\n const smallAngle = (smallAngleDeg * Math.PI) / 180;\n\n ticks.small.push({\n line: this.getTickPath(startDistance, tickLength / 2, smallAngle)\n });\n }\n }\n\n return ticks;\n }\n\n getTextAnchor(angle: number): TextAnchor {\n // [0, 45] = 'middle';\n // [46, 135] = 'start';\n // [136, 225] = 'middle';\n // [226, 315] = 'end';\n\n angle = (this.startAngle + angle) % 360;\n let textAnchor = TextAnchor.Middle;\n if (angle > 45 && angle <= 135) {\n textAnchor = TextAnchor.Start;\n } else if (angle > 225 && angle <= 315) {\n textAnchor = TextAnchor.End;\n }\n return textAnchor;\n }\n\n getTickPath(startDistance: number, tickLength: number, angle: number): any {\n const y1 = startDistance * Math.sin(angle);\n const y2 = (startDistance + tickLength) * Math.sin(angle);\n const x1 = startDistance * Math.cos(angle);\n const x2 = (startDistance + tickLength) * Math.cos(angle);\n\n const points = [\n { x: x1, y: y1 },\n { x: x2, y: y2 }\n ];\n const lineGenerator = line()\n .x(d => d.x)\n .y(d => d.y);\n return lineGenerator(points);\n }\n}\n","import {\n Component,\n Input,\n ElementRef,\n ViewChild,\n AfterViewInit,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { scaleLinear } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { ArcItem } from './gauge-arc.component';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\ninterface Arcs {\n backgroundArc: ArcItem;\n valueArc: ArcItem;\n}\n\n@Component({\n selector: 'ngx-charts-gauge',\n template: `\n \n \n \n \n \n\n \n\n \n {{ displayValue }}\n {{ units }}\n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss', './gauge.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GaugeComponent extends BaseChartComponent implements AfterViewInit {\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() min: number = 0;\n @Input() max: number = 100;\n @Input() textValue: string;\n @Input() units: string;\n @Input() bigSegments: number = 10;\n @Input() smallSegments: number = 5;\n @Input() results: any[];\n @Input() showAxis: boolean = true;\n @Input() startAngle: number = -120;\n @Input() angleSpan: number = 240;\n @Input() activeEntries: any[] = [];\n @Input() axisTickFormatting: any;\n @Input() tooltipDisabled: boolean = false;\n @Input() valueFormatting: (value: any) => string;\n @Input() showText: boolean = true;\n\n // Specify margins\n @Input() margin: number[];\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n @ViewChild('textEl') textEl: ElementRef;\n\n dims: ViewDimensions;\n domain: any[];\n valueDomain: [number, number];\n valueScale: any;\n\n colors: ColorHelper;\n transform: string;\n\n outerRadius: number;\n textRadius: number; // max available radius for the text\n resizeScale: number = 1;\n rotation: string = '';\n textTransform: string = 'scale(1, 1)';\n cornerRadius: number = 10;\n arcs: Arcs[];\n displayValue: string;\n legendOptions: LegendOptions;\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n setTimeout(() => this.scaleText());\n }\n\n update(): void {\n super.update();\n\n if (!this.showAxis) {\n if (!this.margin) {\n this.margin = [10, 20, 10, 20];\n }\n } else {\n if (!this.margin) {\n this.margin = [60, 100, 60, 100];\n }\n }\n\n // make the starting angle positive\n if (this.startAngle < 0) {\n this.startAngle = (this.startAngle % 360) + 360;\n }\n\n this.angleSpan = Math.min(this.angleSpan, 360);\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showLegend: this.legend,\n legendPosition: this.legendPosition\n });\n\n this.domain = this.getDomain();\n this.valueDomain = this.getValueDomain();\n this.valueScale = this.getValueScale();\n this.displayValue = this.getDisplayValue();\n\n this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2;\n\n this.arcs = this.getArcs();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n const xOffset = this.margin[3] + this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n\n this.transform = `translate(${xOffset}, ${yOffset})`;\n this.rotation = `rotate(${this.startAngle})`;\n setTimeout(() => this.scaleText(), 50);\n }\n\n getArcs(): any[] {\n const arcs = [];\n\n const availableRadius = this.outerRadius * 0.7;\n\n const radiusPerArc = Math.min(availableRadius / this.results.length, 10);\n const arcWidth = radiusPerArc * 0.7;\n this.textRadius = this.outerRadius - this.results.length * radiusPerArc;\n this.cornerRadius = Math.floor(arcWidth / 2);\n\n let i = 0;\n for (const d of this.results) {\n const outerRadius = this.outerRadius - i * radiusPerArc;\n const innerRadius = outerRadius - arcWidth;\n\n const backgroundArc = {\n endAngle: (this.angleSpan * Math.PI) / 180,\n innerRadius,\n outerRadius,\n data: {\n value: this.max,\n name: d.name\n }\n };\n\n const valueArc = {\n endAngle: (Math.min(this.valueScale(d.value), this.angleSpan) * Math.PI) / 180,\n innerRadius,\n outerRadius,\n data: {\n value: d.value,\n name: d.name\n }\n };\n\n const arc = {\n backgroundArc,\n valueArc\n };\n\n arcs.push(arc);\n i++;\n }\n\n return arcs;\n }\n\n getDomain(): string[] {\n return this.results.map(d => d.name);\n }\n\n getValueDomain(): [number, number] {\n const values = this.results.map(d => d.value);\n const dataMin = Math.min(...values);\n const dataMax = Math.max(...values);\n\n if (this.min !== undefined) {\n this.min = Math.min(this.min, dataMin);\n } else {\n this.min = dataMin;\n }\n\n if (this.max !== undefined) {\n this.max = Math.max(this.max, dataMax);\n } else {\n this.max = dataMax;\n }\n\n return [this.min, this.max];\n }\n\n getValueScale(): any {\n return scaleLinear().range([0, this.angleSpan]).nice().domain(this.valueDomain);\n }\n\n getDisplayValue(): string {\n const value = this.results.map(d => d.value).reduce((a, b) => a + b, 0);\n\n if (this.textValue && 0 !== this.textValue.length) {\n return this.textValue.toLocaleString();\n }\n\n if (this.valueFormatting) {\n return this.valueFormatting(value);\n }\n\n return value.toLocaleString();\n }\n\n scaleText(repeat: boolean = true): void {\n if (!this.showText) {\n return;\n }\n const { width } = this.textEl.nativeElement.getBoundingClientRect();\n const oldScale = this.resizeScale;\n\n if (width === 0) {\n this.resizeScale = 1;\n } else {\n const availableSpace = this.textRadius;\n this.resizeScale = Math.floor((availableSpace / (width / this.resizeScale)) * 100) / 100;\n }\n\n if (this.resizeScale !== oldScale) {\n this.textTransform = `scale(${this.resizeScale}, ${this.resizeScale})`;\n this.cd.markForCheck();\n if (repeat) {\n setTimeout(() => this.scaleText(false), 50);\n }\n }\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n getLegendOptions(): LegendOptions {\n return {\n scaleType: ScaleType.Ordinal,\n colors: this.colors,\n domain: this.domain,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name && entry.series === d.series;\n });\n return item !== undefined;\n }\n\n trackBy(index: number, item: Arcs): any {\n return item.valueArc.data.name;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { LinearGaugeComponent } from './linear-gauge.component';\nimport { GaugeComponent } from './gauge.component';\nimport { GaugeArcComponent } from './gauge-arc.component';\nimport { GaugeAxisComponent } from './gauge-axis.component';\nimport { PieChartModule } from '../pie-chart/pie-chart.module';\nimport { BarChartModule } from '../bar-chart/bar-chart.module';\n\n@NgModule({\n imports: [ChartCommonModule, PieChartModule, BarChartModule],\n declarations: [LinearGaugeComponent, GaugeComponent, GaugeArcComponent, GaugeAxisComponent],\n exports: [LinearGaugeComponent, GaugeComponent, GaugeArcComponent, GaugeAxisComponent]\n})\nexport class GaugeModule {}\n","import {\n Component,\n Input,\n ElementRef,\n ViewChild,\n AfterViewInit,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { scaleLinear } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { calculateTextWidth } from '../utils/calculate-width';\nimport { VERDANA_FONT_WIDTHS_16_PX } from '../common/constants/font-widths';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\nenum ElementType {\n Value = 'value',\n Units = 'units'\n}\n\n@Component({\n selector: 'ngx-charts-linear-gauge',\n template: `\n \n \n \n \n\n \n\n \n\n \n \n \n {{ displayValue }}\n \n \n\n \n \n {{ units }}\n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss', './linear-gauge.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LinearGaugeComponent extends BaseChartComponent implements AfterViewInit {\n @Input() min: number = 0;\n @Input() max: number = 100;\n @Input() value: number = 0;\n @Input() units: string;\n @Input() previousValue: number;\n @Input() valueFormatting: any;\n\n @ViewChild('valueTextEl') valueTextEl: ElementRef;\n @ViewChild('unitsTextEl') unitsTextEl: ElementRef;\n\n dims: ViewDimensions;\n valueDomain: [number, number];\n valueScale: any;\n\n colors: ColorHelper;\n transform: string;\n margin: number[] = [10, 20, 10, 20];\n transformLine: string;\n\n valueResizeScale: number = 1;\n unitsResizeScale: number = 1;\n valueTextTransform: string = '';\n valueTranslate: string = '';\n unitsTextTransform: string = '';\n unitsTranslate: string = '';\n displayValue: string;\n hasPreviousValue: boolean;\n\n barOrientation = BarOrientation;\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n setTimeout(() => {\n this.scaleText(ElementType.Value);\n this.scaleText(ElementType.Units);\n });\n }\n\n update(): void {\n super.update();\n\n this.hasPreviousValue = this.previousValue !== undefined;\n this.max = Math.max(this.max, this.value);\n this.min = Math.min(this.min, this.value);\n if (this.hasPreviousValue) {\n this.max = Math.max(this.max, this.previousValue);\n this.min = Math.min(this.min, this.previousValue);\n }\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n\n this.valueDomain = this.getValueDomain();\n this.valueScale = this.getValueScale();\n this.displayValue = this.getDisplayValue();\n\n this.setColors();\n\n const xOffset = this.margin[3] + this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n\n this.transform = `translate(${xOffset}, ${yOffset})`;\n this.transformLine = `translate(${this.margin[3] + this.valueScale(this.previousValue)}, ${yOffset})`;\n this.valueTranslate = `translate(0, -15)`;\n this.unitsTranslate = `translate(0, 15)`;\n\n if (isPlatformServer(this.platformId)) {\n this.scaleTextSSR('value');\n this.scaleTextSSR('units');\n } else {\n setTimeout(() => this.scaleText(ElementType.Value), 50);\n setTimeout(() => this.scaleText(ElementType.Units), 50);\n }\n }\n\n getValueDomain(): [number, number] {\n return [this.min, this.max];\n }\n\n getValueScale(): any {\n return scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n }\n\n getDisplayValue(): string {\n if (this.valueFormatting) {\n return this.valueFormatting(this.value);\n }\n return this.value.toLocaleString();\n }\n\n scaleText(element: ElementType, repeat: boolean = true): void {\n let el;\n let resizeScale;\n if (element === ElementType.Value) {\n el = this.valueTextEl;\n resizeScale = this.valueResizeScale;\n } else {\n el = this.unitsTextEl;\n resizeScale = this.unitsResizeScale;\n }\n\n const { width, height } = el.nativeElement.getBoundingClientRect();\n if (width === 0 || height === 0) return;\n const oldScale = resizeScale;\n const availableWidth = this.dims.width;\n const availableHeight = Math.max(this.dims.height / 2 - 15, 0);\n const resizeScaleWidth = Math.floor((availableWidth / (width / resizeScale)) * 100) / 100;\n const resizeScaleHeight = Math.floor((availableHeight / (height / resizeScale)) * 100) / 100;\n resizeScale = Math.min(resizeScaleHeight, resizeScaleWidth);\n\n if (resizeScale !== oldScale) {\n if (element === ElementType.Value) {\n this.valueResizeScale = resizeScale;\n this.valueTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n } else {\n this.unitsResizeScale = resizeScale;\n this.unitsTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n }\n this.cd.markForCheck();\n if (repeat && isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.scaleText(element, false);\n }, 50);\n }\n }\n }\n\n scaleTextSSR(element) {\n let resizeScale = 1;\n\n const value = element === 'value' ? this.displayValue : this.units;\n const width = calculateTextWidth(VERDANA_FONT_WIDTHS_16_PX, value, 10);\n const height = 25;\n\n const availableWidth = this.dims.width;\n const availableHeight = Math.max(this.dims.height / 2 - 15, 0);\n const resizeScaleWidth = Math.floor((availableWidth / (width / resizeScale)) * 100) / 100;\n const resizeScaleHeight = Math.floor((availableHeight / (height / resizeScale)) * 100) / 100;\n resizeScale = Math.min(resizeScaleHeight, resizeScaleWidth);\n\n if (element === 'value') {\n this.valueResizeScale = resizeScale;\n this.valueTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n } else {\n this.unitsResizeScale = resizeScale;\n this.unitsTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n }\n\n this.cd.markForCheck();\n }\n\n onClick(): void {\n this.select.emit({\n name: 'Value',\n value: this.value\n });\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, [this.value], this.customColors);\n }\n}\n","import {\n Component,\n Input,\n SimpleChanges,\n Output,\n EventEmitter,\n OnChanges,\n OnInit,\n ChangeDetectionStrategy,\n TemplateRef\n} from '@angular/core';\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { DataItem, Series } from '../models/chart-data.model';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\n\ninterface Cell {\n cell: DataItem;\n data: number;\n fill: string;\n height: number;\n label: string;\n row: Series;\n series: string;\n width: number;\n x: number;\n y: number;\n}\n@Component({\n selector: 'g[ngx-charts-heat-map-cell-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeatCellSeriesComponent implements OnChanges, OnInit {\n @Input() data;\n @Input() colors;\n @Input() xScale;\n @Input() yScale;\n @Input() gradient: boolean;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipText: any;\n @Input() tooltipTemplate: TemplateRef;\n @Input() animations: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n cells: Cell[];\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n ngOnInit() {\n if (!this.tooltipText) {\n this.tooltipText = this.getTooltipText;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.cells = this.getCells();\n }\n\n getCells(): Cell[] {\n const cells = [];\n\n this.data.map(row => {\n row.series.map(cell => {\n const value = cell.value;\n cell.series = row.name;\n\n cells.push({\n row,\n cell,\n x: this.xScale(row.name),\n y: this.yScale(cell.name),\n width: this.xScale.bandwidth(),\n height: this.yScale.bandwidth(),\n fill: this.colors.getColor(value),\n data: value,\n label: formatLabel(cell.name),\n series: row.name\n });\n });\n });\n\n return cells;\n }\n\n getTooltipText({ label, data, series }: { label: string; data: number; series: string }): string {\n return `\n ${escapeLabel(series)} • ${escapeLabel(label)}\n ${data.toLocaleString()}\n `;\n }\n\n trackBy(index: number, item): string {\n return item.label;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n SimpleChanges,\n ElementRef,\n OnChanges,\n ChangeDetectionStrategy,\n HostListener\n} from '@angular/core';\nimport { select } from 'd3-selection';\nimport { Transition } from 'd3-transition';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { Gradient } from '../common/types/gradient.interface';\nimport { id } from '../utils/id';\n\n@Component({\n selector: 'g[ngx-charts-heat-map-cell]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeatMapCellComponent implements OnChanges {\n @Input() fill: string;\n @Input() x: number;\n @Input() y: number;\n @Input() width: number;\n @Input() height: number;\n @Input() data: number;\n @Input() gradient: boolean = false;\n @Input() animations: boolean = true;\n\n @Output() select: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n element: HTMLElement;\n transform: string;\n startOpacity: number;\n gradientId: string;\n gradientUrl: string;\n gradientStops: Gradient[];\n\n barOrientation = BarOrientation;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.transform = `translate(${this.x} , ${this.y})`;\n\n this.startOpacity = 0.3;\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n this.gradientStops = this.getGradientStops();\n\n if (this.animations) {\n this.loadAnimation();\n }\n }\n\n getGradientStops(): Gradient[] {\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.startOpacity\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n\n loadAnimation(): void {\n const node = select(this.element).select('.cell');\n node.attr('opacity', 0);\n this.animateToCurrentForm();\n }\n\n animateToCurrentForm(): void {\n const node = select(this.element).select('.cell');\n\n node.transition().duration(750).attr('opacity', 1);\n }\n\n onClick(): void {\n this.select.emit(this.data);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.activate.emit(this.data);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.deactivate.emit(this.data);\n }\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { scaleBand } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { getScaleType } from '../common/domain.helper';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\ninterface RectItem {\n fill: string;\n height: number;\n rx: number;\n width: number;\n x: number;\n y: number;\n}\n\n@Component({\n selector: 'ngx-charts-heat-map',\n template: `\n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class HeatMapComponent extends BaseChartComponent {\n @Input() legend: boolean;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean;\n @Input() yAxis: boolean;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() gradient: boolean;\n @Input() innerPadding: number | number[] | string | string[] = 8;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipText: any;\n @Input() min: number;\n @Input() max: number;\n @Input() activeEntries: any[] = [];\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n xDomain: string[];\n yDomain: string[];\n valueDomain: any[];\n xScale: any;\n yScale: any;\n colors: ColorHelper;\n colorScale: any;\n transform: string;\n rects: RectItem[];\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: LegendOptions;\n scaleType: ScaleType = ScaleType.Linear;\n\n update(): void {\n super.update();\n\n this.formatDates();\n\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.valueDomain = this.getValueDomain();\n\n this.scaleType = getScaleType(this.valueDomain, false);\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.scaleType as any,\n legendPosition: this.legendPosition\n });\n\n if (this.scaleType === ScaleType.Linear) {\n let min = this.min;\n let max = this.max;\n if (!this.min) {\n min = Math.min(0, ...this.valueDomain);\n }\n if (!this.max) {\n max = Math.max(...this.valueDomain);\n }\n this.valueDomain = [min, max];\n }\n\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.rects = this.getRects();\n }\n\n getXDomain(): string[] {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.name)) {\n domain.push(group.name);\n }\n }\n\n return domain;\n }\n\n getYDomain(): string[] {\n const domain = [];\n\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.name)) {\n domain.push(d.name);\n }\n }\n }\n\n return domain;\n }\n\n getValueDomain(): any[] {\n const domain = [];\n\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n\n return domain;\n }\n\n /**\n * Converts the input to gap paddingInner in fraction\n * Supports the following inputs:\n * Numbers: 8\n * Strings: \"8\", \"8px\", \"8%\"\n * Arrays: [8,2], \"8,2\", \"[8,2]\"\n * Mixed: [8,\"2%\"], [\"8px\",\"2%\"], \"8,2%\", \"[8,2%]\"\n *\n * @memberOf HeatMapComponent\n */\n getDimension(value: string | number | Array, index: number = 0, N: number, L: number): number {\n if (typeof value === 'string') {\n value = value\n .replace('[', '')\n .replace(']', '')\n .replace('px', '')\n // tslint:disable-next-line: quotemark\n .replace(\"'\", '');\n\n if (value.includes(',')) {\n value = value.split(',');\n }\n }\n if (Array.isArray(value) && typeof index === 'number') {\n return this.getDimension(value[index], null, N, L);\n }\n if (typeof value === 'string' && value.includes('%')) {\n return +value.replace('%', '') / 100;\n }\n return N / (L / +value + 1);\n }\n\n getXScale(): any {\n const f = this.getDimension(this.innerPadding, 0, this.xDomain.length, this.dims.width);\n return scaleBand().rangeRound([0, this.dims.width]).domain(this.xDomain).paddingInner(f);\n }\n\n getYScale(): any {\n const f = this.getDimension(this.innerPadding, 1, this.yDomain.length, this.dims.height);\n return scaleBand().rangeRound([this.dims.height, 0]).domain(this.yDomain).paddingInner(f);\n }\n\n getRects(): RectItem[] {\n const rects = [];\n\n this.xDomain.map(xVal => {\n this.yDomain.map(yVal => {\n rects.push({\n x: this.xScale(xVal),\n y: this.yScale(yVal),\n rx: 3,\n width: this.xScale.bandwidth(),\n height: this.yScale.bandwidth(),\n fill: 'rgba(200,200,200,0.03)'\n });\n });\n });\n\n return rects;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, this.scaleType, this.valueDomain);\n }\n\n getLegendOptions(): LegendOptions {\n return {\n scaleType: this.scaleType,\n domain: this.valueDomain,\n colors: this.scaleType === ScaleType.Ordinal ? this.colors : this.colors.scale,\n title: this.scaleType === ScaleType.Ordinal ? this.legendTitle : undefined,\n position: this.legendPosition\n };\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(event, group, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n } else {\n return i.name === item.name && i.series === item.series;\n }\n });\n\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(event, group, fromLegend: boolean = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n } else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { HeatMapCellComponent } from './heat-map-cell.component';\nimport { HeatCellSeriesComponent } from './heat-map-cell-series.component';\nimport { HeatMapComponent } from './heat-map.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [HeatMapCellComponent, HeatCellSeriesComponent, HeatMapComponent],\n exports: [HeatMapCellComponent, HeatCellSeriesComponent, HeatMapComponent]\n})\nexport class HeatMapModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n OnInit\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'ngx-charts-line-chart',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(\n 500,\n style({\n opacity: 0\n })\n )\n ])\n ])\n ]\n})\nexport class LineChartComponent extends BaseChartComponent implements OnInit {\n @Input() legend: boolean;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean;\n @Input() yAxis: boolean;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() autoScale: boolean;\n @Input() timeline: boolean;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() curve: any = curveLinear;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() rangeFillOpacity: number;\n @Input() trimXAxisTicks: boolean = true;\n @Input() trimYAxisTicks: boolean = true;\n @Input() rotateXAxisTicks: boolean = true;\n @Input() maxXAxisTickLength: number = 16;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() roundDomains: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() showRefLines: boolean = false;\n @Input() referenceLines: any;\n @Input() showRefLabels: boolean = true;\n @Input() xScaleMin: number;\n @Input() xScaleMax: number;\n @Input() yScaleMin: number;\n @Input() yScaleMax: number;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n xSet: any;\n xDomain: any;\n yDomain: [number, number];\n seriesDomain: any;\n yScale: any;\n xScale: any;\n colors: ColorHelper;\n scaleType: ScaleType;\n transform: string;\n clipPath: string;\n clipPathId: string;\n areaPath: any;\n margin: number[] = [10, 20, 10, 20];\n hoveredVertical: any; // the value of the x axis that is hovered over\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n filteredDomain: any;\n legendOptions: any;\n hasRange: boolean; // whether the line has a min-max range around it\n timelineWidth: any;\n timelineHeight: number = 50;\n timelineXScale: any;\n timelineYScale: any;\n timelineXDomain: any;\n timelineTransform: any;\n timelinePadding: number = 10;\n\n isSSR = false;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n this.updateTimeline();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n\n updateTimeline(): void {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n\n getXDomain(): any[] {\n let values = getUniqueXDomainValues(this.results);\n\n this.scaleType = getScaleType(values);\n let domain = [];\n\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n\n if (this.scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate) return 1;\n if (bDate > aDate) return -1;\n return 0;\n });\n } else if (this.scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n } else {\n domain = values;\n this.xSet = values;\n }\n\n return domain;\n }\n\n getYDomain(): [number, number] {\n const domain = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n this.hasRange = true;\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n this.hasRange = true;\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n }\n\n const values = [...domain];\n if (!this.autoScale) {\n values.push(0);\n }\n\n const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n\n return [min, max];\n }\n\n getSeriesDomain(): string[] {\n return this.results.map(d => d.name);\n }\n\n getXScale(domain, width: number): any {\n let scale;\n\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime().range([0, width]).domain(domain);\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear().range([0, width]).domain(domain);\n\n if (this.roundDomains) {\n scale = scale.nice();\n }\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().range([0, width]).padding(0.1).domain(domain);\n }\n\n return scale;\n }\n\n getYScale(domain, height: number): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n updateDomain(domain): void {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n\n updateHoveredVertical(item): void {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n trackBy(index: number, item): string {\n return `${item.name}`;\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n this.deactivateAll();\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll(): void {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { LineComponent } from './line.component';\nimport { LineChartComponent } from './line-chart.component';\nimport { LineSeriesComponent } from './line-series.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [LineComponent, LineChartComponent, LineSeriesComponent],\n exports: [LineComponent, LineChartComponent, LineSeriesComponent]\n})\nexport class LineChartModule {}\n","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { area, line } from 'd3-shape';\n\nimport { id } from '../utils/id';\nimport { sortLinear, sortByTime, sortByDomain } from '../utils/sort';\nimport { ColorHelper } from '../common/color.helper';\nimport { Series } from '../models/chart-data.model';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { Gradient } from '../common/types/gradient.interface';\n\n@Component({\n selector: 'g[ngx-charts-line-series]',\n template: `\n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LineSeriesComponent implements OnChanges {\n @Input() data: Series;\n @Input() xScale;\n @Input() yScale;\n @Input() colors: ColorHelper;\n @Input() scaleType: ScaleType;\n @Input() curve: any;\n @Input() activeEntries: any[];\n @Input() rangeFillOpacity: number;\n @Input() hasRange: boolean;\n @Input() animations: boolean = true;\n\n path: string;\n outerPath: string;\n areaPath: string;\n gradientId: string;\n gradientUrl: string;\n hasGradient: boolean;\n gradientStops: Gradient[];\n areaGradientStops: Gradient[];\n stroke: string;\n\n barOrientation = BarOrientation;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.updateGradients();\n\n const data = this.sortData(this.data.series);\n\n const lineGen = this.getLineGenerator();\n this.path = lineGen(data) || '';\n\n const areaGen = this.getAreaGenerator();\n this.areaPath = areaGen(data) || '';\n\n if (this.hasRange) {\n const range = this.getRangeGenerator();\n this.outerPath = range(data) || '';\n }\n\n if (this.hasGradient) {\n this.stroke = this.gradientUrl;\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n const min = Math.min(...values);\n if (max === min) {\n this.stroke = this.colors.getColor(max);\n }\n } else {\n this.stroke = this.colors.getColor(this.data.name);\n }\n }\n\n getLineGenerator(): any {\n return line()\n .x(d => {\n const label = d.name;\n let value;\n if (this.scaleType === ScaleType.Time) {\n value = this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n value = this.xScale(Number(label));\n } else {\n value = this.xScale(label);\n }\n return value;\n })\n .y(d => this.yScale(d.value))\n .curve(this.curve);\n }\n\n getRangeGenerator(): any {\n return area()\n .x(d => {\n const label = d.name;\n let value;\n if (this.scaleType === ScaleType.Time) {\n value = this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n value = this.xScale(Number(label));\n } else {\n value = this.xScale(label);\n }\n return value;\n })\n .y0(d => this.yScale(typeof d.min === 'number' ? d.min : d.value))\n .y1(d => this.yScale(typeof d.max === 'number' ? d.max : d.value))\n .curve(this.curve);\n }\n\n getAreaGenerator(): any {\n const xProperty = d => {\n const label = d.name;\n return this.xScale(label);\n };\n\n return area()\n .x(xProperty)\n .y0(() => this.yScale.range()[0])\n .y1(d => this.yScale(d.value))\n .curve(this.curve);\n }\n\n sortData(data) {\n if (this.scaleType === ScaleType.Linear) {\n data = sortLinear(data, 'name');\n } else if (this.scaleType === ScaleType.Time) {\n data = sortByTime(data, 'name');\n } else {\n data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n\n return data;\n }\n\n updateGradients() {\n if (this.colors.scaleType === ScaleType.Linear) {\n this.hasGradient = true;\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n const min = Math.min(...values);\n this.gradientStops = this.colors.getLinearGradientStops(max, min);\n this.areaGradientStops = this.colors.getLinearGradientStops(max);\n } else {\n this.hasGradient = false;\n this.gradientStops = undefined;\n this.areaGradientStops = undefined;\n }\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n\n isInactive(entry): boolean {\n if (!this.activeEntries || this.activeEntries.length === 0) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item === undefined;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n ElementRef,\n ChangeDetectionStrategy,\n SimpleChanges,\n PLATFORM_ID,\n Inject,\n OnInit\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { select } from 'd3-selection';\nimport { Series } from '../models/chart-data.model';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n selector: 'g[ngx-charts-line]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n strokeDasharray: 2000,\n strokeDashoffset: 2000\n }),\n animate(\n 1000,\n style({\n strokeDashoffset: 0\n })\n )\n ])\n ])\n ]\n})\nexport class LineComponent implements OnChanges, OnInit {\n @Input() path: string;\n @Input() stroke: string;\n @Input() data: Series;\n @Input() fill: string = 'none';\n @Input() animations: boolean = true;\n\n // @Output() select = new EventEmitter();\n\n initialized: boolean = false;\n initialPath: string;\n\n isSSR = false;\n\n constructor(private element: ElementRef, @Inject(PLATFORM_ID) private platformId: any) {}\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.initialized) {\n this.initialized = true;\n this.initialPath = this.path;\n } else {\n this.updatePathEl();\n }\n }\n\n updatePathEl(): void {\n const node = select(this.element.nativeElement).select('.line');\n\n if (this.animations) {\n node.transition().duration(750).attr('d', this.path);\n } else {\n node.attr('d', this.path);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-interface */\n\nimport { IVector2D } from './coordinates.model';\n\nexport type StringOrNumberOrDate = string | number | Date;\n\nexport interface DataItem {\n name: StringOrNumberOrDate;\n value: number;\n extra?: any;\n min?: number;\n max?: number;\n label?: string;\n}\n\nexport interface SingleSeries extends Array {}\n\nexport interface Series {\n name: StringOrNumberOrDate;\n series: DataItem[];\n}\n\nexport interface MultiSeries extends Array {}\n\nexport interface AreaChartDataItem extends DataItem {\n d0: number;\n d1: number;\n}\n\nexport interface AreaChartSeries {\n name: StringOrNumberOrDate;\n series: AreaChartDataItem[];\n}\n\nexport interface PieGridData {\n data: PieGridDataItem;\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\nexport interface PieGridDataItem extends DataItem {\n percent: number;\n total: number;\n value: number;\n}\n\nexport interface BubbleChartDataItem {\n name: StringOrNumberOrDate;\n x: StringOrNumberOrDate;\n y: StringOrNumberOrDate;\n r: number;\n extra?: any;\n}\n\nexport interface BubbleChartSeries {\n name: StringOrNumberOrDate;\n series: BubbleChartDataItem[];\n}\n\nexport interface BubbleChartMultiSeries extends Array {}\n\nexport interface TreeMapDataItem {\n name: StringOrNumberOrDate;\n size?: number;\n children?: TreeMapDataItem[];\n extra?: any;\n}\n\nexport interface TreeMapData extends Array {}\n\nexport interface BoxChartSeries {\n name: StringOrNumberOrDate;\n series: DataItem[];\n}\n\nexport interface BoxChartMultiSeries extends Array {}\n\nexport interface IBoxModel {\n value: number | Date;\n label: StringOrNumberOrDate;\n data: DataItem[];\n formattedLabel: string;\n height: number;\n width: number;\n x: number;\n y: number;\n roundEdges: boolean;\n lineCoordinates: IVector2D[];\n quartiles: number[];\n tooltipText?: string;\n ariaLabel?: string;\n color?: string;\n // TODO: Replace by IColorGradient Interface\n gradientStops?: Array<{ offset: number; color: string; opacity: number }>;\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from './common/chart-common.module';\nimport { AreaChartModule } from './area-chart/area-chart.module';\nimport { BarChartModule } from './bar-chart/bar-chart.module';\nimport { BoxChartModule } from './box-chart/box-chart.module';\nimport { BubbleChartModule } from './bubble-chart/bubble-chart.module';\nimport { HeatMapModule } from './heat-map/heat-map.module';\nimport { LineChartModule } from './line-chart/line-chart.module';\nimport { PolarChartModule } from './polar-chart/polar-chart.module';\nimport { NumberCardModule } from './number-card/number-card.module';\nimport { PieChartModule } from './pie-chart/pie-chart.module';\nimport { TreeMapModule } from './tree-map/tree-map.module';\nimport { GaugeModule } from './gauge/gauge.module';\nimport { ngxChartsPolyfills } from './polyfills';\n\n@NgModule({\n exports: [\n ChartCommonModule,\n AreaChartModule,\n BarChartModule,\n BoxChartModule,\n BubbleChartModule,\n HeatMapModule,\n LineChartModule,\n PolarChartModule,\n NumberCardModule,\n PieChartModule,\n TreeMapModule,\n GaugeModule\n ]\n})\nexport class NgxChartsModule {\n constructor() {\n ngxChartsPolyfills();\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { invertColor } from '../utils/color-utils';\nimport { GridItem, GridData } from '../common/grid-layout.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\nexport interface CardModel extends GridItem {\n color: string;\n tooltipText: string;\n textColor: string;\n bandColor: string;\n label: string;\n}\n\n@Component({\n selector: 'g[ngx-charts-card-series]',\n template: `\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardSeriesComponent implements OnChanges {\n @Input() data: CardModel[];\n @Input() dims: ViewDimensions;\n @Input() colors: ColorHelper;\n @Input() innerPadding: number = 15;\n\n @Input() cardColor: string;\n @Input() bandColor: string;\n @Input() emptyColor = 'rgba(0, 0, 0, 0)';\n @Input() textColor: string;\n @Input() valueFormatting: any;\n @Input() labelFormatting: any;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n cards: CardModel[];\n emptySlots: any[];\n medianSize: number;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n if (this.data.length > 2) {\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n\n const sortedLengths = this.data\n .map(d => {\n const hasValue = d && d.data && typeof d.data.value !== 'undefined' && d.data.value !== null;\n return hasValue\n ? valueFormatting({\n data: d.data,\n label: d ? d.data.name : '',\n value: d && d.data ? d.data.value : ''\n }).length\n : 0;\n })\n .sort((a, b) => b - a);\n const idx = Math.ceil(this.data.length / 2);\n this.medianSize = sortedLengths[idx];\n }\n\n const cards = this.getCards();\n this.cards = cards.filter(d => d.data.value !== null);\n this.emptySlots = cards.filter(d => d.data.value === null);\n }\n\n getCards(): CardModel[] {\n const yPadding =\n typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[0] + this.innerPadding[2];\n const xPadding =\n typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[1] + this.innerPadding[3];\n\n return this.data.map((d, index) => {\n let label = d.data.name as any;\n if (label && label.constructor.name === 'Date') {\n label = label.toLocaleDateString();\n } else {\n label = label ? label.toLocaleString() : label;\n }\n\n const value = d.data.value;\n const valueColor = label ? this.colors.getColor(label) : this.emptyColor;\n const color = this.cardColor || valueColor || '#000';\n return {\n x: d.x,\n y: d.y,\n width: d.width - xPadding,\n height: d.height - yPadding,\n color,\n bandColor: this.bandColor || valueColor,\n textColor: this.textColor || invertColor(color),\n label,\n data: d.data,\n tooltipText: `${label}: ${value}`\n };\n });\n }\n\n trackBy(index, card): string {\n return card.label;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n SimpleChanges,\n OnChanges,\n ViewChild,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n Inject,\n OnInit\n} from '@angular/core';\nimport { trimLabel } from '../common/trim-label.helper';\nimport { roundedRect } from '../common/shape.helper';\nimport { escapeLabel } from '../common/label.helper';\nimport { decimalChecker, count } from '../common/count/count.helper';\nimport { GridData } from '../common/grid-layout.helper';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { calculateTextWidth } from '../utils/calculate-width';\nimport { VERDANA_FONT_WIDTHS_16_PX } from '../common/constants/font-widths';\n\n@Component({\n selector: 'g[ngx-charts-card]',\n template: `\n \n \n \n {{ label }}\n \n \n \n \n \n {{ value }}\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardComponent implements OnChanges, OnDestroy, OnInit {\n @Input() color: string;\n @Input() bandColor: string;\n @Input() textColor: string;\n @Input() x: number;\n @Input() y: number;\n @Input() width: number;\n @Input() height: number;\n @Input() label: string;\n @Input() data: GridData;\n @Input() medianSize: number;\n @Input() valueFormatting: any;\n @Input() labelFormatting: any;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n @ViewChild('textEl', { static: false }) textEl: ElementRef;\n\n element: HTMLElement;\n value: string = '';\n transform: string;\n formattedLabel: string;\n cardWidth: number;\n cardHeight: number;\n textWidth: number;\n textFontSize: number = 12;\n textTransform: string = '';\n initialized: boolean = false;\n animationReq: number;\n\n bandHeight: number = 10;\n transformBand: string;\n textPadding: number[] = [10, 20, 5, 20];\n labelFontSize: number = 15;\n\n bandPath: string;\n\n constructor(\n element: ElementRef,\n private cd: ChangeDetectorRef,\n private zone: NgZone,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.scaleTextSSR();\n }\n }\n\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformId)) {\n cancelAnimationFrame(this.animationReq);\n }\n }\n\n update(): void {\n this.zone.run(() => {\n const hasValue = this.data && typeof this.data.value !== 'undefined';\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n const labelFormatting = this.labelFormatting || (card => escapeLabel(trimLabel(card.label, 55)));\n\n this.transform = `translate(${this.x} , ${this.y})`;\n\n this.textWidth = Math.max(0, this.width) - this.textPadding[1] - this.textPadding[3];\n this.cardWidth = Math.max(0, this.width);\n this.cardHeight = Math.max(0, this.height);\n\n this.label = this.label ? this.label : (this.data.name as any);\n\n const cardData = {\n label: this.label,\n data: this.data,\n value: this.data.value\n };\n\n this.formattedLabel = labelFormatting(cardData);\n this.transformBand = `translate(0 , ${this.cardHeight - this.bandHeight})`;\n\n const value = hasValue ? valueFormatting(cardData) : '';\n\n this.value = this.paddedValue(value);\n this.setPadding();\n\n this.bandPath = roundedRect(0, 0, this.cardWidth, this.bandHeight, 3, [false, false, true, true]);\n\n setTimeout(() => {\n if (isPlatformBrowser(this.platformId)) {\n this.scaleText();\n }\n this.value = value;\n if (hasValue && !this.initialized) {\n setTimeout(() => this.startCount(), 20);\n }\n }, 8);\n });\n }\n\n paddedValue(value: string): string {\n if (this.medianSize && this.medianSize > value.length) {\n value += '\\u2007'.repeat(this.medianSize - value.length);\n }\n return value;\n }\n\n startCount(): void {\n if (!this.initialized && this.animations) {\n cancelAnimationFrame(this.animationReq);\n\n const val = this.data.value;\n const decs = decimalChecker(val);\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n\n const callback = ({ value, finished }) => {\n this.zone.run(() => {\n value = finished ? val : value;\n this.value = valueFormatting({ label: this.label, data: this.data, value });\n if (!finished) {\n this.value = this.paddedValue(this.value);\n }\n this.cd.markForCheck();\n });\n };\n\n this.animationReq = count(0, val, decs, 1, callback);\n this.initialized = true;\n }\n }\n\n scaleText(): void {\n this.zone.run(() => {\n const { width, height } = this.textEl.nativeElement.getBoundingClientRect();\n if (width === 0 || height === 0) {\n return;\n }\n\n const textPadding = (this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8);\n const availableWidth = this.cardWidth - 2 * textPadding;\n const availableHeight = this.cardHeight / 3;\n\n const resizeScale = Math.min(availableWidth / width, availableHeight / height);\n this.textFontSize = Math.floor(this.textFontSize * resizeScale);\n this.labelFontSize = Math.min(this.textFontSize, 15);\n\n this.setPadding();\n this.cd.markForCheck();\n });\n }\n\n scaleTextSSR() {\n const width = calculateTextWidth(VERDANA_FONT_WIDTHS_16_PX, this.value, 10);\n const height = 18;\n const textPadding = (this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8);\n const availableWidth = this.cardWidth - 2 * textPadding;\n const availableHeight = this.cardHeight / 3;\n\n const resizeScale = Math.min(availableWidth / width, availableHeight / height);\n\n this.textFontSize = Math.floor(this.textFontSize * resizeScale);\n this.labelFontSize = Math.min(this.textFontSize, 15);\n\n this.setPadding();\n }\n\n setPadding() {\n this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8;\n const padding = this.cardHeight / 2;\n this.textPadding[0] = padding - this.textFontSize - this.labelFontSize / 2;\n this.textPadding[2] = padding - this.labelFontSize;\n }\n\n onClick(): void {\n this.select.emit(this.data);\n }\n}\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { gridLayout, gridSize } from '../common/grid-layout.helper';\nimport { CardModel } from './card-series.component';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-number-card',\n template: `\n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss', './card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumberCardComponent extends BaseChartComponent {\n @Input() cardColor: string;\n @Input() bandColor: string;\n @Input() emptyColor: string = 'rgba(0, 0, 0, 0)';\n @Input() innerPadding: number = 15;\n @Input() textColor: string;\n @Input() valueFormatting: any;\n @Input() labelFormatting: any;\n @Input() designatedTotal: number;\n\n dims: ViewDimensions;\n data: CardModel[];\n colors: ColorHelper;\n transform: string;\n domain: any[];\n margin: number[] = [10, 10, 10, 10];\n\n get clickable(): boolean {\n return !!this.select.observers.length;\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n\n this.formatDates();\n\n this.domain = this.getDomain();\n\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n const size = gridSize(this.dims, this.results.length, 150);\n const N = size[0] * size[1];\n\n const data = this.results.slice();\n\n while (data.length < N) {\n data.push({ value: null });\n }\n\n this.data = gridLayout(this.dims, data, 150, this.designatedTotal) as any;\n }\n\n getDomain(): string[] {\n return this.results.map(d => d.label);\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { CardComponent } from './card.component';\nimport { CardSeriesComponent } from './card-series.component';\nimport { NumberCardComponent } from './number-card.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [CardComponent, CardSeriesComponent, NumberCardComponent],\n exports: [CardComponent, CardSeriesComponent, NumberCardComponent]\n})\nexport class NumberCardModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { DataItem } from '../models/chart-data.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-advanced-pie-chart',\n template: `\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
\n `,\n styleUrls: ['../common/base-chart.component.scss', './advanced-pie-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdvancedPieChartComponent extends BaseChartComponent {\n @Input() gradient: boolean;\n @Input() activeEntries: any[] = [];\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipText: any;\n @Input() label: string = 'Total';\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n domain: string[];\n outerRadius: number;\n innerRadius: number;\n transform: string;\n colors: ColorHelper;\n legendWidth: number;\n margin: number[] = [20, 20, 20, 20];\n\n @Input() valueFormatting: (value: number) => any;\n @Input() nameFormatting: (value: string) => any;\n @Input() percentageFormatting: (value: number) => any;\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: (this.width * 4) / 12.0,\n height: this.height,\n margins: this.margin\n });\n\n this.formatDates();\n\n this.domain = this.getDomain();\n this.setColors();\n\n const xOffset = this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n this.legendWidth = this.width - this.dims.width - this.margin[1];\n\n this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2.5;\n this.innerRadius = this.outerRadius * 0.75;\n\n this.transform = `translate(${xOffset} , ${yOffset})`;\n }\n\n getDomain(): string[] {\n return this.results.map(d => d.label);\n }\n\n onClick(data: DataItem) {\n this.select.emit(data);\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n SimpleChanges,\n OnChanges,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { interpolate } from 'd3-interpolate';\nimport { select } from 'd3-selection';\nimport { arc } from 'd3-shape';\nimport { id } from '../utils/id';\nimport { DataItem } from '../models/chart-data.model';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\n\n@Component({\n selector: 'g[ngx-charts-pie-arc]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieArcComponent implements OnChanges {\n @Input() fill: string;\n @Input() startAngle: number = 0;\n @Input() endAngle: number = Math.PI * 2;\n @Input() innerRadius: number;\n @Input() outerRadius: number;\n @Input() cornerRadius: number = 0;\n @Input() value: number;\n @Input() max: number;\n @Input() data: DataItem;\n @Input() explodeSlices: boolean = false;\n @Input() gradient: boolean = false;\n @Input() animate: boolean = true;\n @Input() pointerEvents: boolean = true;\n @Input() isActive: boolean = false;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n @Output() dblclick = new EventEmitter();\n\n barOrientation = BarOrientation;\n\n element: HTMLElement;\n path: any;\n startOpacity: number;\n radialGradientId: string;\n gradientFill: string;\n initialized: boolean = false;\n\n private _timeout;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n getGradient(): string {\n return this.gradient ? this.gradientFill : this.fill;\n }\n\n getPointerEvents(): string {\n return this.pointerEvents ? 'auto' : 'none';\n }\n\n update(): void {\n const calc = this.calculateArc();\n this.startOpacity = 0.5;\n this.radialGradientId = 'linearGrad' + id().toString();\n this.gradientFill = `url(#${this.radialGradientId})`;\n\n if (this.animate) {\n if (this.initialized) {\n this.updateAnimation();\n } else {\n this.loadAnimation();\n this.initialized = true;\n }\n } else {\n this.path = calc.startAngle(this.startAngle).endAngle(this.endAngle)();\n }\n }\n\n calculateArc(): any {\n let outerRadius = this.outerRadius;\n if (this.explodeSlices && this.innerRadius === 0) {\n outerRadius = (this.outerRadius * this.value) / this.max;\n }\n\n return arc().innerRadius(this.innerRadius).outerRadius(outerRadius).cornerRadius(this.cornerRadius);\n }\n\n loadAnimation(): void {\n const node = select(this.element)\n .selectAll('.arc')\n .data([{ startAngle: this.startAngle, endAngle: this.endAngle }]);\n\n const calc = this.calculateArc();\n\n node\n .transition()\n .attrTween('d', function (d) {\n (this)._current = (this)._current || d;\n const copyOfD = Object.assign({}, d);\n copyOfD.endAngle = copyOfD.startAngle;\n const interpolater = interpolate(copyOfD, copyOfD);\n (this)._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n })\n .transition()\n .duration(750)\n .attrTween('d', function (d) {\n (this)._current = (this)._current || d;\n const interpolater = interpolate((this)._current, d);\n (this)._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n });\n }\n\n updateAnimation(): void {\n const node = select(this.element)\n .selectAll('.arc')\n .data([{ startAngle: this.startAngle, endAngle: this.endAngle }]);\n\n const calc = this.calculateArc();\n\n node\n .transition()\n .duration(750)\n .attrTween('d', function (d) {\n (this)._current = (this)._current || d;\n const interpolater = interpolate((this)._current, d);\n (this)._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n });\n }\n\n onClick(): void {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(() => this.select.emit(this.data), 200);\n }\n\n onDblClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n clearTimeout(this._timeout);\n\n this.dblclick.emit({\n data: this.data,\n nativeEvent: event\n });\n }\n}\n","import {\n Component,\n Input,\n Output,\n ViewEncapsulation,\n EventEmitter,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { DataItem } from '../models/chart-data.model';\nimport { LegendOptions, LegendPosition } from '../common/types/legend.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-pie-chart',\n template: `\n \n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss', './pie-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieChartComponent extends BaseChartComponent {\n @Input() labels: boolean = false;\n @Input() legend: boolean = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() explodeSlices: boolean = false;\n @Input() doughnut: boolean = false;\n @Input() arcWidth: number = 0.25;\n @Input() gradient: boolean;\n @Input() activeEntries: any[] = [];\n @Input() tooltipDisabled: boolean = false;\n @Input() labelFormatting: any;\n @Input() trimLabels: boolean = true;\n @Input() maxLabelLength: number = 10;\n @Input() tooltipText: any;\n @Output() dblclick = new EventEmitter();\n // optional margins\n @Input() margins: number[];\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n translation: string;\n outerRadius: number;\n innerRadius: number;\n data: DataItem[];\n colors: ColorHelper;\n domain: string[];\n dims: ViewDimensions;\n legendOptions: LegendOptions;\n\n update(): void {\n super.update();\n\n if (this.labels && this.hasNoOptionalMarginsSet()) {\n this.margins = [30, 80, 30, 80];\n } else if (!this.labels && this.hasNoOptionalMarginsSet()) {\n // default value for margins\n this.margins = [20, 20, 20, 20];\n }\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margins,\n showLegend: this.legend,\n legendPosition: this.legendPosition\n });\n\n this.formatDates();\n\n const xOffset = this.margins[3] + this.dims.width / 2;\n const yOffset = this.margins[0] + this.dims.height / 2;\n this.translation = `translate(${xOffset}, ${yOffset})`;\n this.outerRadius = Math.min(this.dims.width, this.dims.height);\n if (this.labels) {\n // make room for labels\n this.outerRadius /= 3;\n } else {\n this.outerRadius /= 2;\n }\n this.innerRadius = 0;\n if (this.doughnut) {\n this.innerRadius = this.outerRadius * (1 - this.arcWidth);\n }\n\n this.domain = this.getDomain();\n\n // sort data according to domain\n this.data = this.results.sort((a, b) => {\n return this.domain.indexOf(a.name) - this.domain.indexOf(b.name);\n });\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n }\n\n getDomain(): string[] {\n return this.results.map(d => d.label);\n }\n\n onClick(data: DataItem | string): void {\n this.select.emit(data);\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n\n getLegendOptions(): LegendOptions {\n return {\n scaleType: ScaleType.Ordinal,\n domain: this.domain,\n colors: this.colors,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n\n onActivate(item, fromLegend = false): void {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item, fromLegend = false): void {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n private hasNoOptionalMarginsSet(): boolean {\n return !this.margins || this.margins.length <= 0;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { AdvancedPieChartComponent } from './advanced-pie-chart.component';\nimport { PieLabelComponent } from './pie-label.component';\nimport { PieArcComponent } from './pie-arc.component';\nimport { PieChartComponent } from './pie-chart.component';\nimport { PieGridComponent } from './pie-grid.component';\nimport { PieGridSeriesComponent } from './pie-grid-series.component';\nimport { PieSeriesComponent } from './pie-series.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [\n AdvancedPieChartComponent,\n PieLabelComponent,\n PieArcComponent,\n PieChartComponent,\n PieGridComponent,\n PieGridSeriesComponent,\n PieSeriesComponent\n ],\n exports: [\n AdvancedPieChartComponent,\n PieLabelComponent,\n PieArcComponent,\n PieChartComponent,\n PieGridComponent,\n PieGridSeriesComponent,\n PieSeriesComponent\n ]\n})\nexport class PieChartModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { pie } from 'd3-shape';\nimport { PieGridData, PieGridDataItem } from '../models/chart-data.model';\n\nexport interface PieArc {\n animate: boolean;\n class: string;\n data: PieGridDataItem;\n endAngle: number;\n fill: string;\n pointerEvents: boolean;\n startAngle: number;\n}\n\n@Component({\n selector: 'g[ngx-charts-pie-grid-series]',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieGridSeriesComponent implements OnChanges {\n @Input() colors;\n @Input() data: PieGridData[];\n @Input() innerRadius = 70;\n @Input() outerRadius = 80;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n\n element: HTMLElement;\n layout: any;\n arcs: PieArc[];\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.layout = pie()\n .value(d => d.data.value)\n .sort(null);\n\n this.arcs = this.getArcs();\n }\n\n getArcs(): PieArc[] {\n return this.layout(this.data).map((arc, index) => {\n const label = arc.data.data.name;\n const other = arc.data.data.other;\n\n if (index === 0) {\n arc.startAngle = 0;\n }\n\n const color = this.colors(label);\n return {\n data: arc.data.data,\n class: 'arc ' + 'arc' + index,\n fill: color,\n startAngle: other ? 0 : arc.startAngle,\n endAngle: arc.endAngle,\n animate: this.animations && !other,\n pointerEvents: !other\n };\n });\n }\n\n onClick(data): void {\n this.select.emit(this.data[0].data);\n }\n\n trackBy(index, item): string {\n return item.data.name;\n }\n\n label(arc): string {\n return arc.data.name;\n }\n\n color(arc): string {\n return this.colors(this.label(arc));\n }\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { min } from 'd3-array';\nimport { format } from 'd3-format';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { trimLabel } from '../common/trim-label.helper';\nimport { gridLayout } from '../common/grid-layout.helper';\nimport { formatLabel } from '../common/label.helper';\nimport { DataItem, PieGridData, PieGridDataItem } from '../models/chart-data.model';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-pie-grid',\n template: `\n \n \n \n \n \n \n {{ series.percent.toLocaleString() }}\n \n \n {{ series.label }}\n \n \n \n {{ label }}: {{ series.total.toLocaleString() }}\n \n \n \n \n `,\n styleUrls: ['../common/base-chart.component.scss', './pie-grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieGridComponent extends BaseChartComponent {\n @Input() designatedTotal: number;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipText: (o: any) => any;\n @Input() label: string = 'Total';\n @Input() minWidth: number = 150;\n @Input() activeEntries: any[] = [];\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n dims: ViewDimensions;\n data: PieGridData[];\n transform: string;\n series: any[];\n domain: string[];\n colorScale: ColorHelper;\n margin: number[] = [20, 20, 20, 20];\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n\n this.formatDates();\n\n this.domain = this.getDomain();\n\n this.data = gridLayout(this.dims, this.results, this.minWidth, this.designatedTotal);\n this.transform = `translate(${this.margin[3]} , ${this.margin[0]})`;\n\n this.series = this.getSeries();\n this.setColors();\n\n this.tooltipText = this.tooltipText || this.defaultTooltipText;\n }\n\n defaultTooltipText({ data }): string {\n const label = trimLabel(formatLabel(data.name));\n const val = data.value.toLocaleString();\n return `\n ${label}\n ${val}\n `;\n }\n\n getDomain(): string[] {\n return this.results.map(d => d.label);\n }\n\n getSeries(): any[] {\n const total = this.designatedTotal ? this.designatedTotal : this.getTotal();\n\n return this.data.map(d => {\n const baselineLabelHeight = 20;\n const padding = 10;\n const name = d.data.name;\n const label = formatLabel(name);\n const value = d.data.value;\n const radius = min([d.width - padding, d.height - baselineLabelHeight]) / 2 - 5;\n const innerRadius = radius * 0.9;\n\n let count = 0;\n const colors = () => {\n count += 1;\n if (count === 1) {\n return 'rgba(100,100,100,0.3)';\n } else {\n return this.colorScale.getColor(label);\n }\n };\n\n const xPos = d.x + (d.width - padding) / 2;\n const yPos = d.y + (d.height - baselineLabelHeight) / 2;\n\n return {\n transform: `translate(${xPos}, ${yPos})`,\n colors,\n innerRadius,\n outerRadius: radius,\n name,\n label: trimLabel(label),\n total: value,\n value,\n percent: format('.1%')(d.data.percent),\n data: [\n d,\n {\n data: {\n other: true,\n value: total - value,\n name: d.data.name\n }\n }\n ]\n };\n });\n }\n\n getTotal(): any {\n return this.results.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n\n onClick(data: DataItem): void {\n this.select.emit(data);\n }\n\n setColors(): void {\n this.colorScale = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n } else {\n return d.name === item.name;\n }\n });\n\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n PLATFORM_ID,\n Inject\n} from '@angular/core';\nimport { arc, DefaultArcObject } from 'd3-shape';\n\nimport { trimLabel } from '../common/trim-label.helper';\nimport { TextAnchor } from '../common/types/text-anchor.enum';\nimport { DataItem } from '../models/chart-data.model';\n\nexport interface PieData extends DefaultArcObject {\n data: DataItem;\n index: number;\n pos: [number, number];\n value: number;\n}\n\n@Component({\n selector: 'g[ngx-charts-pie-label]',\n template: `\n {{ label }}\n \n \n {{ labelTrim ? trimLabel(label, labelTrimSize) : label }}\n \n \n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieLabelComponent implements OnChanges {\n @Input() data: PieData;\n @Input() radius: number;\n @Input() label: string;\n @Input() color: string;\n @Input() max: number;\n @Input() value: number;\n @Input() explodeSlices: boolean;\n @Input() animations: boolean = true;\n @Input() labelTrim: boolean = true;\n @Input() labelTrimSize: number = 10;\n\n trimLabel: (label: string, max?: number) => string;\n line: string;\n styleTransform: string;\n attrTransform: string;\n textTransition: string;\n\n constructor(@Inject(PLATFORM_ID) public platformId: any) {\n this.trimLabel = trimLabel;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setTransforms();\n this.update();\n }\n\n setTransforms() {\n if (isPlatformServer(this.platformId)) {\n this.styleTransform = `translate3d(${this.textX}px,${this.textY}px, 0)`;\n this.attrTransform = `translate(${this.textX},${this.textY})`;\n this.textTransition = !this.animations ? null : 'transform 0.75s';\n } else {\n const isIE = /(edge|msie|trident)/i.test(navigator.userAgent);\n this.styleTransform = isIE ? null : `translate3d(${this.textX}px,${this.textY}px, 0)`;\n this.attrTransform = !isIE ? null : `translate(${this.textX},${this.textY})`;\n this.textTransition = isIE || !this.animations ? null : 'transform 0.75s';\n }\n }\n\n update(): void {\n let startRadius = this.radius;\n if (this.explodeSlices) {\n startRadius = (this.radius * this.value) / this.max;\n }\n\n const innerArc = arc().innerRadius(startRadius).outerRadius(startRadius);\n\n // Calculate innerPos then scale outer position to match label position\n const innerPos = innerArc.centroid(this.data);\n\n let scale = this.data.pos[1] / innerPos[1];\n if (this.data.pos[1] === 0 || innerPos[1] === 0) {\n scale = 1;\n }\n const outerPos = [scale * innerPos[0], scale * innerPos[1]];\n\n this.line = `M${innerPos}L${outerPos}L${this.data.pos}`;\n }\n\n get textX(): number {\n return this.data.pos[0];\n }\n\n get textY(): number {\n return this.data.pos[1];\n }\n\n textAnchor(): TextAnchor {\n return this.midAngle(this.data) < Math.PI ? TextAnchor.Start : TextAnchor.End;\n }\n\n midAngle(d): number {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n }\n}\n","import {\n Component,\n SimpleChanges,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n ChangeDetectionStrategy,\n TemplateRef\n} from '@angular/core';\nimport { max } from 'd3-array';\nimport { arc, pie } from 'd3-shape';\nimport { ColorHelper } from '../common/color.helper';\n\nimport { formatLabel, escapeLabel } from '../common/label.helper';\nimport { DataItem } from '../models/chart-data.model';\nimport { PieData } from './pie-label.component';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\n@Component({\n selector: 'g[ngx-charts-pie-series]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieSeriesComponent implements OnChanges {\n @Input() colors: ColorHelper;\n @Input() series: DataItem[] = [];\n @Input() dims: ViewDimensions;\n @Input() innerRadius: number = 60;\n @Input() outerRadius: number = 80;\n @Input() explodeSlices: boolean;\n @Input() showLabels: boolean;\n @Input() gradient: boolean;\n @Input() activeEntries: any[];\n @Input() labelFormatting: any;\n @Input() trimLabels: boolean = true;\n @Input() maxLabelLength: number = 10;\n @Input() tooltipText: (o: any) => any;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n @Output() dblclick = new EventEmitter();\n\n max: number;\n data: PieData[];\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n const pieGenerator = pie()\n .value(d => d.value)\n .sort(null);\n\n const arcData = pieGenerator(this.series);\n\n this.max = max(arcData, d => {\n return d.value;\n });\n\n this.data = this.calculateLabelPositions(arcData);\n this.tooltipText = this.tooltipText || this.defaultTooltipText;\n }\n\n midAngle(d): number {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n }\n\n outerArc(): any {\n const factor = 1.5;\n\n return arc()\n .innerRadius(this.outerRadius * factor)\n .outerRadius(this.outerRadius * factor);\n }\n\n calculateLabelPositions(pieData): any {\n const factor = 1.5;\n const minDistance = 10;\n const labelPositions = pieData;\n\n labelPositions.forEach(d => {\n d.pos = this.outerArc().centroid(d);\n d.pos[0] = factor * this.outerRadius * (this.midAngle(d) < Math.PI ? 1 : -1);\n });\n\n for (let i = 0; i < labelPositions.length - 1; i++) {\n const a = labelPositions[i];\n if (!this.labelVisible(a)) {\n continue;\n }\n\n for (let j = i + 1; j < labelPositions.length; j++) {\n const b = labelPositions[j];\n if (!this.labelVisible(b)) {\n continue;\n }\n // if they're on the same side\n if (b.pos[0] * a.pos[0] > 0) {\n // if they're overlapping\n const o = minDistance - Math.abs(b.pos[1] - a.pos[1]);\n if (o > 0) {\n // push the second up or down\n b.pos[1] += Math.sign(b.pos[0]) * o;\n }\n }\n }\n }\n\n return labelPositions;\n }\n\n labelVisible(myArc): boolean {\n return this.showLabels && myArc.endAngle - myArc.startAngle > Math.PI / 30;\n }\n\n getTooltipTitle(a) {\n return this.tooltipTemplate ? undefined : this.tooltipText(a);\n }\n\n labelText(myArc): string {\n if (this.labelFormatting) {\n return this.labelFormatting(myArc.data.name);\n }\n return this.label(myArc);\n }\n\n label(myArc): string {\n return formatLabel(myArc.data.name);\n }\n\n defaultTooltipText(myArc): string {\n const label = this.label(myArc);\n const val = formatLabel(myArc.data.value);\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n\n color(myArc): any {\n return this.colors.getColor(this.label(myArc));\n }\n\n trackBy(index, item): string {\n return item.data.name;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name && entry.series === d.series;\n });\n return item !== undefined;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef,\n OnInit\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { curveCardinalClosed } from 'd3-shape';\n\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { getScaleType } from '../common/domain.helper';\nimport { isDate } from '../utils/types';\nimport { LegendPosition } from '../common/types/legend.model';\nimport { ScaleType } from '../common/types/scale-type.enum';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { Orientation } from '../common/types/orientation.enum';\nimport { isPlatformServer } from '@angular/common';\n\nconst twoPI = 2 * Math.PI;\n\n@Component({\n selector: 'ngx-charts-polar-chart',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: [\n '../common/base-chart.component.scss',\n '../pie-chart/pie-chart.component.scss',\n './polar-chart.component.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(\n 500,\n style({\n opacity: 0\n })\n )\n ])\n ])\n ]\n})\nexport class PolarChartComponent extends BaseChartComponent implements OnInit {\n @Input() legend: boolean;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: LegendPosition = LegendPosition.Right;\n @Input() xAxis: boolean;\n @Input() yAxis: boolean;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() autoScale: boolean;\n @Input() showGridLines: boolean = true;\n @Input() curve: any = curveCardinalClosed;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() rangeFillOpacity: number = 0.15;\n @Input() trimYAxisTicks: boolean = true;\n @Input() maxYAxisTickLength: number = 16;\n @Input() xAxisTickFormatting: (o: any) => any;\n @Input() yAxisTickFormatting: (o: any) => any;\n @Input() roundDomains: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() showSeriesOnHover: boolean = true;\n @Input() gradient: boolean = false;\n @Input() yAxisMinScale: number = 0;\n @Input() labelTrim: boolean = true;\n @Input() labelTrimSize: number = 10;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n yAxisDims: ViewDimensions;\n labelOffset: number;\n xDomain: any;\n yDomain: any;\n seriesDomain: any;\n yScale: any; // -> rScale\n xScale: any; // -> tScale\n yAxisScale: any; // -> yScale\n colors: ColorHelper;\n scaleType: ScaleType;\n transform: string;\n transformPlot: string;\n transformYAxis: string;\n transformXAxis: string;\n // series: any; // ???\n margin: number[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n filteredDomain: any;\n legendOptions: any;\n thetaTicks: any[];\n radiusTicks: number[];\n outerRadius: number;\n\n orientation = Orientation;\n\n isSSR = false;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n this.setDims();\n\n this.setScales();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.setTicks();\n }\n\n setDims() {\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n\n const halfWidth = Math.floor(this.dims.width / 2);\n const halfHeight = Math.floor(this.dims.height / 2);\n\n const outerRadius = (this.outerRadius = Math.min(halfHeight / 1.5, halfWidth / 1.5));\n\n const yOffset = Math.max(0, halfHeight - outerRadius);\n\n this.yAxisDims = {\n ...this.dims,\n width: halfWidth\n };\n\n this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n this.transformYAxis = `translate(0, ${yOffset})`;\n this.labelOffset = this.dims.height + 40;\n this.transformPlot = `translate(${halfWidth}, ${halfHeight})`;\n }\n\n setScales() {\n const xValues = this.getXValues();\n this.scaleType = getScaleType(xValues);\n this.xDomain = this.filteredDomain || this.getXDomain(xValues);\n\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n\n this.xScale = this.getXScale(this.xDomain, twoPI);\n this.yScale = this.getYScale(this.yDomain, this.outerRadius);\n this.yAxisScale = this.getYScale(this.yDomain.reverse(), this.outerRadius);\n }\n\n setTicks() {\n let tickFormat;\n if (this.xAxisTickFormatting) {\n tickFormat = this.xAxisTickFormatting;\n } else if (this.xScale.tickFormat) {\n tickFormat = this.xScale.tickFormat.apply(this.xScale, [5]);\n } else {\n tickFormat = d => {\n if (isDate(d)) {\n return d.toLocaleDateString();\n }\n return d.toLocaleString();\n };\n }\n\n const outerRadius = this.outerRadius;\n const s = 1.1;\n\n this.thetaTicks = this.xDomain.map(d => {\n const startAngle = this.xScale(d);\n const dd = s * outerRadius * (startAngle > Math.PI ? -1 : 1);\n const label = tickFormat(d);\n\n const startPos = [outerRadius * Math.sin(startAngle), -outerRadius * Math.cos(startAngle)];\n const pos = [dd, s * startPos[1]];\n return {\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle: startAngle,\n value: outerRadius,\n label,\n startPos,\n pos\n };\n });\n\n const minDistance = 10;\n\n /* from pie chart, abstract out -*/\n for (let i = 0; i < this.thetaTicks.length - 1; i++) {\n const a = this.thetaTicks[i];\n\n for (let j = i + 1; j < this.thetaTicks.length; j++) {\n const b = this.thetaTicks[j];\n // if they're on the same side\n if (b.pos[0] * a.pos[0] > 0) {\n // if they're overlapping\n const o = minDistance - Math.abs(b.pos[1] - a.pos[1]);\n if (o > 0) {\n // push the second up or down\n b.pos[1] += Math.sign(b.pos[0]) * o;\n }\n }\n }\n }\n\n this.radiusTicks = this.yAxisScale.ticks(Math.floor(this.dims.height / 50)).map(d => this.yScale(d));\n }\n\n getXValues(): any[] {\n const values = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.name)) {\n values.push(d.name);\n }\n }\n }\n return values;\n }\n\n getXDomain(values = this.getXValues()): any[] {\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min, max];\n } else if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min, max];\n }\n return values;\n }\n\n getYValues(): any[] {\n const domain = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n }\n return domain;\n }\n\n getYDomain(domain = this.getYValues()): any[] {\n let min = Math.min(...domain);\n const max = Math.max(this.yAxisMinScale, ...domain);\n\n min = Math.max(0, min);\n if (!this.autoScale) {\n min = Math.min(0, min);\n }\n\n return [min, max];\n }\n\n getSeriesDomain(): any[] {\n return this.results.map(d => d.name);\n }\n\n getXScale(domain, width: number): any {\n switch (this.scaleType) {\n case ScaleType.Time:\n return scaleTime().range([0, width]).domain(domain);\n case ScaleType.Linear: {\n const scale = scaleLinear().range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n default:\n return scalePoint()\n .range([0, width - twoPI / domain.length])\n .padding(0)\n .domain(domain);\n }\n }\n\n getYScale(domain, height: number): any {\n const scale = scaleLinear().range([0, height]).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n onClick(data, series?): void {\n if (series) {\n data.series = series.name;\n }\n\n this.select.emit(data);\n }\n\n setColors(): void {\n const domain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.yDomain.reverse();\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions() {\n if (this.schemeType === ScaleType.Ordinal) {\n return {\n scaleType: this.schemeType,\n colors: this.colors,\n domain: this.seriesDomain,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n return {\n scaleType: this.schemeType,\n colors: this.colors.scale,\n domain: this.yDomain,\n title: undefined,\n position: this.legendPosition\n };\n }\n\n updateYAxisWidth({ width }: { width: number }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }: { height: number }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = this.showSeriesOnHover ? [item, ...this.activeEntries] : this.activeEntries;\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll(): void {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n\n trackBy(index: number, item): string {\n return `${item.name}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { PolarChartComponent } from './polar-chart.component';\nimport { PolarSeriesComponent } from './polar-series.component';\nimport { PieChartModule } from '../pie-chart/pie-chart.module';\nimport { LineChartModule } from '../line-chart/line-chart.module';\n\n@NgModule({\n imports: [ChartCommonModule, PieChartModule, LineChartModule],\n declarations: [PolarChartComponent, PolarSeriesComponent],\n exports: [PolarChartComponent, PolarSeriesComponent]\n})\nexport class PolarChartModule {}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n TemplateRef,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { lineRadial } from 'd3-shape';\n\nimport { id } from '../utils/id';\nimport { sortLinear, sortByTime, sortByDomain } from '../utils/sort';\nimport { escapeLabel } from '../common/label.helper';\nimport { Series, DataItem } from '../models/chart-data.model';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\ninterface PolarChartCircle {\n color: string;\n cx: number;\n cy: number;\n data: Series;\n label: string;\n value: number;\n}\n\n@Component({\n selector: 'g[ngx-charts-polar-series]',\n template: `\n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PolarSeriesComponent implements OnChanges {\n @Input() name;\n @Input() data;\n @Input() xScale; // Theta\n @Input() yScale; // R\n @Input() colors;\n @Input() scaleType;\n @Input() curve: any;\n @Input() activeEntries: any[];\n @Input() rangeFillOpacity: number;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipText: (o: any) => string;\n @Input() gradient: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n\n path: string;\n circles: PolarChartCircle[];\n circleRadius: number = 3;\n\n areaPath: string;\n gradientId: string;\n gradientUrl: string;\n hasGradient: boolean;\n gradientStops: any[];\n areaGradientStops: any[];\n seriesColor: string;\n\n active: boolean;\n inactive: boolean;\n\n barOrientation = BarOrientation;\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.updateGradients();\n\n const line = this.getLineGenerator();\n\n const data = this.sortData(this.data.series);\n\n const seriesName = this.data.name;\n const linearScaleType = this.colors.scaleType === ScaleType.Linear;\n const min = this.yScale.domain()[0];\n this.seriesColor = this.colors.getColor(linearScaleType ? min : seriesName);\n\n this.path = line(data) || '';\n\n this.circles = data.map(d => {\n const a = this.getAngle(d);\n const r = this.getRadius(d);\n const value = d.value;\n\n const color = this.colors.getColor(linearScaleType ? Math.abs(value) : seriesName);\n\n const cData = Object.assign({}, d, {\n series: seriesName,\n value,\n name: d.name\n });\n\n return {\n data: cData,\n cx: r * Math.sin(a),\n cy: -r * Math.cos(a),\n value,\n color,\n label: d.name\n };\n });\n\n this.active = this.isActive(this.data);\n this.inactive = this.isInactive(this.data);\n this.tooltipText = this.tooltipText || (c => this.defaultTooltipText(c));\n }\n\n getAngle(d: DataItem) {\n const label = d.name;\n if (this.scaleType === ScaleType.Time) {\n return this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n return this.xScale(Number(label));\n }\n return this.xScale(label);\n }\n\n getRadius(d: DataItem) {\n return this.yScale(d.value);\n }\n\n getLineGenerator(): any {\n return lineRadial()\n .angle(d => this.getAngle(d))\n .radius(d => this.getRadius(d))\n .curve(this.curve);\n }\n\n sortData(data: DataItem) {\n if (this.scaleType === ScaleType.Linear) {\n return sortLinear(data, 'name');\n } else if (this.scaleType === ScaleType.Time) {\n return sortByTime(data, 'name');\n }\n return sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n\n isActive(entry: DataItem): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n\n isInactive(entry: DataItem): boolean {\n if (!this.activeEntries || this.activeEntries.length === 0) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item === undefined;\n }\n\n defaultTooltipText({ label, value }: { label: string; value: number }): string {\n return `\n ${escapeLabel(this.data.name)} • ${escapeLabel(label)}\n ${value.toLocaleString()}\n `;\n }\n\n updateGradients() {\n this.hasGradient = this.gradient || this.colors.scaleType === ScaleType.Linear;\n\n if (!this.hasGradient) {\n return;\n }\n\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n\n if (this.colors.scaleType === ScaleType.Linear) {\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n const min = Math.min(...values);\n this.gradientStops = this.colors.getLinearGradientStops(max, min);\n } else {\n this.gradientStops = undefined;\n }\n }\n}\n","// The export is needed here to generate a valid polyfills.metadata.json file\nexport function ngxChartsPolyfills() {\n // IE11 fix\n // Ref: https://github.com/swimlane/ngx-charts/issues/386\n if (typeof SVGElement !== 'undefined' && typeof SVGElement.prototype.contains === 'undefined') {\n SVGElement.prototype.contains = HTMLDivElement.prototype.contains;\n }\n}\n","import {\n Component,\n OnChanges,\n Input,\n Output,\n SimpleChanges,\n EventEmitter,\n ChangeDetectionStrategy,\n TemplateRef\n} from '@angular/core';\nimport { ColorHelper } from '../common/color.helper';\nimport { escapeLabel } from '../common/label.helper';\nimport { DataItem } from '../models/chart-data.model';\nimport { StyleTypes } from '../common/tooltip/style.type';\nimport { PlacementTypes } from '../common/tooltip/position';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\n\ninterface TreeMapCell {\n data: DataItem;\n fill: string;\n height: number;\n label: string;\n value: any;\n width: number;\n x: number;\n y: number;\n}\n\n@Component({\n selector: 'g[ngx-charts-tree-map-cell-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMapCellSeriesComponent implements OnChanges {\n @Input() data: any; // type this\n @Input() dims: ViewDimensions;\n @Input() colors: ColorHelper;\n @Input() valueFormatting: any;\n @Input() labelFormatting: any;\n @Input() gradient: boolean = false;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n cells: TreeMapCell[];\n styleTypes = StyleTypes;\n placementTypes = PlacementTypes;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.cells = this.getCells();\n }\n\n getCells(): TreeMapCell[] {\n return this.data.children\n .filter(d => {\n return d.depth === 1;\n })\n .map((d, index) => {\n const label = d.id;\n\n return {\n data: d.data,\n x: d.x0,\n y: d.y0,\n width: d.x1 - d.x0,\n height: d.y1 - d.y0,\n fill: this.colors.getColor(label),\n label,\n value: d.value\n };\n });\n }\n\n getTooltipText({ label, value }: { label: any; value: any }): string {\n return `\n ${escapeLabel(label)}\n ${value.toLocaleString()}\n `;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n trackBy(index, item): string {\n return item.label;\n }\n}\n","import { Component, Input, Output, EventEmitter, ElementRef, OnChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { select } from 'd3-selection';\nimport { invertColor } from '../utils/color-utils';\nimport { trimLabel } from '../common/trim-label.helper';\nimport { escapeLabel } from '../common/label.helper';\nimport { id } from '../utils/id';\nimport { DataItem } from '../models/chart-data.model';\nimport { Gradient } from '../common/types/gradient.interface';\nimport { BarOrientation } from '../common/types/bar-orientation.enum';\n\n@Component({\n selector: 'g[ngx-charts-tree-map-cell]',\n template: `\n \n \n \n \n \n = 70 && height >= 35\"\n [attr.x]=\"x\"\n [attr.y]=\"y\"\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n class=\"treemap-label\"\n [style.pointer-events]=\"'none'\"\n >\n \n \n \n \n \n \n {{ formattedValue }}\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMapCellComponent implements OnChanges {\n @Input() data: DataItem;\n @Input() fill: string;\n @Input() x: number;\n @Input() y: number;\n @Input() width: number;\n @Input() height: number;\n @Input() label: string;\n @Input() value: any;\n // @Input() valueType;\n @Input() valueFormatting: any;\n @Input() labelFormatting: any;\n @Input() gradient: boolean = false;\n @Input() animations: boolean = true;\n\n @Output() select = new EventEmitter();\n\n gradientStops: Gradient[];\n gradientId: string;\n gradientUrl: string;\n\n element: HTMLElement;\n transform: string;\n formattedLabel: string;\n formattedValue: string;\n initialized: boolean = false;\n\n orientation = BarOrientation;\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngOnChanges(): void {\n this.update();\n\n this.valueFormatting = this.valueFormatting || (value => value.toLocaleString());\n const labelFormatting = this.labelFormatting || (cell => escapeLabel(trimLabel(cell.label, 55)));\n\n const cellData = {\n data: this.data,\n label: this.label,\n value: this.value\n };\n\n this.formattedValue = this.valueFormatting(cellData.value);\n this.formattedLabel = labelFormatting(cellData);\n\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n this.gradientStops = this.getGradientStops();\n }\n\n update(): void {\n if (this.initialized) {\n this.animateToCurrentForm();\n } else {\n if (this.animations) {\n this.loadAnimation();\n }\n this.initialized = true;\n }\n }\n\n loadAnimation(): void {\n const node = select(this.element).select('.cell');\n\n node.attr('opacity', 0).attr('x', this.x).attr('y', this.y);\n\n this.animateToCurrentForm();\n }\n\n getTextColor(): string {\n return invertColor(this.fill);\n }\n\n animateToCurrentForm(): void {\n const node = select(this.element).select('.cell');\n\n if (this.animations) {\n node\n .transition()\n .duration(750)\n .attr('opacity', 1)\n .attr('x', this.x)\n .attr('y', this.y)\n .attr('width', this.width)\n .attr('height', this.height);\n } else {\n node.attr('opacity', 1).attr('x', this.x).attr('y', this.y).attr('width', this.width).attr('height', this.height);\n }\n }\n\n onClick(): void {\n this.select.emit(this.data);\n }\n\n getGradientStops(): Gradient[] {\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: 0.3\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { treemap, stratify } from 'd3-hierarchy';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { DataItem } from '../models/chart-data.model';\nimport { ViewDimensions } from '../common/types/view-dimension.interface';\nimport { ScaleType } from '../common/types/scale-type.enum';\n\n@Component({\n selector: 'ngx-charts-tree-map',\n template: `\n \n \n \n \n \n `,\n styleUrls: ['./tree-map.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMapComponent extends BaseChartComponent {\n @Input() results: DataItem[];\n @Input() tooltipDisabled: boolean = false;\n @Input() valueFormatting: any;\n @Input() labelFormatting: any;\n @Input() gradient: boolean = false;\n\n @Output() select = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n domain: any;\n transform: any;\n colors: ColorHelper;\n treemap: any;\n data: DataItem;\n margin: number[] = [10, 10, 10, 10];\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n\n this.domain = this.getDomain();\n\n this.treemap = treemap().size([this.dims.width, this.dims.height]);\n\n const rootNode = {\n name: 'root',\n value: 0,\n isRoot: true\n };\n\n const root = stratify()\n .id(d => {\n let label = d.name;\n\n if (label.constructor.name === 'Date') {\n label = label.toLocaleDateString();\n } else {\n label = label.toLocaleString();\n }\n return label;\n })\n .parentId(d => (d.isRoot ? null : 'root'))([rootNode, ...this.results])\n .sum(d => d.value);\n\n this.data = this.treemap(root);\n\n this.setColors();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getDomain(): any[] {\n return this.results.map(d => d.name);\n }\n\n onClick(data: DataItem): void {\n this.select.emit(data);\n }\n\n setColors(): void {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { TreeMapCellComponent } from './tree-map-cell.component';\nimport { TreeMapCellSeriesComponent } from './tree-map-cell-series.component';\nimport { TreeMapComponent } from './tree-map.component';\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent],\n exports: [TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent]\n})\nexport class TreeMapModule {}\n","export function calculateTextWidth(fontFamilyKey: Record, text: string, defaultWidth = 8) {\n return text.split('').reduce((acc, curr) => {\n const width = fontFamilyKey[curr] || defaultWidth;\n return acc + width;\n }, 0);\n}\n","import { ScaleType } from '../common/types/scale-type.enum';\n\nexport interface Color {\n name: string;\n selectable: boolean;\n group: ScaleType;\n domain: string[];\n}\n\nexport const colorSets: Color[] = [\n {\n name: 'vivid',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\n '#647c8a',\n '#3f51b5',\n '#2196f3',\n '#00b862',\n '#afdf0a',\n '#a7b61a',\n '#f3e562',\n '#ff9800',\n '#ff5722',\n '#ff4514'\n ]\n },\n {\n name: 'natural',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\n '#bf9d76',\n '#e99450',\n '#d89f59',\n '#f2dfa7',\n '#a5d7c6',\n '#7794b1',\n '#afafaf',\n '#707160',\n '#ba9383',\n '#d9d5c3'\n ]\n },\n {\n name: 'cool',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\n '#3E95E0',\n'#91CBFC', \n'#D1EAFF',\n'#FCA78E',\n'#FCD3B0',\n\n'#FCE7D5',\n'#E688CC',\n'#FCBEEB',\n'#FDDBF4',\n'#84C7F8',\n'#C3E4FC',\n\n'#D8ECFA',\n'#40CCAC',\n'#76F8DB',\n'#CDEDDC'\n ]\n },\n {\n name: 'fire',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: ['#ff3d00', '#bf360c', '#ff8f00', '#ff6f00', '#ff5722', '#e65100', '#ffca28', '#ffab00']\n },\n {\n name: 'solar',\n selectable: true,\n group: ScaleType.Linear,\n domain: [\n '#fff8e1',\n '#ffecb3',\n '#ffe082',\n '#ffd54f',\n '#ffca28',\n '#ffc107',\n '#ffb300',\n '#ffa000',\n '#ff8f00',\n '#ff6f00'\n ]\n },\n {\n name: 'air',\n selectable: true,\n group: ScaleType.Linear,\n domain: [\n '#e1f5fe',\n '#b3e5fc',\n '#81d4fa',\n '#4fc3f7',\n '#29b6f6',\n '#03a9f4',\n '#039be5',\n '#0288d1',\n '#0277bd',\n '#01579b'\n ]\n },\n {\n name: 'aqua',\n selectable: true,\n group: ScaleType.Linear,\n domain: [\n '#e0f7fa',\n '#b2ebf2',\n '#80deea',\n '#4dd0e1',\n '#26c6da',\n '#00bcd4',\n '#00acc1',\n '#0097a7',\n '#00838f',\n '#006064'\n ]\n },\n {\n name: 'flame',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#A10A28',\n '#D3342D',\n '#EF6D49',\n '#FAAD67',\n '#FDDE90',\n '#DBED91',\n '#A9D770',\n '#6CBA67',\n '#2C9653',\n '#146738'\n ]\n },\n {\n name: 'ocean',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#1D68FB',\n '#33C0FC',\n '#4AFFFE',\n '#AFFFFF',\n '#FFFC63',\n '#FDBD2D',\n '#FC8A25',\n '#FA4F1E',\n '#FA141B',\n '#BA38D1'\n ]\n },\n {\n name: 'forest',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#55C22D',\n '#C1F33D',\n '#3CC099',\n '#AFFFFF',\n '#8CFC9D',\n '#76CFFA',\n '#BA60FB',\n '#EE6490',\n '#C42A1C',\n '#FC9F32'\n ]\n },\n {\n name: 'horizon',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#2597FB',\n '#65EBFD',\n '#99FDD0',\n '#FCEE4B',\n '#FEFCFA',\n '#FDD6E3',\n '#FCB1A8',\n '#EF6F7B',\n '#CB96E8',\n '#EFDEE0'\n ]\n },\n {\n name: 'neons',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#FF3333',\n '#FF33FF',\n '#CC33FF',\n '#0000FF',\n '#33CCFF',\n '#33FFFF',\n '#33FF66',\n '#CCFF33',\n '#FFCC00',\n '#FF6600'\n ]\n },\n {\n name: 'picnic',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#FAC51D',\n '#66BD6D',\n '#FAA026',\n '#29BB9C',\n '#E96B56',\n '#55ACD2',\n '#B7332F',\n '#2C83C9',\n '#9166B8',\n '#92E7E8'\n ]\n },\n {\n name: 'night',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#2B1B5A',\n '#501356',\n '#183356',\n '#28203F',\n '#391B3C',\n '#1E2B3C',\n '#120634',\n '#2D0432',\n '#051932',\n '#453080',\n '#75267D',\n '#2C507D',\n '#4B3880',\n '#752F7D',\n '#35547D'\n ]\n },\n {\n name: 'nightLights',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#4e31a5',\n '#9c25a7',\n '#3065ab',\n '#57468b',\n '#904497',\n '#46648b',\n '#32118d',\n '#a00fb3',\n '#1052a2',\n '#6e51bd',\n '#b63cc3',\n '#6c97cb',\n '#8671c1',\n '#b455be',\n '#7496c3'\n ]\n }\n];\n","import * as d3_color from 'd3-color';\n\n/**\n * Converts a hex to RGB\n *\n * @export\n */\nexport function hexToRgb(value: string): any {\n // deprecated, use d3.color()\n return d3_color.rgb(value);\n}\n\n/**\n * Accepts a color (string) and returns a inverted hex color (string)\n * http://stackoverflow.com/questions/9600295/automatically-change-text-color-to-assure-readability\n *\n * @export\n */\nexport function invertColor(value: string): string {\n const color = d3_color.rgb(value);\n const { r, g, b, opacity } = color;\n if (opacity === 0) {\n return color.toString();\n }\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n const depth = yiq >= 128 ? -0.8 : 0.8;\n\n return shadeRGBColor(color, depth);\n}\n\n/**\n * Given a rgb, it will darken/lighten\n * http://stackoverflow.com/questions/5560248/programmatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors\n *\n * @export\n * @param \\{ r, g, b }\n */\nexport function shadeRGBColor({ r, g, b }, percent: number): string {\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\n\n r = Math.round((t - r) * p) + r;\n g = Math.round((t - g) * p) + g;\n b = Math.round((t - b) * p) + b;\n\n return `rgb(${r}, ${g}, ${b})`;\n}\n","const cache = {};\n\n/**\n * Generates a short id.\n *\n * Description:\n * A 4-character alphanumeric sequence (364 = 1.6 million)\n * This should only be used for JavaScript specific models.\n * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\n *\n * Example: `ebgf`\n */\nexport function id(): string {\n let newId = ('0000' + ((Math.random() * Math.pow(36, 4)) << 0).toString(36)).slice(-4);\n\n // append a 'a' because neo gets mad\n newId = `a${newId}`;\n\n // ensure not already used\n if (!cache[newId]) {\n cache[newId] = true;\n return newId;\n }\n\n return id();\n}\n","export function sortLinear(data, property: string, direction = 'asc'): any[] {\n return data.sort((a, b) => {\n if (direction === 'asc') {\n return a[property] - b[property];\n } else {\n return b[property] - a[property];\n }\n });\n}\n\nexport function sortByDomain(data, property: string, direction = 'asc', domain): any[] {\n return data.sort((a, b) => {\n const aVal = a[property];\n const bVal = b[property];\n\n const aIdx = domain.indexOf(aVal);\n const bIdx = domain.indexOf(bVal);\n\n if (direction === 'asc') {\n return aIdx - bIdx;\n } else {\n return bIdx - aIdx;\n }\n });\n}\n\nexport function sortByTime(data, property: string, direction = 'asc'): any[] {\n return data.sort((a, b) => {\n const aDate = a[property].getTime();\n const bDate = b[property].getTime();\n\n if (direction === 'asc') {\n if (aDate > bDate) return 1;\n if (bDate > aDate) return -1;\n return 0;\n } else {\n if (aDate > bDate) return -1;\n if (bDate > aDate) return 1;\n return 0;\n }\n });\n}\n","/**\n * Throttle a function\n *\n */\nexport function throttle(func: any, wait: number, options?: any) {\n options = options || {};\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n\n function later() {\n previous = options.leading === false ? 0 : +new Date();\n timeout = null;\n result = func.apply(context, args);\n }\n\n return function () {\n const now = +new Date();\n\n if (!previous && options.leading === false) {\n previous = now;\n }\n\n const remaining = wait - (now - previous);\n context = this;\n // eslint-disable-next-line prefer-rest-params\n args = arguments;\n\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\n/**\n * Throttle decorator\n *\n * class MyClass {\n * throttleable(10)\n * myFn() { ... }\n * }\n */\nexport function throttleable(duration: number, options?: any) {\n return function innerDecorator(target, key, descriptor) {\n return {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function getter() {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: descriptor.enumerable,\n value: throttle(descriptor.value, duration, options)\n });\n\n return this[key];\n }\n };\n };\n}\n","export function isDate(value): boolean {\n return toString.call(value) === '[object Date]';\n}\n\nexport function isNumber(value): boolean {\n return typeof value === 'number';\n}\n","import { Output, EventEmitter, NgZone, Directive, ElementRef } from '@angular/core';\n\n/**\n * Visibility Observer\n */\n@Directive({\n selector: 'visibility-observer'\n})\nexport class VisibilityObserver {\n @Output() visible: EventEmitter = new EventEmitter();\n\n timeout: any;\n isVisible: boolean = false;\n\n constructor(private element: ElementRef, private zone: NgZone) {\n this.runCheck();\n }\n\n destroy(): void {\n clearTimeout(this.timeout);\n }\n\n onVisibilityChange(): void {\n // trigger zone recalc for columns\n this.zone.run(() => {\n this.isVisible = true;\n this.visible.emit(true);\n });\n }\n\n runCheck(): void {\n const check = () => {\n if (!this.element) {\n return;\n }\n\n // https://davidwalsh.name/offsetheight-visibility\n const { offsetHeight, offsetWidth } = this.element.nativeElement;\n\n if (offsetHeight && offsetWidth) {\n clearTimeout(this.timeout);\n this.onVisibilityChange();\n } else {\n clearTimeout(this.timeout);\n this.zone.runOutsideAngular(() => {\n this.timeout = setTimeout(() => check(), 100);\n });\n }\n };\n\n this.zone.runOutsideAngular(() => {\n this.timeout = setTimeout(() => check());\n });\n }\n}\n","/*\n * Public API Surface of ngx-charts\n */\n\nexport * from './lib/ngx-charts.module';\n\nexport * from './lib/area-chart/area-chart.module';\nexport * from './lib/area-chart/area-chart.component';\nexport * from './lib/area-chart/area-chart-normalized.component';\nexport * from './lib/area-chart/area-chart-stacked.component';\nexport * from './lib/area-chart/area-series.component';\n\nexport * from './lib/bar-chart/bar-chart.module';\nexport * from './lib/bar-chart/bar.component';\nexport * from './lib/bar-chart/bar-horizontal.component';\nexport * from './lib/bar-chart/bar-horizontal-2d.component';\nexport * from './lib/bar-chart/bar-horizontal-normalized.component';\nexport * from './lib/bar-chart/bar-horizontal-stacked.component';\nexport * from './lib/bar-chart/series-horizontal.component';\nexport * from './lib/bar-chart/bar-label.component';\nexport * from './lib/bar-chart/bar-vertical.component';\nexport * from './lib/bar-chart/bar-vertical-2d.component';\nexport * from './lib/bar-chart/bar-vertical-normalized.component';\nexport * from './lib/bar-chart/bar-vertical-stacked.component';\nexport * from './lib/bar-chart/series-vertical.component';\nexport * from './lib/bar-chart/types/bar.model';\nexport * from './lib/bar-chart/types/bar-chart-type.enum';\nexport * from './lib/bar-chart/types/d0-type.enum';\n\nexport * from './lib/box-chart/box-chart.module';\nexport * from './lib/box-chart/box.component';\nexport * from './lib/box-chart/box-chart.component';\nexport * from './lib/box-chart/box-series.component';\n\nexport * from './lib/bubble-chart/bubble-chart.module';\nexport * from './lib/bubble-chart/bubble-chart.component';\nexport * from './lib/bubble-chart/bubble-chart.utils';\nexport * from './lib/bubble-chart/bubble-series.component';\n\nexport * from './lib/common/chart-common.module';\nexport * from './lib/common/legend/legend.component';\nexport * from './lib/common/legend/scale-legend.component';\nexport * from './lib/common/legend/legend-entry.component';\nexport * from './lib/common/legend/advanced-legend.component';\n\nexport * from './lib/common/tooltip/tooltip.module';\nexport * from './lib/common/tooltip/tooltip.service';\nexport * from './lib/common/tooltip/tooltip.component';\nexport * from './lib/common/tooltip/tooltip.directive';\nexport * from './lib/common/tooltip/style.type';\nexport * from './lib/common/tooltip/show.type';\nexport * from './lib/common/tooltip/position/placement-type.enum';\n\nexport * from './lib/common/types/bar-orientation.enum';\nexport * from './lib/common/types/gradient.interface';\nexport * from './lib/common/types/legend.model';\nexport * from './lib/common/types/orientation.enum';\nexport * from './lib/common/types/scale-type.enum';\nexport * from './lib/common/types/text-anchor.enum';\nexport * from './lib/common/types/view-dimension.interface';\n\nexport * from './lib/common/axes/axes.module';\nexport * from './lib/common/axes/axis-label.component';\nexport * from './lib/common/axes/x-axis.component';\nexport * from './lib/common/axes/x-axis-ticks.component';\nexport * from './lib/common/axes/y-axis.component';\nexport * from './lib/common/axes/y-axis-ticks.component';\nexport * from './lib/common/axes/ticks.helper';\n\nexport * from './lib/common/count/count.directive';\nexport * from './lib/common/count/count.helper';\nexport * from './lib/common/timeline/timeline.component';\nexport * from './lib/common/color.helper';\nexport * from './lib/common/charts/chart.component';\n\nexport * from './lib/common/area.component';\nexport * from './lib/common/base-chart.component';\nexport * from './lib/common/circle.component';\nexport * from './lib/common/circle-series.component';\nexport * from './lib/common/grid-layout.helper';\nexport * from './lib/common/grid-panel.component';\nexport * from './lib/common/grid-panel-series.component';\nexport * from './lib/common/svg-linear-gradient.component';\nexport * from './lib/common/svg-radial-gradient.component';\nexport * from './lib/common/tooltip-area.component';\nexport * from './lib/common/tick-format.helper';\nexport * from './lib/common/trim-label.helper';\nexport * from './lib/common/view-dimensions.helper';\nexport * from './lib/common/label.helper';\nexport * from './lib/common/domain.helper';\n\nexport * from './lib/gauge/gauge.module';\nexport * from './lib/gauge/gauge-arc.component';\nexport * from './lib/gauge/gauge-axis.component';\nexport * from './lib/gauge/gauge.component';\nexport * from './lib/gauge/linear-gauge.component';\n\nexport * from './lib/heat-map/heat-map.module';\nexport * from './lib/heat-map/heat-map.component';\nexport * from './lib/heat-map/heat-map-cell.component';\nexport * from './lib/heat-map/heat-map-cell-series.component';\n\nexport * from './lib/line-chart/line-chart.module';\nexport * from './lib/line-chart/line-chart.component';\nexport * from './lib/line-chart/line.component';\nexport * from './lib/line-chart/line-series.component';\n\nexport * from './lib/models/chart-data.model';\n\nexport * from './lib/number-card/number-card.module';\nexport * from './lib/number-card/number-card.component';\nexport * from './lib/number-card/card.component';\nexport * from './lib/number-card/card-series.component';\n\nexport * from './lib/pie-chart/pie-chart.module';\nexport * from './lib/pie-chart/advanced-pie-chart.component';\nexport * from './lib/pie-chart/pie-chart.component';\nexport * from './lib/pie-chart/pie-arc.component';\nexport * from './lib/pie-chart/pie-grid.component';\nexport * from './lib/pie-chart/pie-grid-series.component';\nexport * from './lib/pie-chart/pie-series.component';\nexport * from './lib/pie-chart/pie-label.component';\n\nexport * from './lib/polar-chart/polar-chart.module';\nexport * from './lib/polar-chart/polar-chart.component';\nexport * from './lib/polar-chart/polar-series.component';\n\nexport * from './lib/tree-map/tree-map.module';\nexport * from './lib/tree-map/tree-map.component';\nexport * from './lib/tree-map/tree-map-cell.component';\nexport * from './lib/tree-map/tree-map-cell-series.component';\n\nexport * from './lib/utils/id';\nexport * from './lib/utils/color-sets';\nexport * from './lib/utils/sort';\nexport * from './lib/utils/throttle';\nexport * from './lib/utils/color-utils';\nexport * from './lib/utils/visibility-observer';\n","import { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { HttpClientService } from 'src/app/httpclient.service';\nimport { Router } from '@angular/router';\nimport { CreateAgent } from 'src/app/pages/create-agent/create-agent.service';\n\ninterface ForgetPassword {\n oldPassword: string,\n newPassword: string,\n mail: string\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n public baseUrl = environment.baseApiUrl;\n public baseApiUrl2 = environment.baseApiUrl2;\n public admin = new BehaviorSubject(false);\n public companyAdmin = new BehaviorSubject(false);\n private router: Router;\n public headers = {};\n isLoggedIn: any;\n configuration: any;\n userData: any;\n workerJS: any = null;\n\n constructor(private http: HttpClientService, private agentService: CreateAgent) {\n this.headers = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-auth-token': 'asseccque'\n })\n };\n }\n\n\n allUser() {\n return this.http.post(this.baseUrl + 'users', this.headers)\n .toPromise()\n .then(response => response)\n .catch(this.handleError);\n }\n login(body: any) {\n return this.http.post(this.baseUrl, body)\n .toPromise()\n .then(response => response)\n .catch(this.handleError);\n }\n\n getUserRoles(id) {\n return this.http.get(`${this.baseApiUrl2}adminRole/${id}`)\n }\n\n checkEmail(body: { mail: string }) {\n return this.http.post(`${this.baseApiUrl2}checkEmail`, body);\n }\n\n changePassword(body: { newPassword: string, mail: string }) {\n return this.http.post(`${this.baseApiUrl2}changePassword`, body)\n }\n\n checkSuperAdmin(id) {\n return this.http.get(`${this.baseApiUrl2}superAdmin/${id}`)\n }\n\n\n forgetPassword(body: ForgetPassword) {\n return this.http.put(`${this.baseApiUrl2}forgetpassword`, body);\n }\n\n private handleError(error: any): Promise {\n if (error.status === 401) {\n return Promise.reject(error);\n }\n if (error.status === 400) {\n return Promise.reject(error);\n }\n if (error.status === 500) {\n return Promise.reject(error);\n }\n if (error.status === 404) {\n return Promise.reject(error);\n }\n if (error.status === 601) {\n return Promise.reject(error);\n }\n return Promise.reject(error);\n }\n saveAgentLocation(body: { latlng: any, address: any, id: any }) {\n return this.http.post(`${this.baseApiUrl2}locationUpdate`, body);\n }\n\n redirectLogoutUser() {\n this.router.navigate([\"/login\"]);\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { AuthService } from \"../auth.service\";\n// import { HttpClientService } from '@angular/common/http';\nimport { environment } from \"src/environments/environment\";\nimport { MailserviceService } from \"src/app/pages/mailservice.service\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { getMessaging, getToken, onMessage } from \"firebase/messaging\";\nimport { CreateAgent } from \"src/app/pages/create-agent/create-agent.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { ProjectService } from \"src/app/pages/project-management/project.service\";\nimport { FreJunService } from \"src/app/pages/frejun.service\";\nimport { SocketService } from \"src/app/socket.service\";\n\n@Component({\n selector: \"app-login\",\n templateUrl: \"./login.component.html\",\n styleUrls: [\"./login.component.css\"],\n})\nexport class LoginComponent implements OnInit {\n public baseUrl = environment.baseApiUrl;\n forgetpassword = true;\n loginForm: FormGroup;\n submitted = false;\n returnUrl: string;\n error = \"\";\n loading: boolean = false;\n showErrorMessage: any = false;\n errorMessage: any;\n userData: any;\n email: any;\n selectIndex: number = 0;\n template: any;\n random = Math.random().toString(36).substring(7);\n compareNumber: any;\n resetPassword: boolean = false;\n fcmtoken: string;\n fieldTextType: boolean;\n fp = \"fp1\";\n\n constructor(\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private router: Router,\n private authService: AuthService,\n private http: HttpClientService,\n private agentService: CreateAgent,\n private mailService: MailserviceService,\n private handleError: ErrorHandlerService,\n private projectService: ProjectService,\n private freJunService: FreJunService,\n private socketService: SocketService\n ) { }\n\n ngOnInit() {\n this.requestPermission();\n this.loginForm = this.formBuilder.group({\n email: [\"\", [Validators.required, Validators.email]],\n password: [\"\", Validators.required],\n });\n this.mailService\n .getTemplateCompany(\n \"passwordverification\",\n environment.forgotPassEmailTempId\n )\n .subscribe(\n (data) => {\n this.template = data[\"Html\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: this.userData.token,\n })\n .subscribe(\n (data) => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.returnUrl = this.route.snapshot.queryParams[\"returnUrl\"] || \"/\";\n }\n\n ngAfterViewInit() {\n document.body.classList.add(\"authentication-bg\");\n document.body.classList.add(\"authentication-bg-pattern\");\n }\n get f() {\n return this.loginForm.controls;\n }\n\n onForget(f) {\n if (f.newPassword !== f.confirmPassword) {\n return (this.error =\n \"please enter new password and confirm password as same\");\n }\n this.authService\n .changePassword({\n mail: this.email,\n newPassword: f[\"newPassword\"],\n })\n .subscribe(\n (data) => {\n this.forgetpassword = !this.forgetpassword;\n this.error = \"\";\n },\n (error) => {\n this.error = \"please enter valid email or password\";\n\n this.handleError.handleError(error);\n }\n );\n }\n\n onSubmit = () => {\n this.submitted = true;\n if (this.loginForm.invalid) {\n return;\n }\n this.loading = true;\n const body = {\n email: this.f.email.value,\n password: this.f.password.value,\n };\n\n this.http\n .post(`${this.baseUrl}agentsignin`, {\n Mailid: body.email,\n password: body.password,\n fcmtoken: this.fcmtoken,\n })\n .subscribe(\n (res) => {\n if (res !== null) {\n if (res[\"ResetPassword\"]) {\n this.email = res[\"mail\"];\n this.forgetpassword = false;\n return (this.resetPassword = true);\n }\n this.userData = res;\n this.userData.fcmtoken = this.fcmtoken;\n this.socketService.connect(this.userData[\"id\"])\n }\n if (!this.userData.status) {\n localStorage.setItem(\"userData\", JSON.stringify(this.userData));\n\n this.authService.getUserRoles(res[\"id\"]).subscribe(\n (data) => {\n let values: any[] = data.map((data) => data[\"Name\"]);\n this.authService.admin.next(values.includes(\"Admin\"));\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n let admin: boolean = false;\n let userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.projectService\n .dashboardProjects({\n admin: admin,\n companyId: this.userData[\"companyId\"],\n userId: this.userData[\"id\"],\n })\n .subscribe((data: any) => {\n if (data.length === 1) {\n switch (data[0].Name) {\n case \"University Hub\":\n this.router.navigate([\"/socialmedia/leads\"]);\n break;\n case \"Referrals\":\n this.router.navigate([\"/referree\"]);\n break;\n case \"Campbellsville\":\n this.router.navigate([\"/uhleads\"]);\n break;\n case \"Recruiter\":\n this.router.navigate([\"/recruiter\"]);\n break;\n case \"CuNext\":\n this.router.navigate([\"/cunext\"]);\n break;\n case \"SFC\":\n this.router.navigate([\"/sfcleads\"]);\n break;\n default:\n this.router.navigate([\"/uhleads\"]);\n break;\n }\n } else {\n this.router.navigate([\"/uhleads\"]);\n }\n });\n // window.location.reload();\n } else {\n this.error = `${this.userData.status}`;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n };\n\n passwordChange() {\n if (this.error.length !== 0) {\n this.error = \"\";\n }\n }\n checkEmail() {\n this.authService.checkEmail({ mail: this.email }).subscribe(\n (data) => {\n let replacements = {\n code: this.random,\n FirstName: data[\"firstName\"],\n LastName: data[\"lastName\"],\n };\n const result = this.template.replace(/{{([^{{]+)}}/g, (match, key) => {\n return replacements[key] !== undefined ? replacements[key] : \"\";\n });\n\n this.mailService\n .sendmail(\n {\n From: {\n email: \"no-reply@universityhub.com\",\n name: \"University Hub\",\n },\n To: `${this.email}`,\n Subject: \"sent verfication code\",\n Body: {\n html: result,\n },\n ReplyTo: \"no-reply@universityhub.com\",\n },\n 1\n )\n .subscribe((data) => {\n this.fp = \"fp2\";\n });\n this.selectIndex += 1;\n this.error = \"\";\n },\n (error) => {\n this.error = `${error.error.status}`;\n this.handleError.handleError(error);\n }\n );\n }\n\n comparePassword() {\n if (this.compareNumber === this.random) {\n this.selectIndex += 1;\n this.error = \"\";\n this.fp = \"fp3\";\n } else {\n this.error = \"please enter the valid verification code\";\n }\n }\n resetForm(value) {\n if (value.newPassword === value.confirmPassword) {\n this.authService\n .forgetPassword({\n newPassword: value.newPassword,\n mail: this.email,\n oldPassword: value.oldPassword,\n })\n .subscribe(\n (data) => {\n this.forgetpassword = true;\n this.resetPassword = false;\n },\n (error) => {\n this.error = error.error.status;\n setTimeout(() => {\n this.error = \"\";\n }, 1000);\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = \"Please Enter Confirm Password and New Password as Same\";\n setTimeout(() => {\n this.error = \"\";\n }, 1000);\n }\n }\n\n cancel() {\n this.selectIndex = 0;\n this.forgetpassword = !this.forgetpassword;\n }\n\n requestPermission() {\n const messaging = getMessaging();\n // GET TOKEN FROM FIREBASE\n getToken(messaging, { vapidKey: environment.firebase.vapidKey })\n .then((currentToken) => {\n if (currentToken) {\n this.fcmtoken = currentToken;\n } else {\n }\n })\n .catch((err) => { });\n }\n toggleFieldTextType() {\n this.fieldTextType = !this.fieldTextType;\n }\n}\n","\n
\n\t
\n\t\t
\n\t\t\t \n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\"\"\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
Login
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
Email is required
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEmail must be a valid email address\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Password is required
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{{\n\t\t\t\t\t\terror\n\t\t\t\t\t}}\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tForgot Password?\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{\n\t\t\t\t\t\terror\n\t\t\t\t\t}}\n\t\t\t\t\t
Change Password
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPlease Enter Valid Password\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tPlease Enter Valid Password\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tPlease Enter Minimum 8 Characters\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tPassword Must Contain UpperCase,Numbers,Alphabets and Special\n\t\t\t\t\t\t\t\tCharacters\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tPlease Enter Valid Password\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tPlease Enter Minimum 8 Characters\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tPassword Must Contain UpperCase,Numbers,Alphabets and Special\n\t\t\t\t\t\t\t\tCharacters\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t
Forgot Password
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\tSend Mail\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\tConfirm\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t Cancel\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t

Password reset link sent to your mail id.

\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t

Password changed successfully.

\n\t\t\t
\n\t\t\n\t\n\n\n
\n\t
\n\t\t
\n\t\t\t\"\"\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t
Login
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
Email is required
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEmail must be a valid email address\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
Password is required
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t{{\n\t\t\t\t\terror\n\t\t\t\t}}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\tForgot Password?\n\t\t\t\t
\n\t\t\t\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t\t\t{{\n\t\t\t\t\terror\n\t\t\t\t}}\n\t\t\t\t
Change Password
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPlease Enter Valid Password\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tPlease Enter Valid Password\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tPlease Enter Minimum 8 Characters\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tPassword Must Contain UpperCase,Numbers,Alphabets and Special\n\t\t\t\t\t\t\tCharacters\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tPlease Enter Valid Password\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tPlease Enter Minimum 8 Characters\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tPassword Must Contain UpperCase,Numbers,Alphabets and Special\n\t\t\t\t\t\t\tCharacters\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tSubmit\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\n\t\t\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t
Forgot Password
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tSend Mail\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tConfirm\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t

Password reset link sent to your mail id.

\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t

Password changed successfully.

\n\t\t
\n\t\t
\n\t\t\t© 2021 Copyright: Accessque\n\t\t
\n\t\n\t\n\n","import { PrivacypolicyComponent } from \"./privacypolicy/privacypolicy.component\";\nimport { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { LandingpageComponent } from \"./landingpage/landingpage.component\";\nimport { LayoutComponent } from \"./layout/layout.component\";\nimport { MailResponseComponent } from \"./mail-response/mail-response.component\";\nimport { UhleadsComponent } from \"./pages/uhleads/uhleads.component\";\nimport { LoginComponent } from \"./account/auth/login/login.component\";\nimport { EventScheduleComponent } from \"./pages/event-schedule/event-schedule.component\";\n\nconst routes: Routes = [\n {\n path: \"videocalling\",\n loadChildren: () =>\n import(\"./videocalling/videocalling.module\").then(\n (m) => m.VideocallingModule\n ),\n },\n {\n path: \"account\",\n loadChildren: () =>\n import(\"./account/account.module\").then((m) => m.AccountModule),\n },\n {\n path: \"\",\n component: LayoutComponent,\n loadChildren: () =>\n import(\"./pages/pages.module\").then((m) => m.PagesModule),\n },\n { path: \"home\", redirectTo: \"/login\", pathMatch: \"full\" },\n { path: \"privacy\", component: PrivacypolicyComponent },\n { path: \"feedbackMail/:refid/:response\", component: MailResponseComponent },\n { path: \"login\", component: LoginComponent },\n { path: \"calendar/:agentName\", component: EventScheduleComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","\nimport { Component, HostListener } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { AuthService } from './account/auth/auth.service';\nimport { LayoutService } from './layout/layout.service';\nimport { CreateAgent } from './pages/create-agent/create-agent.service';\nimport { RoleService } from './pages/role-management/role.service';\nimport { BnNgIdleService } from 'bn-ng-idle';\nimport { NotificationsService} from 'src/app/notification.service'\n\ndeclare const Twilio: any;\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css'],\n providers: [NotificationsService]\n})\nexport class AppComponent {\n title = 'TicketTool';\n userActivity: any;\n userInactive: Subject = new Subject();\n userData: any;\n isLoggedIn: any;\n configuration: any\n workerJS: any = null;\n //Notification Options\n options = {\n lastOnBottom: false,\n position: [\"bottom\", \"right\"],\n timeOut: 20000,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: false,\n maxLength: 10,\n };\n\n constructor(private companyService: RoleService,\n public authService: AuthService,\n private agentService: CreateAgent,\n private NotificationService: NotificationsService,\n public layoutService: LayoutService, private router: Router, private bnIdle: BnNgIdleService) {\n this.bnIdle.startWatching(3600).subscribe((res) => {\n // if (res) {\n // this.logout();\n // }\n })\n // this.router.events.pipe(\n // filter(event => event instanceof NavigationEnd)\n // ).subscribe((event: NavigationEnd) => {\n \n // /** START : Code to Track Page View */\n // gtag('event', 'page_view', {\n // page_path: event.urlAfterRedirects\n // })\n // /** END */\n // })\n }\n\n ngOnInit() {\n }\n\n async logout() {\n let userData = await JSON.parse(localStorage.getItem(\"userData\"));\n this.companyService.projectAdmin(userData[\"companyId\"]).subscribe((projects) => {\n let prId = userData[\"companyId\"] === 0 ? 5 : projects[0][\"id\"];\n this.layoutService.setupTwilio(prId).then(async (res: any) => {\n this.configuration = await JSON.parse(res);\n this.workerJS = await new Twilio.TaskRouter.Worker(JSON.parse(res).tokens.worker);\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerOfflineActivitySid\n );\n });\n\n this.agentService\n .updateStatus({ id: userData[\"id\"], status: \"Offline\", fcmtoken: this.userData.fcmtoken,\n token: \"\" })\n .subscribe((data) => {\n });\n localStorage.clear();\n sessionStorage.clear();\n\n setTimeout(() => {\n window.location.reload();\n this.router.navigate(['/home']);\n }, 1000);\n });\n }\n\n toggleIsOnQueue(activitySid) {\n let payload = {\n ActivitySid: activitySid,\n };\n this.workerJS.update(payload, function (error, worker) {\n });\n }\n}\n","\n","import { AgmCoreModule } from \"@agm/core\";\nimport { PagesModule } from \"./pages/pages.module\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { CUSTOM_ELEMENTS_SCHEMA, ErrorHandler, NgModule } from \"@angular/core\";\n\nimport { AppRoutingModule } from \"./app-routing.module\";\nimport { AppComponent } from \"./app.component\";\nimport { LayoutModule } from \"./layout/layout.module\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\nimport { LandingpageComponent } from \"./landingpage/landingpage.component\";\nimport { PrivacypolicyComponent } from \"./privacypolicy/privacypolicy.component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { FontAwesomeModule } from \"@fortawesome/angular-fontawesome\";\nimport { library } from '@fortawesome/fontawesome-svg-core';\n// import { MatIconModule } from \"@angular/material\";\nimport { faCalendar, faClock } from \"@fortawesome/free-solid-svg-icons\";\nimport { MailResponseComponent } from \"./mail-response/mail-response.component\";\nimport { BnNgIdleService } from \"bn-ng-idle\";\nimport { UhleadsComponent } from \"./pages/uhleads/uhleads.component\";\nimport { CuNextComponent } from \"./pages/cu-next/cu-next.component\";\nimport { DemoMaterialModule } from \"./pages/uhleads/material.module\";\nimport { NgMultiSelectDropDownModule } from \"ng-multiselect-dropdown\";\nimport { ToastrModule } from \"ngx-toastr\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport * as $ from \"jquery\";\nimport {NgxDocViewerModule} from 'ngx-doc-viewer'\nimport { NgxTimerModule } from 'ngx-timer';\nimport {IvyCarouselModule} from 'angular-responsive-carousel';\nimport { SimpleNotificationsModule } from \"./notificaton.module\";\nimport { initializeApp } from 'firebase/app';\nimport { environment } from \"src/environments/environment\";\nimport {ActivityFilterPipe} from 'src/app/shared/activity.pipe'\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { PaginationDirective } from \"./shared/custom-pagination/pagination.directive\";\nimport { CustomPaginationComponent } from \"./shared/custom-pagination/custom-pagination.component\";\nimport { ErrorHandlerService } from \"./error-handler.service\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { EnquiryComponent } from \"./pages/enquiry/enquiry.component\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MaterialExampleModule } from \"./material.module\";\nimport { UhubDashboardComponent } from \"./pages/uhub-dashboard/uhub-dashboard.component\";\nimport { NgxSkeletonLoaderModule } from \"ngx-skeleton-loader\";\nimport { JudsonuLeadsComponent } from './pages/judsonu-leads/judsonu-leads.component';\nimport { SfcLeadsComponent } from './pages/sfc-leads/sfc-leads.component';\nimport { UwlaComponent } from './pages/uwla/uwla.component';\nimport { SocialmedialeadsComponent } from \"./pages/uhub-dashboard/socialmedialeads/socialmedialeads.component\";\nimport { RecruiterleadsComponent } from \"./pages/uhub-dashboard/recruiterleads/recruiterleads.component\";\nimport { CustomPaginationuhubComponent } from \"./shared/custom-paginationuhub/custom-paginationuhub.component\";\n\ninitializeApp(environment.firebase);\n\n\n@NgModule({\n declarations: [\n AppComponent,\n LandingpageComponent,\n PrivacypolicyComponent,\n MailResponseComponent,\n UhleadsComponent,\n CuNextComponent,\n UhubDashboardComponent,\n SocialmedialeadsComponent,\n RecruiterleadsComponent,\n EnquiryComponent,\n ActivityFilterPipe,\n PaginationDirective,\n CustomPaginationComponent,\n CustomPaginationuhubComponent,\n JudsonuLeadsComponent,\n SfcLeadsComponent,\n UwlaComponent\n ],\n imports: [\n BrowserModule,\n LayoutModule,\n AppRoutingModule,\n HttpClientModule,\n BrowserAnimationsModule,\n PagesModule,\n FormsModule,\n FontAwesomeModule,\n MatIconModule,\n NgbModule,\n DemoMaterialModule,\n ReactiveFormsModule,\n NgMultiSelectDropDownModule,\n SimpleNotificationsModule,\n AgmCoreModule.forRoot({\n apiKey: \"AIzaSyAYClvVNn_82-k1LOLLsBTz_O12v65MhdY\",\n libraries: [\"places\"],\n }),\n MatDialogModule,\n ToastrModule.forRoot(),\n NgxDocViewerModule,\n NgxTimerModule,\n IvyCarouselModule,\n MaterialExampleModule,\n NgxSkeletonLoaderModule\n ],\n providers: [BnNgIdleService, { provide: ErrorHandler, useClass: ErrorHandlerService },],\n bootstrap: [AppComponent],\n exports: []\n})\nexport class AppModule {\n constructor() {\n library.add(faCalendar, faClock);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from \"src/environments/environment\";\nimport { HttpClientService } from './httpclient.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonServicesService {\n baseApiUrl = environment.baseApiUrl2\n constructor(private http: HttpClientService,) { \n\n }\n\n addAgentActivity(data){\n return this.http.post(`${this.baseApiUrl}activity/add/agent`,data);\n }\n agentActivityList(data){\n return this.http.post(`${this.baseApiUrl}activity/list/agent`,data);\n }\n agentActivityListTarget(data){\n return this.http.post(`${this.baseApiUrl}activity/list/targetAgent`,data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\n\n@Injectable({ providedIn: 'root' })\nexport class AuthGuard implements CanActivate {\n constructor(\n private router: Router,\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n const currentUser = JSON.parse(localStorage.getItem('userData'));\n if (currentUser) {\n // logged in so return true\n return true;\n }\n\n // not logged in so redirect to login page with the return url\n this.router.navigate(['/home']);\n return false;\n }\n}","import {\n Component,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear } from 'd3-scale';\n\nimport { getDomain, getScale } from '@swimlane/ngx-charts/bubble-chart/bubble-chart.utils';\nimport { getScaleType } from '@swimlane/ngx-charts/common/domain.helper';\nimport { id } from '@swimlane/ngx-charts//utils/id';\nimport {\n ViewDimensions,\n ColorHelper,\n BaseChartComponent,\n calculateViewDimensions,\n ScaleType\n} from 'projects/swimlane/ngx-charts/src/public-api';\nimport { isPlatformServer } from '@angular/common';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'ngx-charts-bubble-chart-interactive',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../../../../projects/swimlane/ngx-charts/src/lib/common/base-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(\n 500,\n style({\n opacity: 0\n })\n )\n ])\n ])\n ]\n})\nexport class BubbleChartInteractiveComponent extends BaseChartComponent {\n @Input() showGridLines: boolean = true;\n @Input() legend = false;\n @Input() legendTitle: string = 'Legend';\n @Input() xAxis: boolean = true;\n @Input() yAxis: boolean = true;\n @Input() showXAxisLabel: boolean;\n @Input() showYAxisLabel: boolean;\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() xAxisTicks: any[];\n @Input() yAxisTicks: any[];\n @Input() roundDomains: boolean = false;\n @Input() maxRadius = 10;\n @Input() minRadius = 3;\n @Input() autoScale: boolean;\n @Input() schemeType: ScaleType = ScaleType.Ordinal;\n @Input() legendPosition: string = 'right';\n @Input() tooltipDisabled: boolean = false;\n @Input() xScaleMin: any;\n @Input() xScaleMax: any;\n @Input() yScaleMin: any;\n @Input() yScaleMax: any;\n\n @Output() legendLabelClick: EventEmitter = new EventEmitter();\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n\n dims: ViewDimensions;\n colors: ColorHelper;\n scaleType = 'linear';\n margin = [10, 20, 10, 20];\n bubblePadding = [0, 0, 0, 0];\n data: any;\n\n legendOptions: any;\n transform: string;\n\n clipPath: string;\n clipPathId: string;\n\n seriesDomain: any[];\n xDomain: any[];\n yDomain: any[];\n rDomain: number[];\n\n xScaleType: ScaleType;\n yScaleType: ScaleType;\n\n yScale: any;\n xScale: any;\n rScale: any;\n\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n\n activeEntries: any[] = [];\n\n isSSR = false;\n\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType\n });\n\n this.seriesDomain = this.results.map(d => d.name);\n this.rDomain = this.getRDomain();\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n\n this.transform = `translate(${this.dims.xOffset},${this.margin[0]})`;\n\n const colorDomain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.rDomain;\n this.colors = new ColorHelper(this.scheme, this.schemeType, colorDomain, this.customColors);\n\n this.data = this.results;\n\n this.minRadius = Math.max(this.minRadius, 1);\n this.maxRadius = Math.max(this.maxRadius, 1);\n\n this.rScale = this.getRScale(this.rDomain, [this.minRadius, this.maxRadius]);\n\n this.bubblePadding = [0, 0, 0, 0];\n this.setScales();\n\n this.bubblePadding = this.getBubblePadding();\n this.setScales();\n\n this.legendOptions = this.getLegendOptions();\n\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.deactivateAll();\n }\n\n onClickLabel(eventOnLegendSeriesLabelSelect) {\n const eventOnLegendLabelSelect = { name: eventOnLegendSeriesLabelSelect };\n this.legendLabelClick.emit(eventOnLegendLabelSelect);\n }\n\n onClickSeries(eventOnBubbleSeriesCircleSelect, seriesObj) {\n // bubbles up from the series circle item select event\n const bubbleObj = seriesObj.series.find(b => b.name === eventOnBubbleSeriesCircleSelect.name);\n const eventOnBubbleSeriesSelect = {\n bubble: bubbleObj,\n series: seriesObj\n };\n this.select.emit(eventOnBubbleSeriesSelect);\n }\n\n getBubblePadding() {\n let yMin = 0;\n let xMin = 0;\n let yMax = this.dims.height;\n let xMax = this.dims.width;\n\n for (const s of this.data) {\n for (const d of s.series) {\n const r = this.rScale(d.r);\n const cx = this.xScaleType === ScaleType.Linear ? this.xScale(Number(d.x)) : this.xScale(d.x);\n const cy = this.yScaleType === ScaleType.Linear ? this.yScale(Number(d.y)) : this.yScale(d.y);\n xMin = Math.max(r - cx, xMin);\n yMin = Math.max(r - cy, yMin);\n yMax = Math.max(cy + r, yMax);\n xMax = Math.max(cx + r, xMax);\n }\n }\n\n xMax = Math.max(xMax - this.dims.width, 0);\n yMax = Math.max(yMax - this.dims.height, 0);\n\n return [yMin, xMax, yMax, xMin];\n }\n\n setScales() {\n let width = this.dims.width;\n if (this.xScaleMin === undefined && this.xScaleMax === undefined) {\n width = width - this.bubblePadding[1];\n }\n let height = this.dims.height;\n if (this.yScaleMin === undefined && this.yScaleMax === undefined) {\n height = height - this.bubblePadding[2];\n }\n this.xScale = this.getXScale(this.xDomain, width);\n this.yScale = this.getYScale(this.yDomain, height);\n }\n\n getYScale(domain, height): any {\n return getScale(domain, [height, this.bubblePadding[0]], this.yScaleType, this.roundDomains);\n }\n\n getXScale(domain, width): any {\n return getScale(domain, [this.bubblePadding[3], width], this.xScaleType, this.roundDomains);\n }\n\n getRScale(domain, range): any {\n const scale = scaleLinear().range(range).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getLegendOptions(): any {\n const opts = {\n scaleType: this.schemeType as any,\n colors: undefined,\n domain: [],\n position: this.legendPosition,\n title: undefined\n };\n\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.rDomain;\n opts.colors = this.colors.scale;\n }\n\n return opts;\n }\n\n getXDomain(): any[] {\n const values = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.x)) {\n values.push(d.x);\n }\n }\n }\n\n this.xScaleType = getScaleType(values);\n return getDomain(values, this.xScaleType, this.autoScale, this.xScaleMin, this.xScaleMax);\n }\n\n getYDomain(): any[] {\n const values = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.y)) {\n values.push(d.y);\n }\n }\n }\n\n this.yScaleType = getScaleType(values);\n return getDomain(values, this.yScaleType, this.autoScale, this.yScaleMin, this.yScaleMax);\n }\n\n getRDomain(): number[] {\n let min = Infinity;\n let max = -Infinity;\n\n for (const results of this.results) {\n for (const d of results.series) {\n const value = Number(d.r) || 1;\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n\n return [min, max];\n }\n\n updateYAxisWidth({ width }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item): void {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n\n trackBy(index, item): string {\n return `${item.name}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '@swimlane/ngx-charts//common/chart-common.module';\nimport { BubbleChartInteractiveComponent } from './bubble-chart-interactive.component';\nimport { BubbleSeriesInteractiveComponent } from './bubble-series-interactive.component';\n\nexport { BubbleChartInteractiveComponent, BubbleSeriesInteractiveComponent };\n\n@NgModule({\n imports: [ChartCommonModule],\n declarations: [BubbleChartInteractiveComponent, BubbleSeriesInteractiveComponent],\n exports: [BubbleChartInteractiveComponent, BubbleSeriesInteractiveComponent]\n})\nexport class BubbleChartInteractiveModule {}\n","import {\n Component,\n Input,\n Output,\n SimpleChanges,\n EventEmitter,\n OnChanges,\n ChangeDetectionStrategy,\n TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel } from '@swimlane/ngx-charts/common/label.helper';\nimport { PlacementTypes } from '@swimlane/ngx-charts/common/tooltip/position';\nimport { StyleTypes } from '@swimlane/ngx-charts/common/tooltip/style.type';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'g[ngx-charts-bubble-series-interactive]',\n template: `\n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'scale(0)'\n }),\n animate(250, style({ opacity: 1, transform: 'scale(1)' }))\n ])\n ])\n ]\n})\nexport class BubbleSeriesInteractiveComponent implements OnChanges {\n @Input() data;\n @Input() xScale;\n @Input() yScale;\n @Input() rScale;\n @Input() xScaleType;\n @Input() yScaleType;\n @Input() colors;\n @Input() visibleValue;\n @Input() activeEntries: any[];\n @Input() xAxisLabel: string;\n @Input() yAxisLabel: string;\n @Input() tooltipDisabled: boolean = false;\n @Input() tooltipTemplate: TemplateRef;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n\n areaPath: any;\n circles: any[];\n\n placementTypes = PlacementTypes;\n styleTypes = StyleTypes;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.update();\n }\n\n update(): void {\n this.circles = this.getCircles();\n }\n\n getCircles(): any[] {\n const seriesName = this.data.name;\n\n return this.data.series\n .map((d, i) => {\n if (typeof d.y !== 'undefined' && typeof d.x !== 'undefined') {\n const y = d.y;\n const x = d.x;\n const r = d.r;\n\n const radius = this.rScale(r || 1);\n const tooltipLabel = formatLabel(d.name);\n\n const cx = this.xScaleType === 'linear' ? this.xScale(Number(x)) : this.xScale(x);\n const cy = this.yScaleType === 'linear' ? this.yScale(Number(y)) : this.yScale(y);\n\n const color = this.colors.scaleType === 'linear' ? this.colors.getColor(r) : this.colors.getColor(seriesName);\n\n const isActive = !this.activeEntries.length ? true : this.isActive({ name: seriesName });\n const opacity = isActive ? 1 : 0.3;\n\n const data = {\n series: seriesName,\n name: d.name,\n value: d.y,\n x: d.x,\n radius: d.r\n };\n\n return {\n data,\n x,\n y,\n r,\n classNames: [`circle-data-${i}`],\n value: y,\n label: x,\n cx,\n cy,\n radius,\n tooltipLabel,\n color,\n opacity,\n seriesName,\n isActive,\n transform: `translate(${cx},${cy})`\n };\n }\n })\n .filter(circle => circle !== undefined);\n }\n\n getTooltipText(circle): string {\n const hasRadius = typeof circle.r !== 'undefined';\n const hasTooltipLabel = circle.tooltipLabel && circle.tooltipLabel.length;\n const hasSeriesName = circle.seriesName && circle.seriesName.length;\n\n const radiusValue = hasRadius ? formatLabel(circle.r) : '';\n const xAxisLabel = this.xAxisLabel && this.xAxisLabel !== '' ? `${this.xAxisLabel}:` : '';\n const yAxisLabel = this.yAxisLabel && this.yAxisLabel !== '' ? `${this.yAxisLabel}:` : '';\n const x = formatLabel(circle.x);\n const y = formatLabel(circle.y);\n const name =\n hasSeriesName && hasTooltipLabel\n ? `${circle.seriesName} • ${circle.tooltipLabel}`\n : circle.seriesName + circle.tooltipLabel;\n const tooltipTitle = hasSeriesName || hasTooltipLabel ? `${name}` : '';\n\n return `\n ${tooltipTitle}\n \n ${x}
\n ${y}\n
\n \n ${radiusValue}\n \n `;\n }\n\n onClickBubble(eventOnSeriesCircleSelect, circleObj): void {\n const event = circleObj.data;\n this.select.emit(event);\n }\n\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n\n isVisible(circle): boolean {\n if (this.activeEntries.length > 0) {\n return this.isActive({ name: circle.seriesName });\n }\n\n return circle.opacity !== 0;\n }\n\n activateCircle(circle): void {\n circle.barVisible = true;\n this.activate.emit({ name: this.data.name });\n }\n\n deactivateCircle(circle): void {\n circle.barVisible = false;\n this.deactivate.emit({ name: this.data.name });\n }\n\n trackBy(index, circle): string {\n return `${circle.data.series} ${circle.data.name}`;\n }\n}\n","const bubbleDemoDataFromServer1 = {\n data: {\n name: \"Papa's\",\n clientId: 102,\n stores: [\n {\n name: 'Mamma Jamma',\n storeId: 69,\n storeCode: '420',\n orders: [\n {\n orderCode: '12345',\n orderId: 54321,\n customerName: 'Fred Flintstone',\n orderItemCount: 10,\n orderFinTotal: 101.5,\n orderCompletionPercent: 0.9\n },\n {\n orderCode: '67890',\n orderId: 9876,\n customerName: 'Pooh Bear',\n orderItemCount: 99,\n orderFinTotal: 1010.5,\n orderCompletionPercent: 0.3\n }\n ]\n },\n {\n name: 'Mamma Joe',\n storeId: 79,\n storeCode: '430',\n orders: [\n {\n orderCode: '23356',\n orderId: 65432,\n customerName: 'Mean One',\n orderItemCount: 1,\n orderFinTotal: 7.5,\n orderCompletionPercent: 0.6\n },\n {\n orderCode: '23456',\n orderId: 65431,\n customerName: 'Hey You',\n orderItemCount: 12,\n orderFinTotal: 104.5,\n orderCompletionPercent: 0.1\n }\n ]\n }\n ]\n }\n};\n\nconst bubbleDemoDataFromServer2 = {\n data: {\n name: \"Papa's\",\n clientId: 102,\n stores: [\n {\n name: 'Mamma Jamma',\n storeId: 69,\n storeCode: '420',\n orders: [\n {\n orderCode: '12345',\n orderId: 54321,\n customerName: 'Fred Flintstone',\n orderItemCount: 35,\n orderFinTotal: 101.5,\n orderCompletionPercent: 1\n },\n {\n orderCode: '67890',\n orderId: 9876,\n customerName: 'Pooh Bear',\n orderItemCount: 56,\n orderFinTotal: 30.5,\n orderCompletionPercent: 0.7\n }\n ]\n },\n {\n name: 'Mamma Joe',\n storeId: 79,\n storeCode: '430',\n orders: [\n {\n orderCode: '23356',\n orderId: 65432,\n customerName: 'Mean One',\n orderItemCount: 100,\n orderFinTotal: 7.5,\n orderCompletionPercent: 0.9\n },\n {\n orderCode: '23456',\n orderId: 65431,\n customerName: 'Hey You',\n orderItemCount: 12,\n orderFinTotal: 1004.5,\n orderCompletionPercent: 0.3\n }\n ]\n }\n ]\n }\n};\n\nexport const bubbleDemoData = [bubbleDemoDataFromServer1, bubbleDemoDataFromServer2];\n","export * from './bubble-chart-interactive.module';\nexport * from './bubble-chart-interactive.component';\nexport * from './bubble-series-interactive.component';\n","export class Order {\n orderCode: string;\n orderId: number;\n customerName: string;\n orderItemCount: number;\n orderFinTotal: number;\n orderCompletionPercent: number;\n\n constructor(json: any) {\n this.orderCode = json.orderCode;\n this.orderId = json.orderId;\n this.customerName = json.customerName;\n this.orderItemCount = json.orderItemCount;\n this.orderFinTotal = json.orderFinTotal;\n this.orderCompletionPercent = json.orderCompletionPercent;\n }\n\n toChart() {\n // each order gets a different 'series' object\n // the name must be unique, or ngx-charts will lump the two into the same series\n return {\n name: `Order ${this.orderCode}`,\n series: [\n {\n name: `${this.customerName}`,\n x: this.orderFinTotal,\n y: this.orderItemCount,\n r: 0.95,\n //\n orderId: this.orderId,\n orderCode: this.orderCode\n }\n ]\n };\n }\n}\n\nexport class Store {\n name: string;\n storeId: number;\n storeCode: string;\n orders: Order[];\n averageOrderFinTotal: number;\n averageOrderItemCount: number;\n averageOrderCompletionPercent: number;\n\n constructor(json: any) {\n this.name = json.name;\n this.storeId = json.storeId;\n this.storeCode = json.storeCode;\n this.orders = json.orders.map(o => new Order(o));\n // calc props\n this.processAggregateData();\n }\n\n processAggregateData() {\n let finTotal = 0;\n let itmTotal = 0;\n let completionTotal = 0;\n this.orders.forEach(o => {\n finTotal += o.orderFinTotal;\n itmTotal += o.orderItemCount;\n completionTotal += o.orderCompletionPercent;\n });\n const orderCount = this.orders.length;\n this.averageOrderFinTotal = finTotal / orderCount;\n this.averageOrderItemCount = itmTotal / orderCount;\n this.averageOrderCompletionPercent = completionTotal / orderCount;\n }\n\n toChartAsStore() {\n return this.orders && this.orders.length > 0 ? this.orders.map(o => o.toChart()) : [];\n }\n\n toChartAsEnterprise() {\n // each store gets a different 'series' object\n // the name must be unique, or ngx-charts will lump the two into the same series\n return {\n name: `Store ${this.storeCode}`,\n series: [\n {\n name: this.name,\n x: this.averageOrderFinTotal,\n y: this.averageOrderItemCount,\n r: this.averageOrderCompletionPercent,\n children: this.orders.map(o => o.toChart()),\n //\n storeId: this.storeId,\n storeCode: this.storeCode\n }\n ]\n };\n }\n}\n\nexport class Enterprise {\n name: string;\n clientId: number;\n stores: Store[];\n averageOrderFinTotal: number;\n averageOrderItemCount: number;\n averageOrderCompletionPercent: number;\n\n constructor(json: any) {\n this.name = json.name;\n this.clientId = json.clientId;\n this.stores = json.stores.map(s => new Store(s));\n // calc props\n this.processAggregateData();\n }\n\n processAggregateData() {\n let finTotal = 0;\n let itmTotal = 0;\n let completionTotal = 0;\n this.stores.forEach(s => {\n finTotal += s.averageOrderFinTotal;\n itmTotal += s.averageOrderItemCount;\n completionTotal += s.averageOrderCompletionPercent;\n });\n const storeCount = this.stores.length;\n this.averageOrderFinTotal = finTotal / storeCount;\n this.averageOrderItemCount = itmTotal / storeCount;\n this.averageOrderCompletionPercent = completionTotal / storeCount;\n }\n\n toChart() {\n return this.stores.map(s => s.toChartAsEnterprise());\n }\n}\n\nexport class BubbleChartInteractiveServerDataModel {\n enterprise: Enterprise;\n chartDrilldownPath: any[];\n\n constructor() {\n this.chartDrilldownPath = [];\n }\n\n // updates incoming from server\n setDataFromServer(json: any) {\n this.enterprise = new Enterprise(json.data);\n }\n\n // Chart data\n toChart() {\n return this.chartDrilldownPath.length > 0\n ? this.toChartAsStore(this.chartDrilldownPath[0])\n : this.toChartAsEnterprise();\n }\n toChartAsEnterprise() {\n return this.enterprise.toChart();\n }\n toChartAsStore(storeJsonObj: any) {\n const store = this.enterprise.stores.find(s => {\n return s.storeId === storeJsonObj.storeId;\n });\n return store && store.toChartAsStore();\n }\n\n // drilldown\n getChartTitle() {\n const path = this.chartDrilldownPath;\n if (path.length > 0) {\n const current = path[0];\n return `${current.seriesName} (${current.bubbleName})`;\n }\n return 'Top Level';\n }\n getDrilldownDepth() {\n return this.chartDrilldownPath.length;\n }\n resetDrilldown() {\n this.chartDrilldownPath = [];\n }\n drilldown(event) {\n let toExpand;\n const clickedBubble = event.bubble;\n const clickedSeries = event.series;\n if (clickedBubble) {\n toExpand = clickedBubble.children;\n if (toExpand && toExpand.length) {\n this.chartDrilldownPath.push({\n storeId: clickedBubble.storeId,\n //\n seriesName: clickedSeries.name,\n bubbleName: clickedBubble.name\n });\n return toExpand;\n }\n }\n }\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n Output,\n EventEmitter,\n ViewChild,\n HostListener,\n ContentChild,\n TemplateRef\n} from '@angular/core';\n\nimport { curveLinear } from 'd3-shape';\nimport { scaleBand, scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport {\n BaseChartComponent,\n LineSeriesComponent,\n ViewDimensions,\n ColorHelper,\n calculateViewDimensions,\n ScaleType,\n Orientation,\n Color\n} from 'projects/swimlane/ngx-charts/src/public-api';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'combo-chart-component',\n templateUrl: './combo-chart.component.html',\n styleUrls: ['./combo-chart.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ComboChartComponent extends BaseChartComponent {\n @Input() curve: any = curveLinear;\n @Input() legend = false;\n @Input() legendTitle: string = 'Legend';\n @Input() legendPosition: string = 'right';\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel;\n @Input() showYAxisLabel;\n @Input() showRightYAxisLabel;\n @Input() xAxisLabel;\n @Input() yAxisLabel;\n @Input() yAxisLabelRight;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() showGridLines: boolean = true;\n @Input() activeEntries: any[] = [];\n @Input() schemeType: ScaleType;\n @Input() xAxisTickFormatting: any;\n @Input() yAxisTickFormatting: any;\n @Input() yRightAxisTickFormatting: any;\n @Input() roundDomains: boolean = false;\n @Input() colorSchemeLine: Color;\n @Input() autoScale;\n @Input() lineChart: any;\n @Input() yLeftAxisScaleFactor: any;\n @Input() yRightAxisScaleFactor: any;\n @Input() rangeFillOpacity: number;\n @Input() animations: boolean = true;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() activate: EventEmitter = new EventEmitter();\n @Output() deactivate: EventEmitter = new EventEmitter();\n\n @ContentChild('tooltipTemplate') tooltipTemplate: TemplateRef;\n @ContentChild('seriesTooltipTemplate') seriesTooltipTemplate: TemplateRef;\n\n @ViewChild(LineSeriesComponent) lineSeriesComponent: LineSeriesComponent;\n\n dims: ViewDimensions;\n xScale: any;\n yScale: any;\n xDomain: any;\n yDomain: any;\n transform: string;\n colors: ColorHelper;\n colorsLine: ColorHelper;\n margin: any[] = [10, 20, 10, 20];\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n legendOptions: any;\n scaleType = ScaleType.Linear;\n xScaleLine;\n yScaleLine;\n xDomainLine;\n yDomainLine;\n seriesDomain;\n scaledAxis;\n combinedSeries;\n xSet;\n filteredDomain;\n hoveredVertical;\n yOrientLeft = Orientation.Left;\n yOrientRight = Orientation.Right;\n legendSpacing = 0;\n bandwidth;\n barPadding = 8;\n\n trackBy(index, item): string {\n return `${item.name}`;\n }\n\n update(): void {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition as any\n });\n\n if (!this.yAxis) {\n this.legendSpacing = 0;\n } else if (this.showYAxisLabel && this.yAxis) {\n this.legendSpacing = 100;\n } else {\n this.legendSpacing = 40;\n }\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n\n // line chart\n this.xDomainLine = this.getXDomainLine();\n if (this.filteredDomain) {\n this.xDomainLine = this.filteredDomain;\n }\n\n this.yDomainLine = this.getYDomainLine();\n this.seriesDomain = this.getSeriesDomain();\n\n this.scaleLines();\n\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n\n @HostListener('mouseleave')\n hideCircles(): void {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n\n updateHoveredVertical(item): void {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n\n updateDomain(domain): void {\n this.filteredDomain = domain;\n this.xDomainLine = this.filteredDomain;\n this.xScaleLine = this.getXScaleLine(this.xDomainLine, this.dims.width);\n }\n\n scaleLines() {\n this.xScaleLine = this.getXScaleLine(this.xDomainLine, this.dims.width);\n this.yScaleLine = this.getYScaleLine(this.yDomainLine, this.dims.height);\n }\n\n getSeriesDomain(): any[] {\n this.combinedSeries = this.lineChart.slice(0);\n this.combinedSeries.push({\n name: this.yAxisLabel,\n series: this.results\n });\n return this.combinedSeries.map(d => d.name);\n }\n\n isDate(value): boolean {\n if (value instanceof Date) {\n return true;\n }\n\n return false;\n }\n\n getScaleType(values): ScaleType {\n let date = true;\n let num = true;\n\n for (const value of values) {\n if (!this.isDate(value)) {\n date = false;\n }\n\n if (typeof value !== 'number') {\n num = false;\n }\n }\n\n if (date) {\n return ScaleType.Time;\n }\n\n if (num) {\n return ScaleType.Linear;\n }\n\n return ScaleType.Ordinal;\n }\n\n getXDomainLine(): any[] {\n let values = [];\n\n for (const results of this.lineChart) {\n for (const d of results.series) {\n if (!values.includes(d.name)) {\n values.push(d.name);\n }\n }\n }\n\n this.scaleType = this.getScaleType(values);\n let domain = [];\n\n if (this.scaleType === 'time') {\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n } else if (this.scaleType === 'linear') {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n } else {\n domain = values;\n }\n\n this.xSet = values;\n return domain;\n }\n\n getYDomainLine(): any[] {\n const domain = [];\n\n for (const results of this.lineChart) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n }\n\n let min = Math.min(...domain);\n const max = Math.max(...domain);\n if (this.yRightAxisScaleFactor) {\n const minMax = this.yRightAxisScaleFactor(min, max);\n return [Math.min(0, minMax.min), minMax.max];\n } else {\n min = Math.min(0, min);\n return [min, max];\n }\n }\n\n getXScaleLine(domain, width): any {\n let scale;\n if (this.bandwidth === undefined) {\n this.bandwidth = width - this.barPadding;\n }\n const offset = Math.floor((width + this.barPadding - (this.bandwidth + this.barPadding) * domain.length) / 2);\n\n if (this.scaleType === 'time') {\n scale = scaleTime().range([0, width]).domain(domain);\n } else if (this.scaleType === 'linear') {\n scale = scaleLinear().range([0, width]).domain(domain);\n\n if (this.roundDomains) {\n scale = scale.nice();\n }\n } else if (this.scaleType === 'ordinal') {\n scale = scalePoint()\n .range([offset + this.bandwidth / 2, width - offset - this.bandwidth / 2])\n .domain(domain);\n }\n\n return scale;\n }\n\n getYScaleLine(domain, height): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getXScale(): any {\n this.xDomain = this.getXDomain();\n const spacing = this.xDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().range([0, this.dims.width]).paddingInner(spacing).domain(this.xDomain);\n }\n\n getYScale(): any {\n this.yDomain = this.getYDomain();\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.yDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n\n getXDomain(): any[] {\n return this.results.map(d => d.name);\n }\n\n getYDomain() {\n const values = this.results.map(d => d.value);\n const min = Math.min(0, ...values);\n const max = Math.max(...values);\n if (this.yLeftAxisScaleFactor) {\n const minMax = this.yLeftAxisScaleFactor(min, max);\n return [Math.min(0, minMax.min), minMax.max];\n } else {\n return [min, max];\n }\n }\n\n onClick(data) {\n this.select.emit(data);\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.xDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n this.colorsLine = new ColorHelper(this.colorSchemeLine, this.schemeType, domain, this.customColors);\n }\n\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colorsLine;\n opts.title = this.legendTitle;\n } else {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n\n updateLineWidth(width): void {\n this.bandwidth = width;\n this.scaleLines();\n }\n\n updateYAxisWidth({ width }): void {\n this.yAxisWidth = width + 20;\n this.update();\n }\n\n updateXAxisHeight({ height }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n\n","import { Component, Input, Output, EventEmitter, OnChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel } from '@swimlane/ngx-charts/common/label.helper';\nimport { PlacementTypes } from '@swimlane/ngx-charts/common/tooltip/position/placement-type.enum';\nimport { StyleTypes } from '@swimlane/ngx-charts/common/tooltip/style.type';\nimport { BarOrientation } from '@swimlane/ngx-charts/common/types/bar-orientation.enum';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'g[ngx-combo-charts-series-vertical]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition('* => void', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ]\n})\nexport class ComboSeriesVerticalComponent implements OnChanges {\n @Input() dims;\n @Input() type = 'standard';\n @Input() series;\n @Input() seriesLine;\n @Input() xScale;\n @Input() yScale;\n @Input() colors;\n @Input() tooltipDisabled: boolean = false;\n @Input() gradient: boolean;\n @Input() activeEntries: any[];\n @Input() seriesName: string;\n @Input() animations: boolean = true;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() select = new EventEmitter();\n @Output() activate = new EventEmitter();\n @Output() deactivate = new EventEmitter();\n @Output() bandwidth = new EventEmitter();\n\n bars: any;\n x: any;\n y: any;\n\n placementTypes = PlacementTypes;\n barOrientation = BarOrientation;\n styleTypes = StyleTypes;\n\n ngOnChanges(changes): void {\n this.update();\n }\n\n update(): void {\n let width;\n if (this.series.length) {\n width = this.xScale.bandwidth();\n this.bandwidth.emit(width);\n }\n\n let d0 = 0;\n let total;\n if (this.type === 'normalized') {\n total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n\n this.bars = this.series.map((d, index) => {\n let value = d.value;\n const label = d.name;\n const formattedLabel = formatLabel(label);\n const roundEdges = this.type === 'standard';\n\n const bar: any = {\n value,\n label,\n roundEdges,\n data: d,\n width,\n formattedLabel,\n height: 0,\n x: 0,\n y: 0\n };\n\n if (this.type === 'standard') {\n bar.height = Math.abs(this.yScale(value) - this.yScale(0));\n bar.x = this.xScale(label);\n\n if (value < 0) {\n bar.y = this.yScale(0);\n } else {\n bar.y = this.yScale(value);\n }\n } else if (this.type === 'stacked') {\n const offset0 = d0;\n const offset1 = offset0 + value;\n d0 += value;\n\n bar.height = this.yScale(offset0) - this.yScale(offset1);\n bar.x = 0;\n bar.y = this.yScale(offset1);\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n } else if (this.type === 'normalized') {\n let offset0 = d0;\n let offset1 = offset0 + value;\n d0 += value;\n\n if (total > 0) {\n offset0 = (offset0 * 100) / total;\n offset1 = (offset1 * 100) / total;\n } else {\n offset0 = 0;\n offset1 = 0;\n }\n\n bar.height = this.yScale(offset0) - this.yScale(offset1);\n bar.x = 0;\n bar.y = this.yScale(offset1);\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n value = (offset1 - offset0).toFixed(2) + '%';\n }\n\n if (this.colors.scaleType === 'ordinal') {\n bar.color = this.colors.getColor(label);\n } else {\n if (this.type === 'standard') {\n bar.color = this.colors.getColor(value);\n bar.gradientStops = this.colors.getLinearGradientStops(value);\n } else {\n bar.color = this.colors.getColor(bar.offset1);\n bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n }\n }\n\n let tooltipLabel = formattedLabel;\n if (this.seriesName) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n }\n\n this.getSeriesTooltips(this.seriesLine, index);\n const lineValue = this.seriesLine[0].series[index].value;\n bar.tooltipText = `\n ${tooltipLabel}\n Y1 - ${value.toLocaleString()} • Y2 - ${lineValue.toLocaleString()}%\n `;\n\n return bar;\n });\n }\n getSeriesTooltips(seriesLine, index) {\n return seriesLine.map(d => {\n return d.series[index];\n });\n }\n isActive(entry): boolean {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name && entry.series === d.series;\n });\n return item !== undefined;\n }\n\n onClick(data): void {\n this.select.emit(data);\n }\n\n trackBy(index, bar): string {\n return bar.label;\n }\n}\n","export * from './combo-chart.component';\nexport * from './combo-series-vertical.component';\n","import { Component, Input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { getUniqueXDomainValues, getXDomainArray } from '@swimlane/ngx-charts/common/domain.helper';\nimport {\n BaseChartComponent,\n ViewDimensions,\n ColorHelper,\n calculateViewDimensions,\n ScaleType\n} from 'projects/swimlane/ngx-charts/src/public-api';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'ngx-charts-sparkline',\n template: `\n \n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../../../../projects/swimlane/ngx-charts/src/lib/common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SparklineComponent extends BaseChartComponent {\n @Input() autoScale = false;\n @Input() curve: any = curveLinear;\n @Input() schemeType: ScaleType = ScaleType.Linear;\n @Input() valueDomain: number[];\n @Input() animations: boolean = true;\n\n dims: ViewDimensions;\n xSet: any;\n xDomain: any;\n yDomain: any;\n seriesDomain: any;\n yScale: any;\n xScale: any;\n colors: ColorHelper;\n scaleType: ScaleType;\n transform: string;\n margin = [0, 0, 0, 0];\n\n update(): void {\n super.update();\n\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: false,\n showYAxis: false,\n xAxisHeight: 0,\n yAxisWidth: 0,\n showXLabel: false,\n showYLabel: false,\n showLegend: false,\n legendType: this.schemeType\n });\n\n this.xDomain = this.getXDomain();\n\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n\n getXDomain(): any[] {\n const values = getUniqueXDomainValues(this.results);\n\n const { domain, xSet, scaleType } = getXDomainArray(values);\n this.scaleType = scaleType as ScaleType;\n this.xSet = xSet;\n return domain;\n }\n\n getYDomain(): any[] {\n if (this.valueDomain) {\n return this.valueDomain;\n }\n\n const domain = [];\n\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n }\n\n let min = Math.min(...domain);\n const max = Math.max(...domain);\n if (!this.autoScale) {\n min = Math.min(0, min);\n }\n\n return [min, max];\n }\n\n getSeriesDomain(): any[] {\n return this.results.map(d => d.name);\n }\n\n getXScale(domain, width): any {\n let scale;\n\n if (this.scaleType === 'time') {\n scale = scaleTime().range([0, width]).domain(domain);\n } else if (this.scaleType === 'linear') {\n scale = scaleLinear().range([0, width]).domain(domain);\n } else if (this.scaleType === 'ordinal') {\n scale = scalePoint().range([0, width]).padding(0.1).domain(domain);\n }\n\n return scale;\n }\n\n getYScale(domain, height): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n\n return scale;\n }\n\n getScaleType(values): ScaleType {\n let date = true;\n let num = true;\n\n for (const value of values) {\n if (!this.isDate(value)) {\n date = false;\n }\n\n if (typeof value !== 'number') {\n num = false;\n }\n }\n\n if (date) {\n return ScaleType.Time;\n }\n\n if (num) {\n return ScaleType.Linear;\n }\n\n return ScaleType.Ordinal;\n }\n\n isDate(value): boolean {\n if (value instanceof Date) {\n return true;\n }\n\n return false;\n }\n\n trackBy(index, item): string {\n return `${item.name}`;\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\nimport { brushX } from 'd3-brush';\nimport { select } from 'd3-selection';\nimport {\n BaseChartComponent,\n calculateViewDimensions,\n ColorHelper,\n id,\n ScaleType,\n ViewDimensions\n} from 'projects/swimlane/ngx-charts/src/public-api';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'ngx-charts-timeline-filter-bar-chart',\n template: `\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n `,\n styleUrls: ['../../../../projects/swimlane/ngx-charts/src/lib/common/base-chart.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TimelineFilterBarChartComponent extends BaseChartComponent {\n @Input() autoScale = false;\n @Input() schemeType: ScaleType = ScaleType.Ordinal;\n @Input() valueDomain: number[];\n @Input() xAxis;\n @Input() yAxis;\n @Input() showXAxisLabel;\n @Input() showYAxisLabel;\n @Input() xAxisLabel;\n @Input() yAxisLabel;\n @Input() gradient;\n @Input() showGridLines: boolean = true;\n @Input() animations: boolean = true;\n @Input() noBarWhenZero: boolean = true;\n\n @Output() onFilter = new EventEmitter();\n\n dims: ViewDimensions;\n xSet: any;\n xDomain: any;\n yDomain: any;\n seriesDomain: any;\n yScale: any;\n xScale: any;\n xAxisHeight: number = 0;\n yAxisWidth: number = 0;\n timeScale: any;\n colors: ColorHelper;\n scaleType: string;\n transform: string;\n margin: any[] = [10, 20, 10, 0];\n initialized: boolean = false;\n filterId: any;\n filter: any;\n brush: any;\n\n update(): void {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: false,\n legendType: this.schemeType\n });\n\n this.xDomain = this.getXDomain();\n\n this.yDomain = this.getYDomain();\n this.timeScale = this.getTimeScale(this.xDomain, this.dims.width);\n this.xScale = this.getXScale(this.xSet, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n if (this.brush) {\n this.updateBrush();\n }\n\n this.filterId = 'filter' + id().toString();\n this.filter = `url(#${this.filterId})`;\n\n if (!this.initialized) {\n this.addBrush();\n this.initialized = true;\n }\n }\n\n getXDomain(): any[] {\n const values = [];\n\n for (const d of this.results) {\n if (!values.includes(d.name)) {\n values.push(d.name);\n }\n }\n\n this.scaleType = this.getScaleType(values);\n let domain = [];\n\n const min = new Date(Math.min(...values));\n min.setHours(0);\n min.setMinutes(0);\n min.setSeconds(0);\n\n const max = new Date(Math.max(...values));\n max.setHours(23);\n max.setMinutes(59);\n max.setSeconds(59);\n\n domain = [min.getTime(), max.getTime()];\n\n this.xSet = values;\n return domain;\n }\n\n getYDomain(): any[] {\n if (this.valueDomain) {\n return this.valueDomain;\n }\n\n const domain = [];\n\n for (const d of this.results) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n\n let min = Math.min(...domain);\n const max = Math.max(...domain);\n if (!this.autoScale) {\n min = Math.min(0, min);\n }\n\n return [min, max];\n }\n\n getXScale(domain, width): any {\n return scaleBand().range([0, width]).paddingInner(0.1).domain(domain);\n }\n\n getTimeScale(domain, width): any {\n return scaleTime().range([0, width]).domain(domain);\n }\n\n getYScale(domain, height): any {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n\n return scale;\n }\n\n getScaleType(values): ScaleType {\n return ScaleType.Time;\n }\n\n trackBy(index, item): string {\n return `${item.name}`;\n }\n\n setColors(): void {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.xSet;\n } else {\n domain = this.yDomain;\n }\n\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n\n updateYAxisWidth({ width }): void {\n this.yAxisWidth = width;\n this.update();\n }\n\n updateXAxisHeight({ height }): void {\n this.xAxisHeight = height;\n this.update();\n }\n\n addBrush(): void {\n if (this.brush) return;\n\n const height = this.height;\n const width = this.width;\n\n this.brush = brushX()\n .extent([\n [0, 0],\n [width, height]\n ])\n .on('brush end', ({ selection }) => {\n const newSelection = selection || this.xScale.range();\n const newDomain = newSelection.map(this.timeScale.invert);\n\n this.onFilter.emit(newDomain);\n this.cd.markForCheck();\n });\n\n select(this.chartElement.nativeElement).select('.brush').call(this.brush);\n }\n\n updateBrush(): void {\n if (!this.brush) return;\n\n const height = this.dims.height;\n const width = this.dims.width;\n\n this.brush.extent([\n [0, 0],\n [width, height]\n ]);\n select(this.chartElement.nativeElement).select('.brush').call(this.brush);\n\n // clear hardcoded properties so they can be defined by CSS\n select(this.chartElement.nativeElement)\n .select('.selection')\n .attr('fill', undefined)\n .attr('stroke', undefined)\n .attr('fill-opacity', undefined);\n\n this.cd.markForCheck();\n }\n}\n","import { ErrorHandler, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { CreateAgent } from './pages/create-agent/create-agent.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorHandlerService implements ErrorHandler {\n userData: any\n snackBarRef:any\n constructor(\n private agentService: CreateAgent,\n private router: Router,\n private readonly snackbarRef: MatSnackBar,\n ) { }\n\n handleError(error) {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n \n if (error.status === 401) {\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Offline\",\n fcmtoken: this.userData.fcmtoken,\n token: this.userData.token,\n })\n .subscribe((data) => {\n });\n this.snackbarRef.open(\"Already logged in on another device\",'', {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 3000,\n panelClass: [\"error-snackbar\"],\n });\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigate([\"/account/login\"]);\n }\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HttpClientService {\n userData: any\n constructor(\n private http: HttpClient) {\n\n }\n\n get(url) {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n let customHeaders={\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque',}\n )\n };\n if (this.userData) {\n customHeaders = {\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque','Authentication': 'Bearer ' +this.userData.token }\n )\n }\n }\n // if(this.userData){\n // customHeaders.headers.set('Authentication','Bearer '+this.userData.token)\n // }\n return this.http.get(url, customHeaders);\n }\n\n post(url, data) {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n let customHeaders={\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque', \"Access-Control-Allow-Origin\": \"*\"}\n )\n };\n if (this.userData) {\n customHeaders = {\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque', \"Access-Control-Allow-Origin\": \"*\", 'Authentication': 'Bearer ' + this.userData.token }\n )\n }\n }\n \n // if(this.userData){\n // customHeaders.headers.set('Authentication','Bearer '+this.userData.token)\n // }\n return this.http.post(url, data, customHeaders);\n }\n\n put(url, data) {\n return this.http.put(url, data, {\n headers: new HttpHeaders(\n\n { 'x-auth-token': 'asseccque' }\n )\n });\n }\n delete(url) {\n return this.http.delete(url, {\n headers: new HttpHeaders(\n\n { 'x-auth-token': 'asseccque', 'Authentication': 'Bearer ' + this.userData ? this.userData.token : '' }\n )\n });\n }\n\n\n}\n","export interface Icons {\n alert: string;\n error: string;\n info: string;\n warn: string;\n success: string;\n }\n \n export const defaultIcons: Icons = {\n alert: `\n \n \n \n \n `,\n error: `\n \n \n \n \n `,\n info: `\n \n \n \n \n `,\n success: `\n \n \n \n \n `,\n warn: `\n \n \n \n \n \n `\n };\n ","import {Notification} from './notification.type';\n\nexport interface NotificationEvent {\n add?: boolean;\n command: string;\n id?: string;\n notification?: Notification;\n}\n","import {EventEmitter} from '@angular/core';\n\nexport interface Notification {\n id?: string\n type: string\n icon: string\n title?: any\n content?: any\n override?: any\n html?: any\n state?: string\n createdOn?: Date\n destroyedOn?: Date\n animate?: string\n timeOut?: number\n maxLength?: number\n pauseOnHover?: boolean\n clickToClose?: boolean\n clickIconToClose?: boolean\n theClass?: string\n click?: EventEmitter<{}>;\n clickIcon?: EventEmitter<{}>;\n}\n","import {Icons} from './icons';\n\nexport interface Options {\n timeOut?: number;\n showProgressBar?: boolean;\n pauseOnHover?: boolean;\n lastOnBottom?: boolean;\n clickToClose?: boolean;\n clickIconToClose?: boolean;\n maxLength?: number;\n maxStack?: number;\n preventDuplicates?: boolean;\n preventLastDuplicates?: boolean | string;\n theClass?: string;\n rtl?: boolean;\n animate?: 'fade' | 'fromTop' | 'fromRight' | 'fromBottom' | 'fromLeft' | 'rotate' | 'scale';\n icons?: Icons;\n position?: ['top' | 'bottom' | 'middle', 'right' | 'left' | 'center'];\n}\n","import {\n Component, ElementRef, OnInit, Output, EventEmitter,\n ViewChild\n} from '@angular/core';\nimport { Client, Conversation } from \"@twilio/conversations\";\nimport { environment } from 'src/environments/environment';\ndeclare const Twilio: any;\n@Component({\n selector: 'app-landingpage',\n templateUrl: './landingpage.component.html',\n styleUrls: ['./landingpage.component.css']\n})\nexport class LandingpageComponent implements OnInit {\n baseUrl = environment.socketUrl;\n currentIndex = 0;\n content = [\n { title: \"Instant Calls\", content: \"Accessque Guide is a smart knowledge base that helps you harness the power of institutionalknowledge.\" },\n {\n title: \"Live Chat\", content: \"Create a personal connection with customers looking for support.It\\’ s fast and effective\"\n },\n {\n title: \"Social\", content: \"Be where they want to be — connect popular messaging apps to Accessque.\"\n },\n { title: \"Mails\", content: \"Accessque Guide is a smart knowledge base that helps you harness the power of institutionalknowledge.\" },\n {\n title: \"Integrated Voice\", content: \"Talk it out directly with customers and provide personalized solutions to complex issues.\"\n }\n , { title: \"Tickets\", content: \"Accessque Guide is a smart knowledge base that helps you harness the power of institutionalknowledge.\" }\n\n ]\n client: any;\n channel: any;\n username: any = 'Test User 2';\n // email:any = 'test@abc.com';\n // description:any = 'Web chat request';\n // phone:any = '9096652820';\n RolesContacted: any = 'Studentcalls';\n channelId: any;\n chatClient1: any;\n generalChannel: any;\n message: any = []\n name: any;\n email: any;\n description: any;\n phone: any;\n isIconShow: any\n showNote:Boolean=false\n @ViewChild(\"chatContainer\") chatContainer!: ElementRef;\n // @Output() showchat: EventEmitter = new EventEmitter();\n is_showchat:Boolean = false\n scrollTop() {\n if (this.message && this.message.length > 0) {\n setTimeout(() => {\n this.chatContainer.nativeElement.scrollTop =\n this.chatContainer.nativeElement.scrollHeight;\n }, 20);\n }\n\n }\n typingNotification:any\n\n constructor() {\n\n }\n\n ngOnInit(): void {\n }\n async getToken() {\n\n let _data = {\n \"identity\": this.username\n }\n let url = `${environment.twilioApiUrl}${environment.companyId}/webChat/token`;\n let response = await fetch(url, { headers: { 'content-type': 'application/json' }, method: \"POST\", body: JSON.stringify(_data) });\n const data = await response.json();\n this.channelId = data.channelId;\n // Initialize the Chat client\n //Twilio.Chat.Client.create(data.token).then(client => {\n\n Twilio.Conversations.Client.create(data.token).then((client: any) => {\n this.chatClient1 = client;\n // chatClient.on('channelInvited', function(channel) {\n // \t// Join the channel that you were invited to\n // \t//channel.join();\n // generalChannel = channel;\n // \tsetupChannel();\n // });\n\n this.chatClient1.on(\"connectionStateChanged\", (state: any) => {\n\n if (state == \"connected\") {\n }\n if (state == 'disconnecting') {\n }\n if (state == 'disconnected') {\n }\n if (state == 'denied') {\n }\n\n });\n\n // chatClient1.on(\"conversationJoined\", (conversation) => {\n // generalChannel = conversation;\n // setupChannel();\n // });\n\n //chatClient.getSubscribedChannels().then(createOrJoinGeneralChannel);\n //let conversations = await chatClient1.getSubscribedConversations();\n this.createOrJoinGeneralChannel();\n this.refreshToken(this.username);\n\n // when the access token is about to expire, refresh it\n var that = this\n this.chatClient1.on('tokenAboutToExpire', function () {\n that.refreshToken(that.username);\n });\n\n // if the access token already expired, refresh it\n this.chatClient1.on('tokenExpired', function () {\n that.refreshToken(that.username);\n });\n\n // Alert the user they have been assigned a random username\n \n this.scrollTop()\n }).catch((error: any) => {\n });\n }\n\n\n\n async refreshToken(identity: any) {\n let _data = {\n \"identity\": identity\n }\n let url = `${environment.twilioApiUrl}${environment.companyId}/webChat/token`;\n let response = await fetch(url, { headers: { 'content-type': 'application/json' }, method: \"POST\", body: JSON.stringify(_data) });\n const data = await response.json();\n this.chatClient1.updateToken(data.token);\n\n }\n\n async createOrJoinGeneralChannel() {\n let that = this\n this.chatClient1.getConversationBySid(this.channelId)\n .then(function (channel: any) {\n that.generalChannel = channel;\n that.setupChannel();\n }).catch(function () {\n that.chatClient1.createConversation({\n //chatClient.createChannel({\n\n uniqueName: that.channelId,\n friendlyName: that.channelId,\n attributes: {\n UserName: that.username,\n EmailId: that.email,\n RequestDescription: that.description,\n Phone: that.phone,\n RolesContacted: that.RolesContacted,\n TwilioNumber: environment.TwilioNumber\n\n }\n\n }).then(function (channel: any) {\n that.generalChannel = channel;\n that.setupChannel();\n }).catch(function (channel: any) {\n });\n });\n\n }\n\n\n // Set up channel after it has been found\n setupChannel() {\n // Join the general channel\n let that = this\n this.generalChannel.join().then(async function (channel: any) {\n });\n\n this.generalChannel.on('messageAdded', function (message: any) {\n this.showNote=false\n that.message.push({\n body: message.body,\n author: message.author,\n timestamp: Date.now(),\n sid: message.sid,\n })\n });\n this.generalChannel.on(\"typingStarted\", (member: any) => {\n this.typingNotification = member.identity + ' is typing ...';\n });\n\n this.generalChannel.on(\"typingEnded\", (member:any) => {\n this.typingNotification = '';\n });\n }\n print(infoMessage: any, asHtml: any) {\n }\n\n submit() {\n this.showNote=true\n this.username = this.name\n this.getToken()\n\n }\n sendMessage() {\n if (this.chatMessage !== \"\") {\n this.generalChannel.sendMessage(this.chatMessage);\n this.chatMessage = \"\";\n }\n this.scrollTop()\n\n }\n chatMessage: any\n addEmoji(event: any) {\n this.chatMessage = this.chatMessage + event.emoji.native;\n }\n enterKey(event: any) {\n if (event.keyCode === 13) {\n this.sendMessage();\n }\n }\n showChat() {\n this.name = ''\n this.email = ''\n this.phone = ''\n this.description = ''\n this.is_showchat=!this.is_showchat\n this.message=[]\n // this.showchat.emit(false);\n }\n}\n","
\n\t\t
\n\t\t\t
\n\t\t\t\t

Accessque chat

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Name
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
Email
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
Phone
\n\t\t\t\t\t
Description
\n\t\t\t\t\t
\n\t\t\t\t\t\tNote : please wait connecting to available agents \n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
0\" style=\"overflow: auto;height:350px\" class=\"scrollbar\" #chatContainer>\n\t\t\t\t\t
\n\t\t\t\t\t \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\tmessage.author\n\t\t\t\t\t\t\t\t\t\t}}:\n\t\t\t\t\t\t\t\t\t
\n\t\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{{ message.body }}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{{ message.timestamp | date: \"medium\" }}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\tmessage.author\n\t\t\t\t\t\t\t\t\t\t}}:\n\t\t\t\t\t\t\t\t\t
\n\t\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{{ message.body }}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{{ message.timestamp | date: \"medium\" }}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
0\">\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\n\t\t
\n
\n\n
\n\t\n\n\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\tThe best customer experiences
are built with Accessque\n\t\t\t
\n\t\t
\n\t
\n\t\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
AccessQue
\n\t\t\t\t\n\t\t\t\t\tAccessque makes support, sales, and customer engagement software for\n\t\t\t\t\teveryone. It’s quick to implement, easy to use, and scales to fit your\n\t\t\t\t\tneeds. With Accessque, it takes hours to get up and running.— not\n\t\t\t\t\tweeks\n\t\t\t\t

\n\t\t\t\t

\n\t\t\t\t\tYour customers and employees want to talk to you—make it easy for\n\t\t\t\t\tthem. Our support products are flexible and empower you to assist\n\t\t\t\t\tpeople when they need you most.\n\t\t\t\t

\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
Why AccessQue ?
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Instant Calls

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Live Chat

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Social

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Mails

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Integrated Voice

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Tickets

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{{ content[currentIndex]['title'] }}

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{{ content[currentIndex]['content'] }}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Live Chat

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tCreate a personal connection with customers looking for\n\t\t\t\t\t\t\t\t\tsupport. It’ s fast and effective\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Social messaging

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tBe where they want to be — connect popular messaging apps to\n\t\t\t\t\t\t\t\t\tAccessque.\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Mails

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit.\n\t\t\t\t\t\t\t\t\tCurabitur sit amet ipsum quis nulla viverra auctor.\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tUt orci dolor, porttitor a consequat sed, ultrices nec erat.\n\t\t\t\t\t\t\t\t\tAliquam tempus.Lorem ipsum dolor sit amet, consectetur\n\t\t\t\t\t\t\t\t\tadipiscing elit. Curabitur sit amet ipsum quis nulla viverra\n\t\t\t\t\t\t\t\t\tauctor.Lorem ipsum dolor sit amet, consectetur adipiscing\n\t\t\t\t\t\t\t\t\telit. Curabitur sit amet ipsum quis nulla viverra auctor.\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Integrated Voice

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tTalk it out directly with customers and provide personalized\n\t\t\t\t\t\t\t\t\tsolutions to complex issues.\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Ticketing system

\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tTrack, prioritize, and solve customer support tickets all in\n\t\t\t\t\t\t\t\t\tone place.\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tThe way it\n\t\t\t\t\tWorks\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\tLogin to\n\t\t\t\t
AccessQue
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\tSelect\n\t\t\t\t
Plan
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\tStart\n\t\t\t\t
Business
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\tRun\n\t\t\t\t
Business
\n\t\t\t
\n\t\t
\n\t\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
Price
\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tStarter\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
$30.00
\n\t\t\t\t\t\t

User/Month

\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Email\n\t\t\t\t\t\t\t\tTicketing\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Customer\n\t\t\t\t\t\t\t\tManagement\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Help\n\t\t\t\t\t\t\t\tCenter\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t*Call charges as applicable\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tProfessional\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
$45.00
\n\t\t\t\t\t\t

User/Month

\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Email\n\t\t\t\t\t\t\t\tTicketing\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   SMS\n\t\t\t\t\t\t\t\tTicketing\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Chat\n\t\t\t\t\t\t\t\tCommunication\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Customer\n\t\t\t\t\t\t\t\tManagement\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Help\n\t\t\t\t\t\t\t\tCenter\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Private\n\t\t\t\t\t\t\t\tKnowledge Base\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t*Call charges as applicable\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tEnterprise\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
$60.00
\n\t\t\t\t\t\t

User/Month

\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Email\n\t\t\t\t\t\t\t\tTicketing\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   SMS\n\t\t\t\t\t\t\t\tTicketing\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Chat\n\t\t\t\t\t\t\t\tCommunication\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Customer\n\t\t\t\t\t\t\t\tManagement\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Bulk SMS\n\t\t\t\t\t\t\t\tServices\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Help\n\t\t\t\t\t\t\t\tCenter\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t   Private\n\t\t\t\t\t\t\t\tKnowledge Base\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t\tPredefined SLAs\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t*Call charges as applicable\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t\t\n\t\n\t\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
Testimonails
\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tLorem ipsum dolor sit amet, con sec tetur adipiscing elit. Suspe\n\t\t\t\t\tndisse eleif end...\n\t\t\t\t\t
\n\t\t\t\t\t- Sunile Rathod\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tLorem ipsum dolor sit amet, con sec tetur adipiscing elit. Suspe\n\t\t\t\t\tndisse eleif end...\n\t\t\t\t\t
\n\t\t\t\t\t- Sunile Rathod\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tLorem ipsum dolor sit amet, con sec tetur adipiscing elit. Suspe\n\t\t\t\t\tndisse eleif end...\n\t\t\t\t\t
\n\t\t\t\t\t- Sunile Rathod\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\tCompany\n\t\t\tAbout Us\n\t\t
\n\t\t
\n\t\t\tPolicies\n\t\t\tPrivacy Policy\n\t\t\tTerms & Conditions\n\t\t
\n\t\t
\n\t\t\tDeveloped by
\n\t\t\tAvantao Technologies\n\t\t
\n\t
\n\t\n\n\t\n\n
\n\t\n
\n\n","import { SharedService } from \"./../../shared/shared.service\";\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { CreateAgent } from \"src/app/pages/create-agent/create-agent.service\";\nimport { LayoutService } from \"../layout.service\";\nimport { SocketService } from \"src/app/socket.service\";\nimport { Subscription } from \"rxjs\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-agentscontacts\",\n templateUrl: \"./agemtscontacts.component.html\",\n styleUrls: [\"./agemtscontacts.component.css\"],\n})\nexport class AgemtscontactsComponent implements OnInit, OnDestroy {\n contacts: any[] = [];\n userData: any;\n profilePhotos: any;\n projectId: any;\n project: Subscription;\n constructor(\n private sharedService: SharedService,\n private agentService: CreateAgent,\n private layoutService: LayoutService,\n private handleError: ErrorHandlerService,\n private socketService: SocketService\n ) {\n this.initilization();\n\n }\n\n ngOnInit() {\n this.socketService.status.subscribe((data) => {\n if (this.projectId) {\n this.getContacts(this.projectId);\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n initilization() {\n \n this.sharedService.totalAgents.subscribe((data) => {\n this.profilePhotos = data;\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // if (this.userData.companyId !== 0) {\n // this.getContacts(this.userData.companyId);\n // this.companyId = this.userData.companyId;\n // };\n this.project = this.sharedService.projectId.subscribe((data) => {\n if (data) {\n this.projectId = data;\n this.getContacts(data);\n }\n });\n }\n\n getContacts(projectId) {\n this.agentService\n .getContacts(projectId, this.userData.id)\n .subscribe((data) => {\n this.contacts = data;\n this.sharedService.totalAgents.next(this.contacts);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n callAgent(name) {\n this.layoutService.callAgent.next(`client:${name}`);\n }\n}\n","
\n
\n {{ contact[\"FirstName\"].slice(0, 1) }}\n \n
\n \n \n \n \n
\n
\n
\n {{\n contact[\"FirstName\"] + \" \" + contact[\"LastName\"] | titlecase\n }}\n +{{ contact[\"PhoneNumber\"] }}\n
\n
\n call\n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n Input,\n forwardRef,\n ViewChild,\n AfterViewInit,\n Injector,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport {\n NgbTimeStruct,\n NgbDateStruct,\n NgbPopoverConfig,\n NgbPopover,\n NgbDatepicker,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport {\n NG_VALUE_ACCESSOR,\n ControlValueAccessor,\n NgControl,\n} from \"@angular/forms\";\nimport { DatePipe } from \"@angular/common\";\nimport { DateTimeModel } from \"./date-time.model\";\nimport { noop } from \"rxjs\";\n\n@Component({\n selector: \"app-date-time-picker\",\n templateUrl: \"./date-time-picker.component.html\",\n styleUrls: [\"./date-time-picker.component.css\"],\n providers: [\n DatePipe,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimePickerComponent),\n multi: true,\n },\n ],\n})\nexport class DateTimePickerComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges\n{\n @Input()\n dateString: string;\n\n @Input()\n inputDatetimeFormat = \"M/d/yyyy H:mm:ss\";\n @Input()\n hourStep = 1;\n @Input()\n minuteStep = 15;\n @Input()\n secondStep = 30;\n @Input()\n seconds = true;\n\n @Input()\n disabled = false;\n\n public showTimePickerToggle = false;\n\n public datetime: DateTimeModel = new DateTimeModel();\n public firstTimeAssign = true;\n\n // @ViewChild(NgbDatepicker, { static: true })\n // public dp: NgbDatepicker;\n\n @ViewChild(NgbPopover)\n public popover: NgbPopover;\n\n public onTouched: () => void = noop;\n public onChange: (_: any) => void = noop;\n\n public ngControl: NgControl;\n meridian = true;\n\n constructor(public config: NgbPopoverConfig, public inj: Injector) {\n config.autoClose = \"outside\";\n config.placement = \"auto\";\n }\n\n ngOnInit(): void {\n this.ngControl = this.inj.get(NgControl);\n }\n\n ngAfterViewInit(): void {\n this.popover.hidden.subscribe(($event) => {\n this.showTimePickerToggle = false;\n });\n }\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n writeValue(newModel: string) {\n if (newModel) {\n this.datetime = Object.assign(\n this.datetime,\n DateTimeModel.fromLocalString(newModel)\n );\n this.dateString = newModel;\n this.setDateStringModel();\n } else {\n this.datetime = new DateTimeModel();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n toggleDateTimeState($event) {\n this.showTimePickerToggle = !this.showTimePickerToggle;\n $event.stopPropagation();\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInputChange($event: any) {\n const value = $event.target.value;\n const dt = DateTimeModel.fromLocalString(value);\n\n if (dt) {\n this.datetime = dt;\n this.setDateStringModel();\n } else if (value.trim() === \"\") {\n this.datetime = new DateTimeModel();\n this.dateString = \"\";\n this.onChange(this.dateString);\n } else {\n this.onChange(value);\n }\n }\n\n onDateChange($event: string | NgbDateStruct, dp: NgbDatepicker) {\n const date = new DateTimeModel($event);\n\n if (!date) {\n this.dateString = this.dateString;\n return;\n }\n\n if (!this.datetime) {\n this.datetime = date;\n }\n\n this.datetime.year = date.year;\n this.datetime.month = date.month;\n this.datetime.day = date.day;\n\n const adjustedDate = new Date(this.datetime.toString());\n if (this.datetime.timeZoneOffset !== adjustedDate.getTimezoneOffset()) {\n this.datetime.timeZoneOffset = adjustedDate.getTimezoneOffset();\n }\n\n this.setDateStringModel();\n }\n\n onTimeChange(event: NgbTimeStruct) {\n this.datetime.hour = event.hour;\n this.datetime.minute = event.minute;\n this.datetime.second = event.second;\n\n this.setDateStringModel();\n }\n\n setDateStringModel() {\n this.dateString = this.datetime.toString();\n\n if (!this.firstTimeAssign) {\n this.onChange(this.dateString);\n } else {\n // Skip very first assignment to null done by Angular\n if (this.dateString !== null) {\n this.firstTimeAssign = false;\n }\n }\n }\n\n inputBlur($event) {\n this.onTouched();\n }\n}\n","
\n \n\n
\n \n \n \n
\n
\n\n\n
\n
\n \n \n \n \n
\n
\n \n \n \n
\n \n \n \n
\n
\n
\n
\n\n","import { NgbTimeStruct, NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\nimport { DatePipe } from \"@angular/common\";\n\nexport interface NgbDateTimeStruct extends NgbDateStruct, NgbTimeStruct {}\n\nexport class DateTimeModel implements NgbDateTimeStruct {\n year: number;\n month: number;\n day: number;\n hour: number;\n minute: number;\n second: number;\n\n timeZoneOffset: number;\n\n public constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n public static fromLocalString(dateString: string): DateTimeModel {\n const date = new Date(dateString);\n\n const isValidDate = !isNaN(date.valueOf());\n\n if (!dateString || !isValidDate) {\n return null;\n }\n\n return new DateTimeModel({\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n second: date.getSeconds(),\n timeZoneOffset: date.getTimezoneOffset(),\n });\n }\n\n private isInteger(value: any): value is number {\n return (\n typeof value === \"number\" &&\n isFinite(value) &&\n Math.floor(value) === value\n );\n }\n\n public toString(): string {\n if (\n this.isInteger(this.year) &&\n this.isInteger(this.month) &&\n this.isInteger(this.day)\n ) {\n const year = this.year.toString().padStart(2, \"0\");\n const month = this.month.toString().padStart(2, \"0\");\n const day = this.day.toString().padStart(2, \"0\");\n\n if (!this.hour) {\n this.hour = 0;\n }\n if (!this.minute) {\n this.minute = 0;\n }\n if (!this.second) {\n this.second = 0;\n }\n if (!this.timeZoneOffset) {\n this.timeZoneOffset = new Date().getTimezoneOffset();\n }\n\n const hour = this.hour.toString().padStart(2, \"0\");\n const minute = this.minute.toString().padStart(2, \"0\");\n const second = this.second.toString().padStart(2, \"0\");\n\n const tzo = -this.timeZoneOffset;\n const dif = tzo >= 0 ? \"+\" : \"-\",\n pad = function (num) {\n const norm = Math.floor(Math.abs(num));\n return (norm < 10 ? \"0\" : \"\") + norm;\n };\n\n const isoString = `${pad(year)}-${pad(month)}-${pad(day)}T${pad(\n hour\n )}:${pad(minute)}:${pad(second)}+05:30`;\n return isoString;\n\n // YYYY-MM-DDTHH:mm:SSZ\n }\n\n return null;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
\n
","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LayoutComponent } from './layout.component';\nimport { SettingsComponent } from 'src/components/settings/settings.component';\nimport { IncomingCallsComponent } from './topbar/components/incoming-calls/incoming-calls.component';\nimport { EnquiryCallsComponent } from './topbar/components/enquiry-calls/enquiry-calls.component';\n\n\nconst routes: Routes = [\n {\n path: '', component: LayoutComponent,\n children: [\n {\n path: \"settings\",\n component: SettingsComponent,\n },\n {\n path: \"incomingcalls\",\n component: IncomingCallsComponent,\n },\n {\n path: \"enquirycalls\",\n component: EnquiryCallsComponent,\n }\n ]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class LayoutRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n\n@Component({\n selector: 'app-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.css']\n})\nexport class LayoutComponent implements OnInit {\ntoggleChatBox: any = false;\n constructor(private router: Router,) { }\n\n ngOnInit() {\n if(this.router.url ==\"/\"){\n this.router.navigate(['/uhleads']);\n }\n }\n toggleChat() {\n this.toggleChatBox = !this.toggleChatBox;\n }\n}\n","
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t\t \n\t
\n\t\n
\n","import { NgMultiSelectDropDownModule } from \"ng-multiselect-dropdown\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\n\nimport { LayoutRoutingModule } from \"./layout-routing.module\";\nimport { FooterComponent } from \"./footer/footer.component\";\nimport { TopbarComponent } from \"./topbar/topbar.component\";\nimport { SidebarComponent } from \"./sidebar/sidebar.component\";\nimport { LayoutComponent } from \"./layout.component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { NgbModule, NgbDropdownModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { NgxTimerModule } from \"ngx-timer\";\n// import {\n// MatListModule,\n// MatIconModule,\n// MatTabsModule,\n// MatMenuModule,\n// } from \"@angular/material\";\nimport { ChatModule } from \"../pages/chat/chat.module\";\nimport { AgemtscontactsComponent } from \"./agemtscontacts/agemtscontacts.component\";\nimport { NotificationComponent } from \"./notification/notification.component\";\nimport { DateTimePickerComponent } from \"./date-time-picker/date-time-picker.component\";\nimport { ActivelinkDirective } from \"./sidebar/activelink.directive\";\nimport { RemovelinkDirective } from \"./sidebar/removelink.directive\";\nimport { SettingsComponent } from \"src/components/settings/settings.component\";\nimport { DemoMaterialModule } from \"../pages/uhleads/material.module\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { ProjectChangeComponent } from './project-change/project-change.component';\nimport { IncomingCallsComponent } from \"./topbar/components/incoming-calls/incoming-calls.component\";\nimport { EnquiryCallsComponent } from \"./topbar/components/enquiry-calls/enquiry-calls.component\";\n\n@NgModule({\n declarations: [\n FooterComponent,\n TopbarComponent,\n SidebarComponent,\n LayoutComponent,\n AgemtscontactsComponent,\n NotificationComponent,\n DateTimePickerComponent,\n ActivelinkDirective,\n RemovelinkDirective,\n SettingsComponent,\n ProjectChangeComponent,\n IncomingCallsComponent,\n EnquiryCallsComponent\n // ActivelinkComponent,\n ],\n imports: [\n CommonModule,\n NgbModule,\n FormsModule,\n NgbDropdownModule,\n ReactiveFormsModule,\n LayoutRoutingModule,\n NgxTimerModule,\n MatListModule,\n MatIconModule,\n MatSnackBarModule,\n ChatModule,\n MatButtonModule,\n NgMultiSelectDropDownModule,\n MatTabsModule,\n MatMenuModule,\n DemoMaterialModule\n // AppModule\n ],\n providers: [DatePipe],\n exports: [DateTimePickerComponent,ProjectChangeComponent],\n})\nexport class LayoutModule { }\n","import { map } from \"rxjs/operators\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\nimport { environment } from \"src/environments/environment\";\nimport CallLogs from \"./models/calllogs-model\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { TicketsService } from \"../pages/tickets/tickets.service\";\nimport { GroupService } from \"../pages/group.service\";\nimport { HttpClientService } from \"../httpclient.service\";\nimport {\n CreateAutoEmail,\n InputCallData,\n InputSMSData,\n MarketingService,\n} from \"../pages/marketing/marketing.service\";\nimport * as moment from \"moment\";\nimport { RoleService } from \"../pages/role-management/role.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { FormBuilder, Validators } from \"@angular/forms\";\nimport { Comments } from \"xlsx/types\";\nimport { CreateAgent } from \"../pages/create-agent/create-agent.service\";\n\ninterface IntializeChat {\n token: string;\n identity: string;\n}\n\ninterface ChatTransfer {\n to: String; // queue name selected for transferring the call\n workerSid: String;\n ChannelSid: String;\n From: String;\n taskSid: String;\n}\n\ninterface AgentChat {\n to: string;\n from: string;\n}\n\ninterface AgentEndChat {\n to: string;\n from: string;\n ChannelSid: string;\n}\n\ninterface AddAgentChannel {\n to: string;\n ChannelSid: string;\n}\n\ninterface RemoveAgent {\n identity: string;\n ChannelSid: string;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class LayoutService {\n twilioApiUrl: any = environment.twilioApiUrl;\n baseApiUrl2: any = environment.baseApiUrl2;\n sockerUrl: any= environment.socketUrl;\n chatChannelSid = new BehaviorSubject(\"\");\n initializeChat = new BehaviorSubject({\n token: \"\",\n identity: \"\",\n });\n workerJs = new BehaviorSubject(\"\");\n newTask = new BehaviorSubject(\"\");\n userData = JSON.parse(localStorage.getItem(\"userData\"));\n RolePermission = localStorage.getItem(\"RolePermission\");\n userGroups;\n tasks = new BehaviorSubject([]);\n prevTasks = new BehaviorSubject([]);\n openChat = new Subject();\n agentChats = new BehaviorSubject([]); \n postComments = new BehaviorSubject(null); \n currentStatus = new BehaviorSubject(null);\n unReadCount = new BehaviorSubject(0);\n callAgent = new Subject();\n addAgent = new Subject();\n notificationCount = new BehaviorSubject(0);\n closeSideParent = new BehaviorSubject(null);\n marketingCall = new BehaviorSubject<{\n id: string;\n number: string;\n name: string;\n email: string;\n comments: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n }>(null);\n marketingCallDocs = new BehaviorSubject<{\n id: string;\n number: string;\n name: string;\n email: string;\n comments: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n item: any;\n }>(null);\n callMarketingStatus = new BehaviorSubject<{\n id: string;\n status: string;\n calledBy: string;\n followUpdate: Date;\n }>({ id: \"\", status: \"\", calledBy: \"\", followUpdate: new Date() });\n callEnd = new Subject();\n stopCalls = new BehaviorSubject(null);\n startCalls = new BehaviorSubject(null);\n redialContact = new BehaviorSubject(null);\n getCallSid= new BehaviorSubject(null);\n toggleSideBar = new Subject();\n\n roleAgents: any[] = [];\n selectedAgent: any[] = [];\n projectAgents: any[] = [];\n projectSelectedAgent: any[] = [];\n dropdownSettings: IDropdownSettings = {\n singleSelection: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n idField: \"value\",\n };\n twilioNumber: any = \"+14847873052\";\n bodymsg =\n \"Hi {{student_name}}, \\n\\n\\\n Thanks for contacting University hub. I am Kunal, an educational adviser at University hub \\n\\n\\\n Your appointment for the telephonic counseling session has been scheduled for {{dt}} \\n\\\n Counselor contact number: 7337368804 \\n\\\n Counselor email address - syeda@universityhub.com\\n\\\n Kunal Mahtani \\n\\\n Student Advisor \\n\\\n T: +1(917) 900 1655 , +1(646) 655 0646 \\n\\\n E: kunal@universityhub.com \\nwww.UniversityHub.com \\n\";\n\n\n commentsForm = this.formBuilder.group({\n name: [\"\"],\n emailId: [\"\"],\n state: [\"\"],\n altContactNumber: [\"\"],\n existingCounseling: [\"\"],\n courseInterested: [\"\"],\n qualification: [\"\"],\n IELETS: [\"\"],\n TOEFL: [\"\"],\n Dulingo: [\"\"],\n PTE: [\"\"],\n countryPreference: [\"\"],\n planning: [\"\"],\n workExperience: [\"\"],\n fundingResource: [\"\"],\n passport: [\"\"],\n visa: [\"\"],\n intakePreferred: [\"\"],\n dob: [new Date()],\n counsellingDate: [\"\"],\n callBack: [\"\"],\n interested: [\"\"],\n assignedTo: [\"\"],\n futureLead: [\"\"],\n comments: [\"\"],\n phoneNumber: [\"\"],\n countryCode: [\"\"],\n });\n submitted: boolean = false;\n projectChange = new BehaviorSubject(null);\n constructor(\n public http: HttpClientService,\n public https: HttpClient,\n private TicketService: TicketsService,\n private groupService: GroupService,\n private roleService: RoleService,\n private marketingService: MarketingService,\n private readonly formBuilder: FormBuilder,\n private readonly agentService: CreateAgent\n ) {\n\n }\n\n setupTwilio(companyId) {\n return this.https\n .post(\n `${this.twilioApiUrl}${companyId}/agents/login`,\n {\n worker: {\n SID: JSON.parse(localStorage.getItem(\"userData\")).workerSId,\n },\n },\n { responseType: \"text\" }\n )\n .toPromise()\n .then((res: any) => {\n let resp = JSON.parse(res);\n this.initializeChat.next({\n token: resp.tokens.access,\n identity: resp.worker.friendlyName,\n });\n return res;\n })\n .catch(this.handleError);\n }\n\n getConferenceData(callSid, companyId) {\n return this.http\n .get(`${this.twilioApiUrl}${companyId}/phone/call/${callSid}/conference`)\n .toPromise()\n .then((res) => res)\n .catch(this.handleError);\n }\n\n transferCall(callSid, body, companyId) {\n return this.http\n .post(`${this.twilioApiUrl}${companyId}/phone/transfer/${callSid}`, body)\n .toPromise()\n .then((res) => res)\n .catch(this.handleError);\n }\n\n holdCall(body, companyId) {\n return this.http\n .post(`${this.twilioApiUrl}${companyId}/phone/hold/`, body)\n .toPromise()\n .then((res) => res)\n .catch(this.handleError);\n }\n\n handleError(error: any): Promise {\n if (error.status === 500) {\n return Promise.reject(error);\n }\n if (error.status === 401) {\n // localStorage.clear();\n return Promise.reject(error);\n }\n return Promise.reject(error.message || error);\n }\n\n getCustomerChannelSid(channelSid) {\n \n return this.http\n .get(`${this.baseApiUrl2}/webChatByChannel/${channelSid}`)\n .pipe(\n map((data) => {\n \n if(data){\n return {\n reportedby: data[\"UserName\"],\n detail: data[\"RequestDescription\"],\n desc: data[\"RequestDescription\"],\n latestupdate: data[\"RequestDescription\"],\n mail: data[\"EmailId\"],\n updatedby: data[\"UserName\"],\n ticketNumber: data[\"TicketId\"],\n phoneNumber: data[\"Phone\"],\n TicketId: data[\"TicketId\"],\n };\n }\n else{\n return\n }\n })\n );\n }\n\n getCallHistory(workerSid) {\n return this.http.get(\n `${this.baseApiUrl2}callsByAgent/${workerSid}`\n );\n }\n\n chatCreateTicket(ticket: any) {\n ticket[\"priority\"] = \"Priority3\";\n ticket[\"urgency\"] = \"Low\";\n ticket[\"status\"] = \"open\";\n ticket[\"ticketChannel\"] = \"chat\";\n ticket[\"assignedto\"] = JSON.parse(localStorage.getItem(\"userData\")).mail;\n this.groupService.getAgentGroups(this.userData[\"id\"]).subscribe((data) => {\n this.userGroups = data[0][\"Name\"];\n ticket[\"group\"] = this.userGroups;\n ticket[\"WorkerSid\"] = JSON.parse(\n localStorage.getItem(\"userData\")\n ).workerSId;\n return this.TicketService.createTicket(ticket).subscribe((ticketdata) => {\n });\n });\n }\n\n updateChatConverstaions(body: object) {\n return this.http.post(`${this.baseApiUrl2}updateWebChat`, body);\n }\n\n transferChat(body: ChatTransfer, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/messaging-adapter/transfer`,\n body\n );\n }\n\n agentChatStart(body: AgentChat, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/agent-chat/start`,\n body\n );\n }\n\n agentChatend(body: AgentEndChat, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/agent-chat/end`,\n body\n );\n }\n\n agentPreviousChannels(body: { identity: string }, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/agent-chat/agentChannels`,\n body\n );\n }\n\n addAgentToChannel(body: AddAgentChannel, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/agent-chat/addAgentToGroup`,\n body\n );\n }\n\n removeAgent(body: RemoveAgent, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/agent-chat/removeAgent`,\n body\n );\n }\n\n ActiveChatCount(body: { sid: string }) {\n return this.http.post(`${this.baseApiUrl2}webChatCount`, body);\n }\n addParticipantToConv(body: { identity: string, ConversationSid: string}, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/messaging-adapter/addParticipant`,\n body\n );\n }\n SmsStart(\n body: {\n to: string; // user number\n from: string;\n companyId: string;\n message: string;\n },\n companyId\n ) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/messaging-adapter/outboundSMS`,\n body\n );\n }\n\n updateCallComments(body: {\n id: string;\n agentMail: string,\n comments: string;\n followUpdate: Date | string;\n callStatus: string;\n futureLead: string;\n assignedTo: any;\n }) {\n if (body[\"followUpdate\"]) {\n body[\"followUpdate\"] = moment(\n body.followUpdate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\");\n }\n return this.http.post(`${this.baseApiUrl2}updateCallComments`, body);\n }\n\n updateCallCommentsNew(data) {\n return this.http.post(`${this.baseApiUrl2}updateCallCommentsNew`, data);\n }\n\n async scheduleDemo(\n projectId,\n marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n },\n followUpdate,\n comments,\n type\n ) {\n // this.isdemoScheduled = true;\n let num = Math.floor(Math.random() * 90000) + 10000;\n let room = \"live-\" + num.toString();\n let demoScheduled = `${this.sockerUrl}videocalling/mainscreen/${projectId}/${room}`;\n\n const infoMarketingBefore16hr: InputCallData = {\n ProjectId: projectId,\n RecipientNumber: marketingId.phoneNumber.replace(/\\n/g, \"\"),\n ScheduledCallTime: moment(followUpdate, \"YYYY-MM-DDTHH:mm:SSZ\").format(\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ),\n Type: \"Feedback\",\n CallerId: \"+919398913602\",\n Module: marketingId.module,\n };\n let smsId = null;\n let callId = null;\n let mailId = null;\n\n const mailRemainder: CreateAutoEmail = {\n ProjectId: projectId,\n Module: marketingId.module,\n ScheduledEmailTime: moment(followUpdate, \"YYYY-MM-DDTHH:mm:SSZ\").format(\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ),\n RecipientEmail: marketingId.email,\n Type: \"Feedback\",\n };\n\n const smsMarketingBefore6hr: InputSMSData = {\n ProjectId: projectId,\n Module: marketingId.module,\n RecipientNumber: marketingId[\"phoneNumber\"].replace(/\\n/g, \"\"),\n ScheduledSMSTime: moment(followUpdate, \"YYYY-MM-DDTHH:mm:SSZ\").format(\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ),\n Type: \"Information\",\n };\n\n this.marketingService\n .getAutoDialCompany(projectId)\n .subscribe(async (data) => {\n if (data) {\n let apiKey = data[\"API_KEY\"];\n\n callId = await this.marketingService.createAutoCallScheduler(\n infoMarketingBefore16hr,\n apiKey\n );\n\n smsId = await this.marketingService.createAutoSmsScheduler(\n smsMarketingBefore6hr,\n apiKey\n );\n\n mailId = await this.marketingService.createAutoEmail(\n mailRemainder,\n apiKey\n );\n\n if (type === \"demo\") {\n setTimeout(() => {\n this.marketingService\n .createDemo({\n ProjectId: projectId,\n Name: marketingId.name,\n // ProspectId: this.marketingId,\n AutoEmailId: mailId[\"mailId\"],\n AutoCallId: callId[\"callId\"],\n AutoSMSId: smsId[\"smsId\"],\n Comments: comments,\n DateTime: followUpdate,\n Presenter: this.userData[\"mail\"],\n Feedback: \"demo-followup\",\n Url: demoScheduled + \"/\" + this.userData.workerFriendlyName,\n ClientURL: demoScheduled + \"/\" + marketingId.name,\n RoomName: room,\n LeadId: marketingId.id,\n agentEmail: this.userData.mail,\n })\n .subscribe((demo) => {\n this.marketingService\n .updateDemo({\n demoId: demo[\"id\"],\n leadId: marketingId.id,\n })\n .subscribe((data) => {\n // this.demoMail({\n // marketingId: marketingId,\n // followUpdate,\n // demoScheduled,\n // projectId,\n // });\n });\n });\n }, 3000);\n } else {\n // this.demoMail({\n // marketingId,\n // followUpdate,\n // demoScheduled,\n // projectId,\n // });\n }\n }\n });\n }\n\n demoMail({ marketingId, followUpdate, demoScheduled, projectId, name }) {\n this.marketingService.sendMailForDemo(\n {\n name: marketingId.name,\n demoDate: moment(followUpdate).format(\"MMMM Do YYYY, h:mm:ss a\"),\n url: demoScheduled + \"/\" + marketingId.name,\n },\n marketingId.email,\n projectId,\n name\n );\n }\n\n updateCallSid(body: { id: string; sid: string }) {\n return this.http.post(`${this.baseApiUrl2}updateCallSid`, body);\n }\n\n updateCallStatus(data) {\n return this.http.post(`${this.baseApiUrl2}updateCallStatus`, data)\n }\n updateWorkerID(data) {\n return this.http.post(`${this.baseApiUrl2}updateWorkerID`, data)\n }\n\n getRoleAgents(projectId) {\n this.roleService\n .getRoleAgents({ projectId: projectId, name: \"counselling\" })\n .pipe(\n map((data) => {\n let modifiedData = data.map((user) => ({\n Name: user[\"FirstName\"] + user[\"LastName\"] || \"\",\n value: user[\"Mailid\"],\n }));\n return modifiedData;\n })\n )\n .subscribe((data) => {\n this.roleAgents = data;\n });\n }\n\n onReset(): void {\n this.commentsForm.reset();\n this.commentsForm.patchValue({\n visa: \"\",\n passport: \"\",\n existingCounseling: \"\",\n interested: \"\",\n futureLead: \"\",\n });\n this.submitted = false;\n this.selectedAgent = [];\n }\n\n get commentsValue() {\n return this.commentsForm.value;\n }\n\n updateComments(id) {\n let callbackDate = null;\n let counsellingDate = null;\n if (this.commentsValue.callBack) {\n callbackDate = moment\n .utc(this.commentsValue.callBack)\n .utcOffset(0, true)\n .format();\n }\n if (this.commentsValue.counsellingDate) {\n\n counsellingDate = moment\n .utc(this.commentsValue.counsellingDate)\n .utcOffset(0, true)\n .format();\n }\n if(this.commentsValue.dob == 'Invalid date'){\n this.commentsValue.dob = moment(new Date())\n .format('YYYY-MM-DD')\n }\n let comment: any = {\n LeadId: id,\n Name: this.commentsValue.name,\t\n Email: this.commentsValue.emailId,\n State: this.commentsValue.state,\n AltContactNo: this.commentsValue.altContactNumber,\n ExistingCounselling: this.commentsValue.existingCounseling,\n InterestedCourse: this.commentsValue.courseInterested,\n IELTS: this.commentsValue.IELETS,\n TOEFL: this.commentsValue.TOEFL,\n PTE: this.commentsValue.PTE,\n Duolingo: this.commentsValue.Dulingo,\n AppearTest: this.commentsValue.planning,\n CountryPreferrence: this.commentsValue.countryPreference,\n WorkExperience: this.commentsValue.workExperience,\n FundingSource: this.commentsValue.fundingResource,\n Passport: this.commentsValue.passport,\n Visa: this.commentsValue.visa,\n IntakePreferrence: this.commentsValue.intakePreferred,\n DOB: this.commentsValue.dob,\n CounsellingDT: counsellingDate,\n CallbackDT: callbackDate,\n Interested: this.commentsValue.interested,\n Other: \"\",\n FutureLead: this.commentsValue.futureLead,\n CountryCode: this.commentsValue.countryCode,\n PhoneNumber: this.commentsValue.phoneNumber,\n Education: this.commentsValue.qualification,\n };\n return this.http.post(`${this.baseApiUrl2}createComment`, comment);\n }\n\n getCommentLead(leadId) {\n return this.http.get(`${this.baseApiUrl2}getCommentByLead/${leadId}`).pipe(\n map((data) => {\n if (data) {\n this.commentsForm.patchValue({\n state: data[\"State\"] || \"\",\n altContactNumber: data[\"AltContactNo\"] || \"\",\n existingCounseling: data[\"ExistingCounselling\"] || \"\",\n courseInterested: data[\"InterestedCourse\"] || \"\",\n IELETS: data[\"IELTS\"] || \"\",\n TOEFL: data[\"TOEFL\"] || \"\",\n PTE: data[\"PTE\"] || \"\",\n Dulingo: data[\"Duolingo\"] || \"\",\n planning: data[\"AppearTest\"] || \"\",\n countryPreference: data[\"CountryPreferrence\"] || \"\",\n workExperience: data[\"WorkExperience\"] || \"\",\n fundingResource: data[\"FundingSource\"] || \"\",\n passport: data[\"Passport\"] || \"\",\n visa: data[\"Visa\"] || \"\",\n intakePreferred: data[\"IntakePreferrence\"] || \"\",\n dob: data[\"DOB\"] ? this.dateFormatForAddUpdate1(data[\"DOB\"]): null,\n counsellingDate: data[\"CounsellingDT\"] || \"\",\n callBack: data[\"CallbackDT\"] || \"\",\n interested: data[\"Interested\"] || \"interested\",\n });\n return data;\n }\n })\n );\n }\n\n sendRemaindersAgent({ projectId, date, mail, module }) {\n this.http\n .get(`${this.baseApiUrl2}getAgentEmail/${mail}`)\n .subscribe((data) => {\n this.scheduleDemo(\n projectId,\n {\n id: data[\"id\"],\n status: \"\",\n phoneNumber: data[\"PhoneNumber\"],\n email: data[\"Mailid\"],\n name: data[\"FirstName\"],\n module: module,\n },\n date,\n \"\",\n \"followup\"\n );\n });\n }\n\n updateCommentsBasedOnId(id) {\n let callbackDate = null;\n let counsellingDate = null;\n let dateofbirth = null;\n if (this.commentsValue.callBack) {\n callbackDate = moment\n .utc(this.commentsValue.callBack)\n .utcOffset(0, true)\n .format();\n }\n\n if (this.commentsValue.counsellingDate) {\n counsellingDate = moment\n .utc(this.commentsValue.counsellingDate)\n .utcOffset(0, true)\n .format();\n }\n\n if (this.commentsValue.dob) {\n dateofbirth = moment\n .utc(this.commentsValue.dob)\n .utcOffset(0, true)\n .format();\n\n } else {\n\n }\n let comment: any = {\n LeadId: id,\n Name: this.commentsValue.name,\n Email: this.commentsValue.emailId,\n State: this.commentsValue.state,\n AltContactNo: this.commentsValue.altContactNumber,\n ExistingCounselling: this.commentsValue.existingCounseling,\n InterestedCourse: this.commentsValue.courseInterested,\n IELTS: this.commentsValue.IELETS,\n TOEFL: this.commentsValue.TOEFL,\n PTE: this.commentsValue.PTE,\n Duolingo: this.commentsValue.Dulingo,\n AppearTest: this.commentsValue.planning,\n CountryPreferrence: this.commentsValue.countryPreference,\n WorkExperience: this.commentsValue.workExperience,\n FundingSource: this.commentsValue.fundingResource,\n Passport: this.commentsValue.passport,\n Visa: this.commentsValue.visa,\n IntakePreferrence: this.commentsValue.intakePreferred,\n DOB: dateofbirth,\n CounsellingDT: counsellingDate,\n CallbackDT: callbackDate,\n Interested: this.commentsValue.interested,\n Other: \"\",\n futureLead: this.commentsValue.futureLead,\n CountryCode: this.commentsValue.countryCode,\n PhoneNumber: this.commentsValue.phoneNumber,\n Education: this.commentsValue.qualification,\n };\n return this.http.post(`${this.baseApiUrl2}updateLeadComment`, comment);\n }\n\n sendSmsForLead({ student_name, date, from, tosms, projectId }) {\n let bodymsg = this.bodymsg;\n let datas = {\n student_name: student_name,\n dt: date,\n };\n const result = bodymsg.replace(/{{([^{{]+)}}/g, (match, key) => {\n return datas[key] !== undefined ? datas[key] : \"\";\n });\n this.marketingService\n .sendSms({ from: from, to: tosms, text: result }, projectId)\n .subscribe();\n }\n\n async getContacts(projectId) {\n if (await this.userData) {\n this.agentService\n .getContacts(projectId, this.userData.id)\n .pipe(\n map((data) => {\n return data.map((agent) => ({\n Name: agent[\"FirstName\"],\n value: agent[\"workerFriendlyName\"],\n }));\n })\n )\n .subscribe((data) => {\n this.projectAgents = data;;\n });\n }\n }\n\n dateFormatForAddUpdate(date) {\n return moment\n .utc(date)\n .utcOffset(0, true)\n .format('YYYY-MM-DDTHH:mm:ss');\n }\n dateFormatForAddUpdate1(date) {\n return moment(date)\n .format('YYYY-MM-DD');\n }\n}\n","import { LayoutService } from \"./../layout.service\";\nimport { ChangeDetectionStrategy, Component, OnInit } from \"@angular/core\";\nimport { SocketService } from \"src/app/socket.service\";\nimport { NotificationsService } from \"src/app/notification.service\";\nimport { UhLeadsService } from \"src/app/pages/uhleads.service\";\nimport { ItemsList } from \"@ng-select/ng-select/lib/items-list\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { RoleService } from \"src/app/pages/role-management/role.service\";\nimport { UhubDashboardService } from \"src/app/pages/uhub-dashboard/uhub-dashboard.service\";\n\n@Component({\n selector: \"app-notification\",\n templateUrl: \"./notification.component.html\",\n styleUrls: [\"./notification.component.css\"],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class NotificationComponent implements OnInit {\n userData: any;\n chatCount: number = 0;\n totalCount: number = 0;\n currentPage: number = 1;\n notificationList: any = [];\n savedNotifications: any;\n unreadCount: number = 0;\n MONTH_NAMES = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n totalNotifications: any;\n projectId: any;\n\n constructor(\n private layoutService: LayoutService,\n private socketService: SocketService,\n private handleError: ErrorHandlerService,\n private notificationService: NotificationsService,\n private uhleadsService: UhLeadsService,\n private companyService: RoleService,\n private uhubleadsServices: UhubDashboardService\n ) { }\n\n ngOnInit() {\n this.currentPage = 1;\n this.socketService.chatStatus.subscribe((data) => {\n if (\n data[\"userName\"].includes(this.userData[\"workerFriendlyName\"]) ||\n data[\"workerSid\"] === this.userData[\"workerSId\"]\n ) {\n this.getChatCount();\n }\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.getNotifications(1);\n\n this.getChatCount();\n this.getSavedNotifications();\n // this.notificationService.currentPage.subscribe((data) => {\n // if (data) {\n // this.notificationList = [];\n // this.currentPage = data.page;\n // this.getNotifications(this.currentPage);\n // this.getSavedNotifications();\n // }\n // });\n this.companyService.projectAdmin(this.userData[\"companyId\"]).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"University Hub\"\n )[0].id;\n this.getNewNotification();\n });\n this.uhubleadsServices.unreadCountRecObservable.subscribe((data) => {\n this.getNewNotification();\n })\n }\n\n getChatCount() {\n // this.layoutService\n // .ActiveChatCount({ sid: this.userData[\"workerSId\"] })\n // .subscribe((data) => {\n // this.chatCount = data[\"OpenChats\"];\n // this.totalCount = this.chatCount;\n // this.layoutService.notificationCount.next(this.totalCount);\n // });\n }\n openChat() {\n this.layoutService.openChat.next(true);\n }\n closeChat() {\n this.layoutService.openChat.next(false);\n }\n\n getNotifications(page) {\n let payload = {\n email: this.userData.mail,\n currentPage: page,\n Platform: \"CRM\",\n token: this.userData.token,\n };\n this.notificationService\n .getAllNotifications(payload)\n .subscribe((res: any) => {\n this.totalNotifications = res.totalNotifications;\n this.notificationList = this.notificationList.concat(\n res.MyFetchNotifications\n );\n this.unreadCount = this.notificationList.filter(function (el) {\n return el.Read == false;\n }).length;\n this.notificationService.unreadCount.next(this.unreadCount);\n for (let i = 0; i < this.notificationList.length; i++) {\n this.notificationList[i].age = this.timeAgo(\n this.notificationList[i].updatedAt\n );\n this.getSavedNotifications();\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getSavedNotifications() {\n this.notificationService\n .getSavedNotifications(this.userData.mail, \"CRM\", this.userData.token)\n .subscribe((res: any) => {\n this.savedNotifications = res.savedNotifications;\n for (let i = 0; i < this.savedNotifications.length; i++) {\n this.savedNotifications[i].age = this.timeAgo(this.savedNotifications[i].updatedAt)\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n loadMore() {\n this.currentPage = this.currentPage + 1;\n this.getNotifications(this.currentPage);\n }\n\n view(item, index,type) {\n switch (type) {\n case 'Recruiter':\n this.uhubleadsServices.viewReceivedLeadBehaviorSubject.next(item.GUID);\n // this.getNewNotification();\n break;\n \n default:\n this.uhleadsService.viewReceivedLead.next(item.LeadId);\n this.read(item, index);\n break;\n }\n }\n view2(item) {\n this.uhleadsService.viewReceivedLead.next(item.LeadId);\n // this.read(item, index);\n }\n\n deleteNotification(item) {\n this.notificationService\n .deleteNotification({\n email: this.userData.mail,\n Platform: \"CRM\",\n token: this.userData.token,\n notificationId: item.id,\n })\n .subscribe((res: any) => {\n if (res.status == 200) {\n var index = this.notificationList.findIndex((x) => x.id == item.id);\n this.notificationList.splice(index, 1);\n this.getSavedNotifications();\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n save(item, value, index) {\n this.notificationService\n .saveNotification({\n email: this.userData.mail,\n Platform: \"CRM\",\n saveType: value,\n token: this.userData.token,\n notificationId: item.id,\n })\n .subscribe((res: any) => {\n this.notificationList[index].saved = value;\n\n this.getSavedNotifications();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n unsave(item) {\n this.notificationService\n .saveNotification({\n email: this.userData.mail,\n Platform: \"CRM\",\n saveType: false,\n token: this.userData.token,\n notificationId: item.id,\n })\n .subscribe((res: any) => {\n this.notificationList = [];\n this.getNotifications(this.currentPage);\n this.getSavedNotifications();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n read(item, index) {\n this.notificationList[index].Read = true;\n this.notificationService\n .readNotification({\n userId: this.userData.id,\n notificationId: item.id,\n token: this.userData.token,\n Platform: \"CRM\",\n })\n .subscribe((res: any) => {\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getFormattedDate(date, prefomattedDate = false, hideYear = false) {\n const day = date.getDate();\n const month = this.MONTH_NAMES[date.getMonth()];\n const year = date.getFullYear();\n const hours = date.getHours();\n let minutes = date.getMinutes();\n\n if (minutes < 10) {\n // Adding leading zero to minutes\n minutes = `0${minutes}`;\n }\n\n if (prefomattedDate) {\n // Today at 10:20\n // Yesterday at 10:20\n return `${prefomattedDate} at ${hours}:${minutes}`;\n }\n\n if (hideYear) {\n // 10. January at 10:20\n return `${day}. ${month} at ${hours}:${minutes}`;\n }\n\n // 10. January 2017. at 10:20\n return `${day}. ${month} ${year}. at ${hours}:${minutes}`;\n }\n\n // --- Main function\n timeAgo(dateParam) {\n if (!dateParam) {\n return null;\n }\n const date =\n typeof dateParam === \"object\" ? dateParam : new Date(dateParam);\n const DAY_IN_MS = 86400000; // 24 * 60 * 60 * 1000\n let today: any = new Date();\n const yesterday = new Date(today - DAY_IN_MS);\n const seconds = Math.round((today - date) / 1000);\n const minutes = Math.round(seconds / 60);\n const isToday = today.toDateString() === date.toDateString();\n const isYesterday = yesterday.toDateString() === date.toDateString();\n const isThisYear = today.getFullYear() === date.getFullYear();\n\n if (seconds < 5) {\n return \"now\";\n } else if (seconds < 60) {\n return `${seconds} seconds ago`;\n } else if (seconds < 90) {\n return \"about a minute ago\";\n } else if (minutes < 60) {\n return `${minutes} minutes ago`;\n } else if (isToday) {\n return this.getFormattedDate(date); // Today at 10:20\n } else if (isYesterday) {\n return this.getFormattedDate(date); // Yesterday at 10:20\n } else if (isThisYear) {\n return this.getFormattedDate(date, false, true); // 10. January at 10:20\n }\n\n return this.getFormattedDate(date); // 10. January 2017. at 10:20\n }\n\n getNewNotification() {\n let obj = {\n type: \"agent\",\n agentemail: this.userData.mail,\n ProjectId: this.projectId,\n Platform: \"Recruiter\"\n }\n this.notificationService.getNewNotification(obj).subscribe((data: any) => {\n this.notificationList = data.MyFetchNotifications;\n }, (err) => {\n this.handleError.handleError(err)\n })\n }\n}\n","
\n
\n
\n Notifications\n
\n \n
\n
\n
\n \n
\n
{{ i.age }}
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{ i.Description }}\n
\n
\n
\n \"\"\n
\n \n
\n
\n \n \n\n \n \n
\n
\n
","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { RoleService } from 'src/app/pages/role-management/role.service';\nimport { ProjectchangeService } from './projectchange.service';\n\n@Component({\n selector: 'app-project-change',\n templateUrl: './project-change.component.html',\n styleUrls: ['./project-change.component.css']\n})\nexport class ProjectChangeComponent implements OnInit {\n userData: any;\n companyId: any;\n projects: any[] = [];\n projectId: any;\n @Output() projectChange = new EventEmitter();\n\n constructor(\n private companyService: RoleService,\n private projectchangeService: ProjectchangeService\n ) { }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.projects = this.projectchangeService._projects\n },1000);\n }\n projectChanged(data){ \n this.projectChange.emit(data);\n }\n}\n","
1\">\n \n \n
","import { Injectable } from '@angular/core';\nimport { RoleService } from 'src/app/pages/role-management/role.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectchangeService {\n public _projectId!:any;\n public _projects!:any;\n userData: any;\n companyId: any;\n\n constructor(private companyService: RoleService,) {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.companyId = this.userData[\"companyId\"];\n this.getProjects();\n }\n getProjects() {\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n const projectlist = projects.filter(x=>x.id!=10 && x.id!=11)\n this._projects = projectlist;\n if (this.projects.length !== 0) {\n this._projectId = projectlist[0][\"id\"]\n }\n })\n }\n set projectId(data:any){\n this._projectId = data;\n }\n\n get projectId():string{\n return this._projectId;\n }\n\n set projects(data:any){\n this._projects = data;\n }\n\n get projects():string{\n return this._projects;\n }\n}\n","declare const $: any;\nimport {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n Renderer2,\n} from \"@angular/core\";\nimport { SharedService } from \"src/app/shared/shared.service\";\n\n@Directive({\n selector: \"[appActiveLink]\",\n})\nexport class ActivelinkDirective implements OnInit {\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private sharedService: SharedService\n ) {}\n\n @Input() elementRefs: string;\n @Input() parentActive: boolean;\n\n ngOnInit(): void {\n this.sharedService.switchToggle.subscribe((data) => {\n this.renderer.removeClass(this.elementRef.nativeElement, \"show\");\n });\n }\n\n}\n","declare const $: any;\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Renderer2,\n} from \"@angular/core\";\nimport { SharedService } from \"src/app/shared/shared.service\";\n\n@Directive({\n selector: \"[appRemoveLink]\",\n})\nexport class RemovelinkDirective implements OnInit {\n public active: boolean = false;\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private sharedService: SharedService\n ) {}\n\n @Input() appRemoveLink: boolean;\n @Input() collapseChild: string;\n\n ngOnInit(): void {\n this.sharedService.switchToggle.subscribe((data) => {\n if (this.appRemoveLink) {\n this.renderer.addClass(this.el.nativeElement, \"link_active\");\n }\n });\n }\n\n @HostListener(\"click\") removeClass() {\n if (this.appRemoveLink) {\n if ([...this.el.nativeElement.classList].includes(\"link_active\")) {\n this.renderer.removeClass(this.el.nativeElement, \"link_active\");\n } else {\n this.renderer.addClass(this.el.nativeElement, \"link_active\");\n }\n }\n\n if ($(`#${this.collapseChild}`).attr(\"class\").split(\" \").includes(\"show\")) {\n if (\n !($(\"#SideLogo\").attr(\"src\") === \"assets/theme/uh-small-logo.png\")\n ) {\n this.sharedService.toggleSidebar.next(\"toggle\");\n }\n } else {\n }\n\n this.active = !this.active;\n }\n}\n","import { ManagementService } from \"../../pages/management.service\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { LayoutService } from \"../layout.service\";\nimport { Router } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\n\n@Component({\n selector: \"app-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.css\"],\n})\nexport class SidebarComponent implements OnInit {\n panelExpanded1: false;\n userData: any;\n displayMenus: any[] = [];\n show = true;\n\n constructor(\n private authService: AuthService,\n private managementService: ManagementService,\n private readonly layoutService: LayoutService,\n private handleError: ErrorHandlerService,\n public readonly router: Router,\n private sharedService: SharedService\n ) { }\n\n ngOnInit() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.layoutService.closeSideParent.subscribe(()=> {\n $(\".show\").removeClass(\"show\")\n });\n this.sharedService.switchToggle.subscribe((data) => {\n if(data){\n this.show = !this.show;\n }\n })\n this.authService.getUserRoles(this.userData.id).subscribe((data) => {\n let values: any[] = data.map((data) => data[\"Name\"].toLowerCase());\n let roleIds: any[] = data.map((data) => data[\"id\"]);\n if (values.includes(\"admin\")) {\n this.authService.companyAdmin.next(true);\n } else {\n this.authService.companyAdmin.next(false);\n }\n this.managementService\n .getSideMenuRoles({\n roles: roleIds,\n superAdmin: this.userData[\"companyId\"] === 0 ? true : false,\n })\n .subscribe((data) => {\n this.displayMenus = data;\n this.sharedService.displayMenu.next(this.displayMenus)\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n checkingIdMenu(id): boolean {\n \n return this.displayMenus.find((val) => val[\"id\"] === id);\n }\n\n getMenuName(id): string {\n let item = this.displayMenus.find((val) => val[\"id\"] === id);\n return item[\"Name\"] || \"\";\n }\n toggleSideBar() {\n console.log(\"toggle\")\n this.layoutService.toggleSideBar.next('hello')\n }\n}\n","
\n \n \"\"\n \n
\n
\n
\n \n \n
\n \n \"\"\n

{{ getMenuName(34) }}

\n
\n
\n
\n \n
\n
\n
\n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n\n \n
\n \n \"\"\n

{{ getMenuName(21) | titlecase }}

\n
\n
\n
\n \n
\n
\n
\n\n \n \n\n \n \n\n \n
\n \n \"\"\n

Calendar

\n
\n
\n
\n \n
\n
\n
\n\n\n \n \n\n\n \n\n \n\n \n \n \n \n\n
\n
\n
Version 1.2.5
","import { Component, Inject, OnInit, ViewChild } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { EnquiryCallsService } from \"./enquiry-calls.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { UhLeadsService } from \"src/app/pages/uhleads.service\";\nimport { ReferralService } from \"src/app/pages/referral/referral.service\";\nimport { now } from \"moment\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ReferreeService } from \"src/app/pages/referree/referree.service\";\nimport { IncomingCallsService } from \"../incoming-calls/incoming-calls.service\";\n\n@Component({\n selector: \"app-enquiry-calls\",\n templateUrl: \"./enquiry-calls.component.html\",\n styleUrls: [\"./enquiry-calls.component.css\"],\n})\nexport class EnquiryCallsComponent implements OnInit {\n userData: any;\n testConfig1: any;\n from: string = \"\";\n to: any;\n callStatus: any = \"Connected\";\n city: string = \"\";\n project: any;\n customUniversityName: string = \"\";\n selectedUniversity: string;\n universityList: any[];\n applicationStatus: any = \"\";\n public callData: any[] = [];\n\n leadInfo: any = {\n FirstName: \"\",\n LastName: \"\",\n GUID: \"\",\n APPStatus: \"\",\n createdAt: \"\",\n DOB: \"\",\n EnrollmentYear: \"\",\n Program: \"\",\n CountryCode: \"\",\n PhoneNumber: \"\",\n Email: \"\",\n Address: \"\",\n };\n\n documentsList: any;\n newStatus: any;\n commentText: string = \"\";\n @ViewChild(\"closeButton2\") closeButton2;\n projectId: any;\n selectedLead: any;\n callSid: any;\n enquiryCallSid: any;\n referralCallSid: any;\n\n constructor(\n private EnquiryCallsService: EnquiryCallsService,\n public dialogRef: MatDialogRef,\n public countupTimerService: CountupTimerService,\n private uhleadsservice: UhLeadsService,\n public ReferralService: ReferralService,\n public RefereeService: ReferreeService,\n public layoutService: LayoutService,\n public IncomingCallService: IncomingCallsService,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n dialogRef.disableClose = true;\n this.testConfig1 = new countUpTimerConfigModel();\n this.testConfig1.timerClass = \"test_Timer_class\";\n this.testConfig1.timerTexts = new timerTexts();\n this.testConfig1.timerTexts.hourText = \":\"; //default - hh\n this.testConfig1.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig1.timerTexts.secondsText = \" \";\n //default - ss\n }\n\n ngOnInit(): void {\n this.newStatus = null;\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n this.startTimer();\n this.EnquiryCallsService.callerData.subscribe((data: any) => {\n if (data) {\n this.from = data.from;\n this.to = data.to;\n }\n });\n this.EnquiryCallsService.leadInfo.subscribe((leadInfo: any) => {\n if (leadInfo) {\n this.project = leadInfo.project;\n this.projectId = leadInfo.projectId;\n this.selectedLead = leadInfo.leadInfo.id;\n this.leadInfo = leadInfo.leadInfo;\n if (leadInfo.project == \"Campbellsville\") {\n this.documentsList = this.leadInfo.uploadlistofdocuments;\n } else if (leadInfo.project == \"Referrals\") {\n this.getListofUniversities();\n } else if (leadInfo.project == \"Referee\") {\n } else if (leadInfo.project == \"University Hub\") {\n this.selectedLead = leadInfo.id;\n }\n this.IncomingCallService.callInfo.subscribe((callInfo:any)=>{\n this.callSid = callInfo.CallSid\n })\n\n this.EnquiryCallsService.updateIncomingCallDetails({id: this.selectedLead, project: this.project, sid: this.callSid}).subscribe((res: any)=>{\n \n })\n }\n });\n\n \n this.EnquiryCallsService.getCallSid.subscribe((data) => {\n this.enquiryCallSid = data;\n });\n \n this.ReferralService.getCallSid.subscribe((data) => {\n this.referralCallSid = data;\n });\n }\n\n getListofUniversities() {\n this.ReferralService.getUniversityList().subscribe((res: any) => {\n this.universityList = res.universities;\n });\n }\n\n endCall() {\n this.EnquiryCallsService.endCall.next({ disconnect: true });\n this.callStatus = \"Call Ended\";\n this.uhleadsservice.showInfo(\"\", \"Call has ended!\");\n this.countupTimerService.stopTimer();\n }\n\n closeWindow() {\n this.dialogRef.close();\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.stopTimer();\n this.countupTimerService.startTimer(cdate);\n }\n\n onStatusChange(data) {\n this.newStatus = data;\n }\n // resetCallingScreen() {\n // this.commentText = \"\";\n // this.newStatus = null;\n // }\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.applicationStatus = \"\";\n }\n updateComments() {\n if (!this.newStatus) {\n } else {\n this.uhleadsservice\n .updateComments2({\n id: this.leadInfo.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.enquiryCallSid,\n })\n .subscribe((res) => {});\n this.commentText = \"\";\n this.newStatus = null;\n if (this.callStatus == \"Call Ended\") {\n this.uhleadsservice.showSuccess(\"Lead updated\", \"Success!\");\n this.closeWindow();\n }\n }\n // this.closeButton2.nativeElement.click();\n }\n\n updateComments2() {\n if (!this.newStatus) {\n } else {\n this.ReferralService.updateCallSid(this.referralCallSid).subscribe((r: any) => {\n if (this.applicationStatus == \"yes\") {\n if (this.selectedUniversity == \"other\") {\n this.ReferralService.createCustomUniversity({\n ProjectId: this.projectId,\n UniversityName: this.customUniversityName,\n }).subscribe((res: any) => {\n this.selectedUniversity = res.UniversityId;\n this.ReferralService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.referralCallSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n });\n });\n } else {\n this.ReferralService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.referralCallSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n });\n }\n } else {\n this.selectedUniversity = \"\";\n\n this.ReferralService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.referralCallSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n });\n }\n });\n }\n }\n\n updateComments3() {\n if (!this.newStatus) {\n } else {\n this.layoutService\n .updateCallSid({ id: this.selectedLead, sid: this.enquiryCallSid })\n .subscribe((res: any) => {\n this.layoutService\n .updateCallComments({\n id: this.selectedLead,\n agentMail: this.userData.mail,\n comments: this.commentText,\n followUpdate: \"\",\n callStatus: this.newStatus,\n futureLead: \"futureLead\",\n assignedTo: \"\",\n })\n .subscribe((data) => {\n this.commentText = \"\";\n this.newStatus = null;\n if (this.callStatus == \"Call Ended\") {\n this.uhleadsservice.showSuccess(\"Lead updated\", \"Success!\");\n this.closeWindow();\n }\n });\n });\n }\n }\n\n updateComments4() {\n if (!this.newStatus) {\n } else {\n this.RefereeService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.enquiryCallSid,\n }).subscribe((res) => {\n this.commentText = \"\";\n this.newStatus = null;\n this.closeWindow();\n });\n }\n }\n\n applicationstatus(data) {\n this.applicationStatus = data;\n if (this.applicationStatus == \"Yes\") {\n }\n }\n}\n","\n
\n
\n
{{project + ' - Incoming Call'}}
\n \n
\n
\n
\n
\n
\n \n
Current Caller
\n
\n
\n \n
\n {{city}}\n
\n
\n {{from}}\n
\n
\n \"\"\n
\n
{{callStatus}}
\n

\n \n

\n\n
\n \n
\n
\n
\n
\n\n\n
\n\n
\n
\n
\n
Student details
\n \n
\n
\n
\n
\n
\n \n
{{leadInfo.FirstName+ ' ' +leadInfo.LastName}}
\n
\n
\n
\n
\n \n
{{leadInfo.GUID}}
\n
\n
\n
\n
\n \n
{{leadInfo.APPStatus}}
\n
\n
\n
\n
\n \n
{{leadInfo.createdAt | date: \"medium\"}}
\n
\n
\n
\n
\n
\n
\n \n
{{leadInfo.DOB | date: \"dd MMM, yyyy\"}}
\n
\n
\n
\n
\n \n
{{leadInfo.EnrollmentYear}}
\n
\n
\n
\n
\n \n
{{leadInfo.Program}}
\n
\n
\n
\n
\n \n
{{'+'+leadInfo.CountryCode+' '+leadInfo.PhoneNumber}}
\n
\n
\n
\n\n
\n
\n
\n \n
{{leadInfo.Email}}
\n
\n
\n
\n
\n \n
{{leadInfo.Address}}
\n
\n
\n
\n
\n
\n
\n
Document details
\n
\n
\n
\n
\n \n {{\n documentsList[i].ProgramDoc }}\n
\n
\n \n {{ documentsList[i + 1].ProgramDoc }}\n
\n
\n
\n
\n
Feedback
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n Please select any option above!\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n
Referral details
\n
\n
\n
\n
\n
\n \n
\n {{leadInfo.FirstName+\" \"+leadInfo.LastName}}\n
\n
\n
\n
\n
\n \n
{{leadInfo.Email}}
\n
\n
\n
\n
\n \n
{{leadInfo.PhoneNumber}}
\n
\n
\n\n
\n\n
\n
\n
\n \n
\n {{leadInfo.createdAt | date: \"medium\"}}\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n {{leadInfo.University || ''}}\n
\n
\n
\n
\n
\n
\n
\n
\n
Application status
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n \n\n
\n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n\n
\n\n
\n
\n
\n
Feedback
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n Please select any option above!\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n
Referee details
\n
\n
\n
\n
\n
\n \n
\n {{leadInfo.FirstName+\" \"+leadInfo.LastName}}\n
\n
\n
\n
\n
\n \n
{{leadInfo.Email}}
\n
\n
\n
\n
\n \n
{{leadInfo.PhoneNumber}}
\n
\n
\n\n
\n\n
\n
\n
\n \n
\n {{leadInfo.createdAt | date: \"medium\"}}\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n {{leadInfo.University || ''}}\n
\n
\n
\n
\n
\n
\n \n
{{leadInfo.ReferralCount}}
\n
\n
\n
\n\n
\n
\n
\n \n
\n {{leadInfo.ReferralBonus}}\n
\n
\n
\n\n
\n
\n \n
\n {{leadInfo.ReferralStatus}}\n
\n
\n
\n\n
\n
\n \n
\n {{leadInfo.AssignedTo}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
Feedback
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n Please select any option above!\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n
Lead Details
\n
\n
\n
\n
\n
\n \n
\n {{leadInfo.FirstName+\" \"+leadInfo.LastName}}\n
\n
\n
\n
\n
\n \n
{{leadInfo.Email}}
\n
\n
\n
\n
\n \n
{{leadInfo.PhoneNumber}}
\n
\n
\n\n
\n\n
\n
\n
\n \n
\n {{leadInfo.createdAt | date: \"medium\"}}\n
\n
\n
\n
\n
\n \n
{{leadInfo.Miscellaneous.form_name}}
\n
\n
\n
\n
\n \n
{{leadInfo.Interested}}
\n
\n
\n
\n \n
\n
\n
\n \n
\n {{leadInfo.Assignedto}}\n
\n
\n
\n \n
\n
\n
\n
\n
Feedback
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n Please select any option above!\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class EnquiryCallsService {\n baseApiUrl = environment.baseApiUrl2;\n callerData = new BehaviorSubject(null);\n endCall = new BehaviorSubject(null);\n leadInfo = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n\n\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n\n constructor(\n private http: HttpClientService){}\n\n checkLead(from, to){\n return this.http.get(`${this.baseApiUrl}communication/leadByPhone/`+from+'/'+to)\n }\n\n updateIncomingCallDetails(body) {\n return this.http.post(`${this.baseApiUrl}communication/updateIncomingCallDetails`, body);\n }\n}\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { IncomingCallsService } from \"./incoming-calls.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { UhLeadsService } from \"src/app/pages/uhleads.service\";\n\n@Component({\n selector: \"app-incoming-calls\",\n templateUrl: \"./incoming-calls.component.html\",\n styleUrls: [\"./incoming-calls.component.css\"],\n})\nexport class IncomingCallsComponent implements OnInit {\n userData: any;\n testConfig1: any;\n from: any;\n to: any;\n callSid: any;\n callStatus: any = 'Connected';\n city: string = '';\n newStatus: any;\n commentText: string ='';\n isNewEnquiry: boolean = true;\n\n leadInfo: any ={\n FirstName : '',\n LastName: '',\n Email: '',\n Address: '',\n City: '',\n State: '',\n Country: '',\n Zip: '',\n\n }\n\n constructor(\n private IncomingCallsService: IncomingCallsService,\n public dialogRef: MatDialogRef,\n public countupTimerService: CountupTimerService,\n private uhleadsservice: UhLeadsService,\n public incomingCallService: IncomingCallsService,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n dialogRef.disableClose = true;\n this.testConfig1 = new countUpTimerConfigModel();\n this.testConfig1.timerClass = \"test_Timer_class\";\n this.testConfig1.timerTexts = new timerTexts();\n this.testConfig1.timerTexts.hourText = \":\"; //default - hh\n this.testConfig1.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig1.timerTexts.secondsText = \" \";\n //default - ss\n }\n\n ngOnInit(): void {\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n this.startTimer();\n this.IncomingCallsService.callInfo.subscribe((data: any) => {\n if (data) {\n this.from = data.From;\n this.to = data.To;\n this.callSid = data.CallSid;\n }\n\n this.incomingCallService.checkenquiry(this.from,this.to).subscribe((resp:any)=>{\n\n if (resp.status == 201) {\n this.isNewEnquiry = true;\n this.leadInfo = {\n FirstName: \"\",\n LastName: \"\",\n Email: \"\",\n Address: \"\",\n City: \"\",\n State: \"\",\n Country: \"\",\n Zip: \"\",\n };\n } else if (resp.status == 200) {\n this.incomingCallService\n .getEnquiryById(resp.newInquiries[0].id, resp.ProjectId)\n .subscribe((res: any) => {\n\n this.isNewEnquiry = false;\n this.leadInfo = {\n id: res.id,\n FirstName: res.FirstName,\n LastName: res.LastName,\n Email: res.Email,\n Address: res.Address,\n City: res.City,\n State: res.State,\n Country: res.Country,\n Zip: res.Zip,\n };\n });\n }\n\n })\n \n });\n \n \n }\n\n endCall() {\n this.IncomingCallsService.endCall.next({ disconnect: true });\n this.countupTimerService.stopTimer();\n this.uhleadsservice.showInfo(\"\", \"Call has ended!\")\n this.callStatus = 'Ended';\n }\n\n closeWindow() {\n this.dialogRef.close();\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.stopTimer();\n this.countupTimerService.startTimer(cdate);\n }\n onStatusChange(data) {\n this.newStatus = data;\n }\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n }\n\n updateComments() {\n\n if (!this.newStatus) {\n } else if(this.isNewEnquiry) {\n let postData = {\n To: this.to,\n From: this.from,\n FirstName: this.leadInfo.FirstName,\n LastName: this.leadInfo.LastName,\n Email: this.leadInfo.Email,\n Address: this.leadInfo.Address,\n City: this.leadInfo.City,\n Country: this.leadInfo.Country,\n State: this.leadInfo.State,\n Zip: this.leadInfo.Zip,\n CreatedBy: this.userData.mail,\n Comments: this.commentText,\n CallSid: this.callSid,\n CallStatus: this.newStatus\n }\n this.IncomingCallsService.createNewEnquiry(postData).subscribe((res:any)=>{\n this.uhleadsservice.showSuccess(\"New Enquiry created successfully.\", \"Created!\");\n this.closeWindow();\n })\n }\n else{\n let postData = {\n id: this.leadInfo.id,\n comments: this.commentText,\n followupDate: null,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n FirstName: this.leadInfo.FirstName,\n LastName: this.leadInfo.LastName,\n Email: this.leadInfo.Email,\n Address: this.leadInfo.Address,\n City: this.leadInfo.City,\n Country: this.leadInfo.Country,\n State: this.leadInfo.State,\n Zip: this.leadInfo.Zip\n }\n this.IncomingCallsService.updateCallComments(postData).subscribe((res:any)=>{\n this.uhleadsservice.showSuccess(\"Enquiry updated successfully.\", \"Updated!\")\n this.closeWindow();\n })\n }\n }\n}\n","\n\n
\n
\n
New Enquiry - Incoming Call
\n\n \n
\n
\n
\n
\n
\n \n
Current Caller
\n
\n
\n \n
\n {{city}}\n
\n
\n {{from}}\n
\n
\n \"\"\n
\n
{{callStatus}}
\n

\n \n

\n\n
\n \n
\n
\n
\n
\n\n
\n
\n \"\"\n
\n\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n \"\"\n
\n\n
\n \"\"\n
\n
\n\n\n
\n\n
\n
\n
\n
Student details
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
Feedback
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n Please select any option above!\n \n
\n
\n
\n \n \n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n
","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class IncomingCallsService {\n baseApiUrl = environment.baseApiUrl2;\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n\n newEnquiry = new BehaviorSubject(null);\n endCall = new BehaviorSubject(null);\n callInfo = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n\n\n constructor(\n private http: HttpClientService){}\n\n checkLead(from, to){\n return this.http.get(`${this.baseApiUrl}communication/leadByPhone/`+from+'/'+to);\n }\n\n checkenquiry(from, to){\n return this.http.get(`${this.baseApiUrl}communication/newInquiryByPhone/`+from+'/'+to);\n }\n\n createNewEnquiry(data){\n return this.http.post(`${this.baseApiUrl}communication/createNewInquiry`, data);\n }\n\n getEnquiryById(id, projectId){\n return this.http.get(`${this.baseApiUrl}communication/newInquiryById/`+id+'/'+projectId);\n }\n\n updateCallComments(data){\n return this.http.post(`${this.baseApiUrl}communication/incomingCallComments`,data);\n }\n\n updateOutgoingCallComments(data){\n return this.http.post(`${this.baseApiUrl}communication/outgoingCallComments`,data);\n }\n\n}\n","import { TwilioSocketService } from \"./../../twilio-socket.service\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport * as moment from \"moment\";\nimport {\n Component,\n ElementRef,\n OnInit,\n ViewChild,\n AfterViewInit,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { LayoutService } from \"../layout.service\";\nimport { Router } from \"@angular/router\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport CallLogs from \"../models/calllogs-model\";\nimport { RoleService } from \"src/app/pages/role-management/role.service\";\nimport { CreateAgent } from \"src/app/pages/create-agent/create-agent.service\";\nimport {\n ModalDismissReasons,\n NgbModal,\n NgbPopover,\n NgbPopoverConfig,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport {\n CreateAutoEmail,\n InputCallData,\n InputSMSData,\n MarketingService,\n} from \"src/app/pages/marketing/marketing.service\";\nimport { ProjectService } from \"src/app/pages/project-management/project.service\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport { UhLeadsService } from \"src/app/pages/uhleads.service\";\nimport { FreJunService } from \"src/app/pages/frejun.service\";\n\nimport { getMessaging, onMessage } from \"firebase/messaging\";\nimport { NotificationsService } from \"src/app/notification.service\";\nimport { SettingsComponent } from \"src/components/settings/settings.component\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { ReferralService } from \"src/app/pages/referral/referral.service\";\nimport { ReferreeService } from \"src/app/pages/referree/referree.service\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { TransfersService } from \"src/app/pages/trasnfers/transfers.service\";\nimport { IncomingCallsComponent } from \"./components/incoming-calls/incoming-calls.component\";\nimport { IncomingCallsService } from \"./components/incoming-calls/incoming-calls.service\";\nimport { EnquiryCallsComponent } from \"./components/enquiry-calls/enquiry-calls.component\";\nimport { EnquiryCallsService } from \"./components/enquiry-calls/enquiry-calls.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { EnquiryDashboardService } from \"src/app/pages/enquiry/enquiry.service\";\nimport { RecruiterService } from \"src/app/pages/recruiter/recruiter.service\";\nimport { environment } from \"src/environments/environment\";\nimport { UhubDashboardService } from \"src/app/pages/uhub-dashboard/uhub-dashboard.service\";\nimport { SocialmedialeadsService } from \"src/app/pages/uhub-dashboard/socialmedialeads/socialmedialeads.service\";\nimport { RecruiterleadsService } from \"src/app/pages/uhub-dashboard/recruiterleads/recruiterleads.service\";\ndeclare const $: any;\ndeclare const Twilio: any;\nconst countryCodes = require('../../../assets/allcountryDetails.json');\nimport { Softphone } from \"@frejun/softphone-web-sdk\";\nimport { SocketService } from \"src/app/socket.service\";\n\n@Component({\n selector: \"app-topbar\",\n templateUrl: \"./topbar.component.html\",\n styleUrls: [\"./topbar.component.css\"],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class TopbarComponent implements OnInit, AfterViewInit {\n pageName: any = \"\";\n workerJS: any = null;\n reservation: any;\n task: any;\n tasks: any[];\n configuration: any;\n worker: any;\n direction: any = null;\n connection: any = null;\n phoneNumber: any = \"\";\n showDailer: any = false;\n activities: any = [];\n currentStatus: any;\n dailerScreen: any = \"nocall\";\n transfer: any = {\n workers: [],\n to: null,\n isLoading: false,\n };\n taskQueue: any = [];\n selectedQueue: any = \"\";\n RolePermission = localStorage.getItem(\"RolePermission\");\n isValue: number = 0;\n isCollapsed: any = true;\n mute: any = false;\n testConfig: any;\n hold: any = false;\n loginmailid: string = \"\";\n callLogs: CallLogs[] = [];\n snackBarRef: any;\n userData: any;\n isloading: boolean = false;\n unReadMessages: number;\n countries: any[] = [];\n selectedCountryCode = 1;\n audio: any;\n isChat: boolean = false;\n companies: any = [];\n superAdmin: Boolean = false;\n agentCall: String = \"\";\n isAgentCalling: boolean = false;\n isReservation = false;\n isCallingProgress: boolean = false;\n isOutgoing: boolean = false;\n isIncoming: boolean = false;\n isCallcomming: boolean = false;\n profilePhoto: any = \"\";\n isNotify: boolean = false;\n notificationCount: number;\n callerIds: any[] = [];\n selectedCallerId: any;\n marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n redialContactId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n isShownMarketing: boolean = false;\n dialerScreen1 = \"dialer\";\n comments: string = \"\";\n callBack: string = \"notinterested\";\n followUpdate: Date = new Date();\n companyId: any;\n demoScheduled: any;\n moduleConfig: any = {};\n callStopped: boolean = false;\n projects: any[] = [];\n projectId: any;\n @ViewChild(\"dailer\", { static: true, read: ElementRef }) dailer!: ElementRef;\n closeResult: string;\n @ViewChild(\"content\") content: NgTemplateOutlet;\n @ViewChild(\"contentDocs\") contentDocs: NgTemplateOutlet;\n totalAgents: { name: string; value: any; profilePhoto: any; Status: any }[] =\n [];\n apiKey: any;\n isdemoScheduled: boolean = false;\n isCustomerUpdate = false;\n schedulers: boolean = false;\n demoHtml: string;\n\n submitted: boolean = false;\n\n updateLeadComments: boolean = false;\n UhubCallSid: any;\n\n @ViewChild(NgbPopover)\n public popover: NgbPopover;\n disabled: boolean = false;\n isIntrested: boolean = false;\n message: any[] = [];\n callStatus: string = \"Calling..\";\n currentItem: any;\n freJunLoginRes;\n audioElements;\n softphone = new Softphone();\n currentCompanyData: any;\n\n constructor(\n // @Inject(LOCALE_ID) private locale: string,\n public sharedService: SharedService,\n public layoutService: LayoutService,\n private snackbar: MatSnackBar,\n private router: Router,\n private companyService: RoleService,\n private agentService: CreateAgent,\n private twilioSocketService: TwilioSocketService,\n public countupTimerService: CountupTimerService,\n private modalService: NgbModal,\n private marketingService: MarketingService,\n public config: NgbPopoverConfig,\n private projectService: ProjectService,\n private readonly snackbarRef: MatSnackBar,\n private uhleadsservice: UhLeadsService,\n private uHubLeadsService: UhubDashboardService,\n private uHubLeadsSocialService: SocialmedialeadsService,\n private uHubLeadsRecruiterService: RecruiterleadsService,\n private referralService: ReferralService,\n private marketingServics: MarketingService,\n private ReferralService: ReferralService,\n private ReferreeService: ReferreeService,\n private TransferService: TransfersService,\n private NotificationService: NotificationsService,\n public dialog: MatDialog,\n private incomingCallService: IncomingCallsService,\n private enquiryCallService: EnquiryCallsService,\n private handleError: ErrorHandlerService,\n private EnquiryService: EnquiryDashboardService,\n private RecruiterService: RecruiterService,\n private freJunService: FreJunService,\n private socketService: SocketService,\n ) {\n config.autoClose = \"outside\";\n config.placement = \"auto\";\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\";\n this.testConfig.timerTexts.minuteText = \":\";\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngAfterViewInit() {\n // localStorage.setItem('currentStatus', 'Idle')\n this.socketService.connect(this.userData[\"id\"])\n\n }\n\n async logout() {\n\n if (this.configuration) {\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerOfflineActivitySid\n );\n }\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Offline\",\n fcmtoken: this.userData.fcmtoken,\n token: this.userData.token,\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n localStorage.clear();\n sessionStorage.clear();\n await this.softphone.logout()\n this.socketService.disConnect()\n this.router.navigate([\"/account/login\"]);\n }\n toggleIsOnQueue(activitySid) {\n\n let payload = {\n ActivitySid: activitySid,\n };\n\n this.workerJS.update(payload, function (error, worker) { });\n }\n\n complete() {\n if (this.dailerScreen === \"callcomming\") {\n this.reservation.reject();\n } else {\n this.workerJS.completeTask(this.task.sid, (error, task) => {\n if (error) {\n console.error(error);\n return;\n }\n });\n }\n this.dailerScreen = \"nocall\";\n }\n\n async ngOnInit() {\n window.navigator.mediaDevices.getUserMedia({ audio: true }).then(() => { });\n this.followUpdate.setDate(this.followUpdate.getDate() + 2);\n this.companyAdmin();\n this.twiliointialCode();\n this.freJunintialCode();\n this.loginmailid = this.userData.mail;\n\n this.currentStatus = \"Offline\";\n this.listen();\n\n // ==========================================\n this.uHubLeadsService.unreadCountRecObservable.subscribe((data) => {\n // if(data){\n this.isNotify = false;\n this.NotificationService.recruiterUnreadCountAgent({\n agentemail: this.userData.mail,\n ProjectId: this.projectId,\n Platform: 'Recruiter'\n }).subscribe((res: any) => {\n this.notificationCount = res.unreadNotificationCount;\n }, (error) => {\n this.handleError.handleError(error)\n });\n // }\n })\n\n //=================== Frejun ===============\n let frejonObj = {\n type: \"OAuth2.0\",\n token: this.userData.freJunToken,\n email: this.userData.mail\n };\n this.freJunLoginRes = await this.softphone.login(frejonObj);\n this.audioElements = {\n remote: document.getElementById(\"sip-remote-audio\"),\n local: document.getElementById(\"sip-local-audio\"),\n }\n }\n\n companyAdmin() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n if (this.userData[\"companyId\"] !== 0) {\n this.companyId = this.userData[\"companyId\"];\n this.getProjects();\n } else {\n this.companyService.getCompanies().subscribe((data) => {\n this.companies = data;\n this.companyId = data[0][\"id\"];\n this.basicFucntionCalls();\n // this.getCallNumbers();\n this.companyService.getCompanyById(1).subscribe((data) => {\n if (data[\"CallerIds\"]) {\n this.callerIds = data[\"CallerIds\"];\n this.selectedCallerId = data[\"CallerIds\"][0];\n } else {\n this.callerIds = [data[\"TwilioNumber\"]];\n this.selectedCallerId = data[\"TwilioNumber\"];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.getProjects();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n if (this.userData[\"ProfilePhoto\"]) {\n this.agentService\n .getSignedUrl({ url: this.userData[\"ProfilePhoto\"] })\n .subscribe((data) => {\n this.profilePhoto = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n getCallNumbers() {\n if (this.currentCompanyData[\"CallerIds\"]) {\n this.callerIds = this.currentCompanyData[\"CallerIds\"];\n this.selectedCallerId = this.currentCompanyData[\"CallerIds\"][0];\n } else {\n this.callerIds = [this.currentCompanyData[\"TwilioNumber\"]];\n this.selectedCallerId = this.currentCompanyData[\"TwilioNumber\"];\n }\n }\n getProjects() {\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projects = projects;\n if (this.projects.length !== 0) {\n this.projectId = projects[0][\"id\"];\n this.layoutService.twilioNumber = projects[0][\"TwilioNumber\"];\n\n this.layoutService.getRoleAgents(this.projectId);\n this.layoutService.getContacts(this.projectId);\n\n if (this.userData[\"companyId\"] !== 0) {\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.basicFucntionCalls();\n if (data[\"CallerIds\"]) {\n this.callerIds = data[\"CallerIds\"];\n this.selectedCallerId = data[\"CallerIds\"][0];\n } else {\n this.callerIds = [data[\"TwilioNumber\"]];\n this.selectedCallerId = data[\"TwilioNumber\"];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n this.sharedService.projectId.next(projects[0][\"id\"]);\n this.companyService.fetchRoles(projects[0][\"id\"]).subscribe((data) => {\n this.taskQueue = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.currentProject.next(projects[0]);\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n basicFucntionCalls() {\n this.getAgentNames();\n let value: any = JSON.parse(localStorage.getItem(\"userData\"));\n this.userData = value;\n this.fetchCountries();\n setTimeout(() => {\n this.twilioSocketService.connect();\n }, 1000);\n let notificationProject;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n notificationProject = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n })\n this.NotificationService.recruiterUnreadCountAgent({\n agentemail: this.userData.mail,\n ProjectId: notificationProject,\n Platform: 'Recruiter'\n }).subscribe((res: any) => {\n this.notificationCount = res.unreadNotificationCount;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n twiliointialCode() {\n this.toggle();\n this.layoutService.openChat.subscribe((val) => { this.isChat = val; });\n this.layoutService.toggleSideBar.subscribe((data) => {\n var isClass = $(\"#mySidebar\").hasClass(\"active\");\n if (isClass) {\n $(\"#mySidebar\").removeClass(\"active\");\n }\n });\n this.twilioSocketService.channelJoin.next({ sid: this.userData.workerSId });\n\n this.layoutService.getCallHistory(this.userData.workerSId).subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.pageEvent.subscribe((data) => {\n if (data.pageName) {\n this.pageName = data.pageName;\n }\n if (data.togglePage) {\n this.toggle();\n }\n });\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"Online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n }).subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.toggleSidebar.subscribe((data) => {\n this.toggle();\n });\n\n // CU DASHBOARD CALLS\n this.uhleadsservice.startCall.subscribe((data) => {\n if (data) {\n this.callNumber(data.phoneNumber, data.leadData.id);\n }\n });\n\n this.uhleadsservice.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n this.uhleadsservice.conferenceCall.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n // SFC DASHBOARD CALLS\n this.uhleadsservice.startCallsfc.subscribe((data) => {\n if (data) {\n this.callNumberSFC(data.phoneNumber, data.leadData.id);\n }\n });\n this.uhleadsservice.stopCallsfc.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n this.uhleadsservice.conferenceCallsfc.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n // UWLA \n this.uhleadsservice.startCalluwla.subscribe((data) => {\n if (data) {\n this.callNumberuwla(data.phoneNumber, data.leadData.id);\n }\n });\n this.uhleadsservice.stopCalluwla.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n this.uhleadsservice.conferenceCalluwla.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n // JUDSON DASHBOARD CALLS\n this.uhleadsservice.startCalljudson.subscribe((data) => {\n if (data) {\n this.callNumberjudson(data.phoneNumber, data.leadData.id);\n }\n });\n this.uhleadsservice.stopCalljudson.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n this.uhleadsservice.conferenceCalljudson.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n\n // UHUB LEADS \n this.uHubLeadsService.startCall.subscribe((data) => {\n if (data) {\n this.callNumberUHUB(data.phoneNumber, data.leadData.id);\n }\n });\n\n this.uHubLeadsService.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n\n this.uHubLeadsService.conferenceCall.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n\n // UHUB LEADS SOCIAL MEDIA\n this.uHubLeadsSocialService.startCallSocial.subscribe((data) => {\n if (data) {\n this.callNumberUHUBSocial(data.phoneNumber, data.leadData.id);\n }\n });\n\n this.uHubLeadsSocialService.stopCallSocial.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n });\n\n this.uHubLeadsSocialService.conferenceCallSocial.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n\n // UHUB LEADS RECRUITER LEADS\n this.uHubLeadsRecruiterService.startCallRecruiter.subscribe((data) => {\n if (data) {\n this.callNumberUHUBSocial(data.phoneNumber, data.leadData.id);\n }\n });\n\n this.uHubLeadsRecruiterService.stopCallRecruiter.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n\n this.uHubLeadsRecruiterService.conferenceCallRecruiter.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n\n // UHUB LEADS Frejun SOCIAL MEDIA\n this.uHubLeadsSocialService.startCallFJSocial.subscribe((data) => {\n if (data) {\n this.callNumberFJUHUBSocial(data.phoneNumber, data.leadData);\n }\n });\n\n this.uHubLeadsSocialService.stopCallFJSocial.subscribe(async (data) => {\n if (data) {\n await this.softphone.getSession.end();\n this.getCallNumbers();\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n });\n\n // this.uHubLeadsSocialService.conferenceCallSocial.subscribe((data) => {\n // if (data) {\n // this.conferenceCall(data.value);\n // }\n // });\n\n\n // this.uHubLeadsRecruiterService.conferenceCallRecruiter.subscribe((data) => {\n // if (data) {\n // this.conferenceCall(data.value);\n // }\n // });\n\n this.ReferralService.startCall.subscribe((data) => {\n if (data) {\n this.callNumber2(data.phoneNumber, data.leadData.id);\n // this.userData= data.userData;\n }\n });\n\n this.ReferralService.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n\n this.ReferralService.conferenceCall.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n\n this.EnquiryService.startCall.subscribe((data) => {\n if (data) {\n this.callNumber5(data.phoneNumber, data.leadData.id, data.ProjectId);\n // this.userData= data.userData;\n }\n });\n\n this.EnquiryService.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n\n this.EnquiryService.conferenceCall.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n\n this.ReferreeService.startCall.subscribe((data) => {\n if (data) {\n this.callNumber3(data.phoneNumber, data.leadData.id);\n // this.userData= data.userData;\n }\n });\n this.ReferreeService.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n\n this.ReferreeService.conferenceCall.subscribe((data) => {\n if (data) {\n this.conferenceCall(data.value);\n }\n });\n this.RecruiterService.startCall.subscribe((data) => {\n if (data) {\n this.callNumberRecruiter(data.phoneNumber, data.leadData.id);\n // this.userData= data.userData;\n }\n });\n this.RecruiterService.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n this.TransferService.startCall.subscribe((data) => {\n if (data) {\n this.callNumber4(data.phoneNumber, data.leadData.id)\n }\n })\n this.TransferService.startCallv2.subscribe((data) => {\n if (data) {\n this.callNumber6(data.phoneNumber, data.leadData.id)\n }\n })\n this.TransferService.stopCall.subscribe((data) => {\n if (data) {\n this.hangUp();\n }\n // this.stopCall(data.phoneNumber);\t\n });\n this.layoutService.marketingCall.subscribe((data) => {\n if (data) {\n this.callStopped = false;\n this.layoutService.submitted = false;\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"interested\")\n .setValidators(Validators.required);\n this.layoutService.commentsForm\n .get(\"interested\")\n .updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe((selectedValue) => {\n this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n this.layoutService.commentsForm.get(\"assignedTo\").clearValidators();\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue === \"callback\") {\n this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (\n selectedValue === \"counsellingpending\") {\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.redialContactId = {\n id: data[\"id\"],\n status: \"notanswered\",\n phoneNumber: data[\"number\"],\n email: data[\"email\"],\n name: data[\"name\"],\n module: data[\"module\"],\n city: data[\"city\"],\n nextCaller: data[\"nextCaller\"],\n lead: data.lead,\n };\n this.marketingId = {\n id: data[\"id\"],\n status: \"notanswered\",\n phoneNumber: data[\"number\"],\n email: data[\"email\"],\n name: data[\"name\"],\n module: data[\"module\"],\n city: data[\"city\"],\n nextCaller: data[\"nextCaller\"],\n lead: data.lead,\n };\n this.marketingService\n .getModuleConfigs(data[\"module\"], this.projectId)\n .subscribe((data) => {\n this.moduleConfig = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.layoutService.onReset();\n this.layoutService.commentsForm.patchValue({\n name: data.name,\n emailId: data.email,\n state: data.lead.City,\n qualification: data.lead.Education,\n });\n this.schedulers = false;\n this.comments =\n data.lead[\"Phase\"] === \"demo\"\n ? data.lead[\"DemoComments\"] || \"\"\n : data.lead[\"Comments\"] || \"\";\n this.callBack = \"interested\";\n this.isShownMarketing = true;\n this.isCustomerUpdate = false;\n this.agentToCall(data[\"number\"]);\n this.layoutService.callMarketingStatus.next({\n id: data[\"id\"],\n status: \"notanswered\",\n followUpdate: this.followUpdate,\n calledBy: this.userData[\"firstName\"] + this.userData[\"lastName\"],\n });\n this.layoutService\n .getCommentLead(this.marketingId.id)\n .subscribe((data) => {\n if (data !== null) {\n this.updateLeadComments = true;\n } else {\n this.updateLeadComments = false;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n if (!this.modalService.hasOpenModals()) {\n this.open(this.content);\n } else {\n if (this.isShownMarketing) {\n this.modalService.dismissAll();\n this.open(this.content);\n }\n }\n }\n });\n this.layoutService.marketingCallDocs.subscribe((data) => {\n if (data) {\n this.currentItem = data.item;\n this.callStopped = false;\n this.layoutService.submitted = false;\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"interested\")\n .setValidators(Validators.required);\n this.layoutService.commentsForm\n .get(\"interested\")\n .updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe((selectedValue) => {\n this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n this.layoutService.commentsForm.get(\"assignedTo\").clearValidators();\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue === \"Callback\") {\n this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue === \"counsellingpending\") {\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.redialContactId = {\n id: data[\"id\"],\n status: \"notanswered\",\n phoneNumber: data[\"number\"],\n email: data[\"email\"],\n name: data[\"name\"],\n module: data[\"module\"],\n city: data[\"city\"],\n nextCaller: data[\"nextCaller\"],\n lead: data.lead\n };\n this.marketingId = {\n id: data[\"id\"],\n status: \"notanswered\",\n phoneNumber: data[\"number\"],\n email: data[\"email\"],\n name: data[\"name\"],\n module: data[\"module\"],\n city: data[\"city\"],\n nextCaller: data[\"nextCaller\"],\n lead: data.lead\n };\n this.marketingService\n .getModuleConfigs(data[\"module\"], this.projectId)\n .subscribe(\n (data) => {\n this.moduleConfig = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.layoutService.onReset();\n this.layoutService.commentsForm.patchValue({\n name: data.name,\n emailId: data.email,\n state: data.lead.City,\n qualification: data.lead.Education,\n });\n this.schedulers = false;\n this.comments =\n data.lead[\"Phase\"] === \"demo\"\n ? data.lead[\"DemoComments\"] || \"\"\n : data.lead[\"Comments\"] || \"\";\n this.callBack = \"interested\";\n this.isShownMarketing = true;\n this.isCustomerUpdate = false;\n this.agentToCall(data[\"number\"]);\n this.layoutService.callMarketingStatus.next({\n id: data[\"id\"],\n status: \"notanswered\",\n followUpdate: this.followUpdate,\n calledBy: this.userData[\"firstName\"] + this.userData[\"lastName\"],\n });\n this.layoutService.getCommentLead(this.marketingId.id).subscribe(\n (data) => {\n if (data !== null) {\n this.updateLeadComments = true;\n } else {\n this.updateLeadComments = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n if (!this.modalService.hasOpenModals()) {\n this.openDocCall(this.contentDocs);\n } else {\n if (this.isShownMarketing) {\n this.modalService.dismissAll();\n this.openDocCall(this.contentDocs);\n }\n }\n }\n });\n this.sharedService.companyCreated.subscribe((data) => {\n this.companyService.getCompanies().subscribe((data) => {\n this.companies = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n\n this.layoutService.callAgent.subscribe((data) => {\n this.agentToCall(data);\n });\n\n this.twilioSocketService.callCancelled.subscribe((data) => {\n if (data) {\n if (data[\"workerSID\"] === this.userData[\"workerSId\"]) {\n this.dailerScreen = \"nocall\";\n this.isCallcomming = false;\n this.isOutgoing = false;\n this.isIncoming = false;\n if (this.audio) {\n this.audio.pause();\n }\n }\n }\n });\n\n this.twilioSocketService.callAccepted.subscribe((data) => {\n console.log('data');\n console.log(data);\n console.log('data');\n if (data) {\n this.uhleadsservice.startTimer.next(\"StartingCall\");\n this.uhleadsservice.startTimersfc.next(\"StartingCall\");\n this.uhleadsservice.startTimerjudson.next(\"StartingCall\");\n this.uhleadsservice.startTimeruwla.next(\"StartingCall\");\n this.uHubLeadsService.startTimer.next(\"StartingCall\");\n this.uHubLeadsSocialService.startTimerSocial.next(\"StartingCall\");\n this.uHubLeadsRecruiterService.startTimerRecruiter.next(\"StartingCall\");\n this.ReferralService.startTimer.next(\"StartingCall\");\n this.ReferreeService.startTimer.next(\"StartingCall\");\n this.TransferService.startTimer.next(\"StartingCall\");\n this.EnquiryService.startTimer.next(\"StartingCall\");\n this.RecruiterService.startTimer.next(\"StartingCall\");\n this.callStatus = \"inProgress\";\n this.startTimer();\n if (\n data[\"workerSID\"] === this.userData[\"workerSId\"] &&\n this.connection.parameters.CallSid === data[\"CallSid\"]\n ) {\n if (this.marketingId[\"id\"]) {\n this.layoutService.callMarketingStatus.next({\n id: this.marketingId[\"id\"],\n status: \"answered\",\n calledBy: this.userData[\"firstName\"] + this.userData[\"lastName\"],\n followUpdate: this.followUpdate,\n });\n }\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"oncall\";\n this.schedulers = true;\n this.isCallcomming = false;\n this.isOutgoing = false;\n this.isIncoming = true;\n return;\n } else {\n this.dailerScreen = \"oncall\";\n this.isCallcomming = false;\n this.isOutgoing = false;\n this.isIncoming = true;\n this.startTimer();\n return;\n }\n }\n }\n });\n this.freJunService.callAnswered.subscribe((data) => {\n if (data) {\n this.uhleadsservice.startTimer.next(\"StartingCall\");\n this.uhleadsservice.startTimersfc.next(\"StartingCall\");\n this.uhleadsservice.startTimerjudson.next(\"StartingCall\");\n this.uhleadsservice.startTimeruwla.next(\"StartingCall\");\n this.uHubLeadsService.startTimer.next(\"StartingCall\");\n this.uHubLeadsSocialService.startTimerSocial.next(\"StartingCall\");\n this.uHubLeadsRecruiterService.startTimerRecruiter.next(\"StartingCall\");\n this.uHubLeadsSocialService.startTimerFJSocial.next(\"StartingCall\");\n this.ReferralService.startTimer.next(\"StartingCall\");\n this.ReferreeService.startTimer.next(\"StartingCall\");\n this.TransferService.startTimer.next(\"StartingCall\");\n this.EnquiryService.startTimer.next(\"StartingCall\");\n this.RecruiterService.startTimer.next(\"StartingCall\");\n this.callStatus = \"inProgress\";\n this.startTimer();\n if (this.marketingId[\"id\"]) {\n this.layoutService.callMarketingStatus.next({\n id: this.marketingId[\"id\"],\n status: \"answered\",\n calledBy: this.userData[\"firstName\"] + this.userData[\"lastName\"],\n followUpdate: this.followUpdate,\n });\n }\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"oncall\";\n this.schedulers = true;\n this.isCallcomming = false;\n this.isOutgoing = false;\n this.isIncoming = true;\n return;\n } else {\n this.dailerScreen = \"oncall\";\n this.isCallcomming = false;\n this.isOutgoing = false;\n this.isIncoming = true;\n this.startTimer();\n if (this.userData.workerSId && data.call_id) {\n this.layoutService\n .updateWorkerID({\n calledBy: this.userData.workerSId,\n callsid: data.call_id,\n status: \"called\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }\n return;\n }\n }\n });\n\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n let userData = JSON.parse(localStorage.getItem(\"userData\"));\n let prId = userData[\"companyId\"] === 0 ? 5 : projects[0][\"id\"];\n this.layoutService.setupTwilio(prId).then((res: any) => {\n this.isloading = true;\n this.activities = JSON.parse(res).configuration.twilio.activities;\n this.worker = JSON.parse(res).worker;\n this.InitializePhone({ token: JSON.parse(res).tokens.access });\n this.configuration = JSON.parse(res);\n this.initWorker(res);\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n freJunintialCode() {\n\n // SFC DASHBOARD CALLS\n this.uhleadsservice.startCallFJsfc.subscribe((data) => {\n if (data) {\n console.log(\"data : \", data)\n this.callNumberFJSFC(data.phoneNumber, data.leadData);\n }\n });\n this.uhleadsservice.stopCallFJsfc.subscribe(async (data) => {\n if (data) {\n\n console.log(\"****** data : \", data)\n await this.softphone.getSession.end();\n\n this.hangUpfreJunCall();\n\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n\n this.currentStatus = \"Online\";\n }\n\n // this.stopCall(data.phoneNumber);\n });\n\n }\n\n toggle() {\n $(\"#mySidebar\").toggleClass(\"active\");\n $(\"#tog-collapse\").toggleClass(\"active-pad\");\n var isClass = $(\"#mySidebar\").hasClass(\"active\");\n if (isClass) {\n this.layoutService.closeSideParent.next(\"close\");\n }\n if ($(\"#SideLogo\").attr(\"src\") === \"assets/theme/uh-small-logo.png\") {\n $(\"#SideLogo\").attr(\"src\", \"assets/theme/uh-small-logo.png\");\n this.sharedService.switchToggle.next(\"toggling\");\n } else {\n $(\"#SideLogo\").attr(\"src\", \"assets/theme/uh-small-logo.png\");\n }\n }\n\n async toggleMute() {\n this.mute = !this.mute;\n\n if (this.is_countryselected) {\n this.mute ? await this.softphone.getSession.mute() : await this.softphone.getSession.unmute()\n }\n else {\n this.connection.mute(this.mute);\n }\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n\n fetchCountries() {\n this.countries = countryCodes;\n }\n\n fetchTasks() {\n this.layoutService.unReadCount.subscribe((data) => {\n this.unReadMessages = data;\n });\n let prevTasks: any[] = [];\n this.layoutService.prevTasks.subscribe((data) => {\n prevTasks = data;\n });\n const operation = (list1, list2, isUnion = false) =>\n list1.filter((a) => isUnion === list2.some((b) => a.taskId === b.taskId));\n\n this.workerJS.fetchReservations((error, reservations) => {\n if (error) {\n return;\n }\n\n var data = reservations.data;\n if (data.length > 0) {\n let tasks: any[] = [];\n for (let i = 0; i < data.length; i++) {\n if (\n data[i].task.attributes.channel === \"chat\" ||\n data[i].task.attributes.channel === \"sms\" ||\n data[i].task.attributes.channel === \"whatsapp\"\n ) {\n if (data[i].task.assignmentStatus === \"assigned\") {\n tasks.push({\n attributes: data[i].task.attributes,\n taskId: data[i].task.sid,\n unReadMessages: 0,\n messages: [],\n channel: \"\",\n });\n }\n }\n }\n if (prevTasks.length !== 0) {\n let comparetasks = tasks.map((data) => {\n if (\n prevTasks.find((olddata) => olddata[\"taskId\"] === data[\"taskId\"])\n ) {\n return prevTasks.find(\n (olddata) => olddata[\"taskId\"] === data[\"taskId\"]\n );\n }\n });\n this.tasks = comparetasks;\n return this.layoutService.tasks.next(comparetasks);\n }\n this.tasks = tasks;\n this.layoutService.tasks.next(this.tasks);\n } else {\n }\n });\n }\n\n initWorker(res) {\n this.workerJS = new Twilio.TaskRouter.Worker(JSON.parse(res).tokens.worker);\n if (this.workerJS) {\n this.workerJS.on(\"ready\", (worker) => {\n\n this.currentStatus = worker.activityName;\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status:\n worker.activityName === \"Idle\" ? \"Online\" : worker.activityName,\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n localStorage.setItem(\"currentStatus\", this.currentStatus);\n });\n this.fetchTasks();\n this.layoutService.workerJs.next(this.workerJS);\n\n this.workerJS.on(\"reservation.created\", (reservation) => {\n\n if (\n reservation.task.attributes.channel === \"chat\" ||\n reservation.task.attributes.channel === \"sms\" ||\n reservation.task.attributes.channel === \"whatsapp\"\n ) {\n if (reservation.task.attributes.channel == 'sms') {\n this.uhleadsservice.showInfo(\"Received incoming SMS\", \"New Message!\");\n this.uhleadsservice.incomingSms.next({ from: reservation.task.attributes.name });\n this.uhleadsservice.incomingSmssfc.next({ from: reservation.task.attributes.name });\n this.uhleadsservice.incomingSmsjudson.next({ from: reservation.task.attributes.name });\n this.uhleadsservice.incomingSmsuwla.next({ from: reservation.task.attributes.name });\n\n }\n this.reservation = reservation;\n this.snackBarRef = this.snackbar.open(\n \"user is requesting for chat\",\n \"accept\",\n {\n horizontalPosition: \"right\",\n verticalPosition: \"top\",\n panelClass: [\"blue-snackbar\"],\n }\n );\n this.snackBarRef.afterDismissed().subscribe(() => {\n this.accept(reservation);\n this.isChat = true;\n });\n\n return;\n }\n if (reservation.task.attributes.channel === \"phone\") {\n this.isReservation = true;\n this.dailerScreen = \"callcomming\";\n this.isCallcomming = true;\n this.isOutgoing = false;\n this.isIncoming = false;\n this.showDailer = true;\n this.reservation = reservation;\n this.audio = new Audio();\n this.audio.src = \"../../assets/audio/caller_tune.mp3\";\n this.audio.load();\n this.audio.play();\n }\n });\n this.workerJS.on(\"activity.update\", (w) => {\n this.currentStatus = w.activityName;\n localStorage.setItem(\"currentStatus\", this.currentStatus);\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status:\n this.currentStatus === \"Idle\" ? \"Online\" : this.currentStatus,\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.worker = w;\n });\n }\n\n this.workerJS.on(\"reservation.wrapup\", (reservation) => {\n this.complete();\n this.dailerScreen = \"nocall\";\n });\n this.workerJS.on(\"reservation.rejected\", (reservation) => {\n this.audio.pause();\n });\n\n this.workerJS.on(\"reservation.accepted\", (reservation) => {\n if (\n reservation.task.attributes.channel === \"chat\" ||\n reservation.task.attributes.channel === \"sms\" ||\n reservation.task.attributes.channel === \"whatsapp\"\n ) {\n this.snackBarRef.dismiss();\n let newtask: any;\n newtask = {\n attributes: reservation.task.attributes,\n taskId: reservation.task.sid,\n unReadMessages: 0,\n messages: [],\n channel: \"\",\n };\n this.layoutService.newTask.next(newtask);\n\n return;\n }\n this.task = reservation.task;\n\n var pattern = /(.*)(\\+[0-9]{8,20})(.*)$/;\n\n if (pattern.test(this.task.attributes.name) === true) {\n this.task.attributes.nameIsPhoneNumber = true;\n }\n this.dailerScreen = \"oncall\";\n this.isOutgoing = false;\n this.isCallcomming = false;\n this.isIncoming = true;\n this.startTimer();\n if (this.audio) {\n this.audio.pause();\n }\n });\n\n this.workerJS.on(\"reservation.timeout\", (reservation) => {\n this.showDailer = !this.showDailer;\n this.dailerScreen = \"nocall\";\n this.isOutgoing = false;\n this.isCallcomming = false;\n this.isIncoming = false;\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerOnlineActivitySid\n );\n if (\n reservation.task.attributes.channel === \"chat\" ||\n reservation.task.attributes.channel === \"sms\" ||\n reservation.task.attributes.channel === \"whatsapp\"\n ) {\n this.snackBarRef.dismiss();\n }\n this.isReservation = false;\n });\n\n this.workerJS.on(\"reservation.rescinded\", (reservation) => {\n this.isReservation = false;\n this.isOutgoing = false;\n this.isCallcomming = false;\n this.isIncoming = false;\n });\n\n this.workerJS.on(\"reservation.canceled\", (reservation) => {\n if (\n reservation.task.attributes.channel === \"chat\" ||\n reservation.task.attributes.channel === \"sms\" ||\n reservation.task.attributes.channel === \"whatsapp\"\n ) {\n this.snackBarRef.dismiss();\n }\n this.showDailer = false;\n this.dailerScreen = \"nocall\";\n this.isReservation = false;\n this.isOutgoing = false;\n this.isCallcomming = false;\n this.isIncoming = false;\n\n this.audio.pause();\n });\n this.workerJS.on(\"tokenExpired\", () => { });\n\n this.workerJS.on(\"reservation.rejected\", (reservation) => {\n this.isReservation = false;\n this.isOutgoing = false;\n this.isCallcomming = false;\n this.isIncoming = false;\n });\n\n this.workerJS.on(\"task.completed\", (reservation) => {\n this.fetchTasks();\n this.isReservation = false;\n this.isOutgoing = false;\n this.isCallcomming = false;\n this.isIncoming = false;\n });\n\n this.workerJS.on(\"token.expired\", () => {\n });\n\n this.workerJS.on(\"connected\", () => { });\n this.workerJS.on(\"disconnected\", () => {\n });\n\n this.workerJS.on(\"error\", (error) => {\n console.error(\n \"TaskRouter Worker: an error occurred: \" +\n error.response +\n \" with message: \" +\n error.message\n );\n });\n }\n\n InitializePhone(data) {\n Twilio.Device.setup(data.token, {\n debug: true,\n enableRingingState: true,\n codecPreferences: [\"opus\", \"pcmu\"],\n });\n\n Twilio.Device.on(\"ready\", (device) => { });\n Twilio.Device.on(\"error\", (error) => { });\n\n Twilio.Device.on(\"connect\", (connection) => {\n this.connection = connection;\n connection.on(\"accept\", () => {\n this.isCallingProgress = true;\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connect\", () => { });\n connection.on(\"ringing\", () => { });\n connection.on(\"open\", () => { });\n connection.on(\"close\", () => { });\n connection.on(\"reject\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.isIncoming = false;\n this.isCallcomming = false;\n\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"dialer\";\n this.isShownMarketing = false;\n }\n if (this.marketingId[\"id\"]) {\n this.layoutService.callEnd.next(this.marketingId);\n }\n if (this.audio) {\n this.audio.pause();\n }\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerAvailableActivitySid\n );\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n\n Twilio.Device.on(\"disconnect\", (connection) => {\n this.isOutgoing = false;\n this.phoneNumber = \"\";\n if (this.audio) {\n this.audio.pause();\n }\n });\n\n Twilio.Device.on(\"offline\", (device) => { });\n\n Twilio.Device.on(\"incoming\", (connection) => {\n this.connection = connection;\n this.mute = false;\n this.hold = false;\n this.direction = \"inbound\";\n this.phoneNumber = connection.parameters.From;\n if (this.isReservation) {\n connection.accept();\n } else {\n this.isAgentCalling = true;\n this.dailerScreen = \"callcomming\";\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerUnavailableActivitySid\n );\n this.isCallcomming = true;\n this.showDailer = true;\n this.audio = new Audio();\n this.audio.src = \"../../assets/audio/caller_tune.mp3\";\n this.audio.load();\n this.audio.play();\n }\n\n connection.disconnect((disconnect) => {\n this.isCallingProgress = false;\n this.isAgentCalling = false;\n this.isOutgoing = false;\n if (this.audio) {\n this.audio.pause();\n }\n });\n });\n }\n\n acceptAgentCall() {\n this.connection.accept();\n this.audio.pause();\n this.dailerScreen = \"oncall\";\n this.isCallcomming = false;\n this.isIncoming = true;\n this.isOutgoing = false;\n this.startTimer();\n }\n\n accept(reservation) {\n\n this.showDailer = false;\n if (this.audio) {\n this.audio.pause();\n }\n if (reservation.task.attributes.channel === \"phone\") {\n\n reservation.conference(\n this.configuration.configuration.twilio.callerId,\n null,\n null,\n null,\n (error, reservation) => {\n if (error) {\n console.error(error);\n return;\n }\n },\n {\n EndConferenceOnExit: true,\n EndConferenceOnCustomerExit: true,\n ConferenceRecord:\n this.configuration.configuration.twilio.voice.recording,\n }\n );\n this.enquiryCallService.getCallSid.next(reservation.task.attributes.call_sid);\n this.incomingCallService.checkLead(reservation.task.attributes.from, reservation.task.attributes.to).subscribe((res: any) => {\n\n this.incomingCallService.callInfo.next({\n CallSid: reservation.task.attributes.call_sid,\n From: reservation.task.attributes.from,\n To: reservation.task.attributes.to,\n });\n\n if (res.status == 201) {\n\n this.openIncomingCall();\n }\n else if (res.status == 200) {\n if (res.ProjectName == 'Campbellsville') {\n this.uhleadsservice.getStudentActivity(res.LeadIds[0]).subscribe((leadInfo: any) => {\n this.enquiryCallService.leadInfo.next({ project: 'Campbellsville', projectId: res.ProjectId, leadInfo: leadInfo });\n })\n } else if (res.ProjectName == 'University Hub') {\n this.marketingService.showDetails(res.leadIds[0], 'Website').subscribe((leadInfo: any) => {\n this.enquiryCallService.leadInfo.next({ project: 'University Hub', projectId: res.ProjectId, leadInfo: leadInfo, id: res.leadIds[0] });\n })\n } else if (res.ProjectName == environment.Sfcleads) {\n this.uhleadsservice.getStudentActivity(res.LeadIds[0]).subscribe((leadInfo: any) => {\n this.enquiryCallService.leadInfo.next({ project: environment.Sfcleads, projectId: res.ProjectId, leadInfo: leadInfo });\n })\n } else if (res.ProjectName == environment.Judsonuleads) {\n this.uhleadsservice.getStudentActivity(res.LeadIds[0]).subscribe((leadInfo: any) => {\n this.enquiryCallService.leadInfo.next({ project: environment.Judsonuleads, projectId: res.ProjectId, leadInfo: leadInfo });\n })\n } else if (res.ProjectName == environment.UwlaLeads) {\n this.uhleadsservice.getStudentActivity(res.LeadIds[0]).subscribe((leadInfo: any) => {\n this.enquiryCallService.leadInfo.next({ project: environment.UwlaLeads, projectId: res.ProjectId, leadInfo: leadInfo });\n })\n }\n //fetch the data using the lead id and project id combination\n this.enquiryCallService.callerData.next({ from: reservation.task.attributes.from, to: reservation.task.attributes.to })\n this.openEnquiryCall();\n }\n });\n this.incomingCallService.endCall.subscribe((r: any) => {\n if (r) {\n this.hangUp();\n }\n });\n\n this.enquiryCallService.endCall.subscribe((r: any) => {\n if (r) {\n this.hangUp();\n }\n\n });\n }\n if (reservation.task.attributes.channel === \"sms\") {\n\n }\n if (\n reservation.task.attributes.channel === \"chat\" ||\n reservation.task.attributes.channel === \"whatsapp\"\n ) {\n reservation.accept(function (error, reservation) {\n if (error) {\n console.error(error);\n return;\n }\n });\n }\n\n\n }\n\n addDigit(digit) {\n if (this.phoneNumber) {\n this.phoneNumber += digit;\n } else {\n this.phoneNumber = `${digit}`;\n }\n if (this.connection) {\n this.connection.sendDigits(digit);\n }\n }\n\n async callPhoneNumber() {\n if (\n this.phoneNumber &&\n this.isOutgoing === false &&\n this.isIncoming === false &&\n this.isCallcomming === false &&\n this.isCallingProgress === false &&\n !this.isShownMarketing\n ) {\n this.callStatus = \"Calling ...\";\n this.direction = \"outbound\";\n this.phoneNumber = `+${this.selectedCountryCode}${this.phoneNumber}`;\n const universityhubproject = this.projects.filter(x => x.Name.includes('University Hub')); \n const universityhubprojectId = universityhubproject.length > 0 ? universityhubproject[0].id : null; \n if (universityhubprojectId != null && this.selectedCountryCode.toString() == \"91\" && universityhubprojectId == this.projectId) {\n this.dailerScreen = \"outgoing\";\n\n const listeners = {\n onConnectionStateChange: (type, newState, attemptReconnection, error) => {\n // type : \"UserAgentState\" | \"RegisterState\"\n // if type is \"UserAgentState\", newState: \"Started\" | \"Stopped\"\n // if type is \"RegisterState\", newState: \"Initial\" | \"Registered\" | \"Terminated\" | \"Unregistered\"\n\n console.log(\"**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"newState : \", newState)\n console.log(\"attemptReconnection : \", attemptReconnection)\n console.log(\"**************************************************\")\n },\n\n onCallCreated: (type, details) => {\n console.log(\"1onCallCreated **************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" 1onCallCreated**************************************************\")\n\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n\n },\n\n onCallRinging: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show on call action buttons to user\n console.log(\" onCallRinging**************************************************\");\n this.callStatus = \"Ringing ...\";\n\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallRinging**************************************************\")\n this.audio = new Audio();\n // this.audio.src = \"../../assets/audio/caller_tune.mp3\";\n // this.audio.load();\n // this.audio.play();\n },\n\n onCallHangup: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936***\"}\n // show apt ui\n console.log(\" onCallHangup**\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n // this.uhleadsservice.stopCallFJsfc.next(details.candidate)\n console.log(\" onCallHangup**\")\n this.uHubLeadsSocialService.stopCallFJSocial.next(details.candidate)\n\n\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isOutgoing = false;\n this.phoneNumber = \"\";\n this.agentService.updateStatus({\n id: this.userData[\"id\"],\n status: \"online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n });\n \n this.currentStatus = \"Online\";\n setTimeout(() => {\n\n\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 5000);\n },\n }\n this.softphone.start(listeners, this.audioElements);\n\n const phoneNumber = this.phoneNumber;\n const virtualNumber = this.selectedCallerId;\n\n await this.softphone.makeCall(phoneNumber, virtualNumber);\n \n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n }\n else {\n let connection = Twilio.Device.connect({\n phone: this.phoneNumber,\n callerId: this.selectedCallerId,\n });\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerUnavailableActivitySid\n );\n this.connection = connection;\n this.dailerScreen = \"outgoing\";\n connection.on(\"accept\", () => {\n // this.isCallingProgress = true;\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.callStatus = \"Ringing ...\";\n });\n connection.on(\"open\", () => { });\n connection.on(\"close\", () => { });\n connection.on(\"reject\", () => { });\n\n connection.on(\"disconnect\", () => {\n this.callStatus = \"Ringing ...\";\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isOutgoing = false;\n this.phoneNumber = \"\";\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.isCallingProgress = false;\n });\n }\n }\n }\n\n //Place a call Function - uhleads\n callNumber(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Campbellsville'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n // this.uhleadsservice\n // .updateCallStatus({\n // calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n // id: id,\n // status: \"notanswered\",\n // })\n // .subscribe((res) => { }, (error) => {\n // this.handleError.handleError(error)\n // });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.uhleadsservice\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\n this.uhleadsservice.getCallSid.next(\n this.connection.parameters.CallSid\n );\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uhleadsservice.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n });\n }\n\n //Place a call Function - uhleads\n callNumberSFC(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes(environment.Sfcleads))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.uhleadsservice\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.uhleadsservice.getCallSidsfc.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uhleadsservice.callStatussfc.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n });\n }\n\n\n callNumberFJSFC(from, leadData) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes(environment.Sfcleads))[0].id;\n this.projectService.getProject(this.projectId).subscribe(async (data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"FreJunNumber\"]];\n transferCall = data[\"FreJunNumber\"];\n // let connection = Twilio.Device.connect({\n // phone: `${from}`,\n // callerId: transferCall,\n // });\n // this.connection = connection;\n // let createCall = this.freJunService.createCall({\n // user_email: \"manasa@avantao.com\",\n // candidate_number: `${from}`,\n // candidate_name: leadData.name\n // }).subscribe((data: any) => {\n // return data\n const listeners = {\n onConnectionStateChange: (type, newState, attemptReconnection, error) => {\n // type : \"UserAgentState\" | \"RegisterState\"\n // if type is \"UserAgentState\", newState: \"Started\" | \"Stopped\"\n // if type is \"RegisterState\", newState: \"Initial\" | \"Registered\" | \"Terminated\" | \"Unregistered\"\n\n console.log(\"**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"newState : \", newState)\n console.log(\"attemptReconnection : \", attemptReconnection)\n console.log(\"**************************************************\")\n },\n\n onCallCreated: (type, details) => {\n console.log(\"2onCallCreated **************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" 2onCallCreated**************************************************\")\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n\n },\n\n onCallRinging: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show on call action buttons to user\n console.log(\" onCallRinging**************************************************\");\n this.uhleadsservice.callStatussfc.next('Ringing...');\n\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallRinging**************************************************\")\n this.audio = new Audio();\n // this.audio.src = \"../../assets/audio/caller_tune.mp3\";\n // this.audio.load();\n // this.audio.play();\n },\n\n onCallHangup: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show apt ui\n console.log(\" onCallHangup**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n this.uhleadsservice.stopCallFJsfc.next(details.candidate)\n console.log(\" onCallHangup**************************************************\")\n this.dailerScreen = \"dailer\";\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.phoneNumber = \"\";\n\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"dialer\";\n this.isShownMarketing = false;\n }\n if (this.marketingId[\"id\"]) {\n this.layoutService.callEnd.next(this.marketingId);\n }\n if (this.audio) {\n this.audio.pause();\n }\n // this.toggleIsOnQueue(\n // this.configuration.configuration.twilio.workerAvailableActivitySid\n // );\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n },\n }\n this.softphone.start(listeners, this.audioElements);\n\n const phoneNumber = from;\n const virtualNumber = this.callerIds[0]\n await this.softphone.makeCall(phoneNumber, virtualNumber);\n // })\n // console.log(createCall)\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: leadData.id,\n status: \"notanswered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n\n\n this.freJunService.callDisconnected.subscribe((Data) => {\n\n if (Data) {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n })\n\n\n });\n });\n }\n //Place a call Function - callNumberjudson\n callNumberjudson(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes(environment.Judsonuleads))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.uhleadsservice\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.uhleadsservice.getCallSidjudson.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uhleadsservice.callStatusjudson.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n });\n }\n //Place a call Function - callNumberuwla\n callNumberuwla(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes(environment.Uwlauleads))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.uhleadsservice\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\n this.uhleadsservice\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.uhleadsservice.getCallSiduwla.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uhleadsservice.callStatusuwla.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n });\n }\n //Place a call Function - uhleads\n callNumberUHUB(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.layoutService\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n this.layoutService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n // this.acceptAgentCall()\n this.layoutService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uHubLeadsService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n //Place a call Function - uhleads\n callNumberUHUBSocial(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.layoutService\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n this.layoutService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n // this.acceptAgentCall()\n this.layoutService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uHubLeadsSocialService.callStatusSocial.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n //Place a call Function - uhleads\n callNumberUHUBRecruiter(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.layoutService\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n this.layoutService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n // this.acceptAgentCall()\n this.layoutService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.uHubLeadsRecruiterService.callStatusRecruiter.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n\n //Place a Frejun call Function - uhleads\n callNumberFJUHUBSocial(from, leadData) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n this.projectService.getProject(this.projectId).subscribe(async (data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"FreJunNumber\"]];\n transferCall = data[\"FreJunNumber\"];\n const listeners = {\n onConnectionStateChange: (type, newState, attemptReconnection, error) => {\n console.log(\"**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"newState : \", newState)\n console.log(\"attemptReconnection : \", attemptReconnection)\n console.log(\"**************************************************\")\n\n },\n\n onCallCreated: (type, details) => {\n console.log(\"4onCallCreated **************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" 4onCallCreated**************************************************\")\n },\n\n onCallRinging: (type, details) => {\n console.log(\" onCallRinging**************************************************\");\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallRinging**************************************************\")\n this.uHubLeadsSocialService.callStatusFJSocial.next('Ringing...');\n this.audio = new Audio();\n },\n\n onCallHangup: (type, details) => {\n\n console.log(\" onCallHangup**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallHangup**************************************************\")\n this.uHubLeadsSocialService.stopCallFJSocial.next(details.candidate)\n this.dailerScreen = \"dailer\";\n this.isCallingProgress = false;\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n // this.phoneNumber = \"\";\n\n // if (this.isShownMarketing) {\n // this.dialerScreen1 = \"dialer\";\n // this.isShownMarketing = false;\n // }\n if (this.marketingId[\"id\"]) {\n this.layoutService.callEnd.next(this.marketingId);\n }\n if (this.audio) {\n this.audio.pause();\n }\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n },\n }\n this.softphone.start(listeners, this.audioElements);\n\n const phoneNumber = from;\n const virtualNumber = transferCall;\n await this.softphone.makeCall(phoneNumber, virtualNumber);\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n\n this.freJunService.callAnswered.subscribe((Data) => {\n if (Data) {\n console.log(\"Data\", Data)\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (leadData.id) {\n this.layoutService\n .updateCallSid({\n id: leadData.id,\n sid: Data.call_id,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\n this.layoutService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n calledByWorkerId: this.userData.workerSId,\n id: leadData.id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.layoutService.getCallSid.next(\n Data.call_id\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n })\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n //Place a Frejun call Function - uhleads\n callNumberFJUHUBRecruiter(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n this.projectService.getProject(this.projectId).subscribe(async (data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"FreJunNumber\"]];\n transferCall = data[\"FreJunNumber\"];\n const listeners = {\n onConnectionStateChange: (type, newState, attemptReconnection, error) => {\n // type : \"UserAgentState\" | \"RegisterState\"\n // if type is \"UserAgentState\", newState: \"Started\" | \"Stopped\"\n // if type is \"RegisterState\", newState: \"Initial\" | \"Registered\" | \"Terminated\" | \"Unregistered\"\n\n console.log(\"**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"newState : \", newState)\n console.log(\"attemptReconnection : \", attemptReconnection)\n console.log(\"**************************************************\")\n },\n\n onCallCreated: (type, details) => {\n console.log(\"4onCallCreated **************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" 4onCallCreated**************************************************\")\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n\n },\n\n onCallRinging: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show on call action buttons to user\n this.uhleadsservice.callStatussfc.next('Ringing...');\n\n console.log(\" onCallRinging**************************************************\");\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallRinging**************************************************\")\n this.audio = new Audio();\n this.audio.src = \"../../assets/audio/caller_tune.mp3\";\n this.audio.load();\n this.audio.play();\n },\n\n onCallHangup: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show apt ui\n console.log(\" onCallHangup**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallHangup**************************************************\")\n this.uhleadsservice.stopCallFJsfc.next(details.candidate)\n\n this.dailerScreen = \"dailer\";\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.phoneNumber = \"\";\n\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"dialer\";\n this.isShownMarketing = false;\n }\n if (this.marketingId[\"id\"]) {\n this.layoutService.callEnd.next(this.marketingId);\n }\n if (this.audio) {\n this.audio.pause();\n }\n // this.toggleIsOnQueue(\n // this.configuration.configuration.twilio.workerAvailableActivitySid\n // );\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n },\n }\n this.softphone.start(listeners, this.audioElements);\n\n const phoneNumber = from;\n const virtualNumber = this.callerIds\n await this.softphone.makeCall(phoneNumber, virtualNumber);\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n //Place a call Function - Referral\n callNumber2(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Referrals'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.ReferralService.updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n }).subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.ReferralService.updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n }).subscribe((data) => {\n this.ReferralService.updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n }).subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.ReferralService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.ReferralService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n });\n }\n\n //Place a call Function - Referral\n callNumber3(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Referrals'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: this.selectedCallerId,\n });\n this.connection = connection;\n this.ReferreeService.updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n }).subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.ReferreeService.updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n }).subscribe((data) => {\n // this.acceptAgentCall()\n\n this.ReferreeService.updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n }).subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.ReferreeService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.ReferreeService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n });\n });\n }\n //Place a call Function - Transfer\t\n callNumber4(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Transfer'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n setTimeout(() => {\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.TransferService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.TransferService\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\t\n this.TransferService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.TransferService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.TransferService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }, 1000);\n }\n //Place a call Function - Transfer Student WebApp\n callNumber6(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('University Hub'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n this.TransferService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"notanswered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.TransferService\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n // this.acceptAgentCall()\t\n this.TransferService\n .updateCallStatus({\n calledBy: this.userData.firstName + \" \" + this.userData.lastName,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.TransferService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.TransferService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n //Place a call Function - Enquiries\t\n callNumber5(from, id, projectId) {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n this.projectService.getProject(projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.basicFucntionCalls();\n if (data[\"CallerIds\"]) {\n this.callerIds = data[\"CallerIds\"];\n this.selectedCallerId = data[\"CallerIds\"][0];\n\n } else {\n this.callerIds = [data[\"TwilioNumber\"]];\n this.selectedCallerId = data[\"TwilioNumber\"];\n }\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: this.selectedCallerId,\n });\n this.connection = connection;\n this.EnquiryService\n .updateCallStatus({\n id: id,\n status: \"notanswered\",\n ProjectId: projectId\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Busy\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Busy\";\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.EnquiryService\n .updateCallSid({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n\n // this.acceptAgentCall()\n this.EnquiryService\n .updateCallStatus({\n id: id,\n status: \"answered\",\n ProjectId: projectId\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n this.EnquiryService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.EnquiryService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n // this.dailerScreen = \"dailer\";\n // this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n })\n }\n\n callNumberRecruiter(from, id) {\n var transferCall;\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Recruiter'))[0].id;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.callerIds = [data[\"TwilioNumber\"]];\n transferCall = data[\"TwilioNumber\"];\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: transferCall,\n });\n this.connection = connection;\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (id) {\n this.RecruiterService\n .updateCallSidV2({\n id: id,\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n this.RecruiterService.getCallSid.next(\n this.connection.parameters.CallSid\n );\n this.RecruiterService\n .updateCallStatusV2({\n calledBy: this.userData.mail,\n id: id,\n status: \"answered\",\n })\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.RecruiterService.callStatus.next('Ringing...');\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n connection.on(\"answered\", () => { });\n connection.on(\"disconnect\", () => {\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.getCallNumbers();;\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n //Stop Call\n stopCall(phoneNumber) {\n this.agentService\n .updateStatus({\n id: this.userData[\"id\"],\n status: \"Online\",\n fcmtoken: this.userData.fcmtoken,\n token: \"\",\n })\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.currentStatus = \"Online\";\n\n this.uhleadsservice.stopCall.subscribe((data) => {\n this.connection.disconnect();\n Twilio.Device.disconnectAll();\n });\n }\n\n // To place Call\n async agentToCall(from) {\n if (\n this.isOutgoing === false &&\n this.isIncoming === false &&\n this.isCallcomming === false &&\n this.isCallingProgress === false\n ) {\n this.callStatus = \"Calling..\";\n if (!this.isShownMarketing) {\n this.showDailer = true;\n this.dailerScreen = \"outgoing\";\n }\n this.isAgentCalling = true;\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"outgoing1\";\n this.dailerScreen = \"nocall\";\n }\n this.agentCall = from;\n this.direction = \"outbound\";\n this.phoneNumber = from;\n console.log(\"from\",)\n if (from.split(\"+91\").length == 2) {\n this.dailerScreen = \"outgoing\";\n\n const listeners1 = {\n onConnectionStateChange: (type, newState, attemptReconnection, error) => {\n // type : \"UserAgentState\" | \"RegisterState\"\n // if type is \"UserAgentState\", newState: \"Started\" | \"Stopped\"\n // if type is \"RegisterState\", newState: \"Initial\" | \"Registered\" | \"Terminated\" | \"Unregistered\"\n\n console.log(\"**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"newState : \", newState)\n console.log(\"attemptReconnection : \", attemptReconnection)\n console.log(\"**************************************************\")\n },\n\n onCallCreated: (type, details) => {\n console.log(\"5onCallCreated **************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallCreated**************************************************\")\n\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n\n },\n\n onCallRinging: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show on call action buttons to user\n console.log(\" onCallRinging**************************************************\");\n this.callStatus = \"Ringing ...\";\n\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n console.log(\" onCallRinging**************************************************\")\n this.audio = new Audio();\n // this.audio.src = \"../../assets/audio/caller_tune.mp3\";\n // this.audio.load();\n // this.audio.play();\n },\n\n onCallHangup: (type, details) => {\n // type: \"Incoming\" | \"Outgoing\"\n // details : Object {candidate: \"+91936*******\"}\n // show apt ui\n console.log(\" onCallHangup**************************************************\")\n console.log(\"Type : \", type)\n console.log(\"details : \", details)\n // this.uhleadsservice.stopCallFJsfc.next(details.candidate)\n console.log(\" onCallHangup**************************************************\")\n this.callStatus = \"Ringing ...\";\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isOutgoing = false;\n this.phoneNumber = \"\";\n setTimeout(() => {\n\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 5000);\n },\n }\n this.softphone.start(listeners1, this.audioElements);\n\n const phoneNumber = this.phoneNumber;\n const virtualNumber = this.selectedCallerId\n await this.softphone.makeCall(phoneNumber, virtualNumber);\n\n }\n else {\n let connection = Twilio.Device.connect({\n phone: `${from}`,\n callerId: this.selectedCallerId,\n });\n this.toggleIsOnQueue(\n this.configuration.configuration.twilio.workerUnavailableActivitySid\n );\n this.connection = connection;\n // this.dailerScreen = 'outgoing';\n\n connection.on(\"accept\", () => {\n this.isOutgoing = true;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n if (this.isShownMarketing) {\n if (this.marketingId[\"id\"]) {\n this.layoutService\n .updateCallSid({\n id: this.marketingId[\"id\"],\n sid: this.connection.parameters.CallSid,\n })\n .subscribe((data) => {\n this.UhubCallSid = this.connection.parameters.CallSid;\n this.layoutService.updateCallStatus({\n id: this.marketingId[\"id\"],\n status: 'accept',\n calledBy: this.userData.mail\n }).subscribe((res: any) => {\n this.layoutService.getCallSid.next(this.connection.parameters.CallSid)\n })\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n // this.acceptAgentCall()\n });\n connection.on(\"pending\", () => { });\n connection.on(\"connecting\", () => { });\n connection.on(\"ringing\", () => {\n this.callStatus = \"Ringing...\";\n });\n connection.on(\"open\", () => { });\n connection.on(\"cancel\", (connection) => { });\n connection.on(\"reject\", (connection) => { });\n connection.on(\"close\", () => { });\n this.connection.on(\"answered\", () => { });\n\n connection.on(\"disconnect\", () => {\n this.callStatus = \"Call Ended\";\n this.dailerScreen = \"dailer\";\n this.isReservation = false;\n this.isCallingProgress = false;\n this.isOutgoing = false;\n this.agentCall = \"\";\n this.layoutService\n .getCallHistory(this.userData.workerSId)\n .subscribe((data) => {\n this.callLogs = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }\n }\n }\n\n async hangUp() {\n if (this.is_countryselected) {\n this.selectedCountryCode = 91;\n await this.softphone.getSession.end();\n\n }\n else {\n this.selectedCountryCode = 1;\n\n Twilio.Device.disconnectAll();\n }\n this.isCallcomming = false;\n this.isIncoming = false;\n this.isOutgoing = false;\n this.isCallingProgress = false;\n\n\n if (this.audio) {\n this.audio.pause();\n }\n\n if (this.isReservation) {\n this.complete();\n }\n if (!this.isReservation) {\n this.dailerScreen = \"nocall\";\n }\n this.phoneNumber = \"\";\n\n }\n hangUpfreJunCall() {\n\n // Twilio.Device.disconnectAll();\n this.isCallcomming = false;\n this.isIncoming = false;\n this.isOutgoing = false;\n this.isCallingProgress = false;\n if (this.audio) {\n this.audio.pause();\n }\n\n if (this.isReservation) {\n this.complete();\n }\n this.countupTimerService.stopTimer();\n if (!this.isReservation) {\n this.dailerScreen = \"nocall\";\n }\n\n }\n\n async hangUpOutgoingCall() {\n\n if (this.isShownMarketing) {\n this.dialerScreen1 = \"dialer\";\n }\n this.dailerScreen = \"dailer\";\n this.isCallcomming = false;\n this.isIncoming = false;\n this.isOutgoing = false;\n this.isCallingProgress = false;\n this.phoneNumber = '';\n this.layoutService.stopCalls.next(\"stopping calls\");\n if (this.is_countryselected) {\n this.selectedCountryCode = 91;\n await this.softphone.getSession.end();\n }\n else {\n this.selectedCountryCode = 1;\n this.connection.disconnect();\n }\n\n // Twilio.Device.disconnectAll();\n if (this.audio) {\n this.audio.pause();\n }\n this.callStatus = \"Call Ended\";\n }\n\n conferenceData() {\n if (this.direction === \"outbound\") {\n this.layoutService\n .getConferenceData(this.connection.parameters.CallSid, this.projectId)\n .then((res) => {\n return res;\n }).catch((err => {\n this.handleError.handleError(err)\n }))\n } else {\n return {\n conferenceSid: this.task.attributes.conference.sid,\n callSid: this.task.attributes.conference.participants.customer,\n };\n }\n }\n\n toggleTransferPanel() {\n this.transfer.isLoading = true;\n if (this.taskQueue[0]) {\n this.transfer.workers = this.taskQueue; //assigning queue data to transfer.workers\n this.transfer.isLoading = false;\n } else {\n this.transfer.workers = [];\n this.transfer.to = null;\n }\n }\n\n getConference() {\n this.isCollapsed = !this.isCollapsed;\n const request = {\n to: this.transfer.to, // queue name selected for transferring the call\n workerSid: this.worker.sid,\n };\n this.transfer.to = null;\n if (this.direction === \"outbound\") {\n this.layoutService\n .getConferenceData(this.connection.parameters.CallSid, this.projectId)\n .then((res: any) => {\n this.layoutService\n .transferCall(res.callSid, request, this.projectId)\n .then((response: any) => {\n this.transfer.isLoading = false;\n this.transfer.workers = [];\n this.transfer.to = null;\n Twilio.Device.disconnectAll();\n this.isOutgoing = false;\n this.isIncoming = false;\n this.isCallcomming = false;\n this.isCallingProgress = false;\n // this.complete();\n this.countupTimerService.stopTimer();\n this.dailerScreen = \"nocall\";\n this.showDailer = false;\n })\n .catch((error) => {\n console.error(error);\n this.handleError.handleError(error)\n\n });\n }).catch((err => {\n this.handleError.handleError(err)\n }))\n } else {\n this.layoutService\n .transferCall(\n this.task.attributes.conference.participants.customer,\n request,\n this.projectId\n )\n .then((response: any) => {\n this.transfer.isLoading = false;\n this.transfer.workers = [];\n this.transfer.to = null;\n setTimeout(() => {\n Twilio.Device.disconnectAll();\n });\n this.complete();\n this.countupTimerService.stopTimer();\n this.dailerScreen = \"nocall\";\n this.showDailer = false;\n })\n .catch((error) => {\n console.error(error);\n this.handleError.handleError(error)\n\n });\n }\n }\n\n async toggleHold() {\n this.hold = !this.hold;\n\n if (this.is_countryselected) {\n this.hold ? await this.softphone.getSession.hold() : await this.softphone.getSession.unhold()\n }\n else {\n let request = {\n conferenceSid: \"\",\n callSid: \"\",\n hold: this.hold,\n };\n if (this.direction === \"outbound\") {\n this.layoutService\n .getConferenceData(this.connection.parameters.CallSid, this.projectId)\n .then((res: any) => {\n request = {\n conferenceSid: res.conferenceSid,\n callSid: res.callSid,\n hold: this.hold,\n };\n this.layoutService\n .holdCall(request, this.companyId)\n .then((res) => { })\n .catch((err) => {\n this.handleError.handleError(err)\n\n });\n })\n .catch((err) => {\n this.handleError.handleError(err)\n\n });\n } else {\n request = {\n conferenceSid: this.task.attributes.conference.sid,\n callSid: this.task.attributes.conference.participants.customer,\n hold: this.hold,\n };\n this.layoutService\n .holdCall(request, this.projectId)\n .then((res) => { })\n .catch((err) => { });\n }\n }\n }\n\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n }\n\n companyChange(data) {\n this.companyId = data;\n this.getProjects();\n this.sharedService.CompanyId.next(+data);\n }\n projectChange(data) {\n this.projectId = data;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.currentCompanyData = data;\n this.basicFucntionCalls();\n if (data[\"CallerIds\"]) {\n this.callerIds = data[\"CallerIds\"];\n this.selectedCallerId = data[\"CallerIds\"][0];\n\n } else {\n this.callerIds = [data[\"TwilioNumber\"]];\n this.selectedCallerId = data[\"TwilioNumber\"];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.projectId = +data;\n let project = this.projects.find((data) => data[\"id\"] === +data);\n this.layoutService.twilioNumber = project\n ? project[\"TwilioNumber\"]\n : \"+14847873052\";\n this.sharedService.projectId.next(+data);\n this.sharedService.currentProject.next(\n this.projects.find((data) => data[\"id\"] === +data)\n );\n }\n\n getCallerIdCountryCode(param) {\n return param.split(\"+91\").length == 2\n }\n toggleShowDailer() {\n this.showDailer = false;\n }\n\n changeTab() {\n if (this.isOutgoing) {\n this.dailerScreen = \"outgoing\";\n }\n if (this.isIncoming) {\n this.dailerScreen = \"oncall\";\n }\n if (this.isCallcomming) {\n this.dailerScreen = \"callcomming\";\n }\n }\n\n toggleView() {\n this.NotificationService.currentPage.next({ page: 1 });\n this.NotificationService.recruiterUnreadCountAgent({\n agentemail: this.userData.mail,\n ProjectId: this.projectId,\n Platform: 'Recruiter'\n }).subscribe((data: any) => {\n this.notificationCount = data.unreadNotificationCount;\n }, (error) => {\n this.handleError.handleError(error)\n });\n // this.NotificationService.currentPage.next(12);\n if (this.isChat || this.isNotify) {\n this.isChat = false;\n this.isNotify = false;\n }\n }\n is_countryselected: Boolean = false\n selectCalledId(id) {\n this.selectedCallerId = id;\n if (this.selectedCallerId.split(\"+91\").length == 2) {\n this.selectedCountryCode = 91;\n this.is_countryselected = true\n\n }\n else {\n this.is_countryselected = false\n this.selectedCountryCode = 1;\n }\n }\n\n open(content) {\n this.modalService.open(content, { size: \"xl\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n openDocCall(content) {\n this.modalService.open(content, { size: \"xl\", windowClass: 'docCall' }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n private getDismissReason(reason: any): string {\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n stopCalls() {\n this.connection.disconnect();\n this.callStopped = true;\n this.layoutService.stopCalls.next(\"stopping calls\");\n }\n\n updateComments() {\n this.layoutService\n .updateCallComments({\n id: this.marketingId[\"id\"],\n agentMail: this.userData.mail,\n comments: this.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: \"futureLead\",\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.marketingId.lead[\"Assignedto\"],\n })\n .subscribe((data) => {\n this.updateCallCommentsNew(this.comments, this.marketingId[\"id\"], this.layoutService.commentsValue.interested)\n setTimeout(() => {\n this.isCustomerUpdate = false;\n this.isdemoScheduled = false;\n this.layoutService.onReset();\n this.submitted = false;\n }, 5000);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n updateCallCommentsNew(comments, id, callstatus) {\n\n let payload = {\n sid: this.UhubCallSid,\n id: id,\n comments: comments,\n callstatus: callstatus\n }\n\n this.layoutService.updateCallCommentsNew(payload).subscribe((res: any) => {\n })\n\n }\n\n startCall() {\n this.layoutService.startCalls.next(\"startcalls\");\n }\n\n async scheduleDemo() {\n let dt = this.layoutService.commentsValue.counsellingDate;\n dt =\n moment(dt).format(\"dddd D MMM YY\") + \" at \" + moment(dt).format(\"h:m a\");\n let template: string = this.marketingId.lead[\"Miscellaneous\"][\"form_name\"]\n .toLowerCase()\n .includes(\"ielts\")\n ? \"ielts\"\n : \"usastudy\";\n\n let num = Math.floor(Math.random() * 90000) + 10000;\n let room = \"live-\" + num.toString();\n this.demoScheduled = `${environment.BaseURL}videocalling/mainscreen/${this.projectId}/${room}`;\n\n const infoMarketingBefore16hr: InputCallData = {\n ProjectId: this.projectId,\n RecipientNumber: this.marketingId.phoneNumber.replace(/\\n/g, \"\"),\n ScheduledCallTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Type: this.moduleConfig[\"callType\"],\n CallerId: \"+919398913602\",\n Module: this.marketingId.module,\n };\n let smsId = null;\n let callId = null;\n let mailId = null;\n\n const mailRemainder: CreateAutoEmail = {\n ProjectId: this.projectId,\n Module: this.marketingId.module,\n ScheduledEmailTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n RecipientEmail: this.marketingId.email,\n Type: this.moduleConfig[\"mailType\"],\n };\n\n const smsMarketingBefore6hr: InputSMSData = {\n ProjectId: this.projectId,\n Module: this.marketingId.module,\n RecipientNumber: this.marketingId[\"phoneNumber\"].replace(/\\n/g, \"\"),\n ScheduledSMSTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Type: this.moduleConfig[\"smsType\"],\n };\n // if(dt){}\n this.marketingService\n .getAutoDialCompany(this.projectId)\n .subscribe(async (data) => {\n if (data) {\n this.apiKey = data[\"API_KEY\"];\n\n if (this.moduleConfig[\"callType\"]) {\n if (dt) {\n callId = await this.marketingService.createAutoCallScheduler(\n infoMarketingBefore16hr,\n this.apiKey\n );\n }\n }\n\n if (this.moduleConfig[\"smsType\"]) {\n if (dt) {\n smsId = await this.marketingService.createAutoSmsScheduler(\n smsMarketingBefore6hr,\n this.apiKey\n );\n }\n }\n\n if (this.moduleConfig[\"mailType\"]) {\n if (dt) {\n mailId = await this.marketingService.createAutoEmail(\n mailRemainder,\n this.apiKey\n );\n }\n }\n\n setTimeout(() => {\n this.marketingService\n .createDemo({\n ProjectId: this.projectId,\n Name: this.marketingId.name,\n // ProspectId: this.marketingId,\n AutoEmailId: mailId ? mailId[\"mailId\"] : null,\n AutoCallId: callId ? callId[\"callId\"] : null,\n AutoSMSId: smsId ? smsId[\"smsId\"] : null,\n Comments: this.comments,\n DateTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Presenter:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0][\"value\"]\n : this.marketingId.lead[\"Assignedto\"],\n Feedback: this.layoutService.commentsValue.interested,\n Url:\n this.demoScheduled + \"/\" + this.userData.workerFriendlyName,\n ClientURL: this.demoScheduled + \"/\" + this.marketingId.name,\n RoomName: room,\n LeadId: this.marketingId.id,\n agentEmail: this.userData.mail,\n })\n .subscribe((demo) => {\n if (dt) {\n this.marketingService\n .updateDemo({\n demoId: demo[\"id\"],\n leadId: this.marketingId.id,\n })\n .subscribe((data) => {\n if (dt) {\n this.layoutService.sendSmsForLead({\n date: dt,\n from: this.layoutService.twilioNumber,\n projectId: this.projectId,\n student_name: this.marketingId.name,\n tosms: this.marketingId.phoneNumber,\n });\n }\n if (dt) {\n this.marketingService.sendMailForDemo(\n {\n name: this.marketingId.name,\n demoDate: moment(\n this.layoutService.commentsValue.counsellingDate\n ).format(\"MMMM Do YYYY, h:mm:ss a\"),\n url:\n this.demoScheduled + \"/\" + this.marketingId.name,\n },\n this.marketingId.email,\n this.projectId,\n template\n );\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });;\n }, 2000);\n\n setTimeout(() => {\n this.isdemoScheduled = false;\n }, 5000);\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.updateComments();\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data.map((data) => ({\n name: data[\"FirstName\"] + \" \" + data[\"LastName\"],\n value: data[\"workerFriendlyName\"],\n profilePhoto: data[\"ProfilePhoto\"],\n Status: data[\"Status\"],\n }));\n this.sharedService.totalAgents.next(this.totalAgents);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n get f(): { [key: string]: AbstractControl } {\n return this.layoutService.commentsForm.controls;\n }\n\n async submit() {\n this.comments = this.layoutService.commentsValue.comments;\n\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n } else {\n if (\n this.layoutService.commentsForm.get(\"interested\").errors ||\n !this.layoutService.commentsForm.get(\"interested\")\n ) {\n this.isIntrested = true;\n } else {\n this.isIntrested = false;\n }\n if (this.layoutService.commentsForm.invalid) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n\n if (\n this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\"\n ) {\n this.isdemoScheduled = true;\n await this.scheduleDemo();\n }\n if (\n (this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\") &&\n !this.layoutService.commentsValue.counsellingDate\n ) {\n this.isCustomerUpdate = true;\n }\n\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QulaifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QulaifiedHotLead\")\n ) {\n //await this.scheduleDemo();\n if (this.updateLeadComments) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(() => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n // duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.layoutService\n .updateComments(this.marketingId.id)\n .subscribe(() => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n } else {\n if (this.updateLeadComments) {\n this.updateComments();\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(() => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.layoutService\n .updateComments(this.marketingId.id)\n .subscribe(() => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.updateComments();\n }\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n if (this.updateLeadComments) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(() => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.updateComments();\n } else {\n this.layoutService\n .updateComments(this.marketingId.id)\n .subscribe(() => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.updateComments();\n }\n }\n }\n }\n }\n\n conferenceCall(value: any) {\n if (value.phone_number) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: value.phone_number,\n callerId: this.selectedCallerId,\n },\n this.companyId\n )\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }\n if (value.manager[0]) {\n if (value.manager[0].Name) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: \"client:\" + value.manager[0].value,\n callerId: this.selectedCallerId,\n },\n this.companyId\n )\n .subscribe((res) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n }\n\n redialContact() {\n if (this.dialerScreen1 === \"dialer\") {\n this.layoutService.redialContact.next(true);\n this.callStopped = false;\n this.marketingId = { ...this.redialContactId };\n this.layoutService.submitted = false;\n this.marketingService\n .getModuleConfigs(this.marketingId.module, this.projectId)\n .subscribe((data) => {\n this.moduleConfig = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.schedulers = false;\n this.callBack = \"interested\";\n this.isShownMarketing = true;\n this.isCustomerUpdate = false;\n this.agentToCall(this.marketingId.phoneNumber);\n this.layoutService.callMarketingStatus.next({\n id: this.marketingId[\"id\"],\n status: \"notanswered\",\n followUpdate: this.followUpdate,\n calledBy: this.userData[\"firstName\"] + this.userData[\"lastName\"],\n });\n if (!this.modalService.hasOpenModals()) {\n this.open(this.content);\n } else {\n this.modalService.dismissAll();\n this.open(this.content);\n }\n }\n }\n\n listen() {\n const messaging = getMessaging();\n onMessage(messaging, (payload: any) => {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n if (this.userData.notification_subscribe == true) {\n this.NotificationService.success(payload.data.Title, payload.data);\n this.NotificationService.currentPage.next({ page: 1 });\n }\n });\n }\n\n openSettings() {\n const dialogRef = this.dialog.open(SettingsComponent, {\n width: \"50%\",\n panelClass: \"settingsClass\",\n });\n\n dialogRef.afterClosed().subscribe((result) => { });\n }\n openIncomingCall() {\n const dialogRef = this.dialog.open(IncomingCallsComponent, {\n width: \"50%\",\n panelClass: \"settingsClass\",\n });\n\n dialogRef.afterClosed().subscribe((result) => { });\n }\n\n openEnquiryCall() {\n const dialogRef = this.dialog.open(EnquiryCallsComponent, {\n width: \"50%\",\n panelClass: \"settingsClass\",\n });\n\n dialogRef.afterClosed().subscribe((result) => { });\n }\n onInput(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n postComments(item, HTMLid) {\n var obj = {\n value: (document.getElementById(HTMLid)).value,\n item: this.currentItem,\n };\n this.layoutService.postComments.next(obj);\n }\n checkForRoutingNumber(item) {\n return item !== this.currentCompanyData.TwilioNumber && item !== this.currentCompanyData.FreJunNumber;\n }\n}\n","\n\n\n\n\n
\n
\n
\n \n \"\"\n\n

{{ pageName }}

\n
\n
\n \n \n \n \n \n \n \n    \n\n \n \n
\n\n \n
\n
\n \n
\n 0\">\n \n \n
\n

\n {{\n status.friendlyName === \"Idle\"\n ? \"Online\"\n : status.friendlyName\n }}\n

\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n\n \n \"\"\n {{\n notificationCount > 99 ? \"99+\" : notificationCount\n }}\n \n
\n \n
\n \n \n Profile\n \n\n \n \n Notification Settings\n \n\n \n \n Logout\n \n
\n
\n
\n
\n\n \n
\n
\n \n \n Call in Progress..\n
\n
\n \n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n \n {{ selectedCallerId }}\n \n \n
\n {{ item }} \n \n \n \n
\n
\n
\n
\n
\n \n
\n 0\">\n \n \n
\n

\n {{\n status.friendlyName === \"Idle\"\n ? \"Online\"\n : status.friendlyName\n }}\n

\n \n \n
\n
\n
\n \n\n
\n \n \n \n
\n \n
\n \n \n

Via browser

\n \n \n \n \n

Via phone: Not configured

\n \n \n
\n
\n \n\n \n\n
\n \n \n \n \n \n
\n
\n {{\n item[\"DisplayName\"].length < 18\n ? item[\"DisplayName\"]\n : item[\"DisplayName\"].slice(0, 18) + \"...\"\n }}\n
\n
\n {{ item[\"CallStatus\"] }}\n
\n
\n
\n \n \n {{\n item[\"RecordingDuration\"] !== null\n ? item[\"RecordingDuration\"] + \" secs\"\n : \"0\" + \" secs\"\n }}\n \n \n call\n \n
\n
\n {{ item[\"createdAt\"] | date : \"medium\" }}\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \"\"\n
\n \n {{ phoneNumber }}\n \n \n {{ reservation.task.attributes.from }}\n \n \n {{ reservation.task.attributes.from_country }}\n \n
calling ??
\n
\n \n Answer\n \n \n
\n
\n \n Answer\n \n \n
\n
\n \n \n
\n
\n \"\"\n
\n

\n {{\n (phoneNumber.replace(\"client:\", \"\")\n | agentname : totalAgents\n | titlecase) || agentCall.replace(\"client:\", \"\")\n }}\n

\n \n
\n {{ callStatus }}\n
\n
\n \n Hang Up\n \n
\n
\n \n \n\n
\n
\n
\n \n \n +{{ selectedCountryCode }} \n \n \n\n \n
\n \n
  • \n \n \n \n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
  • \n
    \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    1
    \n
    \n 2\n
    ABC
    \n
    \n
    \n 3\n
    DEF
    \n
    \n
    \n
    \n
    \n 4\n
    GHI
    \n
    \n
    \n 5\n
    JKL
    \n
    \n
    \n 6\n
    MNO
    \n
    \n
    \n
    \n
    \n 7\n
    PQRS
    \n
    \n
    \n 8\n
    TUV
    \n
    \n
    \n 9\n
    WXYZ
    \n
    \n
    \n
    \n
    *
    \n
    0
    \n
    #
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n\n \n\n \n
    \n \n
    \n \n {{ task.attributes.from }}\n

    \n \n {{ phoneNumber }}\n

    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    1
    \n
    \n 2\n
    ABC
    \n
    \n
    \n 3\n
    DEF
    \n
    \n
    \n
    \n
    \n 4\n
    GHI
    \n
    \n
    \n 5\n
    JKL
    \n
    \n
    \n 6\n
    MNO
    \n
    \n
    \n
    \n
    \n 7\n
    PQRS
    \n
    \n
    \n 8\n
    TUV
    \n
    \n
    \n 9\n
    WXYZ
    \n
    \n
    \n
    \n
    *
    \n
    0
    \n
    #
    \n
    \n
    \n
    \n
    \n \n \n \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n \n Transfer Call\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n Hang Up\n \n
    \n
    \n
    \n \n \n \n\n
    \n \n \n
    \n\n
    \n \n
    \n \n \n\n\n\n\n
    \n \n
    {{ unReadMessages }}
    \n\n \n \n
    \n\n
    \n \n \n \n
    \n\n\n \n \n\n
    \n \n
    \n\n
    \n

    Calling Screen

    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n \n \n Current Caller\n
    \n\n \n
    \n

    \n {{ marketingId.name }}\n

    \n \n {{ marketingId.city }}\n
    \n
    \n {{ phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n \n
    {{ callStatus }}
    \n \n \n

    \n
    \n \n \"\"\n \n
    \n
    \n
    \n \n\n
    \n
    \n Call Ended
    \n {{ marketingId.phoneNumber }}\n
    \n \n \n \n
    \n\n \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n \n {{ marketingId.city }}\n
    \n
    \n {{ phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n \n \n

    \n
    \n \n \"\"\n \n
    \n
    \n
    \n \n \n
    \n
    \n \"\"\n
    \n \n NEXT CALLER\n
    \n
    \n {{ marketingId.nextCaller.FirstName }}\n
    \n
    {{ marketingId.nextCaller.City }}
    \n
    \n +{{\n marketingId.nextCaller.CountryCode +\n marketingId.nextCaller.PhoneNumber\n }}\n
    \n \n\n
    \n \n \"\"\n
    \n\n \n \n \n \"\"\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n \n \n \n\n \n \n \n \n \n
    \n \n \n \n \n
    \n
    \n \n \n \n
    name is required
    \n
    \n
    \n
    \n \n \n \n \n Please Enter a Valid EmailId\n
    \n
    \n \n
    \n \n \n \n
    \n Date of birth is required\n
    \n
    \n \n \n
    \n
    \n \n \n \n
    State is required
    \n
    \n
    \n
    \n \n \n \n
    \n Alternate ContactNumber is required\n
    \n
    \n \n\n
    \n \n \n \n
    \n CountryPreference is required\n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n IELETS is required\n
    \n
    \n
    \n \n \n \n
    \n \n
    TOEFL is required
    \n \n \n\n
    \n \n \n \n \n
    PTE is required
    \n
    \n \n \n \n \n \n
    \n Dulingo is required\n
    \n \n \n \n\n
    \n \n \n \n \n Planning is required\n
    \n \n \n \n\n
    \n
    \n \n \n \n
    \n Qualification is required\n
    \n
    \n
    \n
    \n \n \n \n
    \n Work Experience is required\n
    \n
    \n \n
    \n \n \n \n
    \n Course Interested is required\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n Counselling Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Call Back Date is required\n
    \n
    \n
    \n
    \n \n \n \n
    \n Funding Resource is required\n
    \n
    \n \n
    \n \n \n \n
    \n In Take Proffered is required\n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n \n Reset\n \n \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n \n  \n Counselling Scheduled\n
    \n \n   Comments\n Are Updated\n
    \n \n \n
    \n\n\n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n\n
    {{ callStatus }}
    \n\n
    \n \n \"\"\n \n
    \n\n \n \n \n\n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n","import { HttpClient } from \"@angular/common/http\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MarketingService } from \"../pages/marketing/marketing.service\";\n\n@Component({\n selector: \"app-mail-response\",\n templateUrl: \"./mail-response.component.html\",\n styleUrls: [\"./mail-response.component.css\"],\n})\nexport class MailResponseComponent implements OnInit {\n interview: any;\n constructor(\n private route: ActivatedRoute,\n private marketingService: MarketingService\n ) {}\n\n ngOnInit() {\n this.route.params.subscribe((data) => {\n this.interview = data;\n this.marketingService\n .updateMailFeedback({\n Feedback: data[\"response\"],\n EmailReferenceId: data[\"refid\"],\n flag: \"EmailGather\",\n })\n .subscribe();\n // this.http.put(``)\n });\n }\n}\n","\n
    \n \n

    \n Thanks for replying.
    \n Your response is noted.\n

    \n
    \n","import {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {ClipboardModule} from '@angular/cdk/clipboard';\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatBadgeModule} from '@angular/material/badge';\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatListModule} from '@angular/material/list';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatSortModule} from '@angular/material/sort';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatTreeModule} from '@angular/material/tree';\nimport {OverlayModule} from '@angular/cdk/overlay';\n\n\n@NgModule({\n exports: [\n A11yModule,\n CdkAccordionModule,\n ClipboardModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n OverlayModule,\n PortalModule,\n ScrollingModule,\n ]\n})\nexport class MaterialExampleModule {}\n","import { Injectable } from '@angular/core';\n\nimport * as moment from 'moment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MomentFormatService {\n\n constructor() { }\n\n dashboardDateFormat(date) {\n return moment.utc(date).format(\"YYYY-MM-DD HH:mm:ss+00\")\n }\n\n dashboardDateFormatStartOf(date) {\n let d1 = moment.utc(date);\n let d2 = d1.startOf('day').format(\"YYYY-MM-DD HH:mm:ss+00\");\n return d2;\n } \n\n dashboardDateFormatEndOf(date) {\n let d1 = moment.utc(date);\n let d2 = d1.endOf('day').format(\"YYYY-MM-DD HH:mm:ss+00\");\n return d2;\n }\n \n reportsDateFormat(yyyy, mm, dd) {\n return moment.utc(new Date(yyyy, mm, dd)).format(\"YYYY-MM-DD HH:mm:ss+00\")\n }\n\n formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [day, month, year].join(\"-\");\n }\n}\n","import { Injectable, EventEmitter } from \"@angular/core\";\nimport { Subject } from \"rxjs/Subject\";\nimport { NotificationEvent } from \"./interfaces/notification-event.type\";\nimport { Notification } from \"./interfaces/notification.type\";\nimport { Icons, defaultIcons } from \"./interfaces/icons\";\nimport { HttpClientService } from \"./httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class NotificationsService {\n baseApiUrl = environment.baseApiUrl2;\n currentPage = new BehaviorSubject(null);\n unreadCount = new BehaviorSubject(null);\n\n constructor(private http: HttpClientService) {}\n\n public emitter = new Subject();\n public icons: Icons = defaultIcons;\n\n set(notification: Notification, to: boolean): Notification {\n notification.id =\n notification.override && notification.override.id\n ? notification.override.id\n : Math.random().toString(36).substring(3);\n notification.click = new EventEmitter<{}>();\n\n this.emitter.next({ command: \"set\", notification: notification, add: to });\n return notification;\n }\n\n success(title: any = \"\", content: any = \"\", override?: any): Notification {\n return this.set(\n {\n title: title,\n content: content || \"\",\n type: \"success\",\n icon: this.icons.success,\n override: override,\n },\n true\n );\n }\n\n error(title: any = \"\", content: any = \"\", override?: any): Notification {\n return this.set(\n {\n title: title,\n content: content || \"\",\n type: \"error\",\n icon: this.icons.error,\n override: override,\n },\n true\n );\n }\n\n alert(title: any = \"\", content: any = \"\", override?: any): Notification {\n return this.set(\n {\n title: title,\n content: content || \"\",\n type: \"alert\",\n icon: this.icons.alert,\n override: override,\n },\n true\n );\n }\n\n info(title: any = \"\", content: any = \"\", override?: any): Notification {\n return this.set(\n {\n title: title,\n content: content || \"\",\n type: \"info\",\n icon: this.icons.info,\n override: override,\n },\n true\n );\n }\n\n warn(title: any = \"\", content: any = \"\", override?: any): Notification {\n return this.set(\n {\n title: title,\n content: content || \"\",\n type: \"warn\",\n icon: this.icons.warn,\n override: override,\n },\n true\n );\n }\n\n bare(title: any = \"\", content: any = \"\", override?: any): Notification {\n return this.set(\n {\n title: title,\n content: content || \"\",\n type: \"bare\",\n icon: \"bare\",\n override: override,\n },\n true\n );\n }\n\n // With type method\n create(\n title: any = \"\",\n content: any = \"\",\n type = \"success\",\n override?: any\n ): Notification {\n return this.set(\n {\n title: title,\n content: content,\n type: type,\n icon: (this.icons)[type],\n override: override,\n },\n true\n );\n }\n\n // HTML Notification method\n html(\n html: any,\n type = \"success\",\n override?: any,\n icon = \"bare\"\n ): Notification {\n return this.set(\n {\n html: html,\n type: type,\n icon: (this.icons)[icon],\n override: override,\n },\n true\n );\n }\n\n // Remove all notifications method\n remove(id?: string): void {\n if (id) {\n this.emitter.next({ command: \"clean\", id: id });\n } else {\n this.emitter.next({ command: \"cleanAll\" });\n }\n }\n\n sendNotifications(data) {\n return this.http.post(`${this.baseApiUrl}sentNotifications`, data);\n }\n\n getAllNotifications(data) {\n return this.http.post(`${this.baseApiUrl}listOfMyNotifications`, data);\n }\n\n getSavedNotifications(email,Platform,token){\n return this.http.get(`${this.baseApiUrl}notifications/getSavedNotificaitons/`+ email +'/'+Platform+'/'+token);\n }\n\n getUnreadCount(data) {\n return this.http.post(\n `${this.baseApiUrl}notifications/unreadNotificationCount`,\n data\n );\n }\n\n deleteNotification(data) {\n return this.http.post(`${this.baseApiUrl}notifications/delete`, data);\n }\n\n saveNotification(data) {\n return this.http.post(`${this.baseApiUrl}notifications/save`,data);\n }\n\n readNotification(data){\n return this.http.post(`${this.baseApiUrl}notificationReadStatus`,data);\n }\n\n getAudio(email,platform,token,id){\n return this.http.get(`${this.baseApiUrl}sounds/getSoundDetails/`+email+'/'+platform+'/'+token+'/'+id);\n }\n\n recruiterUnreadCount(data){\n return this.http.post(`${this.baseApiUrl}/notifications/unreadCount`,data);\n }\n recruiterUnreadCountAgent(data){\n return this.http.post(`${this.baseApiUrl}/notifications/unreadCountAgent`,data);\n }\n markReadByGUID(data){\n return this.http.post(`${this.baseApiUrl}/notifications/markReadByGUID`,data);\n }\n\n getNewNotification(data){\n return this.http.post(`${this.baseApiUrl}/notifications/listOfMyNotificationsByAgentOrLead`,data);\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n// import { SimpleNotificationsComponent } from 'src/components/simple-notifications/simple-notifications.component';\nimport {SimpleNotificationsComponent} from 'src/components/simple-notifications/simple-notifications.component';\nimport {NotificationComponent} from 'src/components/notification/notification.component';\nimport { NotificationsService } from './notification.service';\n\nexport * from 'src/components/notification/notification.component';\nexport * from 'src/components/simple-notifications/simple-notifications.component';\nexport * from 'src/app/notification.service'\nexport * from './interfaces/icons';\nexport * from './interfaces/notification-event.type';\nexport * from './interfaces/notification.type';\nexport * from './interfaces/options.type';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n SimpleNotificationsComponent,\n NotificationComponent\n ],\n exports: [SimpleNotificationsComponent],\n providers: [NotificationsService]\n})\nexport class SimpleNotificationsModule {\n/* static forRoot(): ModuleWithProviders {\n return {\n ngModule: SimpleNotificationsModule,\n providers: [NotificationsService]\n };\n }*/\n}","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { ProjectchangeService } from 'src/app/layout/project-change/projectchange.service';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { ProjectService } from '../../project-management/project.service';\nimport { RoleService } from '../../role-management/role.service';\nimport { EventCalendarService } from '../event-calendar.service';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\nimport * as XLSX from 'xlsx';\nimport * as moment from 'moment';\nimport { UhLeadsService } from '../../uhleads.service';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-appointment',\n templateUrl: './appointment.component.html',\n styleUrls: ['./appointment.component.css']\n})\nexport class AppointmentsComponent implements OnInit,AfterViewInit {\n projectId: any;\n user_details: any;\n eventDetails: any = []\n search: any;\n page: any = 1;\n pageCount: any = 10;\n isLoading: Boolean = false\n noRecords: Boolean = false\n cardCount = {\n All: 0,\n Cancelled: 0,\n Reschdeuled: 0,\n Upcoming: 0\n }\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n sideViewerData: any;\n EventType: any = 'All'\n tab: any;\n \n\n constructor(\n private eventService: EventCalendarService,\n private formBuilder: FormBuilder,\n private toastrService: ToastrService,\n private projectchangeService: ProjectchangeService,\n private companyService: RoleService,\n private projectService: ProjectService,\n private SharedService: SharedService,\n private uhleadsService: UhLeadsService,\n ) {\n this.SharedService.pageEvent.emit({\n pageName: \"Events\",\n });\n \n }\n\n ngOnInit(): void {\n this.SharedService.pageEvent.emit({\n pageName: \"Events\",\n });\n this.user_details = JSON.parse(localStorage.getItem(\"userData\"))\n\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n\n }, 500);\n if (!this.projectId) {\n this.companyService.projectAdmin(this.user_details.companyId).subscribe((projects) => {\n this.projectId = projects[0][\"id\"]\n\n });\n }\n setTimeout(() => {\n this.getEventsList()\n this.getEventsCardCount()\n\n // this.setupCalendarDetails()\n }, 600);\n this.uhleadsService.pageNumber.subscribe((pageNo: any) => {\n if (pageNo) {\n this.page = pageNo;\n this.getEventsList();\n }\n });\n }\n ngAfterViewInit(): void {\n \n }\n getEventsList() {\n this.isLoading = true\n let paylaod = {\n projectId: this.projectId,\n AgentId: this.user_details.id,\n page: this.page,\n EventType: this.EventType\n }\n this.eventService.getAllEventList(paylaod).subscribe((Data: any) => {\n if (Data.status === true) {\n this.eventDetails = Data.data.rows\n this.pageCount = Data.data.count\n this.noRecords = false\n }\n else {\n this.noRecords = true\n this.eventDetails = []\n this.page = 1\n this.pageCount = 0\n // this.toastrService.error(Data.message)\n }\n this.isLoading = false\n\n })\n }\n \n getEventsCardCount() {\n this.isLoading = true\n let paylaod = {\n projectId: this.projectId,\n AgentId: this.user_details.id,\n\n }\n this.eventService.getActivityCount(paylaod).subscribe((Data: any) => {\n if (Data.status === true) {\n this.cardCount.All = Data.data.All\n this.cardCount.Cancelled = Data.data.Cancelled\n this.cardCount.Reschdeuled = Data.data.Reschdeuled\n this.cardCount.Upcoming = Data.data.Upcoming\n }\n else {\n\n }\n this.isLoading = false\n\n })\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n sideNavData(data) {\n this.sideViewerData = data\n }\n\n projectChange(data) {\n this.projectId = data;\n this.getEventsList()\n this.getEventsCardCount()\n }\n\n exportList() {\n let obj = {\n projectId: this.projectId,\n AgentId: this.user_details.id,\n EventType: this.EventType,\n export: true\n }\n this.eventService.exportDetails(obj).subscribe((resp: any) => {\n\n let eventDetails = resp.data\n\n var fd = eventDetails.map(x => {\n x.Is_cancel = x.Is_cancel ? 'Yes' : 'No'\n x.Is_reschedule = x.Is_reschedule ? 'Yes' : 'No'\n x.cancelScheduleDateTime = x.cancelScheduleDateTime ? moment(x.cancelScheduleDateTime).format('YYYY-MM-DD HH:mm') : '--'\n x.RescheduleDateTime = x.RescheduleDateTime ? moment(x.RescheduleDateTime).format('YYYY-MM-DD HH:mm') : '--'\n x.Name = x.Name ? x.Name : '--'\n x.EmailId = x.EmailId ? x.EmailId : '--'\n x.MobileNumber = x.MobileNumber ? x.MobileNumber : '--'\n x.cancel_reason = x.cancel_reason ? x.cancel_reason : '--'\n x.Members = x.Members ? x.Members : '--'\n\n const { Name, EmailId, MobileNumber, AgentaName, AgentMailId, EventTitle, EventDescription, StartDate, StartTime, EndDate, EndTime, Members, Is_cancel, cancel_reason, cancelScheduleDateTime, Is_reschedule, RescheduleDateTime } = x;\n return { Name, EmailId, MobileNumber, AgentaName, AgentMailId, EventTitle, EventDescription, StartDate, StartTime, EndDate, EndTime, Members, Is_cancel, cancel_reason, cancelScheduleDateTime, Is_reschedule, RescheduleDateTime };\n })\n var json = fd;\n \n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = \"Appointment_Reports_\" + x.getTime() + '.xlsx';\n a.download = link;\n a.click();\n });\n }\n\n onPageChange(event: any) {\n this.page = event\n this.getEventsList()\n this.getEventsCardCount()\n }\n\n onClick(check, item: any) {\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else {\n this.tab = null;\n }\n this.EventType = item\n this.getEventsList()\n\n }\n\n getDateTime(data: any) {\n if (data) {\n return moment(data).format('YYYY-MM-DD HH:mm')\n }\n else {\n return '--'\n }\n }\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
    Event Title{{ sideViewerData.EventTitle }}\n
    Event Description{{ sideViewerData.EventDescription }}
    Members{{ sideViewerData.Members || '--' }}
    Start Date & Time{{ sideViewerData.StartDate }} {{ sideViewerData.StartTime }}
    End Date & Time{{ sideViewerData.EndDate }} {{ sideViewerData.EndTime }}
    Is Cancel ? {{ sideViewerData.Is_cancel?'Yes':'No' }}
    Cancellation Reason {{ sideViewerData.cancel_reason || '--' }}
    Cancellation Date & Time {{ getDateTime(sideViewerData.cancelScheduleDateTime) }}
    Is Reschedule ?{{ sideViewerData.Is_reschedule?'Yes':'No' }}
    Reschedule Date & Time {{ getDateTime(sideViewerData.RescheduleDateTime)}}
    Meeting Platform{{ sideViewerData.meetingDetails?sideViewerData.meetingDetails.MeetingPlatform:'--' }}
    Topic{{ sideViewerData.meetingDetails?sideViewerData.meetingDetails.Topic:'--' }}
    Start Time{{ sideViewerData.meetingDetails?getDateTime(sideViewerData.meetingDetails.StartTime) : '--'}}
    Host Email{{ sideViewerData.meetingDetails?sideViewerData.meetingDetails.HostEmail:'--' }}
    \n
    \n
    \n \n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
    User Name{{ sideViewerData.Name ||'--' }}
    User Email Id{{ sideViewerData.EmailId ||'--' }}
    User Mobile Number+{{\n sideViewerData.CountryCode}} - {{sideViewerData.MobileNumber}}{{sideViewerData.MobileNumber ||'--' }}
    \n
    \n
    \n\n \n\n \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n
    Activity
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{cardCount.All||'0'}}\n
    \n
    \n
    Total Events
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{cardCount.Cancelled||'0'}}\n\n
    \n
    \n
    Cancelled Events
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{cardCount.Reschdeuled||'0'}}\n\n
    \n
    \n
    Rescheduled Events
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{cardCount.Upcoming||'0'}}\n\n
    \n
    \n
    Upcoming Events
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n Total Events\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n\n \n \n
    \n\n
    \n
    \n
    \n Name\n \n
    \n
    \n EmailId\n \n \n Mobile Number\n \n \n Agent Name\n \n \n Agent Email Id\n \n \n Start Date - Time\n \n \n End Date - Time\n \n \n Is cancel?\n Is Rescheudle?\n \n Is cancel?\n \n Is Rescheudle?\n Actions
    \n\n
    \n \n\n
    \n\n
    \n {{ item.EmailId ||'--' }}\n \n

    \n +{{ item.CountryCode }}{{ item.MobileNumber }}\n

    \n

    \n {{ item.MobileNumber || '--'}}\n

    \n
    \n {{ item.agentDetails.FirstName }} {{ item.agentDetails.LastName }}\n \n {{ item.agentDetails.Mailid }}\n \n {{ item.StartDate }} {{ item.StartTime }}\n \n {{ item.EndDate }} {{ item.EndTime}}\n \n {{ item.Is_cancel?'Yes':'No' }}\n {{ item.Is_reschedule ?'Yes':'No'\n }}\n \n {{ item.Is_cancel?'Yes':'No' }}\n \n {{ item.Is_reschedule ?'Yes':'No'\n }}\n \n
    \n \n \n \n \n \n\n
    \n
    \n
    \n \n\n
    Loading Data
    Please wait while we fetch the data for\n you
    \n
    \n
    \n
    \n \n
    No records found.
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    ","import { AuthService } from \"./../../../account/auth/auth.service\";\nimport { SharedService } from \"./../../../shared/shared.service\";\nimport { Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\nimport * as xlsx from \"xlsx\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { MarketingService } from \"../../marketing/marketing.service\";\nimport { RoleService } from \"../../role-management/role.service\";\nimport { EventCalendarService } from \"../event-calendar.service\";\nimport { ToastrService } from \"ngx-toastr\";\n\n@Component({\n selector: 'app-auto-call-sms',\n templateUrl: './auto-call-sms.component.html',\n styleUrls: ['./auto-call-sms.component.css']\n})\nexport class AutoCallSMSComponent implements OnInit {\n private ProjectId: any;\n private admin: boolean;\n private userData: any;\n public callData: any[] = [];\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: string;\n public statusValue: any = \"autosms\";\n public page: any = 1;\n public pageSize: any = 8;\n isLoading: Boolean = false\n noRecords: Boolean = false\n\n @ViewChild(\"uploadFile\") uploadFile;\n public numberOfRecords: number = 0;\n public project: Subscription;\n\n\n constructor(\n private readonly sharedService: SharedService,\n private readonly marketingService: MarketingService,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n private companyService: RoleService,\n private EventCalendarService: EventCalendarService,\n private ToastrService: ToastrService,\n\n ) { }\n ngOnInit() {\n this.sharedService.pageEvent.emit({\n pageName: \"Auto Call/SMS\",\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"))\n\n setTimeout(() => {\n this.ProjectId = this.projectchangeService._projectId;\n this.getSMSDetails()\n\n }, 500);\n\n if (!this.ProjectId) {\n this.companyService.projectAdmin(this.userData.companyId).subscribe((projects) => {\n this.ProjectId = projects[0][\"id\"]\n this.getSMSDetails()\n\n });\n }\n\n }\n\n // getCompanyId() {\n // this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // // this.project = this.sharedService.projectId.subscribe((data) => {\n // // if (data) {\n // // this.projectId = data;\n // // this.getCompanydata();\n // // }\n // // });\n // setTimeout(() => {\n // this.ProjectId = this.projectchangeService._projectId;\n // this.getSMSDetails();\n // }, 500);\n // this.sharedService.pageEvent.emit({ pageName: \"Auto SMS Marketing\" });\n // }\n\n\n getSMSDetails() {\n this.isLoading = true\n this.EventCalendarService.AutoSMSRecrds(this.ProjectId,this.userData.id).subscribe((Data: any) => {\n if (Data.status == true) {\n this.callData = Data.data;\n this.noRecords = false\n\n }\n else {\n this.noRecords = true\n this.callData=[]\n\n // this.ToastrService.error(Data.message)\n }\n this.isLoading = false\n\n })\n }\n getCallDetails() {\n this.isLoading = true\n this.EventCalendarService.AutoCallRecrds(this.ProjectId,this.userData.id).subscribe((Data: any) => {\n if (Data.status == true) {\n this.callData = Data.data;\n this.noRecords = false\n\n }\n else {\n this.noRecords = true\n this.callData=[]\n // this.ToastrService.error(Data.message)\n }\n this.isLoading = false\n\n })\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n dropdownSelect(Data: any) {\n if (this.ProjectId) {\n\n if (this.statusValue != 'autosms') {\n this.getCallDetails();\n }\n else {\n this.getSMSDetails();\n }\n }\n }\n\n projectChange(data) {\n this.ProjectId = data;\n if (this.ProjectId) {\n if (this.statusValue != 'autosms') {\n this.getCallDetails();\n }\n else {\n this.getSMSDetails();\n }\n }\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n From\n\n \n \n To\n \n \n Type\n \n \n SMS Sent\n\n \n \n Call Dialed\n\n \n \n Reminder\n\n \n \n Response\n\n \n \n Scheduled Time\n\n \n \n Scheduled Time\n\n \n
    {{ item[\"CallerId\"] || \"-\" }}\n {{ item[\"RecipientNumber\"] }}\n {{ item[\"Type\"] || \"-\" }}\n {{\n item[\"SMSSent\"] !== \"No\"\n ? (item[\"SMSSent\"] | date: \"short\")\n : \"No\"\n }}\n \n {{\n item[\"CallDialed\"] !== \"No\"\n ? (item[\"CallDialed\"] | date: \"short\")\n : \"No\"\n }}\n {{ item[\"Reminder\"] || \"-\" }}{{ item[\"Feedback\"]=='1'?'Yes':item[\"Feedback\"]=='2'?'No':'--'}}\n {{ item[\"ScheduledSMSTime\"] | date: \"medium\" }}\n \n {{ item[\"ScheduledCallTimeUTC\"] | date: \"medium\" }}\n
    \n
    \n \n\n
    Loading Data
    Please wait while we fetch the data for\n you
    \n
    \n
    \n
    \n \n
    No records found.
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { ProjectchangeService } from 'src/app/layout/project-change/projectchange.service';\nimport { RoleService } from '../role-management/role.service';\nimport { EventCalendarService } from './event-calendar.service';\nimport { environment } from '../../../environments/environment';\nimport * as moment from 'moment';\nimport { ProjectService } from '../project-management/project.service';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { EventScheduleService } from '../event-schedule/event-schedule.service';\nconst timeDataset = require('./timedataset.json')\nconst countryCodes = require('../../../assets/allcountryDetails.json');\n\ndeclare var EventCalendar: any\ndeclare let $: any;\n@Component({\n selector: 'app-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.css']\n})\n\nexport class CalendarComponent implements OnInit {\n projectId: any = 0\n event_form: FormGroup;\n share_event_details: FormGroup;\n user_details: any\n eventDetails: any = []\n upcomingEventList: any = []\n membersEmail: any = []\n shareMembersEmail: any = []\n showEventDetail: any = {}\n isShowing: Boolean = false;\n is_project_change: Boolean = false\n show_schedule_event: Boolean = true\n copyURL: any = null\n allProjects: any;\n projectDetails = {\n projectName: null,\n supportMail: null,\n ProjectId: null\n }\n showModal: boolean;\n startMinDate: any\n endMinDate: any;\n startTimeDataset: any;\n endTimeDataset: any;\n isLoading: Boolean = false\n noRecords: Boolean = false\n agentScheduledEvents: any = []\n countries: any[] = [];\n selectedCountryCode: any;\n selectedDate: any;\n constructor(\n private eventService: EventCalendarService,\n private formBuilder: FormBuilder,\n private toastrService: ToastrService,\n private projectchangeService: ProjectchangeService,\n private companyService: RoleService,\n private projectService: ProjectService,\n private SharedService: SharedService,\n private eventScheduleService: EventScheduleService,\n\n ) { }\n ngOnInit(): void {\n this.SharedService.pageEvent.emit({\n pageName: \"My Calendar\",\n });\n this.startMinDate = moment(new Date).format('YYYY-MM-DD');\n this.endMinDate = moment(new Date).format('YYYY-MM-DD');\n\n this.user_details = JSON.parse(localStorage.getItem(\"userData\"))\n\n\n\n let admin = false;\n this.projectService.dashboardProjects({\n admin: admin,\n companyId: this.user_details[\"companyId\"],\n userId: this.user_details[\"id\"],\n }).subscribe((Data) => {\n this.allProjects = Data\n });\n\n this.getStartEndTimeDataset()\n this.onInit()\n\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n let selectedProject = this.allProjects.filter(x => x.id == this.projectId);\n this.projectDetails.projectName = selectedProject[0].Name\n this.projectDetails.supportMail = selectedProject[0].SupportMail\n\n // this.copyURL = environment.BaseURL + \"calendar/\" + this.user_details.firstName + \"?id=\" + Buffer.from(this.user_details.id.toString(), 'binary').toString('base64').toString() + \"&pid=\" + Buffer.from(this.projectId.toString(), 'binary').toString('base64').toString()\n\n }, 500);\n\n if (!this.projectId) {\n this.companyService.projectAdmin(this.user_details.companyId).subscribe((projects) => {\n this.projectId = projects[0][\"id\"]\n let selectedProject = this.allProjects.filter(x => x.id == this.projectId);\n this.projectDetails.projectName = selectedProject[0].Name\n this.projectDetails.supportMail = selectedProject[0].SupportMail\n // this.copyURL = environment.BaseURL + \"calendar/\" + this.user_details.firstName + \"?id=\" + Buffer.from(this.user_details.id.toString(), 'binary').toString('base64').toString() + \"&pid=\" + Buffer.from(this.projectId.toString(), 'binary').toString('base64').toString()\n\n });\n }\n setTimeout(() => {\n this.getEventsList()\n this.getAgentEventDetails()\n // this.setupCalendarDetails()\n }, 600);\n\n this.countries = countryCodes\n }\n onInit() { // Form Initialize\n let d = new Date()\n \n // let currentDate = d.getFullYear() + \"-\" + this._pad((d.getMonth() + 1)) + \"-\" + d.getDate()\n let currentDate = d.getFullYear() + \"-\" + this._pad((d.getMonth() + 1)) + \"-\" + this._pad(d.getDate())\n let currentTime = d.getHours() + \":\" + d.getMinutes()\n this.selectedDate = currentDate\n this.event_form = this.formBuilder.group({\n EventTitle: ['', Validators.required],\n EventDescription: ['', Validators.required],\n EventType: [null, Validators.required],\n EventLocation: [null, Validators.required],\n Message: [''],\n MobileNumber: [''],\n CountryCode: [''],\n Members: ['', Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}$\")],\n StartDate: [currentDate],\n StartTime: ['', Validators.required],\n EndDate: [currentDate],\n EndTime: ['', Validators.required]\n })\n this.share_event_details = this.formBuilder.group({\n Message: ['Sample content They define what is the problem, who are the users, and what are the constraints and timeframes. Personally, the smaller these requirements meetings, the better, for instance.'],\n Members: ['', Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}$\")]\n })\n }\n\n getStartEndTimeDataset() { // For Time Dataset\n this.startTimeDataset = timeDataset\n .filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n });\n this.endTimeDataset = timeDataset\n .filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n });\n }\n\n get f() { // get Form Controls\n return this.event_form.controls;\n }\n\n addEvent() { // Add Event \n\n if (this.event_form.value['EndTime'] < this.event_form.value['StartTime']) {\n this.toastrService.error(\"Please select valid end time!\")\n }\n else {\n if (this.event_form.valid) {\n this.isShowing = !this.isShowing\n if (this.event_form.value['Members']) {\n this.membersEmail.push(this.event_form.value['Members'])\n }\n let payload = {\n ...this.event_form.value,\n AgentId: this.user_details.id,\n AgentMailId: this.user_details.mail,\n ProjectId: this.projectId ? this.projectId : 0,\n Members: this.membersEmail.join(\",\")\n }\n\n this.eventService.createEvent(payload).subscribe((Data: any) => {\n if (Data.status === true) {\n\n let ec = document.getElementById(\"ec\")\n let ecl = document.getElementsByClassName(\"ec-month\")\n\n for (var i = ecl.length - 1; 0 <= i; i--) {\n if (ecl[i] && ecl[i].parentElement)\n ecl[i].parentElement.removeChild(ecl[i]);\n }\n\n this.getEventsList()\n this.getAgentEventDetails()\n this.resetForm();\n this.toastrService.success(Data.message)\n }\n else {\n this.toastrService.warning(Data.message)\n }\n })\n }\n else {\n this.toastrService.error(\"Please fill mandatory fields!\")\n }\n }\n }\n\n resetForm() {\n if (this.event_form) {\n this.event_form.reset()\n }\n this.membersEmail = []\n this.selectedCountryCode = null\n this.onInit()\n }\n\n setupCalendarDetails() {\n let that = this\n let ec = new EventCalendar(document.getElementById('ec'), {\n view: 'dayGridMonth',\n height: '666px',\n headerToolbar: {\n start: 'prev,next today',\n center: 'title',\n end: 'dayGridMonth,timeGridWeek,timeGridDay'\n },\n\n scrollTime: '09:00:00',\n events: this.bindEventCal(),\n eventClick: function (eventClickInfo) {\n let SelectedeventDetails = eventClickInfo.event\n let event = that.eventDetails.filter(x => x.id == SelectedeventDetails.id)\n that.showEventDetail = event[0]\n that.showModal = true\n },\n views: {\n timeGridWeek: { pointer: true },\n },\n dayMaxEvents: true,\n nowIndicator: true\n });\n // this.isLoading=false\n }\n\n bindEventCal() {\n let tempeventData = []\n\n for (let i = 0; i < this.eventDetails.length; i++) {\n const element = this.eventDetails[i];\n let color;\n switch (element.EventType) {\n case 'General Meetings':\n color = '#EFF3FE';\n // color = '#5E81F4'\n break;\n case 'Conference':\n color = '#F2FDF7'\n break;\n case 'Board Meeting':\n color = '#FFF2F3'\n break;\n case 'Client Meeting':\n color = '#FEF9EE'\n break;\n\n default:\n color = \"#FE6B64\"\n break;\n }\n tempeventData.push({\n // title: element.EventTitle ? element.EventTitle : 'Meeting with ' + element.Name, color: color, id:element.id,start: element.StartDate + \" \" + element.StartTime, end: element.EndDate + \" \" + element.EndTime\n id: element.id, start: element.StartDate + \" \" + element.StartTime, end: element.EndDate + \" \" + element.EndTime, title: element.EventTitle ? element.EventTitle : 'Meeting with ' + element.Name, color: color\n })\n\n // tempeventData.push({\n // id:element.id,start: element.StartDate + \" \" + element.StartTime, end: element.EndDate + \" \" + element.EndTime, title: element.EventTitle ? element.EventTitle : 'Meeting with ' + element.Name, color: color\n // })\n }\n\n return tempeventData;\n\n\n }\n\n getEventsList() {\n this.eventDetails = []\n let d = new Date()\n // let currentDate = d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + d.getDate();\n // let currentTime = moment(d).format('HH:mm')\n let payload = {\n ProjectId: this.projectId ? this.projectId : 0,\n AgentId: this.user_details.id,\n AgentMailId: this.user_details.mail,\n\n }\n // this.isLoading = true\n let apiName = this.show_schedule_event ? 'getScheduleEvent' : 'getEvent'\n this.eventService.getEvent(payload).subscribe((Data: any) => {\n\n if (Data.status === true) {\n\n this.eventDetails = Data.data.filter(x => {\n if (x.EmailId) {\n x.Members = x.EmailId + \",\" + x.Members\n }\n if (x.Members) {\n x.Members = x.AgentMailId + \",\" + x.Members\n }\n else {\n x.Members = x.AgentMailId\n }\n return x\n })\n }\n else {\n this.eventDetails = []\n }\n // this.isLoading = false\n this.upcomingEvents()\n this.setupCalendarDetails()\n });\n\n }\n\n upcomingEvents() {\n let payload = {\n ProjectId: this.projectId ? this.projectId : 0,\n AgentId: this.user_details.id,\n AgentMailId: this.user_details.mail\n }\n this.eventService.getUpcomingEvent(payload).subscribe((Data: any) => {\n if (Data.status === true) {\n this.upcomingEventList = Data.data.filter(x => {\n if (x.EmailId) {\n x.Members = x.EmailId + \",\" + x.Members\n }\n if (x.Members) {\n x.Members = x.AgentMailId + \",\" + x.Members\n }\n else {\n x.Members = x.AgentMailId\n }\n return x\n })\n }\n else {\n this.upcomingEventList = []\n }\n });\n }\n\n _pad(num) {\n let norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n }\n\n projectChange(data) {\n\n this.show_schedule_event = false\n this.projectId = data;\n\n let selectedProject = this.allProjects.filter(x => x.id == this.projectId);\n this.projectDetails.ProjectId = this.projectId\n this.projectDetails.projectName = selectedProject[0].Name\n this.projectDetails.supportMail = selectedProject[0].SupportMail\n\n\n // this.copyURL = environment.BaseURL + \"calendar/\" + this.user_details.firstName + \"?id=\" + Buffer.from(this.user_details.id.toString(), 'binary').toString('base64').toString() + \"&pid=\" + Buffer.from(this.projectId.toString(), 'binary').toString('base64').toString()\n\n let ec = document.getElementById(\"ec\")\n let ecl = document.getElementsByClassName(\"ec-month\")\n\n for (var i = ecl.length - 1; 0 <= i; i--)\n if (ecl[i] && ecl[i].parentElement)\n ecl[i].parentElement.removeChild(ecl[i]);\n\n this.getEventsList()\n this.getAgentEventDetails()\n }\n\n enterKey(event: any) {\n if (event.keyCode === 13 || event.keyCode === 188) {\n if (event.keyCode === 188) {\n this.event_form.controls['Members'].setValue(this.event_form.value['Members'].split(\",\")[0])\n }\n if (this.share_event_details.valid) {\n this.membersEmail.push(this.event_form.value['Members'])\n this.event_form.controls['Members'].setValue(null)\n }\n else {\n this.toastrService.warning(\"Please enter valid email!\")\n }\n }\n }\n\n removeMemberEmails(index: any) {\n this.membersEmail.splice(index, 1)\n }\n\n enterKeyShare(event: any) {\n // if(event.keyCode === 188){\n // this.share_event_details.controls['Members'].setValue(this.share_event_details.value['Members'].split(\",\")[0])\n // }\n if (event.keyCode === 13 || event.keyCode === 188) {\n if (event.keyCode === 188) {\n this.share_event_details.controls['Members'].setValue(this.share_event_details.value['Members'].split(\",\")[0])\n }\n if (this.share_event_details.valid) {\n this.shareMembersEmail.push(this.share_event_details.value['Members'])\n this.share_event_details.controls['Members'].setValue(null)\n }\n else {\n this.toastrService.warning(\"Please enter valid email!\")\n }\n\n }\n }\n\n removeShareMemberEmails(index: any) {\n this.shareMembersEmail.splice(index, 1)\n }\n\n showEventDetails(Details: any) {\n this.showEventDetail = Details\n }\n\n toggleSideNav() {\n this.isShowing = !this.isShowing\n // this.getStartEndTimeDataset()\n }\n\n showShareForm() {\n this.share_event_details.controls['Members'].setValue(null);\n this.shareMembersEmail = []\n }\n\n shareDetails() {\n\n if (this.share_event_details.value['Members']) {\n this.shareMembersEmail.push(this.share_event_details.value['Members'])\n }\n let req_payload = {\n ...this.share_event_details.value,\n Members: this.shareMembersEmail,\n ProjectId: this.projectId ? this.projectId : 0,\n id: this.user_details.id\n }\n this.eventService.shareEventDetails(req_payload).subscribe((Data: any) => {\n if (Data.status === true) {\n this.showShareForm();\n this.show()\n this.toastrService.success(Data.message);\n }\n else {\n this.toastrService.error(Data.message);\n }\n });\n\n }\n\n copyText() {\n if (this.projectId) {\n let encrypted_agentId = Buffer.from(this.user_details.id.toString(), 'binary').toString('base64').toString()\n let encryoted_projectId = Buffer.from(this.projectId.toString(), 'binary').toString('base64').toString()\n this.copyURL = environment.BaseURL + \"calendar/\" + this.user_details.firstName + \"?id=\" + encrypted_agentId.replace(\"=\", \"%3D\") + \"&pid=\" + encryoted_projectId.replace(\"=\", \"%3D\")\n navigator.clipboard.writeText(this.copyURL);\n this.toastrService.success(\"Copied!\")\n this.show()\n }\n else {\n this.toastrService.warning(\"Please select project!\")\n }\n\n }\n\n show() {\n document.getElementById(\"myDropdown\").classList.toggle(\"show\");\n }\n\n checkMettingLinkDuration(data: any) {\n let d = new Date()\n let currentDate = moment(new Date()).format('YYYY-MM-DD')\n let currentTime = moment(new Date()).format('HH:mm')\n\n if (data.StartDate == currentDate && data.EndTime >= currentTime) {\n return 'auto'\n }\n else {\n return 'none'\n }\n }\n\n selectedStartDate(event: any) {\n let d = new Date(event.target['value'])\n let curretnDate = moment(new Date()).format('YYYY-MM-DD')\n // this.getTimeSlots(event.target['value'])\n this.startTimeDataset = timeDataset\n this.endTimeDataset = timeDataset\n this.selectedDate = event.target['value']\n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n if (agentEventDetailsForSelectedDate && agentEventDetailsForSelectedDate.length) {\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let AgentEventStartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('HH:mm:ss ')\n let AgentEventEndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('HH:mm:ss ')\n this.startTimeDataset = this.startTimeDataset.filter(x => {\n if (x.time >= AgentEventStartTime.trim() && x.time <= AgentEventEndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n })\n this.endTimeDataset = this.endTimeDataset.filter(x => {\n if (x.time >= AgentEventStartTime.trim() && x.time <= AgentEventEndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n });\n\n }\n }\n else {\n if (this.selectedDate == moment(new Date()).format('YYYY-MM-DD')) {\n this.startTimeDataset = timeDataset.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n this.endTimeDataset = timeDataset.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n }\n else{\n this.startTimeDataset = timeDataset\n this.endTimeDataset = timeDataset\n }\n }\n }\n this.event_form.controls['EndDate'].setValue(event.target['value'])\n this.event_form.controls['StartTime'].setValue(null)\n this.event_form.controls['EndTime'].setValue(null)\n\n }\n\n selectedStartTime(event: any) {\n this.event_form.controls['EndTime'].setValue(null)\n\n this.endTimeDataset = this.startTimeDataset.filter(x => {\n if (x.time > event.target['value'] + \":00\")\n return x\n })\n\n // this.event_form.controls['EndTime'].value(this.endTimeDataset[0]['time'])\n }\n\n getAgentEventDetails() { // For Agent's Scheduled event\n let payload = {\n id: Buffer.from(this.user_details.id.toString(), 'binary').toString('base64').toString(),\n ProjectId: this.projectId\n }\n this.eventScheduleService.getAgentEventDetails(payload).subscribe((Data: any) => {\n if (Data.status === true) {\n this.agentScheduledEvents = Data.data\n // this.showcalendar = true\n let d = new Date()\n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let eventStartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('HH:mm:ss')\n let eventEndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('HH:mm:ss')\n\n this.startTimeDataset = this.startTimeDataset.filter(x => {\n\n if (x.time >= eventStartTime.trim() && x.time <= eventEndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n }\n })\n this.endTimeDataset = this.endTimeDataset.filter(x => {\n if (x.time >= eventStartTime.trim() && x.time <= eventEndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n }\n });\n }\n\n }\n\n }\n // else {\n // this.toastrservice.error(Data.message)\n // }\n })\n }\n\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.event_form.controls['CountryCode'].setValue(this.selectedCountryCode)\n\n }\n\n onInput(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n}\n","\n
    \n
    \n
    ×
    \n
    Create Event
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n\n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n
    \n
    \n
    \n
    {{item}}
    \n
    \n \n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n\n
      \n
      \n \n
    • \n \n \"\"\n {{\n country.name }} (+{{\n country.callingCodes[0] }})\n \n
    • \n
      \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n\n\n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n {{selectedDate | date:'medium'}}\n\n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n Copy\n Link\n Send invitation\n\n\n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    Upcoming events
    \n
    Don’t miss scheduled events
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n {{item.StartTime}}-{{item.EndTime}}\n\n
    \n\n
    \n
    {{item.EventTitle}}
    \n

    {{item.EventDescription}}

    \n
    \n
    \n
    \n
    \n
    \n
    No upcoming event for today!
    \n
    \n
    \n
    \n \n\n\n
    \n
    \n \n\n \n\n
    \n
    \n \n\n
    \n\n
    \n
    \n \n
    \n\n \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n
    Create Event
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    {{item}}
    \n
    \n \n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    Update Event
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    JK\n
    \n
    Krishna Jakkamsetti
    \n
    \n \n
    \n
    \n
    \n \n VS
    \n
    Vidya Sagar
    \n
    \n \n
    \n
    \n
    \n \n SK
    \n
    Srinivas Kandula
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n 02/08/2022\n
    \n
    \n
    \n
    \n
    \n \n
    \n 02:30 PM\n
    \n
    \n
    \n
    \n
    \n \n
    \n 02/08/2022\n
    \n
    \n
    \n
    \n
    \n \n
    \n 04:30 PM\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Event Details
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{showEventDetail.EventTitle}}\n

    \n {{showEventDetail.EventDescription}}\n

    \n
    \n
    \n\n \n
    \n
    \n\n
    \n \n
    \n\n \n

    \n {{showEventDetail.Members}}

    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.StartDate}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.StartTime}}\n\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.EndDate}}\n\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.EndTime}}\n\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n

    \n {{showEventDetail.EventType || '--'}}

    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.EventLocation || '--'}}

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.meetingDetails.HostEmail}}\n

    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.meetingDetails.StartTime | date: \"medium\"}}

    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n

    \n Start\n Meeting\n

    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.meetingDetails.Password}}

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.Message}}

    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Sender Details
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n\n
    \n
    \n
    \n
    \n
    \n
    {{item}}
    \n
    \n \n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Event Details
    \n \n
    \n
    \n
    \n
    \n

    \n {{showEventDetail.EventTitle}}

    \n
    \n
    \n

    \n {{showEventDetail.EventDescription}}

    \n
    \n\n\n
    \n \n
    \n

    \n {{showEventDetail.Members || '--'}}

    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.StartDate}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.StartTime}}\n\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.EndDate}}\n\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{showEventDetail.EndTime}}\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.EventType || '--'}}

    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.EventLocation || '--'}}

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.meetingDetails.HostEmail}}\n

    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.meetingDetails.StartTime | date: \"medium\"}}

    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n

    \n\n Start\n Meeting \n

    \n
    \n
    \n
    \n \n
    \n

    \n {{showEventDetail.meetingDetails.Password}}

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n","import { Injectable } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { HttpClientService } from 'src/app/httpclient.service';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventCalendarService {\n baseApiUrl = environment.baseApiUrl2;\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder) {\n\n }\n createEvent(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/createEvent`, data);\n }\n getEvent(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/getEvents`, data);\n }\n getUpcomingEvent(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/getUpcomingEvents`, data);\n }\n getScheduleEvent(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventSchedule/getScheduleEvent`, data);\n }\n shareEventDetails(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/shareEventDetails`, data);\n }\n getAllEventList(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/getAllEventList`, data);\n }\n getActivityCount(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/getActivityCount`, data);\n }\n exportDetails(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/exportDetails`, data);\n }\n AutoSMSRecrds(data?: any,agentId?:any) {\n return this.http.get(`${this.baseApiUrl}eventCal/AutoSMSRecrds/${data}/${agentId}`);\n }\n AutoCallRecrds(data?: any,agentId?:any) {\n return this.http.get(`${this.baseApiUrl}eventCal/AutoCallRecrds/${data}/${agentId}`);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ElementRef,\n Inject,\n} from \"@angular/core\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { CallLogs } from \"src/app/pages/calllogs/models/CallLogs.model\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { ManagementService } from \"../management.service\";\nimport { DatePipe } from \"@angular/common\";\nimport {\n NgbCalendar,\n NgbDate,\n NgbDateParserFormatter,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { FormControl } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { TopbarComponent } from \"src/app/layout/topbar/topbar.component\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\ndeclare var $: any\n@Component({\n selector: \"app-calllogs\",\n templateUrl: \"./calllogs.component.html\",\n styleUrls: [\"./calllogs.component.less\"],\n providers: [DatePipe],\n})\nexport class CalllogsComponent implements OnInit {\n private userData: any;\n private projectId: any;\n public callLogs: any[] = [];\n public page: number = 1;\n public pageCount: number;\n public playing: boolean = false;\n public lastIndex: number = 1;\n public contacts: any[] = [];\n public contactslist: any[] = [];\n public dropdownSettings: IDropdownSettings;\n public selectAgent: any[] = [];\n public fromDate: NgbDate;\n public toDate: NgbDate;\n public previousAudio: HTMLAudioElement;\n public previousIndex: number;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n // public order1: boolean = false;\n public showFilter: boolean = false;\n public recentCalls: any = [];\n public liveCalls: any = [];\n incomingCalls: any = 0\n outgoingCalls: any = 0\n missedCalls: any = 0\n payload = {\n ProjectId: 0,\n page: this.page,\n workerSid: \"\",\n callType: 'all',\n calltatus: '',\n AgentMail: ['all'],\n start: null,\n end: null,\n search: ''\n }\n filtertype = [\n { id: 'incoming', name: 'Incoming', checked: false, value: 'Incoming' },\n { id: 'outgoing', name: 'outgoing', checked: false, value: 'Outgoing' }\n ]\n filterStatus = [\n { id: 'answer', name: 'Answered', checked: false, value: 'Answered' },\n { id: 'Missed', name: 'Missed', checked: false, value: 'Missed' }\n ]\n filterVoip = [\n { id: 'frejun', name: 'Frejun', checked: false, value: 'Frejun' },\n { id: 'twilio', name: 'Twilio', checked: false, value: 'Twilio' }\n ]\n selectFilterAgent: boolean = false\n showAgents: boolean = false\n usersSelectionArray: any[] = [];\n search: any = null;\n // sortOrder = \"des\";\n startDate: any;\n endDate: any;\n selectedIndexDate: string;\n showDateCustom: boolean = false;\n filterValue: string = \"all\";\n date1: any;\n date2: any;\n showDate: boolean = false\n\n @ViewChild(\"audio\") audio: ElementRef;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n @ViewChild(TopbarComponent) auth\n constructor(\n private sharedService: SharedService,\n private managementService: ManagementService,\n private agentService: CreateAgent,\n private calendar: NgbCalendar,\n public formatter: NgbDateParserFormatter,\n private layoutService: LayoutService,\n public projectchangeService: ProjectchangeService,\n public companyService: RoleService,\n private momentService: MomentFormatService,\n private handleError: ErrorHandlerService,\n\n private router: Router,\n\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) { }\n ngOnInit() {\n this.sharedService.pageEvent.emit({\n pageName: \"Agent Call Logs\",\n });\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.fromDate = this.calendar.getNext(this.calendar.getToday(), \"y\", -1);\n this.toDate = this.calendar.getToday();\n this.date1 = new FormControl(new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day + 1));\n this.date2 = new FormControl(new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day + 1));\n this.payload.start = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day + 1);\n this.payload.end = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day + 1);\n\n this.companyService.projectAdmin(this.userData['companyId']).subscribe((projects) => {\n\n this.projectId = this.projectchangeService._projectId;\n this.projectId = projects[0]['id']\n this.getCallCount();\n this.getLiveCalls();\n this.getRecentCalls();\n this.getCallLogs();\n this.getAgents();\n this.selectAgent = [];\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.dropdownSettings = {\n singleSelection: false,\n maxHeight: 197,\n itemsShowLimit: 3,\n allowSearchFilter: true,\n textField: \"Name\",\n // enableCheckAll: true,\n selectAllText: 'All',\n // limitSelection: -1,\n // clearSearchFilter: true,\n searchPlaceholderText: 'Search',\n noDataAvailablePlaceholderText: 'No data found.',\n\n };\n }\n\n selectedAgent(item?: any) {\n this.selectAgent = item.length == this.contactslist.length ? item : this.selectAgent\n if (item && item.length == 0) {\n this.selectAgent = []\n }\n let selectedAgents = this.selectAgent.length ? this.selectAgent.map(x => x.id) : []\n let agenetEmails = this.contactslist.filter(x => selectedAgents.includes(x.id));\n this.payload.AgentMail = agenetEmails.length ? agenetEmails.map(x => x.Mailid) : ['all']\n this.getCallLogs()\n }\n\n onDateChange() {\n this.getDateChange();\n }\n\n onPageChange() {\n if (!this.selectAgent[0]) {\n this.getCallLogs();\n } else {\n this.selectedAgent(this.selectAgent);\n }\n this.playing = !this.playing;\n }\n getLiveCalls() {\n this.managementService.getLiveCallLogs(this.projectId).subscribe((Data: any) => {\n this.liveCalls = Data\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n getRecentCalls() {\n this.managementService.getRecentCallLogs(this.projectId).subscribe((Data: any) => {\n this.recentCalls = Data\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n getCallLogs(callFrom?: any) {\n\n this.payload.ProjectId = this.projectId;\n this.payload.page = this.page;\n this.payload.workerSid = \"\";\n let req_payload = {\n ...this.payload,\n callFrom: this.is_service_provider?this.is_service_provider:'',\n callType: this.payload.calltatus ? this.payload.calltatus : this.payload.callType\n }\n let apiName = this.payload.search ? \"searchCallReports\" : \"getCallLogs\"\n\n this.managementService[apiName](req_payload)\n .subscribe((Data: any) => {\n this.callLogs = Data.data;\n this.pageCount = Data.count;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getDateChange() {\n this.managementService\n .getCallLogs({\n companyId: this.projectId,\n rowNumber: this.page - 1,\n workerSid: `${this.selectAgent[0] ? this.selectAgent[0][\"id\"] : \"\"}`,\n from: new Date(\n this.fromDate.year,\n this.fromDate.month - 1,\n this.fromDate.day + 1\n ),\n to: new Date(\n this.toDate.year,\n this.toDate.month - 1,\n this.toDate.day + 1\n ),\n })\n .subscribe((data) => {\n this.callLogs = data;\n if (data[0]) {\n this.pageCount = data[0][\"TotalCount\"];\n } else {\n this.pageCount = 0;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getAgents() {\n this.agentService.GetAllAgents(this.projectId).subscribe((data) => {\n\n this.contacts = data.map((agent) => ({\n id: agent[\"id\"],\n agentname: agent[\"FirstName\"] + \" \" + agent[\"LastName\"],\n Mailid: agent[\"Mailid\"],\n usersState: false,\n ProfilePhoto: agent[\"ProfilePhoto\"]\n }));\n this.contactslist = this.contacts\n\n // this.contacts.unshift({ id: \"\", Name: \"select All\" });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n playAudio(audio: HTMLAudioElement, index) {\n if (!this.callLogs[index][\"playing\"]) {\n this.callLogs[index][\"playing\"] = !this.callLogs[index][\"playing\"];\n if (this.callLogs[this.lastIndex][\"playing\"]) {\n this.callLogs[this.lastIndex][\"playing\"] =\n !this.callLogs[this.lastIndex][\"playing\"];\n this.previousAudio.pause();\n }\n this.lastIndex = index;\n this.previousAudio = audio;\n audio.play();\n } else {\n if (this.callLogs[index][\"playing\"]) {\n audio.pause();\n this.callLogs[index][\"playing\"] = !this.callLogs[index][\"playing\"];\n }\n }\n }\n\n callNumber(index) {\n let item =\n this.callLogs[index][\"Direction\"] === \"inbound\"\n ? this.callLogs[index][\"CallerNumber\"]\n : this.callLogs[index][\"CalledNumber\"];\n this.layoutService.callAgent.next(item);\n }\n\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n updateDateFilter(event: any) {\n\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n this.payload.search = ''\n this.page = 1\n this.search = ''\n this.payload.start = this.startDate;\n this.payload.end = this.endDate;\n\n this.getCallLogs()\n this.getCallCount()\n }\n\n sortOrder(feildName) {\n\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n // leaveGroup() {\n\n // }\n projectChange(data) {\n this.projectId = data;\n this.getLiveCalls();\n this.getRecentCalls();\n this.getCallLogs()\n this.getCallCount()\n this.getAgents();\n this.selectAgent = [];\n }\n onCheckboxChange(event: any) {\n this.payload.calltatus = '';\n this.filterStatus.forEach(element => {\n element.checked = false\n });\n this.filtertype.forEach(element => {\n if (element.value == event.target['value']) {\n element.checked = event.target['checked']\n }\n });\n let calltype = this.filtertype.filter(x => x.checked == true)\n this.payload.callType = calltype.length ? calltype.length > 1 ? 'all' : calltype[0].value : 'all'\n this.search = ''\n this.payload.search = ''\n this.page = 1\n this.getCallLogs()\n }\n onCheckboxChangeStatus(event: any) {\n this.filterStatus.forEach(element => {\n if (element.value == event.target['value']) {\n element.checked = event.target['checked']\n }\n });\n\n\n let callstatus = this.filterStatus.filter(x => x.checked == true)\n if (this.payload.callType == 'Incoming') {\n let tempCallStatusValue = callstatus.length ? callstatus.length > 1 ? 'Incoming' : callstatus[0].value : 'Incoming'\n if (callstatus.length == 1) {\n if (tempCallStatusValue == 'Answered') {\n this.payload.calltatus = 'IncomingAnswered'\n }\n else if (tempCallStatusValue == 'Missed') {\n this.payload.calltatus = 'IncomingMissed'\n }\n }\n else {\n this.payload.calltatus = 'Incoming'\n\n }\n }\n else if (this.payload.callType == 'Outgoing') {\n let tempCallStatusValue = callstatus.length ? callstatus.length > 1 ? 'Outgoing' : callstatus[0].value : 'Outgoing'\n if (callstatus.length == 1) {\n if (tempCallStatusValue == 'Answered') {\n this.payload.calltatus = 'OutgoingAnswered'\n }\n else if (tempCallStatusValue == 'Missed') {\n this.payload.calltatus = 'OutgoingMissed'\n }\n }\n else {\n this.payload.calltatus = 'Outgoing'\n\n }\n }\n // this.payload.callType=callstatus.length ? callstatus.length>1?'all':callstatus[0].value:'all'\n this.search = ''\n this.payload.search = ''\n this.page = 1\n this.getCallLogs()\n }\n is_service_provider;\n onCheckBoxVoip(event: any) {\n this.filterVoip.forEach(element => {\n if (element.value == event.target['value']) {\n element.checked = event.target['checked']\n }\n });\n this.search = '';\n this.payload.search = '';\n this.page = 1;\n const allChecked = this.filterVoip.every(checkbox => checkbox.checked);\n const allUnchecked = this.filterVoip.every(checkbox => !checkbox.checked);\n if (allChecked || allUnchecked) {\n this.getCallLogs();\n this.is_service_provider=null;\n } else {\n const checkedValue = this.filterVoip.find(checkbox => checkbox.checked).value;\n this.is_service_provider = checkedValue;\n this.getCallLogs(checkedValue);\n }\n // this.getCallLogs(event.target['checked'] ? event.target['value'] : '')\n }\n\n resetFilter() {\n this.filterStatus.forEach(element => {\n element.checked = false\n });\n this.filtertype.forEach(element => {\n element.checked = false\n });\n this.filterVoip.forEach(element => {\n element.checked = false\n });\n this.payload.callType = 'all'\n this.payload.calltatus = '';\n this.selectFilterAgent = false;\n this.showAgents = false\n this.contacts.forEach((x) => {\n return (x.usersState = false);\n });\n this.usersSelectionArray = []\n this.payload.AgentMail = ['all']\n this.getCallLogs()\n }\n\n onAgentFilterCheckbox(event: any) {\n\n this.showAgents = true\n if (event.target['checked'] == true) {\n this.selectFilterAgent = true\n this.showAgents = true\n this.checkAllusers(event)\n }\n else {\n this.selectFilterAgent = false\n this.showAgents = false\n this.contacts.forEach((x) => {\n return (x.usersState = event.target.checked);\n });\n this.usersSelectionArray = []\n\n this.payload.AgentMail = ['all']\n this.getCallLogs()\n }\n\n }\n\n // USERS MULTI SELECT HANDLE\n usersSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.usersSelectionArray.push(s);\n } else {\n var index = this.usersSelectionArray.indexOf(s);\n if (index > -1) {\n this.usersSelectionArray.splice(index, 1);\n }\n }\n this.payload.AgentMail = this.usersSelectionArray.length > 0 ? this.usersSelectionArray : ['all']\n this.getCallLogs()\n }\n\n checkAllusers(ev) {\n this.usersSelectionArray = [];\n this.contacts.forEach((x) => {\n if (ev.target.checked === true) {\n this.usersSelectionArray.push(x.Mailid);\n }\n return (x.usersState = ev.target.checked);\n });\n this.payload.AgentMail = this.usersSelectionArray.length > 0 ? this.usersSelectionArray : ['all']\n this.getCallLogs()\n }\n isAllCheckedusers() {\n var rValue = this.contacts.every((_) => _.usersState);\n return rValue;\n }\n unCheckusersSelectionArray() {\n this.usersSelectionArray = [];\n this.contacts.forEach((x) => {\n return (x.usersState = false);\n });\n }\n getAgentName(val) {\n var contactsList = this.contacts;\n var name = contactsList.filter((x) => x.Mailid === val)[0];\n return name.agentname;\n }\n agentSearch(data: any) {\n let serachDetails = data.target.value;\n let agentnames = this.contactslist\n this.contacts = agentnames.filter(x => (x.agentname.toLowerCase()).includes(serachDetails.toLowerCase()));\n }\n onInput(data: any) {\n let serachdata = data.target.value;\n this.page = 1\n this.payload.search = serachdata\n this.getCallLogs()\n }\n // toggleSort(column, order){\n // if (this.sortOrder == 'asc'){\n // this.sortOrder ='des'\n // }else{\n // this.sortOrder = 'asc';\n // }\n // this.sortTableData(column, this.sortOrder);\n // }\n dateSelection(event) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n this.filterValue = 'custom';\n this.showDateCustom = true;\n this.selectedIndexDate = event.target.value;\n } else if (event.target.value == \"24hrs\") {\n this.showDateCustom = false;\n this.filterValue = '24hrs'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n } else if (event.target.value == \"72hrs\") {\n this.showDateCustom = false;\n this.filterValue = '72hrs'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n } else if (event.target.value == \"07days\") {\n this.showDateCustom = false;\n this.filterValue = '07days'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n } else if (event.target.value == \"14days\") {\n this.showDateCustom = false;\n this.filterValue = '14days'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n } else if (event.target.value == \"30days\") {\n this.showDateCustom = false;\n this.filterValue = '30days'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n }\n else if (event.target.value == \"yearly\") {\n this.showDateCustom = false;\n this.filterValue = 'yearly'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n }\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDateCustom == false) {\n this.showDateCustom = true;\n }\n }\n filterData() {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n this.payload.start = this.startDate\n this.payload.end = this.endDate\n this.getCallLogs()\n this.getCallCount()\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n sidenavData: any = null\n sideNavData(item?: any) {\n this.sidenavData = item\n }\n getCallCount() {\n this.payload.ProjectId = this.projectId;\n this.payload.page = this.page;\n this.payload.workerSid = \"\";\n let req_payload = {\n ...this.payload,\n }\n\n this.managementService.callsCount(req_payload).subscribe((Data: any) => {\n\n this.missedCalls = parseInt(Data.Missed)\n this.incomingCalls = parseInt(Data.Incoming)\n this.outgoingCalls = parseInt(Data.Outgoing)\n\n }, (error) => {\n this.handleError.handleError(error);\n });\n }\n}\n","\n\n
    \n
    \n
    ×
    \n
    Overview
    \n
    \n
    \n \n \n
    \n Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n
    Called by{{sidenavData.AgentName}}
    Date & Time{{ sidenavData.createdAt | date: \"medium\" }}
    Call Recording\n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n

    Active Calls

    \n

    {{liveCalls.length || '00'}}

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    IncomingOutgoingMissed
    {{incomingCalls || '00'}} {{outgoingCalls || '00'}} {{missedCalls || '00'}}
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Team MemberCallerTimeStatus
    {{item.AgentName}}{{item.Direction == 'outbound'?item.CalledNumber:item.CallerNumber}}{{item.RecordingDuration||'0'}} sec.\n
    \n {{\n item.CallAnswered === \"Yes\"\n ? 'Answered'\n : \"Not Answered\"\n }}\n
    \n
    \n
    No live call logs...
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Team MemberCallerTimeStatus
    {{item.AgentName}}{{item.Direction == 'outbound'?item.CalledNumber:item.CallerNumber}}{{item.RecordingDuration||'0'}} sec.\n
    \n {{\n item.CallAnswered === \"Yes\"\n ? 'Answered'\n : \"Not Answered\"\n }}\n
    \n
    \n
    No recent call logs...
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Agent Live status
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n \n Reset Filter\n
    \n
    \n\n
    \n
    \n
    Roles
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    close
    \n
    \n \n
    \n
      \n\n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    Type
    \n
    \n \n \n
    \n\n
    \n
    \n
    Status
    \n
    \n\n \n \n
    \n\n \n
    \n
    \n
    Service provider
    \n
    \n\n \n \n
    \n\n \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n\n \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n
    S No.\n Agent\n \n \n \n Type\n \n \n \n Service provider\n \n \n \n Status\n \n \n \n Log Time\n \n \n \n Caller\n \n Called\n \n Duration\n \n Actions\n
    \n {{index+1}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    {{ item[\"AgentName\"] ||'--'}}
    \n
    {{item[\"Mailid\"] ||'--'}}
    \n
    \n
    \n\n
    \n \n {{\n item[\"Direction\"] == \"outbound\" ? \"Outgoing\" : \"Incoming\"\n }}\n \n \n \n\n \n
    \n {{\n item[\"CallAnswered\"] === \"Yes\"\n ? 'Answered'\n : \"Not Answered\"\n }}\n
    \n
    \n {{item[\"createdAt\"]|date:\"medium\"}}\n \n
    \n \n
    \n \n \n
    \n
    \n {{\n item.Direction == 'outbound' ?item.CalledNumber:item.CallerNumber\n }}\n
    \n
    \n
    \n {{\n item.Direction == 'outbound' ?item.CallerNumber:item.CalledNumber\n }}\n \n {{ item[\"RecordingDuration\"] || \"0\" }} secs\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n No data available\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'agentname'\n})\nexport class AgentnamePipe implements PipeTransform {\n\n transform(value: string, args: any[]): any {\n if (!value) {\n return null;\n }\n if (args.find(data => data['value'] === value)) {\n let agentName = args.find(data => data['value'] === value);\n return agentName['name']\n\n } else {\n return value\n }\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n// import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { LayoutService } from 'src/app/layout/layout.service';\n\n@Component({\n selector: 'app-agentsdialog',\n templateUrl: './agentsdialog.component.html',\n styleUrls: ['./agentsdialog.component.css']\n})\nexport class AgentsdialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n public layoutService: LayoutService\n ) { }\n\n ngOnInit() {\n }\n\n addAgent(data) {\n this.layoutService.addAgent.next(data);\n this.dialogRef.close();\n }\n\n}\n","\n\t
    Available Agents
    \n\t
    \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{ folder.name }}\n\t\t\t\n\t\t
    \n\t\n
    \n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ChatviewComponent } from './chatview.component';\n\n\nconst routes: Routes = [\n { path: 'chat/chat-view', component: ChatviewComponent },\n { path: 'chat/chat-view/:channelSid', component: ChatviewComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ChatRoutingModule { }\n","import { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ChatRoutingModule } from './chat-routing.module';\nimport { ChatlistComponent } from './chatlist/chatlist.component';\nimport { ChatdetailsComponent } from './chatdetails/chatdetails.component';\nimport { ChatinfoComponent } from './chatinfo/chatinfo.component';\nimport { ChatviewComponent } from './chatview.component';\nimport { FormsModule } from '@angular/forms';\n// import { MatDialogModule, MatProgressSpinnerModule, MatSelectModule, MatTabsModule, MatListModule, MatIconModule } from '@angular/material';\nimport { AgentnamePipe } from './agentname.pipe';\nimport { AgentsdialogComponent } from './agentsdialog/agentsdialog.component';\nimport { PickerModule } from '@ctrl/ngx-emoji-mart';\nimport { ProfilephotoPipe } from './profilephoto.pipe';\nimport { LoginstatusPipe } from './loginstatus.pipe'\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n@NgModule({\n declarations: [\n ChatviewComponent,\n ChatlistComponent,\n ChatdetailsComponent,\n ChatinfoComponent,\n AgentnamePipe,\n AgentsdialogComponent,\n ProfilephotoPipe,\n LoginstatusPipe,\n ],\n imports: [\n CommonModule,\n ChatRoutingModule,\n FormsModule,\n MatProgressSpinnerModule,\n MatSelectModule,\n MatTabsModule,\n MatDialogModule,\n NgbModule,\n MatListModule,\n MatIconModule,\n PickerModule\n ],\n exports: [ChatviewComponent, ProfilephotoPipe, AgentnamePipe]\n})\nexport class ChatModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-chatdetails',\n templateUrl: './chatdetails.component.html',\n styleUrls: ['./chatdetails.component.css']\n})\nexport class ChatdetailsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-chatinfo',\n templateUrl: './chatinfo.component.html',\n styleUrls: ['./chatinfo.component.css']\n})\nexport class ChatinfoComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","

    chatinfo works!

    \n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-chatlist',\n templateUrl: './chatlist.component.html',\n styleUrls: ['./chatlist.component.css']\n})\nexport class ChatlistComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","

    chatlist works!

    \n","import { AgentsdialogComponent } from \"./agentsdialog/agentsdialog.component\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { Client, Conversation } from \"@twilio/conversations\";\nimport {\n Component,\n Input,\n OnInit,\n AfterViewInit,\n ViewChild,\n ElementRef,\n OnDestroy,\n} from \"@angular/core\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { TicketsService } from \"../tickets/tickets.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\n// import { MatDialog } from \"@angular/material\";\nimport { SocketService } from \"src/app/socket.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\n\ndeclare const Twilio: any;\n@Component({\n selector: \"app-chatview\",\n templateUrl: \"./chatview.component.html\",\n styleUrls: [\"./chatview.component.css\"],\n})\nexport class ChatviewComponent implements OnInit, OnDestroy {\n client;\n channel;\n messages = [];\n session = {\n token: null,\n identity: null,\n isInitialized: false,\n isLoading: false,\n expired: false,\n };\n customerInformation: any = {};\n chatMessage: string = \"\";\n task: any[] = [];\n index: number = 0;\n isloading: boolean = false;\n @Input() workerJS: any;\n @Input() worker: any;\n isAvailable: boolean = false;\n userData: any;\n subscriprion: any;\n prevTask: any;\n @Input() taskQueues;\n @Input() isChat;\n transferQueue: string;\n selectedIndex = 0;\n agents: any[] = [];\n prevChannelSid: any;\n currentChannelSid: any;\n unReadMessages: number = 0;\n customerTickets: any[] = [];\n projectId;\n companyAgents: any[] = [];\n companyAgent: any;\n totalAgents: any[] = [];\n previousChannels: any[] = [];\n isIconShow: boolean = false;\n projectChange: boolean = true;\n projects: any = []\n @ViewChild(\"chatContainer\") chatContainer!: ElementRef;\n\n scrollTop() {\n if (this.messages && this.messages.length > 0) {\n setTimeout(() => {\n this.chatContainer.nativeElement.scrollTop =\n this.chatContainer.nativeElement.scrollHeight;\n }, 20);\n }\n }\n\n constructor(\n private route: ActivatedRoute,\n private layoutService: LayoutService,\n private ticketsService: TicketsService,\n private sharedService: SharedService,\n private agentService: CreateAgent,\n private dialog: MatDialog,\n private socketService: SocketService,\n private roleService: RoleService,\n public projectchangeService: ProjectchangeService,\n\n ) {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.getProjects()\n }\n\n ngOnInit() {\n this.socketService.connect();\n\n // this.projectId = this.projectchangeService._projectId;\n\n // if(this.projectId){\n // this.fetchAgentChannels();\n // this.getAgents();\n // this.roleService.fetchRoles(this.projectId).subscribe((data) => {\n // this.taskQueues = this.projectId.map((role) => ({\n // friendlyName: role[\"TwilioSkillName\"],\n // sid: role[\"RoleSid\"],\n // }));\n // });\n // }\n\n // this.sharedService.projectId.subscribe((data) => {\n\n // if (data) {\n // this.projectId = data;\n // if (this.projectChange) {\n // this.fetchAgentChannels();\n // }\n // this.projectChange = false;\n // this.getAgents();\n // this.roleService.fetchRoles(data).subscribe((data) => {\n // this.taskQueues = data.map((role) => ({\n // friendlyName: role[\"TwilioSkillName\"],\n // sid: role[\"RoleSid\"],\n // }));\n // });\n // }\n // });\n this.getAgentNames();\n\n this.socketService.status.subscribe((data) => {\n this.getAgentNames();\n });\n\n // if (this.userData['companyId'] !== 0) {\n // this.companyId = this.userData['companyId'];\n // this.getAgents();\n // this.agentService.GetAllRoles(this.companyId).subscribe(data => {\n // this.taskQueues = data.map(role => ({ friendlyName: role['TwilioSkillName'], sid: role['RoleSid'] }));\n // })\n // }\n\n\n this.isAvailable = true;\n this.fetchTasks();\n\n setTimeout(() => {\n\n this.layoutService.agentChats.subscribe((data) => {\n this.agents = data;\n });\n }, 3000);\n\n this.layoutService.openChat.subscribe((data) => {\n this.selectedIndex = 1;\n });\n }\n\n ngAfterViewChecked() {\n // this.chatContainer.nativeElement.scrollTop =\n // this.chatContainer.nativeElement.scrollHeight;\n }\n\n ngOnDestroy() {\n this.layoutService.tasks.next(this.task);\n this.subscriprion.unsubscribe();\n this.layoutService.newTask.next(\"\");\n this.layoutService.agentChats.next(this.agents);\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data.map((data) => ({\n name: data[\"FirstName\"] + \" \" + data[\"LastName\"],\n value: data[\"workerFriendlyName\"],\n profilePhoto: data[\"ProfilePhoto\"],\n Status: data[\"Status\"],\n }));\n this.sharedService.totalAgents.next(this.totalAgents);\n });\n }\n\n async agentToagentChat() {\n\n //await Twilio.Chat.Client.create(this.worker.tokens.access).then(\n\n var client = await new Client(this.worker.tokens.access);\n //(client) => {\n this.client = client;\n //this.client.on(\"channelInvited\", (channel) => {\n this.client.on(\"conversationJoined\", (channel) => {\n // this.layoutService.openChat.next(true);\n this.selectedIndex = 1;\n\n this.prevChannelSid = channel.sid;\n if (this.prevChannelSid !== this.currentChannelSid) {\n\n if (\n !this.agents.find(\n (data) => data[\"channel\"][\"sid\"] === channel[\"sid\"]\n ) &&\n !this.previousChannels.find(\n (agentCh) => agentCh === channel[\"sid\"]\n )\n ) {\n this.agents.push({\n channel: channel,\n unReadMessages: 0,\n messages: [],\n channelSid: \"\",\n name: \"\",\n lastMessage: { body: \"\", timestamp: \"\" },\n members: [],\n });\n this.setupChannel(channel, this.agents.length - 1, \"agent\");\n this.currentChannelSid = channel.sid;\n // data = [];\n }\n } else {\n\n if (channel.attributes[\"channelType\"] === \"outboundSMS\") {\n this.agents.push({\n channel: channel,\n unReadMessages: 0,\n messages: [],\n channelSid: \"\",\n name: \"\",\n lastMessage: { body: \"\", timestamp: \"\" },\n members: [channel.attributes[\"to\"]],\n });\n this.setupChannel(channel, this.agents.length - 1, \"agent\");\n this.currentChannelSid = channel.sid;\n }\n }\n });\n //this.client.on(\"channelRemoved\", (channel) => {\n this.client.on(\"conversationLeft\", (channel) => {\n this.agents = this.agents.filter(\n (data) => data[\"channelSid\"] !== channel[\"sid\"]\n );\n this.messages = [];\n if (this.agents.length !== 0) {\n if (this.index === 0) {\n this.index = this.index + 1;\n } else {\n this.index = this.index - 1;\n }\n this.selectedChat(this.index, \"agent\");\n }\n });\n //});\n }\n\n fetchAgentChannels() {\n\n this.layoutService\n .agentPreviousChannels(\n { identity: this.userData[\"workerFriendlyName\"] },\n this.projectId\n )\n .subscribe((data) => {\n this.previousChannels = data[\"channels\"] ? data[\"channels\"] : [];\n\n setTimeout(() => {\n this.agentToagentChat();\n }, 5000);\n\n let index = 0;\n if (data[\"channels\"]) {\n for (let agentCh of data[\"channels\"]) {\n\n if (\n !this.agents.find((value) => value[\"channel\"][\"sid\"] === agentCh)\n ) {\n this.agents.push({\n channel: \"\",\n unReadMessages: 0,\n messages: [],\n channelSid: \"\",\n name: \"\",\n lastMessage: { body: \"\", timestamp: \"\" },\n members: [],\n });\n this.setupClient(agentCh, index, \"agent\");\n }\n\n index = index + 1;\n }\n setTimeout(() => {\n this.previousChannels = [];\n }, 3000);\n }\n });\n }\n\n selectedChat(index, client) {\n\n if (this.isChat) {\n this.layoutService.unReadCount.next(0);\n }\n\n if (client === \"client\") {\n if (this.task.length !== 0) {\n this.index = index;\n this.task[index][\"unReadMessages\"] = 0;\n this.intitalizeChat(this.task[index]);\n }\n } else {\n this.intitalizeChat(this.agents[index]);\n this.agents[index][\"unReadMessages\"] = 0;\n this.index = index;\n }\n }\n\n intitalizeChat(data) {\n\n\n if (data) {\n this.client = null;\n\n this.channel = data[\"channel\"];\n\n this.messages = data[\"messages\"];\n this.session = {\n token: null,\n identity: null,\n isInitialized: false,\n isLoading: false,\n expired: false,\n };\n if (this.selectedIndex == 0) {\n if (data) {\n this.layoutService\n .getCustomerChannelSid(data[\"attributes\"][\"channelSid\"])\n .subscribe((data) => {\n this.customerInformation[\"ticketId\"] = data[\"ticketNumber\"];\n this.customerInformation[\"desc\"] = data[\"desc\"];\n this.customerInformation[\"mail\"] = data[\"mail\"];\n this.customerInformation[\"phoneNumber\"] = data[\"phoneNumber\"];\n this.customerInformation[\"name\"] = data[\"reportedby\"];\n this.customerInformation[\"ticketId\"] = data[\"TicketId\"];\n if (this.customerInformation[\"mail\"]) {\n this.customerSearch(this.customerInformation[\"mail\"]);\n } else {\n this.searchPhoneNumber(this.customerInformation[\"phoneNumber\"]);\n }\n });\n }\n }\n this.session.token = this.worker.tokens.access;\n this.session.identity = this.worker.worker.friendlyName;\n this.scrollTop();\n }\n }\n\n fetchTasks() {\n\n\n this.layoutService.tasks.subscribe((reservations: any[]) => {\n if (reservations.length > 0) {\n this.task = reservations;\n let index = 0;\n for (let data of reservations) {\n if (!data[\"channel\"]) {\n this.setupClient(data[\"attributes\"][\"channelSid\"], index, \"client\");\n } else {\n this.getMessages(data[\"channel\"], index, \"client\");\n }\n index++;\n }\n if (this.task[0]) {\n this.selectedChat(0, \"client\");\n }\n } else {\n this.task = [];\n }\n });\n this.subscriprion = this.layoutService.newTask.subscribe((data) => {\n if (data !== \"\") {\n if (\n !this.task.find(\n (prevdata) =>\n data[\"attributes\"][\"channelSid\"] ===\n prevdata[\"attributes\"][\"channelSid\"]\n )\n ) {\n this.task.push(data);\n this.selectedIndex = 0;\n this.setupClient(\n data[\"attributes\"][\"channelSid\"],\n this.task.length - 1,\n \"client\"\n );\n setTimeout(() => {\n this.selectedChat(this.task.length - 1, \"client\");\n }, 10);\n }\n }\n });\n this.isAvailable = false;\n }\n\n async setupClient(channelSid, index, client) {\n this.isloading = true;\n const accessManager = new Twilio.AccessManager(this.worker.tokens.access);\n accessManager.on(\"tokenExpired\", function () {\n console.warn(\"token expired\");\n this.session.expired = true;\n });\n\n accessManager.on(\"error\", function (err) {\n console.error(\"An error occurred\");\n console.error(err);\n });\n\n let client1 = await new Client(this.worker.tokens.access);\n\n client1.on(\"connectionStateChanged\", (state) => {\n\n if (state == \"connected\") {\n }\n if (state == 'disconnecting') {\n }\n if (state == 'disconnected') {\n }\n if (state == 'denied') {\n }\n\n });\n\n\n if (client === \"client\") {\n // add Participant to conversation\n this.layoutService\n .addParticipantToConv(\n {\n ConversationSid: channelSid,\n identity: this.session.identity,\n\n },\n this.userData['companyId']\n )\n .subscribe((data) => { });\n\n var channel = await client1.getConversationBySid(channelSid);\n\n this.task[index][\"channel\"] = channel;\n\n } else {\n \n var channel = await client1.getConversationBySid(channelSid);\n \n this.agents[index][\"channel\"] = channel;\n }\n this.setupChannel(channel, index, client1);\n\n }\n\n addMessage(message) {\n\n\n var m = message.body;\n\n if (this.messages.find((data) => data[\"sid\"] === message[\"sid\"])) {\n return;\n }\n this.messages.push({\n body: m,\n author: message.author,\n timestamp: Date.now(),\n sid: message.sid,\n });\n this.scrollTop();\n\n }\n\n getMessages(channel, index, client) {\n\n\n if (client === \"client\") {\n if (this.task[index][\"messages\"].length === 0 && client === \"client\") {\n channel.getMessages().then((messages) => {\n this.task[index][\"messages\"].push({\n body: `You are now connected to ${this.task[index][\"attributes\"][\"name\"]}`,\n author: \"system\",\n style: \"special\",\n });\n messages.items.map((message, indices) => {\n if (\n message[\"conversation\"][\"sid\"] ===\n this.task[index][\"attributes\"][\"channelSid\"]\n ) {\n this.task[index][\"messages\"].push(message);\n }\n if (messages.items.length - 1 === indices) {\n this.task[index][\"lastMessage\"] = message;\n }\n });\n this.isloading = false;\n });\n }\n }\n if (\n client === \"agent\" &&\n channel[\"attributes\"][\"channelType\"] === \"agent\"\n ) {\n\n this.agents[index][\"messages\"] = [];\n let name;\n name = channel[\"attributes\"][\"members\"].filter(\n (data) => data !== this.userData[\"workerFriendlyName\"]\n );\n channel.getMessages().then((messages) => {\n // this.agents[index]['messages'].push({\n // body: `You are now connected to ${name}`,\n // author: 'system',\n // style: 'special'\n // });\n\n messages.items.map((message, indexes) => {\n this.agents[index][\"messages\"].push(message);\n if (indexes === messages.items.length - 1) {\n this.agents[index][\"lastMessage\"] = message;\n }\n });\n this.isloading = false;\n });\n if (this.selectedIndex === 1) {\n this.selectedChat(index, \"agent\");\n }\n }\n if (channel[\"attributes\"][\"channelType\"] === \"outboundSMS\") {\n\n\n this.agents[index][\"messages\"] = [];\n // let name;\n // name = channel['state']['attributes']['members'].filter(data => data !== this.userData['workerFriendlyName'])\n channel.getMessages().then((messages) => {\n this.agents[index][\"messages\"].push({\n body: `You are now connected to ${channel[\"attributes\"][\"to\"]}`,\n author: \"system\",\n style: \"special\",\n });\n messages.items.map((message, indexes) => {\n this.agents[index][\"messages\"].push(message);\n if (indexes === messages.items.length - 1) {\n this.agents[index][\"lastMessage\"] = message;\n }\n });\n this.isloading = false;\n });\n if (this.selectedIndex === 1) {\n this.selectedChat(index, \"agent\");\n }\n }\n }\n typingNotification\n setupChannel(channel, index, client) {\n\n\n if (channel.status === \"joined\") {\n\n if (client === \"agent\" && channel[\"attributes\"][\"channelType\"] === \"agent\") {\n let name;\n name = channel[\"attributes\"][\"members\"].filter(\n (data) => data !== this.userData[\"workerFriendlyName\"]\n );\n let unique = [...new Set(name)];\n this.agents[index][\"name\"] = name[0];\n this.agents[index][\"channelSid\"] = channel.sid;\n this.agents[index][\"attributes\"] = channel[\"attributes\"];\n this.agents[index][\"members\"] = unique;\n }\n this.getMessages(channel, index, client);\n } else {\n if (channel.status !== \"joined\") {\n channel\n .join()\n .then((member) => {\n if (client === \"agent\" && channel[\"attributes\"][\"channelType\"] === \"agent\") {\n let name;\n name = this.previousChannels[\"attributes\"][\"members\"].filter(\n (data) => data !== this.userData[\"workerFriendlyName\"]\n );\n let unique = [...new Set(name)];\n\n this.agents[index][\"name\"] = name[0];\n this.agents[index][\"channelSid\"] = channel.sid;\n this.agents[index][\"attributes\"] = channel[\"attributes\"];\n this.agents[index][\"members\"] = unique;\n }\n if (\n channel[\"attributes\"][\"channelType\"] === \"outboundSMS\"\n ) {\n this.agents[index][\"channelSid\"] = channel.sid;\n this.agents[index][\"attributes\"] = channel[\"attributes\"];\n // this.agents[index][\"name\"] = channel[\"state\"][\"attributes\"][\"to\"];\n this.agents[index][\"name\"] = channel[\"attributes\"][\"to\"];\n this.agents[index][\"members\"] = [\"from\"];\n }\n })\n .then(() => {\n this.getMessages(channel, index, client);\n })\n .catch((err) => {\n\n this.getMessages(channel, index, client);\n });\n }\n }\n channel.on(\"messageAdded\", (message) => {\n this.layoutService.unReadCount.subscribe((data) => {\n this.unReadMessages = data;\n });\n\n const clientMessage = this.task.findIndex(\n (data) => message.conversation.sid === data[\"attributes\"][\"channelSid\"]\n );\n const agentMessage = this.agents.findIndex(\n (data) => message.conversation.sid === data[\"channelSid\"]\n );\n\n if (agentMessage >= 0) {\n\n if (agentMessage === this.index && this.selectedIndex === 1) {\n this.addMessage(message.state);\n this.unreadMessage();\n this.agents[agentMessage][\"lastMessage\"] = message;\n } else {\n this.agents[agentMessage][\"messages\"].push(message);\n this.agents[agentMessage][\"unReadMessages\"];\n this.agents[agentMessage][\"lastMessage\"] = message;\n this.unreadMessage();\n }\n this.scrollTop();\n }\n if (clientMessage >= 0) {\n if (clientMessage === this.index && this.selectedIndex === 0) {\n this.addMessage(message.state);\n this.task[clientMessage][\"lastMessage\"] = message;\n this.unreadMessage();\n } else {\n this.task[clientMessage][\"messages\"].push(message);\n this.task[clientMessage][\"unReadMessages\"];\n this.task[clientMessage][\"lastMessage\"] = message;\n this.unreadMessage();\n }\n this.scrollTop();\n }\n // this.layoutService.openChat.next(true);\n\n this.isloading = false\n });\n\n channel.on(\"participantJoined\", (member) => {\n if (\n this.selectedIndex === 1 &&\n this.agents.find(\n (data) => data[\"channel\"][\"sid\"] === member[\"conversation\"][\"sid\"]\n )\n ) {\n let index = this.agents.findIndex(\n (data) => data[\"channel\"][\"sid\"] === member[\"conversation\"][\"sid\"]\n );\n let userName = this.totalAgents.find(\n (data) => data[\"value\"] === member.identity\n );\n\n this.agents[index][\"messages\"].push({\n body:\n userName[\"name\"] + \" has joined the channel.\" ||\n member.identity + \" has joined the channel.\",\n author: \"system\",\n timestamp: Date.now(),\n });\n this.agents[index][\"members\"].push(member.identity);\n let members = [...new Set(this.agents[index][\"members\"])];\n this.agents[index][\"members\"] = members;\n }\n });\n channel.on(\"participantLeft\", (member) => {\n if (\n this.selectedIndex === 1 &&\n this.agents.find(\n (data) => data[\"channel\"][\"sid\"] === member[\"conversation\"][\"sid\"]\n )\n ) {\n let index = this.agents.findIndex(\n (data) => data[\"channel\"][\"sid\"] === member[\"conversation\"][\"sid\"]\n );\n let userName = this.totalAgents.find(\n (data) => data[\"value\"] === member.identity\n );\n\n this.agents[index][\"messages\"].push({\n body:\n userName[\"name\"] + \" has left the channel.\" ||\n member.identity + \" has left the channel.\",\n author: \"system\",\n timestamp: Date.now(),\n });\n this.agents[index][\"members\"] = this.agents[index][\"members\"].filter(\n (data) => data != member.identity\n );\n if (member.identity === this.userData[\"workerFriendlyName\"]) {\n this.agents = this.agents.filter(\n (data) => data[\"channel\"][\"sid\"] !== member[\"conversation\"][\"sid\"]\n );\n this.messages = [];\n this.index = null;\n }\n }\n });\n\n\n channel.on(\"typingStarted\", (member) => {\n this.typingNotification = member.identity + ' is typing ...';\n });\n\n channel.on(\"typingEnded\", (member) => {\n\n\n this.typingNotification = '';\n });\n }\n\n send() {\n\n if (this.selectedIndex === 0 && this.chatMessage !== \"\") {\n this.task[this.index][\"channel\"].sendMessage(this.chatMessage);\n this.chatMessage = \"\";\n } else {\n if (this.chatMessage !== \"\") {\n this.agents[this.index][\"channel\"].sendMessage(this.chatMessage);\n this.chatMessage = \"\";\n }\n }\n // this.agents.sort(function (a, b) {\n // return a.timestamp - b.timestamp;\n // });\n this.isIconShow=false\n }\n complete() {\n\n if (this.selectedIndex === 0) {\n if (this.task[this.index][\"channel\"]) {\n let task = this.task[this.index];\n this.task[this.index][\"channel\"].leave();\n this.workerJS.completeTask(task[\"taskId\"], (error, task) => {\n if (error) {\n console.error(error);\n return;\n }\n this.index = null;\n this.messages = [];\n this.customerInformation = {};\n this.layoutService.newTask.next(\"\");\n this.prevTask = this.layoutService.prevTasks.next(this.task);\n });\n }\n } else {\n if (this.agents[this.index][\"channelSid\"]) {\n this.agents[this.index][\"channel\"].leave();\n this.layoutService\n .agentChatend(\n {\n ChannelSid: this.agents[this.index][\"channelSid\"],\n to: this.agents[this.index][\"attributes\"][\"to\"],\n from: this.agents[this.index][\"attributes\"][\"from\"],\n },\n this.projectId\n )\n .subscribe((data) => { });\n }\n }\n }\n transferChat() {\n if (this.transferQueue && this.task[this.index]) {\n this.layoutService\n .transferChat(\n {\n to: this.transferQueue,\n ChannelSid: this.task[this.index][\"attributes\"][\"channelSid\"],\n From: this.task[this.index][\"attributes\"][\"name\"],\n taskSid: this.task[this.index][\"taskId\"],\n workerSid: JSON.parse(localStorage.getItem(\"userData\")).workerSId,\n },\n this.projectId\n )\n .subscribe((data) => {\n this.messages = [];\n this.layoutService.newTask.next(\"\");\n this.prevTask = this.layoutService.prevTasks.next(this.task);\n this.customerInformation = {};\n });\n }\n }\n\n tabChange(event) {\n\n this.messages = [];\n this.index = 0;\n if (this.selectedIndex === 0 && this.task.length !== 0) {\n this.selectedChat(0, \"client\");\n }\n if (this.selectedIndex === 1 && this.agents.length !== 0) {\n this.selectedChat(0, \"agent\");\n }\n\n this.customerInformation = {};\n }\n\n enterKey(event: any) {\n if (event.keyCode === 13) {\n this.send();\n }\n }\n\n unreadMessage() {\n if (!this.isChat) {\n this.layoutService.unReadCount.next(this.unReadMessages++);\n this.unReadMessages = this.unReadMessages + 1;\n this.layoutService.unReadCount.next(this.unReadMessages);\n }\n }\n\n customerSearch(value) {\n if (value) {\n this.ticketsService.getCustomerByMail(value).subscribe((data) => {\n if (!data[\"status\"]) {\n this.ticketsService\n .getCustomerTickets(data[\"id\"], this.projectId)\n .subscribe((data) => {\n if (data.length > 0) {\n this.customerTickets = data;\n }\n });\n }\n });\n }\n }\n searchPhoneNumber(value) {\n if (value) {\n this.ticketsService.getCustomerByPhone(value).subscribe((data) => {\n if (!data[\"status\"]) {\n this.ticketsService\n .getCustomerTickets(data[\"id\"], this.projectId)\n .subscribe((data) => {\n if (data.length > 0) {\n this.customerTickets = data;\n }\n });\n }\n });\n }\n }\n\n closeChat() {\n this.layoutService.openChat.next(false);\n }\n\n getAgents() {\n this.agentService\n .getContacts(this.projectId, this.userData.id)\n .subscribe((data) => {\n this.companyAgents = data.map((data) => ({\n name: data[\"FirstName\"] + \" \" + data[\"LastName\"],\n value: data[\"workerFriendlyName\"],\n ProfilePhoto: data[\"ProfilePhoto\"],\n }));\n });\n }\n\n addAgent() {\n this.dialog.open(AgentsdialogComponent, {\n data: {\n companyAgents: this.companyAgents,\n totalAgents: this.totalAgents,\n },\n width: \"300px\",\n height: \"300px\",\n });\n this.layoutService.addAgent.subscribe((data) => {\n if (this.agents[this.index]) {\n this.layoutService\n .addAgentToChannel(\n {\n ChannelSid: this.agents[this.index][\"channel\"][\"sid\"],\n to: data[\"value\"],\n },\n this.projectId\n )\n .subscribe((person) => {\n this.agents[this.index][\"members\"].push(data[\"value\"]);\n let unique = [...new Set(this.agents[this.index][\"members\"])];\n this.agents[this.index][\"members\"] = unique;\n });\n }\n });\n }\n removeAgent() {\n this.agents[this.index][\"channel\"].leave();\n this.layoutService\n .removeAgent(\n {\n ChannelSid: this.agents[this.index][\"channel\"][\"sid\"],\n identity: this.userData[\"workerFriendlyName\"],\n },\n this.projectId\n )\n .subscribe((person) => {\n });\n }\n\n addEmoji(event) {\n this.chatMessage = this.chatMessage + event.emoji.native;\n }\n getProfilePhoto(value) {\n if (this.totalAgents.find((data) => data[\"value\"] === value)) {\n return this.totalAgents.findIndex((data) => data[\"value\"] === value);\n } else {\n return -1;\n }\n }\n\n getProjects() {\n\n this.roleService.projectAdmin(this.userData['companyId']).subscribe((projects) => {\n this.projects = projects;\n this.projectId = projects[0][\"id\"];\n this.fetchAgentChannels();\n this.getAgents();\n this.roleService.fetchRoles(this.projectId).subscribe((data) => {\n this.taskQueues = projects.map((role) => ({\n friendlyName: role[\"TwilioSkillName\"],\n sid: role[\"RoleSid\"],\n }));\n });\n });\n }\n projectChange1(data) {\n this.projectId = data;\n this.fetchAgentChannels();\n this.getAgents();\n }\n\n getMessageTime(item: any,from?:any) {\n if(from==2){\n if (item) {\n const then = new Date(item);\n const now = new Date();\n\n const msBetweenDates = Math.abs(then.getTime() - now.getTime());\n const hoursBetweenDates = msBetweenDates / (60 * 60 * 1000);\n\n if (hoursBetweenDates < 24) {\n var suffix = then.getHours() >= 12 ? \"PM\" : \"AM\";\n var hours = ((then.getHours() + 11) % 12 + 1) + \":\" + then.getMinutes() + \" \" + suffix\n return hours\n } else {\n let time \n if(from){\n time=then.getDate() + \"/\" + (then.getMonth() + 1) + \"/\" + then.getFullYear()\n }else{\n time=then.getDate() + \"/\" + (then.getMonth() + 1) + \"/\" + then.getFullYear()\n }\n return time\n\n }\n }\n }\n else{\n\n }\n }\n\n}\n","
    \n\t
    \n\t\t
    \n\t\t\t

    Chat

    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    {{typingNotification}}

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\titem['attributes']['name'].slice(0, 1) === '+'\n\t\t\t\t\t\t\t\t\t\t? 'S'\n\t\t\t\t\t\t\t\t\t\t: item['attributes']['UserName'] !== undefined\n\t\t\t\t\t\t\t\t\t\t? (item['attributes']['UserName'].slice(0, 1)\n\t\t\t\t\t\t\t\t\t\t| uppercase)\n\t\t\t\t\t\t\t\t\t\t: (item['attributes']['name'].slice(0, 1) | uppercase)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\titem['attributes']['UserName']\n\t\t\t\t\t\t\t\t\t\t\t\t? item['attributes']['UserName']\n\t\t\t\t\t\t\t\t\t\t\t\t: item['attributes']['name'].slice(0, 18)\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\titem['attributes']['channel'] === 'sms' ? 'sms' : ''\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\titem['attributes']['channel'] === 'whatsapp'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'whatsapp'\n\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\titem['unReadMessages'] }}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{{ item['lastMessage']['body'].slice(0, 25) }}\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tgetMessageTime(item['lastMessage']['state']['timestamp'])\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    {{typingNotification}}

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{{ item['name'].slice(0, 1) | uppercase }}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\titem['members'].length === 1\n\t\t\t\t\t\t\t\t\t\t\t\t? (item['name'] | agentname: totalAgents | titlecase)\n\t\t\t\t\t\t\t\t\t\t\t\t: 'Group Chat'\n\t\t\t\t\t\t\t\t\t\t\t\t}}{{ item['unReadMessages'] }}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{{ item['lastMessage']['body'].slice(0, 25) }}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tgetMessageTime(item['lastMessage']['state']['timestamp'])\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{message.body | titlecase }}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmessage.author\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| agentname: totalAgents\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| titlecase\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttask[index]['attributes']['UserName'] !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? task[index]['attributes']['UserName']\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (message.author\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| agentname: totalAgents\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| titlecase)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ message.body }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ message.dateUpdated | date: 'short' }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmessage.author\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| agentname: totalAgents\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| titlecase\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{message.body | titlecase }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ message.dateUpdated| date: 'short' }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t

    {{typingNotification}}

    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\tmood\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    User Details
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n \t\t\t\t\t
    Latest Chats
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\titem['CreatedDate'] | date: 'medium'\n\t\t\t\t\t\t\t\t\t}}{{ item['RequestStatus'] }}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{{ item['RequestId']\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    {{ item['RequestDetail'] }}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    Participants
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\"{{\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\tmember | agentname: totalAgents | titlecase\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n
    ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'loginstatus'\n})\nexport class LoginstatusPipe implements PipeTransform {\n\n transform(values: any, agents: any[]): any {\n if (agents.find(value => value['value'] === values)) {\n let agent = agents.find(value => value['value'] === values);\n return agent['Status'] === null ? 'Offline' : agent['Status'];\n } else {\n return 'Offline'\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'profilephoto'\n})\nexport class ProfilephotoPipe implements PipeTransform {\n\n transform(value: string, args: any[]): any {\n if (!value) {\n return null;\n }\n if (args.find(data => data['value'] === value)) {\n let agentName = args.find(data => data['value'] === value);\n return agentName['profilePhoto'] ? agentName['profilePhoto'] : 'assets/img/contact-profile-dummy.png'\n\n } else {\n return value\n }\n }\n\n}\n","import { AuthService } from \"src/app/account/auth/auth.service\";\nimport { NgForm } from \"@angular/forms\";\nimport { RoleService } from \"./../role-management/role.service\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { ManagementService } from \"../management.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-company-management\",\n templateUrl: \"./company-management.component.html\",\n styleUrls: [\"./company-management.component.css\"],\n})\nexport class CompanyManagementComponent implements OnInit {\n closeResult: string;\n search: string;\n companyInfo: any = {\n name: \"\",\n twilioNumber: \"\",\n supportMail: \"\",\n forwardMail: environment.forwardMail,\n };\n totalCompanies: any[] = [];\n isUpdate: boolean = false;\n inputData: any;\n isError: boolean = false;\n errorMessage: string;\n superAdmin: Boolean = false;\n userData: any;\n public page: any = 1;\n public pageSize: any = 8;\n selectedCountryCode;\n countries: any[];\n group: any[] = [];\n groups: any[] = [];\n companySettings: IDropdownSettings;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n\n constructor(\n private modalService: NgbModal,\n private companyService: RoleService,\n private sharedService: SharedService,\n private authService: AuthService,\n private managementService: ManagementService,\n private handleError: ErrorHandlerService,\n private agentService: CreateAgent\n ) {}\n\n ngOnInit() {\n this.companySettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n };\n\n this.fetchCountries();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.sharedService.companyCreated.next(\"company created\");\n this.sharedService.pageEvent.emit({ pageName: \"Company Management\" });\n this.authService.admin.subscribe((data) => {\n this.superAdmin = data;\n });\n this.getComapnies(this.userData.companyId);\n }\n\n open(content) {\n // this.isError = false;\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.getComapnies(this.userData.companyId);\n this.isUpdate = false;\n this.companyInfo[\"id\"] = null;\n this.resetForm();\n this.isError = false;\n this.companyInfo.forwardMail = environment.forwardMail;\n // this.companyInfo = { name: '', twilioNumber: '', supportMail: '' };\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n submit(form: NgForm) {\n if (!this.isUpdate) {\n this.companyService\n .createCompany({\n name: form.value.name,\n supportMail: form.value.supportMail,\n twilioNumber: `xxxxx`,\n forwardMail: form.value.forwardMail,\n })\n .subscribe(\n (data) => {\n this.modalService.dismissAll();\n this.sharedService.companyCreated.next(\"company created\");\n },\n (err) => {\n this.isError = true;\n this.errorMessage = err.error.status;\n this.handleError.handleError(err)\n\n }\n );\n } else {\n this.companyService\n .updateCompany({\n name: form.value.name,\n ActiveStatus: form.value.ActiveStatus,\n supportMail: form.value.supportMail,\n id: this.companyInfo[\"id\"],\n forwardMail: this.companyInfo[\"forwardMail\"],\n })\n .subscribe(\n (data) => {\n this.modalService.dismissAll();\n },\n (err) => {\n this.isError = true;\n this.errorMessage = err.error.status;\n this.handleError.handleError(err)\n\n }\n );\n }\n }\n\n resetForm() {\n this.companyInfo = {\n name: \"\",\n twilioNumber: \"\",\n supportMail: \"\",\n activeStatus: null,\n id: null,\n };\n this.isError = false;\n this.errorMessage = \"\";\n this.groups = [];\n this.group = [];\n }\n\n onCompanySelect(id: any, content) {\n if (this.userData.companyId === 0) {\n this.isUpdate = true;\n\n this.companyService.getCompanyById(id).subscribe((data) => {\n this.agentService.getMailGroups(data[\"id\"]).subscribe((datas) => {\n this.groups = datas.map((datac) => ({\n Name: datac[\"Name\"],\n id: datac[\"id\"],\n }));\n let selectedGroup = this.groups.find(\n (datap) => datap[\"id\"] === data[\"IncomingMailGroup\"]\n );\n if (selectedGroup) {\n this.group = [selectedGroup[\"Name\"]];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.companyInfo = {\n name: data[\"Name\"],\n supportMail: data[\"SupportMail\"],\n twilioNumber: data[\"TwilioNumber\"],\n ActiveStatus: data[\"ActiveStatus\"],\n id: id,\n forwardMail: data[\"ForwardMail\"] || \"\",\n };\n this.open(content);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n getComapnies(id) {\n this.companyService.getAllCompanies(id).subscribe((data) => {\n this.totalCompanies = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n selectCountry(country) {\n this.selectedCountryCode = country.code;\n }\n\n fetchCountries() {\n this.sharedService.getCountries().subscribe((data) => {\n this.countries = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n forwardMail(event) {\n let name = event.replace(/[^A-Z0-9]+/gi, \"\");\n this.companyInfo[\"forwardMail\"] = name + environment.forwardMail;\n }\n}\n","\n
    \n
    \n \n \"\"\n \n
    \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ item[\"Name\"] }}\n \n\n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Company Name\n\n \n \n \n \n Support Mail\n \n \n \n \n Status\n \n \n \n \n Created Date\n \n \n \n \n Updated Date\n \n \n Projects
    {{ item[\"SupportMail\"] }}\n \n {{ item[\"ActiveStatus\"] ? \"Active\" : \"In Active\" }}\n \n \n {{ item[\"createdAt\"] | date: \"medium\" }}\n \n {{ item[\"updatedAt\"] | date: \"medium\" }}\n \n Manage Projects\n
    \n
    \n \n \n
    \n
    \n\n
    \n

    \n {{ isUpdate ? \"Update\" : \"Create\" }} Company\n

    \n \n ×\n \n
    \n
    \n {{\n errorMessage\n }}\n
    \n
    \n \n \n \n \n Please Enter Valid Name\n
    \n
    \n\n
    \n \n \n \n
    \n Please Enter Valid Support Mail\n
    \n
    \n \n\n
    \n
    \n \n \n \n \n \n \n please select value\n
    \n
    \n \n\n
    \n \n \n \n
    \n please enter valid description\n
    \n
    \n \n\n
    \n \n
    \n \n \n
    ","import { catchError, switchMap, map } from \"rxjs/operators\";\nimport { FormArray, FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport { MarketingService } from \"./../marketing/marketing.service\";\nimport { CompanyModule, InputModule } from \"./models/companymodule.model\";\nimport { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport {\n NgbModal,\n ModalDismissReasons,\n NgbTimeStruct,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { BehaviorSubject, Observable, Subject, Subscription } from \"rxjs\";\nimport { MailserviceService } from \"../mailservice.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n// import { map } from 'lodash';\n\n@Component({\n selector: \"app-companymodules\",\n templateUrl: \"./companymodules.component.html\",\n styleUrls: [\"./companymodules.component.css\"],\n})\nexport class CompanymodulesComponent implements OnInit, OnDestroy {\n public projectId: any;\n public updateModules: CompanyModule[] = [];\n public userData: any;\n public update: boolean = false;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: string;\n public page: any = 1;\n public pageSize: any = 8;\n closeResult: string;\n public submitted: boolean = false;\n public isError: boolean = false;\n public Module: string = \"\";\n public feedBackCallId: string = \"\";\n public feedBackSMSId: string = \"\";\n public smsId: string;\n public callId: string;\n public moduleCall: boolean = false;\n public moduleSms: boolean = false;\n public moduleMail: boolean = false;\n public smsUpdate: boolean = false;\n public callUpdate: boolean = false;\n public mailUpdate: boolean = false;\n public selectedModuleId: string = \"\";\n public marketingTemplates: any[] = [];\n public project: Subscription;\n\n moduleForm = this.fb.group({\n Module: [\"\", Validators.required],\n description: [\"\", Validators.required],\n RedialThreshold: [\"\", Validators.required],\n CallTextHeader: [\"\", Validators.required],\n CallType: [\"\", Validators.required],\n Ivr: this.fb.array([]),\n CallTextFooter: [\"\"],\n time: [{ hour: \"00\", minute: \"15\", second: \"30\" }],\n });\n\n smsForm = this.fb.group({\n smsTextHeader: [\"\", Validators.required],\n SMSType: [\"\", Validators.required],\n Ivr: this.fb.array([]),\n smsTextFooter: [\"\"],\n time: [{ hour: 0o0, minute: 15, second: 30 }],\n });\n\n mailForm = this.fb.group({\n mailSubject: [\"\", Validators.required],\n mailType: [\"\", Validators.required],\n templateId: [\"\", Validators.required],\n time: [{ hour: 0o0, minute: 15, second: 30 }],\n });\n\n constructor(\n private readonly marketingService: MarketingService,\n private readonly sharedService: SharedService,\n private readonly modalService: NgbModal,\n private readonly fb: FormBuilder,\n private readonly mailService: MailserviceService,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n ) { }\n\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n ngOnInit() {\n this.sharedService.pageEvent.emit({ pageName: \"Modules\" });\n this.getProjectId();\n }\n\n getProjectId() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.getCompanyInfoData();\n // this.getMarketingTemplates();\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.getCompanyInfoData();\n this.getMarketingTemplates();\n }, 500);\n }\n\n getMarketingTemplates() {\n this.mailService.getMarketingTemplates(this.projectId).subscribe((data) => {\n this.marketingTemplates = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCompanyInfoData() {\n this.marketingService\n .getCompanyModules(this.projectId)\n .subscribe((data) => {\n this.updateModules = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n open(content) {\n if (!this.callUpdate) {\n this.addNewNumber();\n this.moduleForm.patchValue({\n time: { hour: 0o0, minute: 15, second: 30 },\n });\n }\n if (!this.smsUpdate) {\n this.smsForm.patchValue({\n time: { hour: 0o0, minute: 15, second: 30 },\n });\n }\n // this.addNewNumber();\n if (this.modalService.hasOpenModals) {\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n }\n\n private getDismissReason(reason: any): string {\n this.resetForm();\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n resetForm() {\n this.smsForm.reset();\n this.moduleForm.reset();\n this.removeAllControls();\n this.moduleForm.controls.Module.enable();\n this.update = false;\n this.submitted = false;\n this.callUpdate = false;\n this.smsUpdate = false;\n this.moduleSms = this.moduleCall = this.moduleMail = false;\n this.Module = \"\";\n this.feedBackCallId = null;\n }\n\n submit() {\n this.submitted = true;\n if (this.moduleCall) {\n if (!(this.moduleForm.status === \"VALID\")) {\n return;\n }\n }\n if (this.moduleSms) {\n if (!(this.smsForm.status === \"VALID\")) {\n return;\n }\n }\n if (this.moduleMail) {\n if (!(this.mailForm.status === \"VALID\")) {\n return;\n }\n }\n\n if (!this.update) {\n let callId = \"\";\n let smsId = \"\";\n this.callSubmit()\n .pipe(\n switchMap((data: any) => {\n callId = data[\"autoDialCompany\"][\"id\"];\n return this.SMSsubmit();\n })\n )\n .pipe(\n switchMap((data) => {\n smsId = data[\"autoSMSCompany\"][\"id\"];\n return this.mailSubmit();\n })\n )\n .subscribe((data) => {\n this.marketingService\n .createCompanyModule({\n name: this.moduleForm.value[\"Module\"],\n smsModule: smsId,\n description: this.moduleForm.value[\"description\"],\n callModule: callId,\n ProjectId: this.projectId,\n mailModule: data[\"autoEmailCompany\"][\"id\"],\n createdBy: this.userData[\"mail\"],\n })\n .subscribe(\n (data) => {\n this.modalService.dismissAll();\n this.getCompanyInfoData();\n },\n (err) => {\n this.isError = true;\n setTimeout(() => {\n this.isError = false;\n }, 3000);\n this.handleError.handleError(err)\n\n }\n );\n });\n } else {\n this.SMSsubmit().subscribe((data) => {\n this.callSubmit().subscribe((data) => {\n this.mailSubmit().subscribe((data) => {\n this.modalService.dismissAll();\n });\n });\n });\n\n this.marketingService\n .updateModule({\n id: this.selectedModuleId,\n smsModule: null,\n callModule: null,\n mailModule: null,\n description: this.moduleForm.value[\"description\"],\n })\n .subscribe((data) => {\n this.getCompanyInfoData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n if (!this.smsUpdate && this.moduleSms) {\n let body = this.textSms();\n this.createSmsModule(body).subscribe((data) => {\n this.marketingService\n .updateModule({\n id: this.selectedModuleId,\n mailModule: null,\n callModule: null,\n smsModule: data[\"autoSMSCompany\"][\"id\"],\n description: this.moduleForm.value[\"description\"],\n })\n .subscribe((data) => {\n this.getCompanyInfoData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }\n if (!this.callUpdate && this.moduleCall) {\n let body = this.textCall();\n this.createCallModule(body).subscribe((data) => {\n this.marketingService\n .updateModule({\n id: this.selectedModuleId,\n mailModule: null,\n callModule: data[\"autoDialCompany\"][\"id\"],\n smsModule: null,\n description: this.moduleForm[\"description\"],\n })\n .subscribe((data) => {\n this.getCompanyInfoData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }\n if (!this.mailUpdate && this.moduleMail) {\n let body = this.textMail();\n this.createMailModule(body).subscribe((data) => {\n this.marketingService\n .updateModule({\n id: this.selectedModuleId,\n mailModule: data[\"autoEmailCompany\"][\"id\"],\n callModule: null,\n smsModule: null,\n description: this.moduleForm[\"description\"],\n })\n .subscribe((data) => {\n this.getCompanyInfoData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }\n }\n }\n\n updateModule(content, module) {\n this.selectedModuleId = module[\"id\"];\n this.moduleForm.patchValue({\n Module: module[\"Name\"],\n description: module[\"Description\"] || \"\",\n });\n this.update = true;\n if (module[\"SMSModule\"]) {\n this.moduleSms = true;\n this.smsUpdate = true;\n this.marketingService\n .getSMSCompanyById(module[\"SMSModule\"])\n .subscribe((data) => {\n let beforeArray = data[\"BeforeSMSTime\"].split(\":\");\n this.Module = data[\"Module\"];\n let time = {\n hour: +beforeArray[0],\n minute: +beforeArray[1],\n second: +beforeArray[2],\n };\n this.Module = data[\"Module\"];\n if (data[\"SMSType\"] !== \"Feedback\") {\n this.removeAllControls();\n this.smsForm.patchValue({\n smsTextHeader: data[\"SMSText\"],\n SMSType: data[\"SMSType\"],\n time: time,\n });\n } else {\n this.updateSMSConfigValues(data);\n // this.updateFeedBackValues(data);\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n if (module[\"CallModule\"]) {\n this.moduleCall = true;\n this.callUpdate = true;\n this.marketingService\n .getAutoDialById(module[\"CallModule\"])\n .subscribe((data) => {\n this.updateForm(data, content);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n if (module[\"MailModule\"]) {\n this.mailUpdate = true;\n this.moduleMail = true;\n this.getAutoEmail(module[\"MailModule\"]);\n }\n setTimeout(() => {\n this.open(content);\n }, 500);\n }\n\n updateForm(data, content) {\n let beforeArray = data[\"BeforeDialTime\"].split(\":\");\n let time = {\n hour: +beforeArray[0],\n minute: +beforeArray[1],\n second: +beforeArray[2],\n };\n this.update = true;\n this.updateFeedBackValues(data);\n this.moduleForm.controls.Module.disable();\n this.Module = data[\"Module\"];\n if (data[\"CallType\"] !== \"Feedback\") {\n this.removeAllControls();\n this.moduleForm.patchValue({\n // Module: data[\"Module\"],\n CallTextHeader: data[\"CallText\"],\n RedialThreshold: data[\"RedialThreshold\"],\n CallType: data[\"CallType\"],\n time: time,\n });\n }\n }\n\n updateFeedBackValues(data) {\n this.removeAllControls();\n let beforeArray = data[\"BeforeDialTime\"].split(\":\");\n let time = {\n hour: +beforeArray[0],\n minute: +beforeArray[1],\n second: +beforeArray[2],\n };\n if (data[\"CallType\"] === \"Feedback\") {\n this.getFeedBackConfig(data, time);\n }\n }\n\n updateSMSConfigValues(data) {\n let beforeArray = data[\"BeforeSMSTime\"].split(\":\");\n let time = {\n hour: +beforeArray[0],\n minute: +beforeArray[1],\n second: +beforeArray[2],\n };\n this.removeAllControls();\n if (data[\"SMSType\"] === \"Feedback\") {\n this.marketingService\n .getSmsConfig({ id: data[\"id\"], moduleName: data[\"Module\"] })\n .subscribe((data1: any) => {\n if (data1) {\n \n this.feedBackSMSId = data1[\"id\"];\n data1[\"SmsConfig\"].forEach((element) => {\n this.smsConfig().push(\n this.fb.group({\n feedBackNumber: element[\"feedBackNumber\"],\n value: element[\"value\"],\n })\n );\n });\n\n this.smsForm.patchValue({\n smsTextHeader: data1[\"SmsTextHeader\"],\n smsTextFooter: data1[\"SmsTextFooter\"],\n // Module: data['Module'],\n time: time,\n // RedialThreshold: data['RedialThreshold'],\n SMSType: data[\"SMSType\"],\n });\n \n } else {\n // this.addNewNumber();\n this.smsForm.patchValue({\n smsTextHeader: data[\"SMSText\"],\n smsTextFooter: \"\",\n // Module: data['Module'],\n time: time,\n // RedialThreshold: data['RedialThreshold'],\n SMSType: data[\"SMSType\"],\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n getAutoEmail(id) {\n this.marketingService.getAutoEmailCompany(id).subscribe((data) => {\n this.moduleMail = true;\n let time = data[\"BeforeEmailTime\"].split(\":\");\n this.mailForm.patchValue({\n mailSubject: data[\"Subject\"],\n mailType: data[\"EmailType\"],\n templateId: data[\"TemplateId\"],\n time: { hour: +time[0], minute: +time[1], second: +time[2] },\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getFeedBackConfig(data, time) {\n this.marketingService\n .getModuleConfig({ id: data[\"id\"], moduleName: data[\"Module\"] })\n .subscribe((data1: any) => {\n if (data1) {\n this.feedBackCallId = data1[\"id\"];\n this.callIvr().clear();\n data1[\"NumberConfig\"].forEach((element) => {\n this.callIvr().push(\n this.fb.group({\n feedBackNumber: element[\"feedBackNumber\"],\n value: element[\"value\"],\n })\n );\n });\n this.moduleForm.patchValue({\n CallTextHeader: data1[\"CallTextHeader\"],\n CallTextFooter: data1[\"CallTextFooter\"],\n // Module: data[\"Module\"],\n RedialThreshold: data[\"RedialThreshold\"],\n CallType: data[\"CallType\"],\n time: time,\n });\n \n } else {\n // this.addNewNumber();\n this.moduleForm.patchValue({\n CallTextHeader: data[\"CallText\"],\n // CallTextFooter: data1['CallTextFooter'],\n // Module: data[\"Module\"],\n RedialThreshold: data[\"RedialThreshold\"],\n CallType: data[\"CallType\"],\n time: time,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n get f() {\n return this.moduleForm.controls;\n }\n\n callIvr(): FormArray {\n return this.moduleForm.get(\"Ivr\") as FormArray;\n }\n\n smsConfig(): FormArray {\n return this.smsForm.get(\"Ivr\") as FormArray;\n }\n\n newNumber(): FormGroup {\n return this.fb.group({\n feedBackNumber:\n this.callIvr().length != 0 ? this.callIvr().length - 1 + 1 : 0,\n value: \"\",\n });\n }\n\n addNewNumber() {\n this.callIvr().push(this.newNumber());\n }\n\n removeNumber(index: number) {\n this.callIvr().removeAt(index);\n }\n\n removeAllControls() {\n this.callIvr().clear();\n this.smsConfig().clear();\n }\n\n SMSsubmit(): Observable {\n if (this.moduleSms) {\n let body = this.textSms();\n body[\"ProjectId\"] = this.projectId;\n if (!this.smsUpdate) {\n return this.createSmsModule(body);\n } else {\n \n if (body[\"SMSType\"] === \"Feedback\" && this.feedBackSMSId) {\n this.marketingService\n .updateSmsConfig({\n smsTextFooter: body[\"smsTextFooter\"],\n smsTextHeader: body[\"smsTextFooter\"],\n smsConfig: body[\"Ivr\"],\n id: this.feedBackSMSId,\n })\n .subscribe();\n }\n return this.marketingService.updateAutoSmsConfig(body);\n }\n } else {\n return new BehaviorSubject({ autoSMSCompany: { id: null } });\n }\n }\n\n callSubmit(): Observable {\n if (this.moduleCall) {\n let body = this.textCall();\n if (!this.callUpdate) {\n return this.createCallModule(body);\n } else {\n body[\"Module\"] = this.Module;\n if (body[\"CallType\"] === \"Feedback\" && this.feedBackCallId) {\n this.marketingService\n .updateNumberConfigs({\n callTextFooter: body[\"CallTextFooter\"],\n callTextHeader: body[\"CallTextHeader\"],\n numberConfig: body[\"Ivr\"],\n id: this.feedBackCallId,\n })\n .subscribe((data) => {\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n return this.marketingService.updateAutoDial(body);\n }\n } else {\n return new BehaviorSubject({ autoDialCompany: { id: null } });\n }\n }\n\n mailSubmit(): Observable {\n if (this.moduleMail) {\n let body = this.textMail();\n if (!this.mailUpdate) {\n return this.createMailModule(body);\n } else {\n \n return this.marketingService.updateAutoEmail(body);\n }\n } else {\n return new BehaviorSubject({ autoEmailCompany: { id: null } });\n }\n }\n\n changeModule(type) {\n if (type === \"sms\") {\n this.moduleSms = !this.moduleSms;\n if (this.update && !this.feedBackSMSId) {\n this.feedBackSMSId = \"100\";\n }\n } else if (type === \"call\") {\n this.moduleCall = !this.moduleCall;\n } else if (type === \"mail\") {\n this.moduleMail = !this.moduleMail;\n }\n }\n\n createSmsModule(body): Observable {\n return this.marketingService.createAutoSmsConfig(body).pipe(\n map((data: any) => {\n if (body[\"SMSType\"] === \"Feedback\") {\n this.marketingService\n .createSmsConfig({\n moduleName: data[\"autoSMSCompany\"][\"Module\"],\n smsTextFooter: body[\"smsTextFooter\"],\n smsTextHeader: body[\"smsTextHeader\"],\n ProjectId: this.projectId,\n moduleId: data[\"autoSMSCompany\"][\"id\"],\n smsConfig: body[\"Ivr\"],\n })\n .subscribe((data) => {\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n return data;\n })\n );\n }\n\n createMailModule(body): Observable {\n return this.marketingService.createAutoEmailCompany(body);\n }\n\n textSms(): any {\n let body = this.smsForm.value;\n body[\"Module\"] = this.Module || this.moduleForm.value[\"Module\"];\n if (this.smsForm.value.SMSType !== \"Feedback\") {\n body[\"SMSText\"] = this.smsForm.value[\"smsTextHeader\"];\n } else {\n body[\"SMSText\"] = (\n this.smsForm.value[\"smsTextHeader\"] +\n \". \" +\n `${body[\"Ivr\"].map(\n (data) => `Press ${data[\"feedBackNumber\"]} for ${data[\"value\"]}. `\n )}` +\n this.smsForm.value[\"smsTextFooter\"]\n ).replace(\",\", \"\");\n }\n body[\"BeforeSMSTime\"] = `${body[\"time\"][\"hour\"] < 9 ? 0 : \"\"}${body[\"time\"][\"hour\"]\n }:${body[\"time\"][\"minute\"] <= 9\n ? \"0\" + body[\"time\"][\"minute\"]\n : body[\"time\"][\"minute\"]\n }:${body[\"time\"][\"second\"] <= 9\n ? \"0\" + body[\"time\"][\"second\"]\n : body[\"time\"][\"second\"]\n }`;\n return body;\n }\n\n textCall(): any {\n let body = this.moduleForm.value;\n \n body[\"BeforeDialTime\"] = `${body[\"time\"][\"hour\"] <= 9\n ? `0${body[\"time\"][\"hour\"]}`\n : body[\"time\"][\"hour\"]\n }:${body[\"time\"][\"minute\"] <= 9\n ? \"0\" + body[\"time\"][\"minute\"]\n : body[\"time\"][\"minute\"]\n }:${body[\"time\"][\"second\"] <= 9\n ? \"0\" + body[\"time\"][\"second\"]\n : body[\"time\"][\"second\"]\n }`;\n if (this.moduleForm.value.CallType !== \"Feedback\") {\n body[\"CallText\"] = this.moduleForm.value[\"CallTextHeader\"];\n } else {\n body[\"CallText\"] = (\n this.moduleForm.value[\"CallTextHeader\"] +\n \". \" +\n `${body[\"Ivr\"].map(\n (data) => `Press ${data[\"feedBackNumber\"]} for ${data[\"value\"]}. `\n )}` +\n this.moduleForm.value[\"CallTextFooter\"]\n ).replace(\",\", \"\");\n }\n body[\"ProjectId\"] = this.projectId;\n \n return body;\n }\n\n textMail() {\n let body = this.mailForm.value;\n body[\"ProjectId\"] = this.projectId;\n body[\"Module\"] = this.Module || this.moduleForm.value[\"Module\"];\n body[\"BeforeEmailTime\"] = `${body[\"time\"][\"hour\"] < 9 ? 0 : \"\"}${body[\"time\"][\"hour\"]\n }:${body[\"time\"][\"minute\"] <= 9\n ? \"0\" + body[\"time\"][\"minute\"]\n : body[\"time\"][\"minute\"]\n }:${body[\"time\"][\"second\"] <= 9\n ? \"0\" + body[\"time\"][\"second\"]\n : body[\"time\"][\"second\"]\n }`;\n body[\"Subject\"] = body[\"mailSubject\"];\n body[\"EmailType\"] = body[\"mailType\"];\n body[\"TemplateId\"] = body[\"templateId\"];\n return body;\n }\n\n createCallModule(body): Observable {\n return this.marketingService.createAutoDialCompany(body).pipe(\n map((data: any) => {\n // this.getCompanyInfoData();\n if (data[\"autoDialCompany\"][\"CallType\"] === \"Feedback\") {\n this.marketingService\n .createNumberConfigs({\n moduleName: data[\"autoDialCompany\"][\"Module\"],\n callTextFooter: body[\"CallTextFooter\"],\n callTextHeader: body[\"CallTextHeader\"],\n ProjectId: this.projectId,\n moduleId: data[\"autoDialCompany\"][\"id\"],\n numberConfig: body[\"Ivr\"],\n })\n .subscribe((data) =>{ }, (error) => {\n this.handleError.handleError(error)\n });\n }\n return data;\n })\n );\n }\n\n get mailGroup() {\n return this.mailForm.controls;\n }\n projectChange(data) {\n this.projectId = data;\n this.getCompanyInfoData();\n this.getMarketingTemplates();\n }\n}\n","
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ item[\"Name\"] }}\n \n\n \n\n \n\n \n \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n Name\n \n \n \n \n Description\n \n \n \n \n SMS\n \n \n \n \n Call\n \n \n \n \n Mail\n \n \n \n \n Created Date\n \n \n \n \n Updated Date\n \n \n
    \n {{\n item[\"Description\"]\n ? item[\"Description\"].slice(0, 50) + \"...\"\n : \"-\"\n }}\n {{ item[\"SMSModule\"] ? \"Active\" : \"In Active\" }}\n {{ item[\"CallModule\"] ? \"Active\" : \"In Active\" }}\n {{ item[\"MailModule\"] ? \"Active\" : \"In Active\" }}{{ item[\"createdAt\"] | date: \"medium\" }}{{ item[\"updatedAt\"] | date: \"medium\" }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    \n {{ update ? \"Update \" : \"Create\" }} Module\n

    \n \n ×\n \n
    \n
    \n \n Something Wen't Wrong Please Try Again Later\n \n
    \n
    \n \n \n
    \n
    Module Name is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n Module description is required\n
    \n
    \n
    \n
    \n Call\n \n SMS\n Mail\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n
    \n Redial Count is required\n
    \n
    \n
    \n\n
    \n \n \n \n
    \n
    \n \n
    \n Call Text is required\n
    \n
    \n
    \n\n \n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n \n \n\n \n \n \n \n \n
    \n Call Text Footer is required\n
    \n \n \n\n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n Mail Subject is Required\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n \n \n\n
    \n \n
    \n \n \n
    \n","import { MapsComponent } from \"./../tickets/maps/maps.component\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AuthService } from \"./../../account/auth/auth.service\";\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { SocketService } from \"src/app/socket.service\";\nimport { TicketsService } from \"../tickets/tickets.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-contacts\",\n templateUrl: \"./contacts.component.html\",\n styleUrls: [\"./contacts.component.css\"],\n})\nexport class ContactsComponent implements OnInit, OnDestroy {\n totalAgents: any[] = [];\n filterText: any;\n userData: any;\n companySubscription: Subscription;\n superAdmin: Boolean = false;\n public page: any = 1;\n public pageSize: any = 10;\n public profilePhotos: any[];\n private projectId: any;\n public currentId: string = null;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public admin: Boolean = false;\n public project: Subscription;\n\n options = {\n lastOnBottom: false,\n position: ['bottom', 'right'],\n timeOut: 20000,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: false,\n maxLength: 10,\n };\n\n constructor(\n private agentService: CreateAgent,\n private sharedService: SharedService,\n private layoutService: LayoutService,\n private authService: AuthService,\n private socketService: SocketService,\n private modalService: NgbModal,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n ) {}\n\n ngOnDestroy() {\n if (this.project) {\n this.project.unsubscribe();\n }\n // this.socketService.disConnect()\n }\n\n ngOnInit() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.getAgents(data, this.userData.id);\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.getAgents(this.projectId, this.userData.id);\n }, 500);\n this.sharedService.totalAgents.subscribe((data) => {\n this.profilePhotos = data;\n });\n\n this.sharedService.pageEvent.emit({ pageName: \"Agents\" });\n\n this.socketService.connect();\n this.socketService.status.subscribe((data) => {\n if (this.projectId) {\n this.getAgents(this.projectId, this.userData.id);\n }\n });\n }\n getAgents(companyId, userId) {\n return this.agentService\n .getContacts(companyId, userId)\n .subscribe((data) => {\n \n this.totalAgents = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n chatRequest(to) {\n return this.layoutService\n .agentChatStart(\n { to: to, from: this.userData.workerFriendlyName },\n this.projectId\n )\n .subscribe((data) => {\n this.layoutService.openChat.next(true);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n callAgent(to) {\n this.layoutService.callAgent.next(`client:${to}`);\n }\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n openMaps(latlng, address, id) {\n this.currentId = id;\n this.sharedService.saveAddress.next({\n latlng: latlng,\n address: address,\n types: \"agent\",\n });\n this.modalService.open(MapsComponent);\n }\n projectChange(data) {\n this.projectId = data;\n this.getAgents(data, this.userData.id); \n }\n}\n","
    \n\n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n
    \n Name\n \n \n Created Date\n \n \n Last Active\n \n \n Active Status\n \n Action
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n {{ agent[\"FirstName\"] + \" \" + agent[\"LastName\"] }} \n {{agent[\"admin\"]=='true'?'Admin':'Agent'}}\n
    \n
    \n {{ agent[\"Mailid\"] }}\n
    \n
    \n
    \n
    \n {{ agent[\"CreatedDate\"] |date:'YYYY-MM-dd' }}\n \n \n -\n \n
    Active
    \n \n \n
    \n
    \n \n \n
    \n\n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    ","import { AuthService } from \"src/app/account/auth/auth.service\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { CreateAgent } from \"./create-agent.service\";\nimport { Group } from \"./models/group.model\";\nimport { Role } from \"./models/role.model\";\nimport { Agent } from \"./models/agent.model\";\nimport { MailserviceService } from \"../mailservice.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectService } from \"../project-management/project.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { CommonServicesService } from \"src/app/common-services.service\";\n\ninterface PendingSelection {\n [key: number]: boolean;\n}\n\n@Component({\n selector: \"app-create-agent\",\n templateUrl: \"./create-agent.component.html\",\n styleUrls: [\"./create-agent.component.less\"],\n})\nexport class CreateAgentComponent implements OnInit {\n closeResult = \"\";\n public Roles: Role[];\n public pendingSelection: PendingSelection;\n public selectedRoles: Role[];\n public unselectedRoles: Role[];\n public groups: Group[] = [];\n public pendingselectiongroup: PendingSelection;\n public selectedGroups: Group[];\n public unselectedGroups: Group[];\n public agents: Agent[] = [];\n public page: any = 1;\n public pageSize: any = 9;\n public isUpdate: boolean = false;\n public FirstName = \"\";\n public LastName = \"\";\n public Mailid = \"\";\n public is_frejun_account = \"\";\n public PhoneNumber = \"\";\n public error = \"\";\n public isAdminRole: boolean;\n public companyId: any;\n public companies: any[] = [];\n public companySettings: IDropdownSettings;\n public selectedProjects: any[] = [];\n public unselectedProjects: any[] = [];\n\n public iserror: boolean = false;\n public ActiveStatus: string;\n public search: string;\n public template: any;\n public superAdmin: Boolean = false;\n public userData: any;\n public agentSubscription: Subscription;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public validation: boolean = false;\n public projects: any[] = [];\n public projectId: any;\n\n countries = [];\n selectedCountryCode = 1;\n deleteItem: any;\n sideViewerData: any;\n minItems = 5;\n activityfilterString: string = \"\";\n isTwilioSelected: any = true\n isFrejunSelected: any = false\n selectCountry(country) {\n\n this.selectedCountryCode = country.code;\n }\n\n constructor(\n private modalService: NgbModal,\n private AgentService: CreateAgent,\n private SharedService: SharedService,\n private mailService: MailserviceService,\n private roleService: RoleService,\n private authService: AuthService,\n private projectService: ProjectService,\n private handleError: ErrorHandlerService,\n public projectchangeService: ProjectchangeService,\n public commonService: CommonServicesService\n ) { }\n\n ngOnInit() {\n this.fetchCountries();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.companySettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n };\n\n this.roleService.getCompanies().subscribe((companies) => {\n this.companies = companies;\n this.companyId = [\n this.companies.find((company) => company[\"id\"] === this.userData.id),\n ];\n this.SharedService.CompanyId.subscribe((data) => {\n if (this.userData.companyId === 0) {\n this.companyId = [\n this.companies.find((company) => company[\"id\"] === +data),\n ];\n\n this.projectService\n .getProjects(this.companyId[0][\"id\"])\n .subscribe((data) => {\n const listprojects = data.filter(x=>x.id!=10 && x.id!=11)\n this.unselectedProjects = listprojects;\n this.projects = listprojects;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.getRolesGroups();\n } else {\n this.projectId = +data;\n\n this.projectService\n .dashboardProjects({\n companyId: this.userData.companyId,\n userId: this.userData.id,\n admin: false,\n })\n .subscribe((data) => {\n const listprojects = data.filter(x=>x.id!=10 && x.id!=11)\n\n this.projects = listprojects;\n this.unselectedProjects = listprojects;\n this.getRolesGroups();\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.companyId = [\n this.companies.find(\n (company) => company[\"id\"] === this.userData.companyId\n ),\n ];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n if (this.userData.companyId === 0) {\n this.getAllAgents();\n } else {\n this.getAllAgents();\n }\n }, 500);\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.SharedService.pageEvent.emit({ pageName: \"Agent Management\" });\n this.mailService.getTemplateByName(\"ticket\").subscribe((data) => {\n this.template = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n public addToSelectedProject(contact?: any): void {\n let changeRoles = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.unselectedProjects);\n this.pendingSelection = Object.create(null);\n this.unselectedProjects = this.removeRolesFromCollection(\n this.unselectedProjects,\n changeRoles\n );\n this.selectedProjects = changeRoles.concat(this.selectedProjects);\n this.getRolesGroups();\n }\n\n public removeFromSelectedProject(contact?: Role): void {\n let changeRoles = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.selectedProjects);\n this.pendingSelection = Object.create(null);\n this.selectedProjects = this.removeRolesFromCollection(\n this.selectedProjects,\n changeRoles\n );\n this.unselectedProjects = changeRoles.concat(this.unselectedProjects);\n this.getRolesGroups();\n }\n\n public addToSelectedRoles(contact?: Role): void {\n var changeRoles = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.unselectedRoles);\n this.pendingSelection = Object.create(null);\n this.unselectedRoles = this.removeRolesFromCollection(\n this.unselectedRoles,\n changeRoles\n );\n this.selectedRoles = changeRoles.concat(this.selectedRoles);\n this.getRoleGroups(this.selectedRoles);\n }\n\n public removeFromSelectedRoles(contact?: Role): void {\n var changeRoles = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.selectedRoles);\n this.pendingSelection = Object.create(null);\n this.selectedRoles = this.removeRolesFromCollection(\n this.selectedRoles,\n changeRoles\n );\n this.unselectedRoles = changeRoles\n .concat(this.unselectedRoles)\n .sort(this.sortContactOperator);\n this.getRoleGroups(this.selectedRoles);\n this.selectedGroups = this.selectedGroups.filter((el) =>\n this.selectedRoles.some((element) => element[\"id\"] === el[\"RoleId\"])\n );\n }\n\n public togglePendingSelection(contact: Role): void {\n this.pendingSelection[contact[\"id\"]] =\n !this.pendingSelection[contact[\"id\"]];\n }\n\n private getPendingSelectionFromCollection(collection: any[]): any[] {\n var selectionFromCollection = collection.filter((contact) => {\n return contact[\"id\"] in this.pendingSelection;\n });\n return selectionFromCollection;\n }\n\n private removeRolesFromCollection(\n collection: any[],\n RolesToRemove: any[]\n ): any[] {\n var collectionWithoutRoles = collection.filter((contact) => {\n return !RolesToRemove.includes(contact);\n });\n return collectionWithoutRoles;\n }\n\n private sortContactOperator(a: Role, b: Role): number {\n return a[\"Name\"].localeCompare(b[\"Name\"]);\n }\n\n public addToSelectedGroups(contact?: Group): void {\n var changeGroups = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.unselectedGroups);\n this.pendingselectiongroup = Object.create(null);\n if (this.unselectedGroups.length !== 0) {\n this.unselectedGroups = this.removeRolesFromCollection(\n this.unselectedGroups,\n changeGroups\n );\n }\n this.selectedGroups = changeGroups.concat(this.selectedGroups);\n }\n\n public removeFromSelectedGroups(contact?: Group): void {\n var changeGroups = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.selectedGroups);\n this.pendingSelection = Object.create(null);\n this.selectedGroups = this.removeRolesFromCollection(\n this.selectedGroups,\n changeGroups\n );\n this.unselectedGroups = changeGroups\n .concat(this.unselectedGroups)\n .sort(this.sortContactOperator);\n }\n\n public toggleSelectionGroup(contact: Group): void {\n this.pendingselectiongroup[contact[\"id\"]] =\n !this.pendingselectiongroup[contact[\"id\"]];\n }\n\n open(content) {\n this.iserror = false;\n this.modalService.open(content, { size: \"lg\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.getRolesGroups();\n this.FirstName = \"\";\n this.LastName = \"\";\n this.PhoneNumber = \"\";\n this.Mailid = \"\";\n this.isUpdate = false;\n this.validation = false;\n this.iserror = false;\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n is_submitted = false\n submit(form: NgForm) {\n if (this.selectedGroups.length !== 0 && form.valid) {\n this.is_submitted = true\n let PhoneNumber;\n const loginUserId = this.userData.id;\n const FirstName = form.value.firstname;\n const LastName = form.value.lastname;\n const Mailid = this.Mailid;\n PhoneNumber = `${this.selectedCountryCode}${form.value.number}`;\n const workerSid = Math.random();\n let ActiveStatus = true;\n let isRoleAdmin = form.value.isRoleAdmin;\n let companyId = this.companyId[0][\"id\"];\n if (this.isUpdate) {\n PhoneNumber = form.value.number;\n }\n\n if (this.isUpdate) {\n ActiveStatus = form.value.ActiveStatus === \"active\" ? true : false;\n }\n const Projects = this.selectedProjects.map((project) => project[\"id\"]);\n const Roles = this.selectedRoles.map((role) => {\n return role[\"id\"];\n });\n const Groups = this.selectedGroups.map((Group) => {\n return Group[\"id\"];\n });\n\n const createAgent: Object = {\n loginUserId,\n FirstName,\n LastName,\n Mailid,\n PhoneNumber,\n workerSid,\n Roles,\n Groups,\n ActiveStatus,\n isRoleAdmin,\n companyId,\n Projects,\n isFrejunSelected: this.isFrejunSelected\n };\n console.log(\"***************** createAgent\", createAgent);\n this.createagent(createAgent);\n this.validation = false;\n } else {\n this.validation = true;\n }\n this.is_submitted = false\n }\n\n createagent(body: any) {\n if (this.isUpdate) {\n return this.AgentService.AgentUpdate(body).subscribe((resp : any) => {\n if (resp) {\n if (\"status\" in resp) {\n if(!resp.success_status){\n this.iserror = true;\n return (this.error = resp[\"status\"]);\n }\n }\n this.getAllAgents();\n this.addAgentActivity({\n userid: this.userData.id,\n usermail: this.userData.mail,\n target_agent: body.Mailid,\n activity_type: 'Update',\n Description: `Agent ${this.userData.firstName || ''} ${this.userData.lastName} updated ${body.FirstName} ${body.LastName}`\n });\n }\n this.modalService.dismissAll();\n this.iserror = false;\n this.is_submitted = false\n\n }, (error) => {\n this.is_submitted = false\n this.handleError.handleError(error)\n });\n }\n this.AgentService.createAgent(body).subscribe(\n (resp: any) => {\n if (\"status\" in resp) {\n this.iserror = true;\n return (this.error = resp[\"status\"]);\n }\n if (resp) {\n this.getAllAgents();\n this.addAgentActivity({\n userid: this.userData.id,\n usermail: this.userData.mail,\n target_agent: body.Mailid,\n activity_type: 'Create',\n Description: `Agent ${this.userData.firstName || ''} ${this.userData.lastName} created ${body.FirstName} ${body.LastName}`\n });\n }\n this.modalService.dismissAll();\n this.iserror = false;\n this.is_submitted = false\n },\n (err) => {\n this.iserror = true;\n this.error = \"Please Try Again After Sometime\";\n this.is_submitted = false\n setTimeout(() => {\n this.iserror = false;\n }, 10000);\n this.handleError.handleError(err)\n\n }\n );\n }\n\n getAllAgents() {\n this.AgentService.GetAllAgents(this.projectId).subscribe((res) => {\n this.agents = res;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getRolesGroups() {\n if (this.selectedProjects.length !== 0) {\n this.AgentService.getAgentRole({\n projects: this.selectedProjects,\n }).subscribe((res) => {\n let roles = res;\n this.unselectedRoles = roles;\n this.unselectedRoles = roles.filter(\n (el) => !this.selectedRoles.some((ele) => ele[\"id\"] === el[\"id\"])\n );\n this.selectedRoles = this.selectedRoles.filter((el) =>\n this.selectedProjects.some(\n (element) => element[\"id\"] === el[\"ProjectId\"]\n )\n );\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.selectedRoles = [];\n this.selectedGroups = [];\n this.unselectedRoles = [];\n this.unselectedGroups = [];\n }\n }\n\n updateAgent(id: number, content) {\n this.isUpdate = true;\n this.AgentService.GetAgentbyid(id).subscribe((res) => {\n if (content != \"\") {\n this.open(content);\n }\n this.FirstName = res[\"FirstName\"];\n this.PhoneNumber = res[\"PhoneNumber\"];\n this.LastName = res[\"LastName\"];\n this.is_frejun_account = res[\"is_frejun_account\"];\n this.isFrejunSelected = res[\"is_frejun_account\"];\n this.Mailid = res[\"Mailid\"];\n this.selectedRoles = res[\"SelectedRoles\"];\n this.selectedGroups = res[\"SelectedGroups\"];\n this.selectedProjects = res[\"SelectedProjects\"];\n this.ActiveStatus =\n res[\"ActiveStatus\"] === \"true\" ? \"active\" : \"inactive\";\n this.isAdminRole = res[\"IsRoleAdmin\"];\n this.companyId = [\n this.companies.find((data) => data[\"id\"] === res[\"CompanyId\"]),\n ];\n this.unselectedProjects = this.projects.filter(\n (el) => !this.selectedProjects.some((ele) => ele[\"id\"] === el[\"id\"])\n );\n this.getRolesGroups();\n let SelectedGroupsids = this.selectedGroups.map((Group) => Group[\"id\"]);\n let AllGroups;\n this.AgentService.getAgentManGroups({\n roles: this.selectedRoles,\n }).subscribe((res) => {\n AllGroups = res;\n this.unselectedGroups = AllGroups.filter(\n (data) => !this.selectedGroups.some((ele) => ele[\"id\"] === data[\"id\"])\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n openDeleteAgent(item, content) {\n this.deleteItem = item;\n this.modalService.open(content, { size: \"sm\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n deleteAgent() {\n this.AgentService.updateAgentStatus({ id: this.deleteItem.id }).subscribe((data) => {\n this.getAllAgents();\n this.modalService.dismissAll();\n this.addAgentActivity({\n userid: this.userData.id,\n usermail: this.userData.mail,\n target_agent: this.deleteItem[\"Mailid\"],\n activity_type: 'Delete',\n Description: `Agent ${this.userData.firstName || ''} ${this.userData.lastName} deleted ${this.deleteItem[\"FirstName\"]} ${this.deleteItem[\"LastName\"]}`\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n cancel() {\n this.modalService.dismissAll();\n }\n\n companySelect() {\n this.getRolesGroups();\n }\n\n fetchCountries() {\n this.SharedService.getCountries().subscribe((data) => {\n this.countries = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n public getRoleGroups(body: Role[]) {\n return this.AgentService.getAgentManGroups({ roles: body }).subscribe(\n (data) => {\n let groups = this.unselectedGroups;\n this.unselectedGroups = data.filter(\n (el) =>\n !this.selectedGroups.some((element) => element[\"id\"] === el[\"id\"])\n );\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n public getRoles(projectId) {\n }\n projectChange(data) {\n if (this.userData.companyId === 0) {\n this.projectId = +data;\n this.getAllAgents();\n } else {\n this.projectId = +data;\n this.getAllAgents();\n }\n }\n\n addAgentActivity(data) {\n this.commonService.addAgentActivity(data).subscribe((data: any) => {\n\n }, (err) => {\n\n })\n }\n sideNavData(id, email) {\n\n this.activityfilterString = \"\";\n this.commonService.agentActivityList({ id: id.toString(), email: email }).subscribe((data) => {\n this.sideViewerData = data;\n }, (err) => {\n\n })\n }\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n onInputActivity(event: any) {\n\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n getColorBasedOnType(type: string): string {\n // You can define your logic to determine the color based on the type\n switch (type) {\n case 'Create':\n return '#04745a';\n case 'Delete':\n return '#a52a1e';\n case 'Update':\n return '#013ca3';\n // Add more cases as needed\n default:\n return 'gray';\n }\n }\n}\n","
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Agent Name\n \n \n \n \n Mail id\n \n \n \n \n Status\n \n \n \n \n Created Date\n \n \n \n \n Updated Date\n \n \n Action
    \n {{ item[\"Mailid\"] }}\n \n
    \n {{ item[\"ActiveStatus\"] === \"true\" ? \"Active\" : \"In Active\" }}\n
    \n
    {{ item[\"CreatedDate\"] | date: \"medium\" }}{{ item[\"UpdatedDate\"] | date: \"medium\" }}\n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n

    \n {{ isUpdate ? \"Update\" : \"Create\" }} Agent\n

    \n \n
    \n
    \n {{\n error\n }}\n
    \n
    \n
    \n \n \n
    \n please enter a First name\n please enter a valid First name (only letters are allowed)\n
    \n
    \n
    \n \n \n
    \n please enter a last name\n please enter a valid last name (only letters are allowed)\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n {{ \"please enter a valid email\" | titlecase }}\n
    \n
    \n {{ \"please enter a valid email\" | titlecase }}\n \n
    \n
    \n
    \n \n
    \n
    \n \n\n
      \n
    • \n \n
      \n {{ country.name }} (+{{ country.code }})\n
      \n
    • \n
    \n
    \n \n
    \n please enter a Valid phone number\n Pattern not matched so please enter only digit\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    Available Projects
    \n
      \n
    • \n \n
      \n
      \n {{ contact.Name }}\n
      \n
      \n
    • \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    Assigned Projects *
    \n
      \n
    • \n \n
      \n
      \n {{ contact.Name }}\n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Available Roles
    \n
      \n
    • \n \n
      \n
      \n {{\n contact.Name | roleName: contact[\"ProjectId\"]:projects\n }}\n
      \n
      \n
    • \n
    \n
    \n
    \n \n \n
    \n
    \n
    Assigned Roles *
    \n
      \n
    • \n \n
      \n
      \n {{\n contact.Name | roleName: contact[\"ProjectId\"]:projects\n }}\n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Available groups
    \n
      \n
    • \n \n
      \n
      \n {{ contact.Name }}\n
      \n
      \n
    • \n
    \n
    \n
    \n \n \n
    \n
    \n
    Assigned groups *
    \n
      \n
    • \n \n
      \n
      \n {{ contact.Name }}\n
      \n
      \n
    • \n
    \n
    \n please select at least one group\n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n

    \n Delete Agent\n

    \n \n
    \n
    \n

    Are you sure you want to delete agent?

    \n\n
    \n \n \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n
    \n
    \n {{ sideViewerData?.data?.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n

    \n {{ i?.Description }}\n {{\n i?.timestamp | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    ","// import { groups } from './data';\nimport { Observable } from \"rxjs\";\n// import { HttpClientService } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { Role } from \"./models/role.model\";\nimport { Group } from \"./models/group.model\";\nimport { Agent } from \"./models/agent.model\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CreateAgent {\n baseApiUrl2: any = environment.baseApiUrl2;\n\n constructor(private http: HttpClientService) {}\n\n createAgent(body: Object) {\n \n return this.http.post(`${this.baseApiUrl2}agentscreate`, body);\n }\n GetAllRoles(id) {\n return this.http.get(`${this.baseApiUrl2}Role/company/${id}`);\n }\n GetAllGroups(id) {\n return this.http.get(`${this.baseApiUrl2}getCompanyGroups/${id}`);\n }\n GetAllAgents(companyId) {\n return this.http.get(\n `${this.baseApiUrl2}getActiveAgents/${companyId}`\n );\n }\n GetAgentbyid(id) {\n return this.http.get(`${this.baseApiUrl2}agentbyid/${id}`);\n }\n AgentUpdate(body: object) {\n return this.http.put(`${this.baseApiUrl2}updateagent`, body);\n }\n\n getContacts(companyId, userId) {\n return this.http.get(\n `${this.baseApiUrl2}contacts/${companyId}/${userId}/agent`\n );\n }\n\n getAgentNames() {\n return this.http.get(`${this.baseApiUrl2}getAgentNames`);\n }\n getSignedUrl(body: { url: string }) {\n return this.http.post(`${this.baseApiUrl2}getAwsSignedUrl`, body);\n }\n getMailGroups(companyId) {\n return this.http.get(`${this.baseApiUrl2}mailGroups/${companyId}`);\n }\n updateStatus(body: { id: number; status: string, fcmtoken: string, token:string }) {\n return this.http.post(`${this.baseApiUrl2}updateStatus`, body);\n }\n getAgentManGroups(body: { roles: Role[] }) {\n return this.http.post(\n `${this.baseApiUrl2}getAgentManGroups`,\n body\n );\n }\n\n updateAgentStatus(body: { id: any }) {\n return this.http.post(`${this.baseApiUrl2}updateAgentStatus`, body);\n }\n\n getAgentRole(body: { projects: any[] }) {\n return this.http.post(`${this.baseApiUrl2}getAgentRoles`, body);\n }\n}\n","export class Group {\n constructor(\n private id: number,\n private Name: string,\n private Description: String,\n private CreatedDate: Date | string,\n private UpdatedDate: Date | String,\n private ActiveStatus?: boolean,\n private manager?: string,\n private createdAt?: Date,\n private updatedAt?: Date\n\n ) { }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"roleName\",\n})\nexport class RoleNamePipe implements PipeTransform {\n transform(value: any, projectId: any, project: any[]): any {\n if (project.find((val) => val[\"id\"] === projectId)) {\n const ele = project.find((val) => val[\"id\"] === projectId);\n return ele[\"Name\"] + \"-\" + value;\n }\n return value;\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n HostListener,\n ElementRef,\n Inject,\n} from \"@angular/core\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { DashboardService } from \"../dashboard/dashboard.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { formatDate } from \"@angular/common\";\nimport { MarketingService } from \"../marketing/marketing.service\";\nimport * as xlsx from \"xlsx\";\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport * as moment from \"moment\";\nimport { Exceldata2 } from \"../marketing/smsmarketing/models/ExecelData.model2\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { Router } from \"@angular/router\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { environment } from \"src/environments/environment\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { NotificationsService } from \"src/app/notification.service\";\n\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { cuNextService } from \"../cunext.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\n\n@Component({\n selector: 'app-cu-next',\n templateUrl: './cu-next.component.html',\n styleUrls: ['./cu-next.component.css']\n})\nexport class CuNextComponent implements OnInit {\n public fileSource = environment.fileServer;\n public userData: any;\n public filterValue = \"all\";\n nav_position: string = \"end\";\n public statusValue = \"pending\";\n public page: any = 1;\n public pageSize: any = 12;\n public search: string;\n totalApplications: number;\n completedApplications: number;\n completedApplications2: number;\n incompleteapplications: number;\n documentspending: number;\n documentssubmitted: number;\n callback: number;\n activityData: any;\n activityData2: any;\n\n activityTable: any = [];\n activityTable2: any;\n\n startDate: any;\n endDate: any;\n leadsbody: any;\n companyId: any;\n companyAdmin: Boolean = false;\n rotating: boolean = false;\n projectId: any;\n downloadLink: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public leadType: string = \"all\";\n public errorMessage: string = \"\";\n public submitted: boolean = false;\n public edited: boolean = false;\n admin: boolean = false;\n public counselling: boolean = false;\n isCallcomming: boolean = false;\n connection: any = null;\n // audio: any;\n audio = new Audio();\n audioStatus: boolean = false;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n documentsList: any;\n documentsList2: any;\n selectedCallerId: any;\n selectedLead: any;\n commentText: string = \"\";\n newStatus: any;\n docUrl: any;\n currentLeadId: any;\n currentGuid: any;\n documentComments: string;\n validationStatus: boolean = false;\n currentItem: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButton3\", { static: true }) closeButton3;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n\n leadIds = [];\n selectedAll: boolean = false;\n agentList: any;\n GBPagentList: any;\n defaultAgent = \"default\";\n selectedAgent: any;\n\n testConfig: any;\n // callStarted: boolean = false;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public clearTime: any;\n dialerScreen1 = \"dialer\";\n phoneNumber: any = \"\";\n agentCall: String = \"\";\n isShownMarketing: boolean = false;\n dailerScreen: any = \"nocall\";\n isCallingProgress: boolean = false;\n isOutgoing: boolean = false;\n isIncoming: boolean = false;\n disabled: any;\n callStatus: string = \"Calling..\";\n tab: any;\n showDate: boolean = false;\n\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n totalAgents: any;\n agentName: any;\n\n public startIndex: number = 0;\n\n date1: any;\n date2: any;\n serializedDate = new FormControl(new Date().toISOString());\n documentsDenied: number;\n CallsPending: number;\n revalidate: any;\n minItems = 5;\n unassigned: any;\n assigned: any;\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n assignedtome: any;\n file: File;\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: any = [];\n customDocLeadId: any;\n leadtoEdit: {\n id: any\n application_status: string\n accepted_app_status: string\n first_name: string\n last_name: string\n id_number: string\n student_email: string\n when_like_to_begin_studies: string\n what_program: string\n program_enddate_listed: string\n address_line1?: string\n address_line2?: string\n city?: string\n state?: string\n country?: string\n zipcode?: null,\n reject_reason?: string\n };\n editComment: string;\n editStatus: string;\n allRecords: any;\n isLoading: boolean = true;\n noRecords: boolean = false;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n activityfilterString: string = \"\";\n uploadSuccess: string = \"none\";\n topBarCounts = {\n Total: \"0\",\n Accepted: \"0\",\n Cancelled: \"0\",\n Cold: \"0\",\n Deferred: \"0\",\n GradesHold: \"0\",\n GraduationHold: \"0\",\n InReview: \"0\",\n Incomplete: \"0\",\n Reject: \"0\",\n Submitted: \"0\",\n NotApplicable: \"0\",\n AcceptedHoldGrades: \"0\",\n AcceptedHoldGraduation: \"0\",\n AcceptedEarly: \"0\",\n AcceptedStatus: \"0\",\n AcceptedMSCS: \"0\",\n AcceptedBusinessHold: \"0\"\n };\n cardLeadType: string = \"all\";\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n currentCard: string = \"total\";\n sortColumn = \"updatedAt\";\n sortOrder = \"des\";\n projectLists: any;\n smsText: string;\n\n DIyear: any;\n DIterms: any;\n rejectReason: boolean = false;\n constructor(\n public uhleadsservice: UhLeadsService,\n public cunextService: cuNextService,\n public sharedService: SharedService,\n public dashBoardService: DashboardService,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n private readonly loginService: AuthService,\n private readonly modalService: NgbModal,\n private authService: AuthService,\n private router: Router,\n private agentService: CreateAgent,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private NotificationService: NotificationsService,\n private companyService: RoleService,\n private handleError: ErrorHandlerService,\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit() {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == \"24hrs\";\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"CuNext\"\n )[0].id;\n if (this.projectId != null) {\n this.sharedService.getProjectAdmin(this.projectId).subscribe(\n (data) => {\n this.admin = data;\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"all\",\n start: this.startDate,\n end: this.endDate\n },\n \"all\"\n );\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n // this.getData(this.userData, this.statusValue, this.startDate, this.endDate);\n this.showTotalApplications(); //Shohw only pending records on page load\n this.onClick(1); //Activating pending card by default\n\n // this.getDownloadLink();\n\n // this.uhleadsservice.viewReceivedLead.subscribe((res: any) => {\n // if (res) {\n // this.viewLead(res);\n // }\n // });\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"all\",\n start: this.startDate,\n end: this.endDate,\n },\n \"all\"\n );\n } else if (this.leadType == \"filter\") {\n // this.searchLeads(this.search, this.pageNumber)\n\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n search: this.search,\n };\n if (this.search.length > 0) {\n this.cunextService\n .GetSearchDashboardStudent(payload)\n .subscribe(\n (res: any) => {\n this.activityTable = res.data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.totalRecords.nativeElement.click();\n this.leadType = \"all\";\n }\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.admin = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n }\n\n onClick(check) {\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else {\n this.tab = null;\n }\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.cunextService\n .assignStudent({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n StudentID: this.leadIds,\n })\n .subscribe(\n (res) => {\n this.selectedAll = false;\n document.querySelectorAll('input[type=checkbox]').forEach(el => {\n let element: any = el\n element.checked = false;\n });\n // let payload = {\n // AgentMail: this.userData.mail,\n // GBPAssignedTo: this.selectedAgent,\n // LeadId: this.leadIds,\n // Platform: \"CRM\",\n // StudentDocId: 0,\n // Title: \"Assigned\",\n // description:\n // \"New leads are assigned to you by \" +\n // this.getAgentName(this.userData.mail),\n // notificationType: \"AssignedToAgent\",\n // token: this.userData.token,\n // };\n // this.NotificationService.sendNotifications(payload).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // }\n // },\n // (error) => {\n // this.handleError.handleError(error);\n // }\n // );\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n this.getTopBarCuNext();\n // this.getCardData(\n // this.userData,\n // \"total\",\n // this.startDate,\n // this.endDate\n // );\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n setLeadType() {\n this.leadType = \"\";\n }\n\n showTotalApplications() {\n this.statusValue = \"all\";\n this.leadType = \"all\";\n this.currentCard = \"total\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"all\",\n start: this.startDate,\n end: this.endDate,\n },\n \"all\"\n );\n }\n showIncompleteApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Incomplete\";\n this.currentCard = \"Incomplete\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Incomplete\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Incomplete\"\n );\n }\n\n showSubmittedApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Submitted\";\n this.currentCard = \"Submitted\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Submitted\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Submitted\"\n );\n\n }\n showInReviewApplications() {\n this.statusValue = \"all\";\n this.leadType = \"In Review\";\n this.currentCard = \"In Review\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"In Review\",\n start: this.startDate,\n end: this.endDate,\n },\n \"In Review\"\n );\n }\n showGraduationHoldApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Graduation Hold\";\n this.currentCard = \"Graduation Hold\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Graduation Hold\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Graduation Hold\"\n );\n }\n showGradesHoldApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Grades Hold\";\n this.currentCard = \"Grades Hold\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Grades Hold\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Grades Hold\"\n );\n }\n showAcceptedApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Accepted\";\n this.currentCard = \"Accepted\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Accepted\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Accepted\"\n );\n }\n showDeferredApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Deferred\";\n this.currentCard = \"Deferred\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Deferred\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Deferred\"\n );\n }\n showRejectApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Reject\";\n this.currentCard = \"Reject\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Reject\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Reject\"\n );\n }\n showCOLDApplications() {\n this.statusValue = \"all\";\n this.leadType = \"COLD\";\n this.currentCard = \"COLD\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"COLD\",\n start: this.startDate,\n end: this.endDate,\n },\n \"COLD\"\n );\n }\n showCancelledApplications() {\n this.statusValue = \"all\";\n this.leadType = \"Cancelled\";\n this.currentCard = \"Cancelled\";\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: \"Cancelled\",\n start: this.startDate,\n end: this.endDate,\n },\n \"Cancelled\"\n );\n }\n //Shows date if the filter value is custom\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n public onInput(event: any) {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: 1,\n leadType: \"All\",\n search: this.search,\n };\n if (this.search != \"\") {\n this.cunextService\n .GetSearchDashboardStudent(payload)\n .subscribe((res: any) => {\n this.activityTable = res.data;\n });\n this.activityTable = this.allRecords;\n } else if (this.search == \"\") {\n this.totalRecords.nativeElement.click();\n }\n }\n\n searchLeads(value, page) {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.cunextService.GetSearchDashboardStudent(payload).subscribe(\n (res: any) => {\n this.activityTable = res.data;\n\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.getTopBarCuNext();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCuNext();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n\n updateActivity() {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCuNext();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n this.totalApplications = this.activityTable.length;\n this.completedApplications = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"validated\" || el.LeadDocStatus == \"Validated\";\n }).length;\n this.completedApplications2 = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"completed\" || el.LeadDocStatus == \"complete\";\n }).length;\n this.incompleteapplications = this.activityTable.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n }).length;\n this.documentspending = this.activityTable.filter(function (el) {\n return el.Phase == \"pending\";\n }).length;\n this.documentssubmitted = this.activityTable.filter(function (el) {\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n }).length;\n this.callback = this.activityTable.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n // getDownloadLink() {\n // this.marketingService\n // .getExcelLink(this.fileSource + \"/TemplateDocuments/campbellsville.xlsx\")\n // .subscribe(\n // (data) => {\n // this.downloadLink = data[\"url\"];\n // },\n // (error) => {\n // this.handleError.handleError(error);\n // }\n // );\n // }\n\n redirectToUpload() {\n this.router.navigate([\"./upload/\" + this.projectId]);\n }\n\n get editLeads(): { [key: string]: AbstractControl } {\n return this.cunextService.editLead.controls;\n }\n\n getDashboardLeads(leadType) {\n if (!this.projectId) {\n return;\n }\n this.leadType = leadType;\n }\n\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getTopBarCuNext();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.showDate = false;\n }\n }\n // getCounts(userData: any, leadtype, startDate, endDate, filter) {\n // this.leadIds = [];\n // this.activityTable = [];\n // this.isLoading = true;\n // this.noRecords = false;\n // this.search = \"\";\n // // this.activityTable = [];\n // this.companyService.projectAdmin(this.companyId).subscribe(\n // (projects) => {\n // this.projectId = projects.filter(\n // (x) => x.Name == \"CuNext\"\n // )[0].id;\n // this.leadsbody = {\n // admin: this.admin,\n // // admin: true,\n // mail: userData.mail,\n // ProjectId: this.projectId,\n // leadType: leadtype,\n // start: this.startDate,\n // end: this.endDate,\n // };\n\n // this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n // (res) => {\n // this.activityData2 = res;\n\n // this.activityData2.forEach(function (a) {\n // Object.keys(a).map((key) => {\n // a[key] === null ? (a[key] = \"-\") : a[key];\n // });\n // });\n\n // for (let i = 0; i < this.activityData2.length; i++) {\n // if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n // this.activityData2[i].PhoneNumber = \"-\";\n // this.activityData2[i].CountryCode = \"-\";\n // }\n\n // this.activityData2[i].AssignedtoName = this.getAgentName(\n // this.activityData2[i].Assignedto\n // );\n // this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n // this.activityData2[i].Assignedto\n // );\n // this.activityData2[i].AssignedtoColor = this.getAgentColor(\n // this.activityData2[i].Assignedto\n // );\n // this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n // this.activityData2[i].Assignedto\n // );\n // if (\n // this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n // this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n // this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n // this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n // ) {\n // this.activityData2[i].LeadDocStatus = \"Revalidate\";\n // }\n // }\n\n // this.activityData = this.activityData2;\n // this.totalApplications = this.activityData.length;\n // this.completedApplications = this.activityData.filter(function (\n // el\n // ) {\n // return el.LeadDocStatus == \"validated\";\n // }).length;\n // this.completedApplications2 = this.activityData.filter(function (\n // el\n // ) {\n // return (\n // el.LeadDocStatus == \"completed\" ||\n // el.LeadDocStatus == \"Completed\"\n // );\n // }).length;\n // this.incompleteapplications = this.activityData.filter(function (\n // el\n // ) {\n // // return el.LeadDocStatus != \"validated\";\n // return (\n // el.LeadDocStatus == \"pending\" ||\n // el.LeadDocStatus == \"Admin-revalidate\" ||\n // el.LeadDocStatus == \"revalidate\" ||\n // el.LeadDocStatus == \"CRM-revalidate\" ||\n // el.LeadDocStatus == \"Revalidate\" ||\n // el.LeadDocStatus == \"reopen\" ||\n // el.LeadDocStatus == \"denied\"\n // );\n // }).length;\n // var count = 0;\n\n // this.documentspending = this.activityData.filter(function (el) {\n // if (el.uploadlistofdocuments.length == 0) {\n // count = count + 1;\n // } else {\n // var checkDock = true;\n // for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n // if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n // checkDock = false;\n // }\n // }\n // if (checkDock == false) {\n // count = count + 1;\n // } else {\n // }\n // }\n // return el.Phase == \"pending\";\n // }).length;\n // this.documentspending = count;\n // this.documentsDenied = this.activityData.filter(function (el) {\n // return (\n // el.LeadDocStatus == \"denied\" || el.LeadDocStatus == \"Denied\"\n // );\n // }).length;\n // this.CallsPending = this.activityData.filter(function (el) {\n // return el.Phase == \"pending\" || el.Phase == \"Pending\";\n // }).length;\n // this.revalidate = this.activityData.filter(function (el) {\n // return (\n // el.LeadDocStatus == \"revalidate\" ||\n // el.LeadDocStatus == \"Revalidate\" ||\n // el.LeadDocStatus == \"CRM-revalidate\" ||\n // el.LeadDocStatus == \"GBP-revalidate\"\n // );\n // }).length;\n // this.unassigned = this.activityData.filter(function (el) {\n // return el.Assignedto == \"\" || el.Assignedto == \"-\";\n // }).length;\n\n // this.assigned = this.activityData.length - this.unassigned;\n\n // this.assignedtome = this.activityData.filter(function (el) {\n // return el.Assignedto == userData.mail;\n // }).length;\n // this.unassigned = this.activityData.filter(function (el) {\n // return el.Assignedto == \"\" || el.Assignedto == \"-\";\n // }).length;\n\n // this.assigned = this.activityData.length - this.unassigned;\n\n // this.documentssubmitted =\n // this.totalApplications - this.documentspending;\n\n // this.callback = this.activityData.filter(function (el) {\n // return el.Phase == \"callback\" || el.Phase == \"Callback\";\n // }).length;\n\n // var DocPendingList = [];\n // var DocSubmittedList = [];\n\n // if (filter == \"all\") {\n // this.activityTable = this.activityData;\n // } else if (filter == \"validatedDocuments\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.LeadDocStatus == \"validated\";\n // });\n // } else if (filter == \"completedDocuments\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.LeadDocStatus == \"completed\";\n // });\n // } else if (filter == \"ValidationPending\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return (\n // el.LeadDocStatus == \"pending\" ||\n // el.LeadDocStatus == \"Admin-revalidate\" ||\n // el.LeadDocStatus == \"revalidate\" ||\n // el.LeadDocStatus == \"CRM-revalidate\" ||\n // el.LeadDocStatus == \"Revalidate\" ||\n // el.LeadDocStatus == \"reopen\" ||\n // el.LeadDocStatus == \"denied\"\n // );\n // });\n // } else if (filter == \"completedApplications\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.APPStatus == \"complete\" || el.APPStatus == \"complete\";\n // });\n // } else if (filter == \"incompleteApplications\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.APPStatus == \"Incomplete\";\n // });\n // } else if (filter == \"documentsPending\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // if (el.uploadlistofdocuments.length == 0) {\n // DocPendingList.push(el);\n // } else {\n // var checkDock = true;\n // for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n // if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n // checkDock = false;\n // }\n // }\n // if (checkDock == false) {\n // DocPendingList.push(el);\n // }\n // }\n // return el.Phase == \"pending\";\n // });\n // this.activityTable = DocPendingList;\n // } else if (filter == \"documentsSubmitted\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // if (el.uploadlistofdocuments.length != 0) {\n // var docCheck = true;\n // for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n // if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n // docCheck = false;\n // }\n // }\n // if (docCheck == true) {\n // DocSubmittedList.push(el);\n // }\n // }\n // return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n // });\n // this.activityTable = DocSubmittedList;\n // } else if (filter == \"callback\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Phase == \"callback\" || el.Phase == \"Callback\";\n // });\n // } else if (filter == \"denied\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return (\n // el.LeadDocStatus == \"Denied\" || el.LeadDocStatus == \"denied\"\n // );\n // });\n // } else if (filter == \"pendingCalls\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Phase == \"pending\" || el.Phase == \"Pending\";\n // });\n // } else if (filter == \"revalidate\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return (\n // el.LeadDocStatus == \"revalidate\" ||\n // el.LeadDocStatus == \"Revalidate\" ||\n // el.LeadDocStatus == \"CRM-revalidate\" ||\n // el.LeadDocStatus == \"GBP-revalidate\"\n // );\n // });\n // } else if (filter == \"assigned\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Assignedto != \"-\";\n // });\n // } else if (filter == \"assignedtome\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Assignedto == userData.mail;\n // });\n // } else if (filter == \"unassigned\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Assignedto == \"-\" || el.Assignedto == \"\";\n // });\n // } else if (filter == \"assigned\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Assignedto != \"-\";\n // });\n // } else if (filter == \"unassigned\") {\n // this.activityTable = this.activityData.filter(function (el) {\n // return el.Assignedto == \"-\" || el.Assignedto == \"\";\n // });\n // }\n\n // this.isLoading = false;\n // if (this.activityTable.length == 0) {\n // this.noRecords = true;\n // } else {\n // this.noRecords = false;\n // }\n // },\n // (error) => {\n // this.handleError.handleError(error);\n // }\n // );\n // },\n // (error) => {\n // this.handleError.handleError(error);\n // }\n // );\n // this.getAllData(\n // this.userData,\n // \"all\",\n // new Date(Date.now() - 864e5 * 365),\n // new Date(Date.now())\n // );\n // }\n\n getData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityTable2 = res;\n\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n // this.getAgentName()\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.isLoading = false;\n this.handleError.handleError(error);\n }\n );\n }\n\n getAllData(userData: any, leadtype, startDate, endDate) {\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: leadtype,\n start: this.startDate,\n end: this.endDate,\n page: this.pageNumber,\n };\n\n this.cunextService.getCardAccepetedType(this.leadsbody).subscribe(\n (res: any) => {\n this.allRecords = res;\n },\n (error) => {\n this.allRecords = [];\n this.handleError.handleError(error);\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n );\n }\n\n onStatusChange(data) {\n this.newStatus = data;\n if (this.newStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n sideNavData(data) {\n this.activityfilterString = \"\";\n this.customDocName = \"\";\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.cunextService.getStudentActivity(data.id).subscribe(\n (res) => {\n this.sideViewerData = res;\n this.currentLeadId = this.sideViewerData.id;\n // this.replaceNull(this.sideViewerData);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n getAgentName(email) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n checkValidation() {\n if (this.documentsList2.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.documentsList2.length; i++) {\n if (\n this.documentsList2[i].AgentValidation == \"revalidate\" ||\n this.documentsList2[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (this.documentsList2[i].AgentValidation == \"validated\") {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n if (this.validationStatus == true) {\n // Send Notification\n\n let payload = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRMGBP\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n }\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n openEditLead(content, lead) {\n this.editStatus = lead.CallStatus;\n this.leadtoEdit = {\n id: lead.id,\n application_status: lead.application_status,\n accepted_app_status: lead.accepted_app_status,\n first_name: lead.first_name,\n last_name: lead.last_name,\n id_number: lead.id_number,\n student_email: lead.student_email,\n when_like_to_begin_studies: lead.when_like_to_begin_studies,\n what_program: lead.what_program,\n program_enddate_listed: moment(new Date(lead.program_enddate_listed)).format(\"YYYY-MM-DD\"),\n address_line1: lead.address_line1,\n address_line2: lead.address_line2,\n city: lead.city,\n state: lead.state,\n country: lead.country,\n zipcode: lead.zipcode,\n reject_reason: lead.application_status == 'Cancelled' || lead.application_status == 'Reject' ? lead.reject_reason : ''\n };\n this.modalService.open(content, { size: \"lg\" });\n }\n\n replaceAll(string, search, replace) {\n return string.split(search).join(replace);\n }\n\n updateLead() {\n this.edited = true;\n if (this.cunextService.editLead.invalid) {\n return;\n }\n\n if((this.leadtoEdit.application_status == 'Cancelled' || this.leadtoEdit.application_status == 'Reject')\n && (this.leadtoEdit.reject_reason == \"\" || this.leadtoEdit.reject_reason == null)) {\n this.rejectReason = true;\n return;\n } else {\n this.rejectReason = false;\n }\n\n this.leadtoEdit['AgentMail'] = this.userData.mail;\n\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.cunextService.updateStudentInfo(this.leadtoEdit).subscribe(\n (res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n\n document.getElementById(\"closeButton3\").click();\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCuNext();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n page: 1,\n },\n this.cardLeadType\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n // viewLead(id) {\n // this.sideNav.toggle();\n // this.sideNavData({ id: id });\n // }\n\n onInputActivity(event: any) {\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n getTopBarCuNext() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.cunextService\n .getTopBarCuNext(postData)\n .toPromise()\n .then((resp: any) => {\n this.totalPages = 1;\n if (this.leadType == \"all\" || this.leadType == \"total\") {\n this.totalPages = resp.TopBarCount.Total;\n } else if (this.leadType == \"Incomplete\") {\n this.totalPages = resp.TopBarCount.Incomplete;\n } else if (this.leadType == \"Submitted\") {\n this.totalPages = resp.TopBarCount.Submitted;\n } else if (this.leadType == \"In Review\") {\n this.totalPages = resp.TopBarCount.InReview;\n } else if (this.leadType == \"Graduation Hold\") {\n this.totalPages = resp.TopBarCount.GraduationHold;\n } else if (this.leadType == \"Grades Hold\") {\n this.totalPages = resp.TopBarCount.GradesHold;\n } else if (this.leadType == \"Accepted\") {\n this.totalPages = resp.TopBarCount.Accepted;\n } else if (this.leadType == \"Deferred\") {\n this.totalPages = resp.TopBarCount.Deferred;\n } else if (this.leadType == \"Reject\") {\n this.totalPages = resp.TopBarCount.Reject;\n } else if (this.leadType == \"COLD\") {\n this.totalPages = resp.TopBarCount.Cold;\n } else if (this.leadType == \"Cancelled\") {\n this.totalPages = resp.TopBarCount.Cancelled;\n } else if (this.leadType == \"Not Applicable\") {\n this.totalPages = resp.TopBarCount.NotApplicable;\n } else if (this.leadType == \"Accepted, hold for grades\") {\n this.totalPages = resp.TopBarCount.AcceptedHoldGrades;\n } else if (this.leadType == \"Accepted, graduation hold\") {\n this.totalPages = resp.TopBarCount.AcceptedHoldGraduation;\n } else if (this.leadType == \"Accepted early\") {\n this.totalPages = resp.TopBarCount.AcceptedEarly;\n } else if (this.leadType == \"AcceptedStatus\") {\n this.totalPages = resp.TopBarCount.AcceptedStatus;\n } else if (this.leadType == \"Accepted, MSCS Approval Pending\") {\n this.totalPages = resp.TopBarCount.AcceptedMSCS;\n } else if (this.leadType == \"Accepted, business office hold\") {\n this.totalPages = resp.TopBarCount.AcceptedBusinessHold;\n }\n\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n this.topBarCounts = resp.TopBarCount;\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n\n sortData(arr, value) {\n return arr.sort((a, b) => {\n return a[value] - b[value];\n //return a[value] < b[value] ? -1 : a[value] > b[value] ? 1: 0\n });\n }\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n }\n\n getCardCount(obj, type) {\n this.cardLeadType = type;\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n\n this.activityData2 = [];\n this.activityData = [];\n // this.sharedService.projectId.subscribe((data) => {\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n obj.projectId = projects.filter(\n (x) => x.Name == \"CuNext\"\n )[0].id;\n // obj.ProjectId = data;\n obj.page = this.pageNumber;\n obj.accepted_app_status = this.leadType;\n this.cunextService\n .getCardAccepetedType(obj)\n .toPromise()\n .then((resp: any) => {\n this.activityData2 = resp;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }, (error) => {\n this.activityData2 = [];\n this.handleError.handleError(error);\n })\n this.activityData = this.activityData2;\n\n this.activityTable = this.activityData;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.isLoading = false;\n this.handleError.handleError(err);\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getCardData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n let obj = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n accepted_app_status: leadtype,\n start: this.startDate,\n end: this.endDate,\n page: this.pageNumber,\n };\n this.cunextService\n .getCardAccepetedType(obj)\n .toPromise()\n .then((resp: any) => {\n this.activityData2 = resp;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }, (error) => {\n this.activityData2 = [];\n this.handleError.handleError(error);\n });\n // this.getAllData(\n // this.userData,\n // \"total\",\n // new Date(Date.now() - 864e5 * 365),\n // new Date(Date.now())\n // );\n this.activityData = this.activityData2;\n\n this.activityTable = this.activityData;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.isLoading = false;\n this.handleError.handleError(err);\n });\n }\n\n dropdownSelect(event) {\n this.onClick(null);\n this.leadType = event;\n this.getTopBarCuNext()\n this.getCardData(this.userData, event, this.startDate, this.endDate);\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.activityTable.length; i++) {\n this.leadIds.push(this.activityTable[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Student Name\n {{ sideViewerData.first_name + \" \" + sideViewerData.last_name }}\n
    Email{{ sideViewerData.student_email }}
    CU ID Number{{ sideViewerData.id_number }}
    Address Line#1{{ sideViewerData.address_line1 ? sideViewerData.address_line1 : '-' }}
    Address Line#2{{ sideViewerData.address_line2 ? sideViewerData.address_line2 : '-' }}
    City{{ sideViewerData.city ? sideViewerData.city : '-' }}
    State{{ sideViewerData.state ? sideViewerData.state : '-' }}
    Country{{ sideViewerData.country ? sideViewerData.country : '-' }}
    Zipcode{{ sideViewerData.zipcode ? sideViewerData.zipcode : '-' }}
    When would you like to begin your studies?{{ sideViewerData.when_like_to_begin_studies }}
    What Program ?{{ sideViewerData.what_program }}
    Application Status{{ sideViewerData.application_status }}
    Accepted Application Status{{ sideViewerData.accepted_app_status }}
    Reject Reason{{ sideViewerData.reject_reason ? sideViewerData.reject_reason : '-' }}
    \n
    \n
    \n \n
    \n
    \n
    \n {{ sideViewerData?.Activities?.length > 0 ?\n sideViewerData?.Activities?.length : '0' }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date: \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n\n \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Total}}\n
    \n
    \n
    Total
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Incomplete}}\n
    \n
    \n
    Incomplete
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Submitted}}\n
    \n
    \n
    Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.InReview}}\n
    \n
    \n
    In Review
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.GraduationHold}}\n
    \n
    \n
    Graduation Hold
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.GradesHold }}\n
    \n
    \n
    Grades Hold
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Accepted}}\n
    \n
    \n
    Accepted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Deferred}}\n
    \n
    \n
    Deferred
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Reject}}\n
    \n
    \n
    Reject
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Cold}}\n
    \n
    \n
    COLD
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.Cancelled}}\n
    \n
    \n
    Cancelled
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n Total Registered\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    Actions\n
    \n
    Created
    \n \n
    \n
    \n
    \n
    Updated
    \n \n
    \n
    \n
    \n
    Name
    \n \n
    \n
    \n Email\n \n \n Application Status\n \n \n Accepted Application Status\n \n \n I-20 End Date\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n\n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    {{item?.createdAt | date: 'dd MMM, yyyy'}}
    \n
    \n
    \n
    {{item?.updatedAt | date: 'dd MMM, yyyy'}}
    \n
    \n \n \n\n \n
    \n
    \n \n {{ item.student_email | lowercase }}\n \n
    \n {{ item.student_email | lowercase }}\n
    \n \n
    \n Incomplete\n Submitted\n In Review\n Graduation\n Hold\n Grades Hold\n Accepted\n Deferred\n Reject\n COLD\n Cancelled\n \n
    \n \n \n \n {{ item.accepted_app_status == 'AcceptedS' ? 'Accepted' : item.accepted_app_status }}\n
    \n
    \n \n \n {{ item.program_enddate_listed | date: 'dd MMM, yyyy'}}\n \n \n \n
    \n
    \n \n\n
    Loading Data
    Please wait while we fetch the data for you
    \n
    \n
    \n
    \n \n
    No records found.
    Please select a different date range.
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n

    Update Information

    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    ID Number is required
    \n
    \n\n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    \n
    \n\n
    \n \n \n
    \n
    Last Name is required
    \n
    \n
    \n
    \n \n \n\n
    \n
    Email is required
    \n
    \n Email must be a valid email address\n
    \n
    \n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n
    \n \n \n
    \n\n
    \n\n
    \n
    \n \n \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n
    \n
    \n \n \n
    \n
    required
    \n
    \n
    \n\n
    \n \n \n
    \n
    required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    required
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    Reason required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","import { HttpClientService } from \"../httpclient.service\";\nimport { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n@Injectable({\n providedIn: \"root\",\n})\nexport class cuNextService {\n baseApiUrl = environment.baseCuNextUrl;\n\n editLead = this.formBuilder.group({\n application_status: [''],\n accepted_app_status: [''],\n first_name: ['', Validators.required],\n last_name: ['', Validators.required],\n id_number: ['', Validators.required],\n student_email: ['', [Validators.required, Validators.email]],\n when_like_to_begin_studies: ['', Validators.required],\n what_program: ['', Validators.required],\n program_enddate_listed: ['', Validators.required],\n address_line1: [''],\n address_line2: [''],\n city: [''],\n state: [''],\n country: [''],\n zipcode: [null],\n reject_reason: ['']\n });\n\n constructor(\n private http: HttpClientService,\n private readonly formBuilder: FormBuilder,\n ) {}\n\n getTopBarCuNext(data){\n return this.http.post(\n `${this.baseApiUrl}countOfCuNextDetail`,\n data\n );\n \n }\n\n getCardAccepetedType(data){\n return this.http.post(\n `${this.baseApiUrl}getCardAccepetedType`,\n data\n );\n }\n\n updateStudentInfo(data) {\n return this.http.post(`${this.baseApiUrl}updateStud`, data);\n }\n\n getStudentActivity(id) {\n return this.http.get(`${this.baseApiUrl}getStud1/` + id);\n }\n\n GetSearchDashboardStudent(data){\n return this.http.post(\n `${this.baseApiUrl}getSearchDashboardStudent`,\n data\n );\n }\n assignStudent(body) {\n return this.http.post(\n `${this.baseApiUrl}AssignCRMStudent`,\n body\n );\n }\n \n\n}\n","import { ActivatedRoute } from \"@angular/router\";\nimport { MailserviceService } from \"./../mailservice.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { Ticket } from \"./../dashboard/models/ticket.model\";\nimport {\n ModalDismissReasons,\n NgbCalendar,\n NgbDate,\n NgbModal,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { DashboardService } from \"../dashboard/dashboard.service\";\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { TicketsService } from \"../tickets/tickets.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\ninterface PendingSelection {\n [key: number]: boolean;\n}\n\n@Component({\n selector: \"app-custom-table\",\n templateUrl: \"./custom-table.component.html\",\n styleUrls: [\"./custom-table.component.less\"],\n})\nexport class CustomTableComponent implements OnInit {\n public selectedColumns: any[] = [];\n public unSelectedColumns: any[] = [];\n public tickets: Ticket[] = [];\n public pendingSelection: PendingSelection;\n public userData: any;\n public closeResult: string;\n public page: any = 1;\n public pageSize: any = 10;\n public loading: { displayColumns: boolean; remainingColumns: boolean } = {\n displayColumns: false,\n remainingColumns: false,\n };\n public superAdmin: Boolean;\n public projectId: number;\n public search: any;\n public fromDate: NgbDate;\n public toDate: NgbDate;\n public queryParams: { admin: Boolean; page: string; status: string };\n public admin: Boolean = false;\n public TicketCount: number = 0;\n public dropdownSettings: IDropdownSettings;\n public contacts: any[];\n public selectAgent: any[] = [];\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n\n // public page: number = 1;\n\n constructor(\n private modalService: NgbModal,\n private dashboardService: DashboardService,\n private sharedService: SharedService,\n private mailService: MailserviceService,\n private authService: AuthService,\n public ticketService: TicketsService,\n public route: ActivatedRoute,\n private calendar: NgbCalendar,\n private agentService: CreateAgent,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n\n ) { }\n\n ngOnInit() {\n // this.page = 1;\n this.TicketCount = 0;\n this.getColumns();\n this.fromDate = this.calendar.getNext(this.calendar.getToday(), \"m\", -1);\n this.toDate = this.calendar.getToday();\n this.dropdownSettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n };\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.route.params.subscribe((param) => {\n if (param.pageName === \"My Group Tickets\") {\n this.queryParams = {\n page: \"mygroups\",\n status: \"open\",\n admin: this.admin,\n };\n this.sharedService.pageEvent.emit({\n pageName: \"My Group Tickets\",\n togglePage: false,\n });\n } else {\n this.queryParams = {\n page: \"closeTickets\",\n status: \"closed\",\n admin: this.admin,\n };\n this.sharedService.pageEvent.emit({\n pageName: \"My Group Closed Tickets\",\n togglePage: false,\n });\n }\n // this.sharedService.projectId.subscribe((project) => {\n // if (project) {\n // this.projectId = project;\n // this.sharedService.getProjectAdmin(project).subscribe((admin) => {\n // this.admin = admin;\n // this.getAgents();\n // this.getTickets({\n // from: this.fromDate,\n // to: this.toDate,\n // admin: admin,\n // status: param.pageName === \"My Group Tickets\" ? \"open\" : \"closed\",\n // agentMail: \"\",\n // });\n // });\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.sharedService.getProjectAdmin(this.projectId).subscribe((admin) => {\n this.admin = admin;\n this.getAgents();\n this.getTickets({\n from: this.fromDate,\n to: this.toDate,\n admin: admin,\n status: param.pageName === \"My Group Tickets\" ? \"open\" : \"closed\",\n agentMail: \"\",\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 500);\n // this.sharedService.projectId.subscribe((data) => {\n // if (this.userData[\"projectId\"] === 0 && data) {\n // this.projectId = data;\n // this.admin = true;\n // this.selectAgent = [];\n // this.getAgents();\n // if (param.pageName === \"My Group Tickets\") {\n // this.getTickets({\n // from: this.fromDate,\n // to: this.toDate,\n // admin: true,\n // status: \"open\",\n // agentMail: \"\",\n // });\n // } else {\n // this.getTickets({\n // from: this.fromDate,\n // to: this.toDate,\n // admin: true,\n // status: \"closed\",\n // agentMail: \"\",\n // });\n // }\n // }\n // });\n });\n }\n\n getColumns() {\n this.mailService.getConfiguration(\"displayedColumns\").subscribe((data) => {\n this.selectedColumns = data.split(\",\");\n this.loading.displayColumns = true;\n // this.loading = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.mailService.getConfiguration(\"remainingColumns\").subscribe((data) => {\n this.unSelectedColumns = data.split(\",\");\n this.loading.remainingColumns = true;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n updateColumns() {\n this.mailService\n .updateConfiguration({\n name: \"displayedColumns\",\n value: this.selectedColumns.toString(),\n })\n .subscribe((data) => {\n // \n }, (error) => {\n this.handleError.handleError(error)\n });\n this.mailService\n .updateConfiguration({\n name: \"remainingColumns\",\n value: this.unSelectedColumns.toString(),\n })\n .subscribe((data) => {\n // \n this.modalService.dismissAll();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n public addToSelectedColumns(contact?: any) {\n var changedColumn = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.unSelectedColumns);\n this.pendingSelection = Object.create(null);\n this.unSelectedColumns = this.removeColumnsFromCollection(\n this.unSelectedColumns,\n changedColumn\n );\n this.selectedColumns = changedColumn.concat(this.selectedColumns);\n \n }\n public removeFromColumns(contact?: any) {\n var changeRoles = contact\n ? [contact]\n : this.getPendingSelectionFromCollection(this.selectedColumns);\n this.pendingSelection = Object.create(null);\n this.selectedColumns = this.removeColumnsFromCollection(\n this.selectedColumns,\n changeRoles\n );\n this.unSelectedColumns = changeRoles.concat(this.unSelectedColumns);\n }\n\n private getPendingSelectionFromCollection(collection: any[]): any[] {\n var selectionFromCollection = collection.filter((contact) => {\n return contact in this.pendingSelection;\n });\n return selectionFromCollection;\n }\n\n private removeColumnsFromCollection(\n collection: any[],\n RolesToRemove: any[]\n ): any[] {\n var collectionWithoutRoles = collection.filter((contact) => {\n return !RolesToRemove.includes(contact);\n });\n return collectionWithoutRoles;\n }\n\n open(content) {\n this.modalService.open(content, { size: \"lg\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(\n this.selectedColumns,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n getTickets(body: {\n from: NgbDate;\n to: NgbDate;\n agentMail: string;\n admin: Boolean;\n status: string;\n }) {\n this.ticketService\n .getCustomTickets({\n mail: this.userData[\"mail\"],\n companyId: this.projectId,\n from: new Date(\n this.fromDate.year,\n this.fromDate.month - 1,\n this.fromDate.day + 1\n ),\n to: new Date(\n this.toDate.year,\n this.toDate.month - 1,\n this.toDate.day + 1\n ),\n offsetNumber: this.page - 1,\n admin: body.admin,\n agentMail: body.agentMail || \"\",\n status: body.status,\n })\n .subscribe((data) => {\n this.tickets = data;\n if (data[0]) {\n this.TicketCount = data[0][\"TicketCount\"];\n } else {\n this.TicketCount = 0;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n onPageChange() {\n let mail = { MailId: \"\" };\n if (this.selectAgent[0]) {\n mail = this.contacts.find(\n (data) => data[\"id\"] === this.selectAgent[0][\"id\"]\n );\n }\n this.getTickets({\n from: this.fromDate,\n to: this.toDate,\n agentMail: mail[\"MailId\"],\n admin: this.admin,\n status: this.queryParams[\"status\"],\n });\n }\n\n getDateChange() {\n let mail = { MailId: \"\" };\n if (this.selectAgent[0]) {\n mail = this.contacts.find(\n (data) => data[\"id\"] === this.selectAgent[0][\"id\"]\n );\n }\n this.getTickets({\n from: this.fromDate,\n to: this.toDate,\n agentMail: mail[\"MailId\"],\n admin: this.admin,\n status: this.queryParams[\"status\"],\n });\n }\n\n selectedAgent() {\n let mail = { MailId: \"\" };\n if (this.selectAgent[0]) {\n mail = this.contacts.find(\n (data) => data[\"id\"] === this.selectAgent[0][\"id\"]\n );\n \n }\n this.getTickets({\n from: this.fromDate,\n to: this.toDate,\n agentMail: mail[\"MailId\"],\n admin: this.admin,\n status: this.queryParams[\"status\"],\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n getAgents() {\n this.agentService.GetAllAgents(this.projectId).subscribe((data) => {\n this.contacts = data.map((agent) => ({\n id: agent[\"id\"],\n Name: agent[\"FirstName\"] + \" \" + agent[\"LastName\"],\n MailId: agent[\"Mailid\"],\n }));\n this.contacts.unshift({ id: \"\", Name: \"select All\", Mailid: \"\" });\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n projectChange(data) {\n var params;\n this.projectId = data;\n this.route.params.subscribe((param) => {\n params = param\n })\n this.sharedService.getProjectAdmin(data).subscribe((admin) => {\n this.admin = admin;\n this.getAgents();\n this.getTickets({\n from: this.fromDate,\n to: this.toDate,\n admin: admin,\n status: params.pageName === \"My Group Tickets\" ? \"open\" : \"closed\",\n agentMail: \"\",\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n}\n","\n
    \n \n
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n Go\n
    \n
    \n \n\n
    \n \n
    \n \n \n
    \n \n \n \n \n \n\n \n \n \n \n
    \n \n {{ items | pageheaders }}\n\n \n \n
    \n \n {{\n item[items] | date: \"medium\"\n }}\n {{\n item[items] | date: \"medium\"\n }}\n {{ item[items].slice(0, 30) + \"...\" }}\n\n {{ item[items] }}\n\n {{ item[items] | requeststatus }}\n {{\n item[items] || \"-\"\n }}\n {{ item[items] }}\n \n \n
    \n \n
    \n
    \n \n
    \n\n\n
    \n

    Select Headers

    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n
    Select Columns
    \n
      \n \n
      \n
      \n {{ contact | pageheaders }}\n
      \n
      \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    Displayed Columns
    \n \n \n
    \n
    \n {{ contact | pageheaders }}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'pageheaders'\n})\nexport class PageheadersPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n switch(value){\n case \"RequestId\":\n return \"Incident Id\"\n case \"Assignedto\":\n return \"Assigned To\"\n case \"CreatedDate\":\n return \"Created Date\";\n case \"UpdatedDate\":\n return \"Updated Date\"\n case \"group\":\n return \"Assignment Group\"\n case \"RequestStatus\":\n return \"Request Status\"\n case \"summary\":\n return \"Summary\"\n default:\n return value \n\n }\n return null;\n }\n\n}\n","import { Component, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport {\n Location,\n LocationStrategy,\n HashLocationStrategy,\n} from \"@angular/common\";\nimport * as shape from \"d3-shape\";\nimport * as d3Array from \"d3-array\";\n\nimport { Color, colorSets } from \"@swimlane/ngx-charts/utils/color-sets\";\n\nimport {\n formatLabel,\n escapeLabel,\n} from \"@swimlane/ngx-charts/common/label.helper\";\nimport {\n single,\n multi,\n boxData,\n bubble,\n generateData,\n generateGraph,\n treemap,\n timelineFilterBarData,\n fiscalYearReport,\n} from \"../data\";\n// import { bubbleDemoData } from './custom-charts/bubble-chart-interactive/data';\nimport { bubbleDemoData } from \"../../../custom-charts/bubble-chart-interactive/data\";\n\nimport { BubbleChartInteractiveServerDataModel } from \"../../../custom-charts/bubble-chart-interactive/models\";\nimport { data as countries } from \"emoji-flags\";\nimport chartGroups from \"../chartTypes\";\nimport { barChart, lineChartSeries } from \"../combo-chart-data\";\n// import pkg from '../../projects/swimlane/ngx-charts/package.json';\n// import pkg from '../../../../projects/swimlane/ngx-charts/package.json';\n\nimport { InputTypes } from \"@swimlane/ngx-ui\";\nimport { LegendPosition } from \"@swimlane/ngx-charts/common/types/legend.model\";\nimport { ScaleType } from \"@swimlane/ngx-charts/common/types/scale-type.enum\";\nimport { DashboardReportsService } from \"../dashboard-reports.service\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { ReportsService } from \"../../reports/reports.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { each, post } from \"jquery\";\nimport { use } from \"echarts\";\nimport { forEach, toNumber } from \"lodash\";\nimport { Console } from \"console\";\nimport * as moment from \"moment\";\nimport { CreateAgent } from \"../../create-agent/create-agent.service\";\nimport { UhLeadsService } from \"../../uhleads.service\";\nimport * as XLSX from 'xlsx';\nimport { stringLength } from \"@firebase/util\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\nconst monthName = new Intl.DateTimeFormat(\"en-us\", { month: \"short\" });\nconst weekdayName = new Intl.DateTimeFormat(\"en-us\", { weekday: \"short\" });\n\nfunction multiFormat(value) {\n if (value < 1000) return `${value.toFixed(2)}ms`;\n value /= 1000;\n if (value < 60) return `${value.toFixed(2)}s`;\n value /= 60;\n if (value < 60) return `${value.toFixed(2)}mins`;\n value /= 60;\n return `${value.toFixed(2)}hrs`;\n}\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n};\n\n@Component({\n selector: \"app-dashboard-reports\",\n providers: [\n Location,\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n ],\n encapsulation: ViewEncapsulation.None,\n templateUrl: \"./app-analytics.component.html\",\n styleUrls: [\"./app-analytics.component.scss\"],\n})\nexport class AppAnalyticsComponent implements OnInit {\n // APP_VERSION = pkg.version;\n\n inputTypes = InputTypes;\n\n theme = \"dark\";\n chartType: string;\n chartGroups: any[];\n chart: any;\n realTimeData: boolean = false;\n countries: any[];\n single: any[];\n multi: any[];\n fiscalYearReport: any[];\n dateData: any[];\n dateDataWithRange: any[];\n calendarData: any[];\n statusData: any[];\n sparklineData: any[];\n timelineFilterBarData: any[];\n graph: { links: any[]; nodes: any[] };\n bubble: any;\n linearScale: boolean = false;\n range: boolean = false;\n\n view: [number, number];\n width: number = 500;\n height: number = 350;\n fitContainer: boolean = false;\n\n // options\n showXAxis = true;\n showYAxis = true;\n gradient = false;\n showLegend = true;\n legendTitle = \"Legend\";\n legendPosition = LegendPosition.Right;\n showXAxisLabel = true;\n tooltipDisabled = false;\n showText = false;\n xAxisLabel = \"Country\";\n showYAxisLabel = true;\n yAxisLabel = \"Applications Received\";\n showGridLines = true;\n innerPadding = \"10%\";\n barPadding = 8;\n groupPadding = 16;\n roundDomains = false;\n maxRadius = 10;\n minRadius = 3;\n showSeriesOnHover = true;\n roundEdges: boolean = true;\n animations: boolean = true;\n xScaleMin: any;\n xScaleMax: any;\n yScaleMin: number;\n yScaleMax: number;\n showDataLabel: boolean = false;\n noBarWhenZero: boolean = true;\n trimXAxisTicks: boolean = true;\n trimYAxisTicks: boolean = true;\n rotateXAxisTicks: boolean = true;\n maxXAxisTickLength: number = 16;\n maxYAxisTickLength: number = 16;\n strokeColor: string = \"#FFFFFF\";\n strokeWidth: number = 2;\n\n curves = {\n Basis: shape.curveBasis,\n \"Basis Closed\": shape.curveBasisClosed,\n Bundle: shape.curveBundle.beta(1),\n Cardinal: shape.curveCardinal,\n \"Cardinal Closed\": shape.curveCardinalClosed,\n \"Catmull Rom\": shape.curveCatmullRom,\n \"Catmull Rom Closed\": shape.curveCatmullRomClosed,\n Linear: shape.curveLinear,\n \"Linear Closed\": shape.curveLinearClosed,\n \"Monotone X\": shape.curveMonotoneX,\n \"Monotone Y\": shape.curveMonotoneY,\n Natural: shape.curveNatural,\n Step: shape.curveStep,\n \"Step After\": shape.curveStepAfter,\n \"Step Before\": shape.curveStepBefore,\n default: shape.curveLinear,\n };\n\n // line interpolation\n curveType: string = \"Linear\";\n curve: any = this.curves[this.curveType];\n interpolationTypes = [\n \"Basis\",\n \"Bundle\",\n \"Cardinal\",\n \"Catmull Rom\",\n \"Linear\",\n \"Monotone X\",\n \"Monotone Y\",\n \"Natural\",\n \"Step\",\n \"Step After\",\n \"Step Before\",\n ];\n\n closedCurveType: string = \"Linear Closed\";\n closedCurve: any = this.curves[this.closedCurveType];\n closedInterpolationTypes = [\n \"Basis Closed\",\n \"Cardinal Closed\",\n \"Catmull Rom Closed\",\n \"Linear Closed\",\n ];\n\n colorSets: any;\n colorScheme: any;\n schemeType = ScaleType.Ordinal;\n selectedColorScheme: string;\n rangeFillOpacity: number = 0.15;\n\n // Override colors for certain values\n customColors: any[] = [\n {\n name: \"Germany\",\n value: \"#a8385d\",\n },\n ];\n\n // pie\n showLabels = true;\n explodeSlices = false;\n doughnut = false;\n arcWidth = 0.25;\n\n // line, area\n autoScale = true;\n timeline = false;\n\n // margin\n margin: boolean = false;\n marginTop: number = 40;\n marginRight: number = 40;\n marginBottom: number = 40;\n marginLeft: number = 40;\n\n // box\n boxData = boxData;\n\n // gauge\n gaugeMin: number = 0;\n gaugeMax: number = 100;\n gaugeLargeSegments: number = 10;\n gaugeSmallSegments: number = 5;\n gaugeTextValue: string = \"\";\n gaugeUnits: string = \"alerts\";\n gaugeAngleSpan: number = 240;\n gaugeStartAngle: number = -120;\n gaugeShowAxis: boolean = true;\n gaugeValue: number = 50; // linear gauge value\n gaugePreviousValue: number = 70;\n\n // heatmap\n heatmapMin: number = 0;\n heatmapMax: number = 50000;\n\n // Combo Chart\n barChart: any[] = barChart;\n lineChartSeries: any[] = lineChartSeries;\n // barChart: any[];\n // lineChartSeries: any[];\n lineChartScheme: Color = {\n name: \"coolthree\",\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\"#01579b\", \"#7aa3e5\", \"#a8385d\", \"#00bfa5\"],\n };\n\n comboBarScheme: Color = {\n name: \"singleLightBlue\",\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\"#01579b\"],\n };\n\n showRightYAxisLabel: boolean = true;\n yAxisLabelRight: string = \"Utilization\";\n\n // demos\n totalSales = 0;\n salePrice = 100;\n personnelCost = 100;\n\n mathText = \"3 - 1.5*sin(x) + cos(2*x) - 1.5*abs(cos(x))\";\n mathFunction: (o: any) => any;\n\n treemap: any[];\n treemapPath: any[] = [];\n sumBy: string = \"Size\";\n\n // bubble chart interactive demo\n bubbleDemoTempData: any[] = [];\n bubbleDemoChart: BubbleChartInteractiveServerDataModel;\n\n // Reference lines\n showRefLines: boolean = true;\n showRefLabels: boolean = true;\n\n // Supports any number of reference lines.\n refLines = [\n { value: 42500, name: \"Maximum\" },\n { value: 37750, name: \"Average\" },\n { value: 33000, name: \"Minimum\" },\n ];\n\n // data\n plotData: any;\n\n // Sidebar Controls:\n colorVisible: boolean = true;\n dataVisible: boolean = true;\n dimVisible: boolean = true;\n optsVisible: boolean = true;\n\n //Filters Data\n userData: any;\n filtersData: any;\n\n //data for charts\n statusCounts: any;\n completedStatus: any;\n assignedCounts: any;\n courseCounts: any;\n projectId: any;\n combochartData: {\n barChart: any[];\n lineChart: [{ name: \"Completed\"; series: any[] }];\n };\n barChartCombo: any = [];\n barChartCombo2: any = [\n { name: \"Completed\", series: [] },\n { name: \"Pending\", series: [] },\n ];\n\n lineChartCombo = [{ name: \"Completed\", series: [] }];\n lineChartCalls = [{ name: \"Calls\", series: [] }];\n inboundOutbound = [];\n totalAgents: any[];\n GBPagentList: any;\n topPerformers: any;\n incomingVsOutgoing: any[];\n callStatusCounts: any[];\n top10Data: any[];\n top10Validation: any[];\n isStatusCountLoader: Boolean = false;\n isAssignCountLoader: Boolean = false;\n isCourseCountLoader: Boolean = false;\n isIncomingCompletedLoader: Boolean = false;\n isTopPerformerLoader: Boolean = false;\n isCompletionLoader: Boolean = false;\n isValidationLoader: Boolean = false;\n isCompletionRecord: Boolean = false;\n isValidationRecord: Boolean = false;\n\n constructor(\n public location: Location,\n private ReportsService: DashboardReportsService,\n private ReportService2: ReportsService,\n private sharedService: SharedService,\n private momentFormatService: MomentFormatService,\n private agentService: CreateAgent,\n private uhleadsservice: UhLeadsService,\n private handleError: ErrorHandlerService,\n private fb: FormBuilder\n ) {\n this.mathFunction = this.getFunction();\n\n Object.assign(this, {\n single,\n multi,\n countries,\n chartGroups,\n colorSets,\n graph: generateGraph(50),\n boxData,\n bubble,\n plotData: this.generatePlotData(),\n treemap,\n bubbleDemoData,\n fiscalYearReport,\n });\n\n // interactive drill down demos\n this.treemapProcess();\n this.bubbleDemoChart = new BubbleChartInteractiveServerDataModel();\n this.bubbleDemoProcess(bubbleDemoData[0]);\n\n this.dateData = generateData(5, false);\n this.dateDataWithRange = generateData(2, true);\n this.setColorScheme(\"cool\");\n this.calendarData = this.getCalendarData();\n this.statusData = this.getStatusData();\n this.sparklineData = generateData(1, false, 30);\n this.timelineFilterBarData = timelineFilterBarData();\n }\n\n get dateDataWithOrWithoutRange() {\n if (this.range) {\n return this.dateDataWithRange;\n } else {\n return this.dateData;\n }\n }\n\n ngOnInit() {\n const state = this.location.path(true);\n // this.selectChart(state.length ? state : 'bar-vertical');\n\n this.sharedService.pageEvent.emit({\n pageName: \"Aplication Analytics\",\n });\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n // \n\n this.ReportService2.projectId.subscribe((data) => {\n // \n if (data != null) {\n this.projectId = data;\n\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n\n\n this.filtersData = {\n course: \"All\",\n agentEmail: \"All\",\n from: this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n ),\n to: this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n ),\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n application: \"All\",\n };\n\n this.getStatusCounts();\n let apiName = this.projectId == '14' ? 'getAssignedCountsGBP' : 'getAssignedCounts'\n this.getAssignedCounts(apiName);\n this.getCourseCounts();\n this.getIncomingCompleted();\n this.getTopPerformers();\n this.getPendingCounts();\n this.gettop10TimeTaken();\n this.gettop10ValidationTime();\n\n setInterval(this.updateData.bind(this), 1000);\n\n if (!this.fitContainer) {\n this.applyDimensions();\n }\n\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n }\n });\n\n this.ReportService2.filterData.subscribe((filters: any) => {\n // \n if (filters) {\n this.filtersData = filters;\n\n this.getIncomingCompleted();\n this.getStatusCounts();\n let apiName = this.projectId == '14' ? 'getAssignedCountsGBP' : 'getAssignedCounts'\n this.getAssignedCounts(apiName);\n this.getCourseCounts();\n this.getTopPerformers();\n this.getPendingCounts();\n this.gettop10TimeTaken();\n this.gettop10ValidationTime();\n }\n });\n\n\n\n\n\n // this.getAgentList();\n }\n\n getAgentList() {\n throw new Error(\"Method not implemented.\");\n }\n getStatusCounts() {\n this.isStatusCountLoader = true\n this.ReportsService.getStatusCounts(this.filtersData).subscribe(\n (res: any) => {\n this.statusCounts = [];\n // \n let pieData = [];\n let pending: number = 0;\n let completed: number = 0;\n res.data.forEach((element) => {\n pieData.push({\n name: this.capitalizeFirstLetter(element.document_status),\n value: element.document_count,\n });\n if (\n element.document_status == \"completed\" ||\n element.document_status == \"denied\"\n ) {\n completed = completed + Number(element.document_count);\n } else {\n pending = pending + Number(element.document_count);\n }\n });\n\n this.completedStatus = [\n {\n name: \"Completed\",\n value: completed,\n },\n {\n name: \"Pending\",\n value: pending,\n },\n ];\n this.statusCounts = pieData;\n this.isStatusCountLoader = false\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n getAssignedCounts(apiName?: string) {\n this.isAssignCountLoader = true\n this.ReportsService[apiName](this.filtersData).subscribe(\n (res: any) => {\n this.assignedCounts = [];\n let pieData = [];\n res.data.forEach((element) => {\n pieData.push({ name: element.agent, value: element.document_count });\n });\n\n for (let i = 0; i < pieData.length; i++) {\n if (pieData[i].name != \"Unassigned\") {\n if (this.getAgentName(pieData[i].name)) {\n pieData[i].name = this.getAgentName(pieData[i].name);\n }\n // pieData[i].name = this.getAgentName(pieData[i].name)\n }\n }\n\n this.assignedCounts = pieData;\n this.isAssignCountLoader = false\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCourseCounts() {\n this.isCourseCountLoader = true;\n this.ReportsService.getCourseCounts(this.filtersData).subscribe(\n (res: any) => {\n this.courseCounts = [];\n // this.courseCounts = res.data;\n let pieData = [];\n res.data.forEach((element) => {\n pieData.push({\n name: element.Program,\n value: element.count_of_applications,\n });\n });\n\n this.courseCounts = pieData;\n this.courseCounts.sort(function (a, b) {\n return a.count_of_applications - b.count_of_applications;\n });\n this.isCourseCountLoader = false\n // this.courseCounts.reverse();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getTopPerformers() {\n this.isTopPerformerLoader = true;\n this.ReportsService.getTopPerformers(this.filtersData).subscribe(\n (res: any) => {\n this.topPerformers = [];\n let gaugeData = [];\n let max = 0;\n res.data.forEach((element) => {\n gaugeData.push({\n name: element.agent,\n value: element.document_count,\n });\n max = max + element.document_count;\n });\n\n for (let i = 0; i < gaugeData.length; i++) {\n if (this.getAgentName(gaugeData[i].name)) {\n gaugeData[i].name = this.getAgentName(gaugeData[i].name);\n }\n }\n this.gaugeMax = Math.ceil(gaugeData[0].value / 10) * 10;\n this.topPerformers = gaugeData;\n this.isTopPerformerLoader = false;\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getPendingCounts() {\n // this.ReportsService.getPendingCounts(this.filtersData).subscribe(\n // (res: any) => {\n // // \n // }\n // );\n }\n\n getIncomingCompleted() {\n // this.ReportsService.getIncomingCompleted2(this.filtersData).subscribe((res: any)=>{\n // \n // })\n this.isIncomingCompletedLoader = true\n this.ReportsService.getIncomingCompleted(this.filtersData).subscribe(\n (res: any) => {\n // this.ReportsService.getPendingCounts(this.filtersData).subscribe((res2:any)=>{\n // \n // \n this.barChartCombo = [];\n // this.barChartCombo2 = [{ name: \"Completed\", series: [] },{ name: \"Pending\", series: [] }];\n\n this.lineChartCombo = [{ name: \"Completed\", series: [] }];\n const d1 = new Date(this.filtersData.from);\n // d1.setDate(d1.getDate() - 1);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n // \n let check = false;\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data.length; j++) {\n if (\n allDates[i] == res.data[j].incoming_date ||\n allDates[i] == res.data[j].close_date\n ) {\n check = true;\n this.barChartCombo.push({\n name: allDates[i],\n value: toNumber(res.data[j].incoming_count),\n });\n\n this.lineChartCombo[0].series.push({\n name: allDates[i],\n value: toNumber(res.data[j].processed_count),\n });\n }\n }\n if (check == false) {\n this.barChartCombo.push({\n name: allDates[i],\n value: 0,\n });\n\n this.lineChartCombo[0].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n\n if (allDates.length > 500) {\n // \n\n for (let i = 0; i < this.barChartCombo.length; i++) {\n let d = new Date(this.barChartCombo[i].name);\n // \n // \n this.barChartCombo[i].name = moment(\n this.barChartCombo[i].name\n ).format(\"YYYY\");\n this.lineChartCombo[0].series[i].name = moment(\n this.lineChartCombo[0].series[i].name\n ).format(\"YYYY\");\n }\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n const years = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n // \n\n for (let i = 0; i < years.length; i++) {\n temp2.push({\n name: years[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (years[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n // \n // \n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else if (allDates.length > 300) {\n // \n for (let i = 0; i < this.barChartCombo.length; i++) {\n let d = new Date(this.barChartCombo[i].name);\n // \n // \n this.barChartCombo[i].name = moment(\n this.barChartCombo[i].name\n ).format(\"MMM YY\");\n this.lineChartCombo[0].series[i].name = moment(\n this.lineChartCombo[0].series[i].name\n ).format(\"MMM YY\");\n }\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n const years = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n // \n\n for (let i = 0; i < years.length; i++) {\n temp2.push({\n name: years[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (years[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n // \n // \n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else if (allDates.length > 30) {\n // \n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.barChartCombo.length; i++) {\n this.barChartCombo[i].name = allDates[i];\n }\n\n const dates = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n for (let i = 0; i < dates.length; i++) {\n temp2.push({\n name: dates[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (dates[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < dates.length; i++) {\n temp4[0].series.push({\n name: dates[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (dates[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else {\n this.barChart = this.barChartCombo;\n this.lineChartSeries = this.lineChartCombo;\n }\n\n // \n // \n\n // \n // \n\n // });\n this.isIncomingCompletedLoader = false\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCallsPerDay() {\n this.ReportsService.getCallsPerDay(this.filtersData).subscribe(\n (res: any) => {\n // \n\n this.lineChartCalls = [{ name: \"Calls\", series: [] }];\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n let check = false;\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data.length; j++) {\n if (allDates[i] == res.data[j].createdAt) {\n check = true;\n this.lineChartCalls[0].series.push({\n name: allDates[i],\n value: toNumber(res.data[j].count),\n });\n }\n }\n if (check == false) {\n this.lineChartCalls[0].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n\n if (allDates.length > 500) {\n // \n\n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n let d = new Date(this.lineChartCalls[0].series[i].name);\n\n this.lineChartCalls[0].series[i].name = moment(\n this.lineChartCalls[0].series[i].name\n ).format(\"YYYY\");\n }\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n const years = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else if (allDates.length > 300) {\n // \n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n let d = new Date(this.lineChartCalls[0].series[i].name);\n\n this.lineChartCalls[0].series[i].name = moment(\n this.lineChartCalls[0].series[i].name\n ).format(\"MMM YY\");\n }\n\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n const years = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else if (allDates.length > 30) {\n // \n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n this.lineChartCalls[0].series[i].name = allDates[i];\n }\n\n const dates = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n for (let i = 0; i < dates.length; i++) {\n temp4[0].series.push({\n name: dates[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (dates[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else {\n //Empty Condition\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n // getCallsInboundOutboundOld() {\n // this.ReportsService.getCallsInboundOutbound(this.filtersData).subscribe(\n // (res: any) => {\n // \n\n // this.inboundOutbound = [{name:\"OutGoing\", series: []},{name:\"InComing\", series: []}];\n\n // const d1 = new Date(this.filtersData.from);\n // const d2 = new Date(this.filtersData.to);\n\n // let allDates = this.getDatesInRange(d1, d2);\n // let check = false;\n\n // for(let k = 0; k < 2; k++){\n // for (let i = 0; i < allDates.length; i++) {\n // check = false;\n // for (let j = 0; j < res.data[k].length; j++) {\n // if (allDates[i] == res.data[k][j].createdAt) {\n // check = true;\n // this.inboundOutbound[k].series.push({\n // name: allDates[i],\n // value: toNumber(res.data[k][j].count),\n // });\n // }\n // }\n // if (check == false) {\n // this.inboundOutbound[k].series.push({\n // name: allDates[i],\n // value: 0,\n // });\n // }\n // }\n // }\n // \n\n // if (allDates.length > 500) {\n // // \n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for(let k=0; k<2;k++){\n\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // let d = new Date(this.inboundOutbound[k].series[i].name);\n\n // this.inboundOutbound[k].series[i].name = moment(\n // this.inboundOutbound[k].series[i].name\n // ).format(\"YYYY\");\n // }\n\n // const years = [\n // ...new Set(\n // this.inboundOutbound[k].series.map((item) => item.name)\n // ),\n // ];\n\n // for (let i = 0; i < years.length; i++) {\n // temp4[k].series.push({\n // name: years[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (years[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n\n // }\n // this.inboundOutbound[k] = temp4[k]\n // }\n\n // }else if (allDates.length > 300) {\n // // \n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for(let k=0; k<2;k++){\n\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // let d = new Date(this.inboundOutbound[k].series[i].name);\n\n // this.inboundOutbound[k].series[i].name = moment(\n // this.inboundOutbound[k].series[i].name\n // ).format(\"MMM YY\");\n // }\n\n // const years = [\n // ...new Set(\n // this.inboundOutbound[k].series.map((item) => item.name)\n // ),\n // ];\n\n // for (let i = 0; i < years.length; i++) {\n // temp4[k].series.push({\n // name: years[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (years[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n\n // }\n // this.inboundOutbound[k] = temp4[k]\n // }\n\n // } else if(allDates.length > 30){\n\n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for (let i = allDates.length - 1; i > 0; i--) {\n // for (let j = i - 1; j > i - 7; j--) {\n // allDates[j] = allDates[i];\n // }\n // i = i - 6;\n // }\n\n // for (let k = 0; k < 2; k++) {\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // this.inboundOutbound[k].series[i].name = allDates[i];\n // }\n // const dates = [\n // ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n // ];\n // for (let i = 0; i < dates.length; i++) {\n // temp4[k].series.push({\n // name: dates[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (dates[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n // }\n // this.inboundOutbound[k] = temp4[k];\n // }\n\n // // this.inboundOutbound = temp4;\n\n // }\n\n // \n\n // }\n // );\n // }\n getCallsInboundOutbound() {\n this.ReportsService.getCallsInboundOutbound(this.filtersData).subscribe(\n (res: any) => {\n this.inboundOutbound = [\n { name: \"OutGoing\", series: [] },\n { name: \"InComing\", series: [] },\n ];\n\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n let check = false;\n let chartData = [];\n\n for (let k = 0; k < 2; k++) {\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data[k].length; j++) {\n if (allDates[i] == res.data[k][j].createdAt) {\n check = true;\n this.inboundOutbound[k].series.push({\n name: allDates[i],\n value: toNumber(res.data[k][j].count),\n });\n }\n }\n if (check == false) {\n this.inboundOutbound[k].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n }\n\n if (allDates.length > 300) {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n let d = new Date(this.inboundOutbound[0].series[i].name);\n\n this.inboundOutbound[0].series[i].name = moment(\n this.inboundOutbound[0].series[i].name\n ).format(\"YYYY\");\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else if (allDates.length > 150) {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n let d = new Date(this.inboundOutbound[0].series[i].name);\n\n this.inboundOutbound[0].series[i].name = moment(\n this.inboundOutbound[0].series[i].name\n ).format(\"MMM YY\");\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else if (allDates.length > 10) {\n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n this.inboundOutbound[0].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n this.inboundOutbound[1].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n this.inboundOutbound[0].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n this.inboundOutbound[1].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n }\n\n this.inboundOutbound = chartData;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCallsInVsOut() {\n this.ReportsService.getCallsInVsOut(this.filtersData).subscribe(\n (res: any) => {\n this.incomingVsOutgoing = [];\n\n for (let i = 0; i < res.data.length; i++) {\n this.incomingVsOutgoing.push({\n name: this.capitalizeFirstLetter(res.data[i].Direction),\n value: res.data[i].count,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCallStatus() {\n this.ReportsService.getCallStatus(this.filtersData).subscribe(\n (res: any) => {\n this.callStatusCounts = [];\n for (let i = 0; i < res.data.length; i++) {\n this.callStatusCounts.push({\n name: this.capitalizeFirstLetter(res.data[i].Call_status),\n value: res.data[i].count,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n gettop10TimeTaken() {\n this.isCompletionLoader = true;\n this.ReportsService.getProcessingtimeMax10(this.filtersData).subscribe((res: any) => {\n if (res.data) {\n for (let i = 0; i < res.data.length; i++) {\n res.data[i].Assignedto = this.getAgentName(res.data[i].Assignedto);\n res.data[i].GBPAssignedto = this.getAgentName(res.data[i].GBPAssignedto);\n }\n this.top10Data = res.data;\n this.isCompletionRecord = true;\n }\n else {\n this.isCompletionRecord = false;\n }\n this.isCompletionLoader = false;\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n gettop10ValidationTime() {\n this.isValidationLoader = true;\n this.ReportsService.getValidationtimeMax10(this.filtersData).subscribe((res: any) => {\n if (res.data) {\n for (let i = 0; i < res.data.length; i++) {\n res.data[i].Assignedto = this.getAgentName(res.data[i].Assignedto);\n res.data[i].GBPAssignedto = this.getAgentName(res.data[i].GBPAssignedto);\n }\n this.top10Validation = res.data;\n this.isValidationRecord = true;\n }\n else {\n this.isValidationRecord = false;\n }\n this.isValidationLoader = false;\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n GetSortOrder(prop) {\n return function (a, b) {\n if (a[prop] > b[prop]) {\n return 1;\n } else if (a[prop] < b[prop]) {\n return -1;\n }\n return 0;\n };\n }\n\n capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n getDatesInRange(startDate, endDate) {\n const date = new Date(startDate.getTime());\n\n // ✅ Exclude start date\n date.setDate(date.getDate());\n\n const dates = [];\n\n // ✅ Exclude end date\n while (date <= endDate) {\n dates.push(this.formatDate(new Date(date)));\n date.setDate(date.getDate() + 1);\n }\n\n return dates;\n }\n\n formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getAgentName(email) {\n let name = \"\";\n if (this.totalAgents) {\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n }\n\n leadsData() {\n this.uhleadsservice.showSuccess('Your file is currently downloading. Thank you for your patience!', '')\n\n this.ReportsService.getStatusCountsData(this.filtersData).subscribe((res: any) => {\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var GBPAssignedto = this.projectId === 14 ? (x?.GBPAssignedto || 'Unassigned') : undefined;\n\n const { GUID, FirstName, LastName, Program, EnrollmentTerm, EnrollmentYear, createdAt, updatedAt, LeadDocStatus, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, ...(GBPAssignedto !== undefined && { GBPAssignedto }), EnrollmentTerm, EnrollmentYear, createdAt, updatedAt, LeadDocStatus, CallStatus };\n })\n\n this.downloadFile(fd, 'LeadsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n incomingVsCompletedData() {\n this.uhleadsservice.showSuccess('Your file is currently downloading. Thank you for your patience!', '')\n\n this.ReportsService.getIncomingCompletedData(this.filtersData).subscribe((res: any) => {\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd, 'LeadsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n courseData() {\n this.uhleadsservice.showSuccess('Your file is currently downloading. Thank you for your patience!', '')\n\n this.ReportsService.courseData(this.filtersData).subscribe((res: any) => {\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd, 'LeadsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n callsData() {\n this.ReportsService.getCallsPerDayData(this.filtersData).subscribe((res: any) => {\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n const { FirstName, LastName, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType } = x;\n return { FirstName, LastName, Assignedto, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType };\n })\n\n this.downloadFile(fd, 'CallsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n top10CompletionData() {\n this.uhleadsservice.showSuccess('Your file is currently downloading. Thank you for your patience!', '')\n\n this.ReportsService.getProcessingtimeMax10Data(this.filtersData).subscribe((res: any) => {\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var b = '';\n\n if (x.Time_taken_to_close_An_application.days == undefined) {\n x.Time_taken_to_close_An_application.days = 0\n }\n if (x.Time_taken_to_close_An_application.hours == undefined) {\n x.Time_taken_to_close_An_application.hours = 0\n } if (x.Time_taken_to_close_An_application.minutes == undefined) {\n x.Time_taken_to_close_An_application.minutes = 0\n }\n b = x.Time_taken_to_close_An_application.days + ' d ' + x.Time_taken_to_close_An_application.hours + ' h ' + + x.Time_taken_to_close_An_application.minutes + ' m ';\n var CompletionTime = b\n\n const { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus } = x;\n return { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, Assignedto, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus, CompletionTime };\n })\n\n this.downloadFile(fd, 'Completion_Time');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n top10ValidationData() {\n this.uhleadsservice.showSuccess('Your file is currently downloading. Thank you for your patience!', '')\n\n this.ReportsService.getValidationtimeMax10Data(this.filtersData).subscribe((res: any) => {\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var b = '';\n if (x.total_time_till_validation.days == undefined) {\n x.total_time_till_validation.days = 0\n }\n if (x.total_time_till_validation.hours == undefined) {\n x.total_time_till_validation.hours = 0\n } if (x.total_time_till_validation.minutes == undefined) {\n x.total_time_till_validation.minutes = 0\n }\n b = x.total_time_till_validation.days + ' d ' + x.total_time_till_validation.hours + ' h ' + x.total_time_till_validation.minutes + ' m ';\n var ValidationTime = b\n\n const { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus } = x;\n return { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, Assignedto, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus, ValidationTime };\n })\n\n this.downloadFile(fd, 'Validtion_Time');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n downloadFile(filedata, name) {\n\n var json = filedata;\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = name + \"-\" + x.getFullYear() + \"-\" + x.getMonth() + \"-\" + x.getDay() + '.xlsx';\n a.download = link;\n a.click();\n this.uhleadsservice.showSuccess('Download Successful!', '')\n }\n\n updateData() {\n if (!this.realTimeData) {\n return;\n }\n\n this.gaugeValue =\n this.gaugeMin +\n Math.floor(Math.random() * (this.gaugeMax - this.gaugeMin));\n\n const country =\n this.countries[Math.floor(Math.random() * this.countries.length)];\n const add = Math.random() < 0.7;\n const remove = Math.random() < 0.5;\n\n if (remove) {\n if (this.single.length > 1) {\n const index = Math.floor(Math.random() * this.single.length);\n this.single.splice(index, 1);\n this.single = [...this.single];\n }\n\n if (this.multi.length > 1) {\n const index = Math.floor(Math.random() * this.multi.length);\n this.multi.splice(index, 1);\n this.multi = [...this.multi];\n }\n\n if (this.bubble.length > 1) {\n const index = Math.floor(Math.random() * this.bubble.length);\n this.bubble.splice(index, 1);\n this.bubble = [...this.bubble];\n }\n\n if (this.graph.nodes.length > 1) {\n const index = Math.floor(Math.random() * this.graph.nodes.length);\n const value = this.graph.nodes[index].value;\n this.graph.nodes.splice(index, 1);\n const nodes = [...this.graph.nodes];\n\n const links = this.graph.links.filter((link) => {\n return (\n link.source !== value &&\n link.source.value !== value &&\n link.target !== value &&\n link.target.value !== value\n );\n });\n this.graph = { links, nodes };\n }\n\n if (this.boxData.length > 1) {\n const index = Math.floor(Math.random() * this.boxData.length);\n this.boxData.splice(index, 1);\n this.boxData = [...this.boxData];\n }\n }\n\n if (add) {\n // single\n const entry = {\n name: country.name,\n value: Math.floor(10000 + Math.random() * 50000),\n };\n this.single = [...this.single, entry];\n\n // multi\n const multiEntry = {\n name: country.name,\n series: [\n {\n name: \"1990\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n {\n name: \"2000\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n {\n name: \"2010\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n ],\n };\n\n this.multi = [...this.multi, multiEntry];\n\n // graph\n const node = { value: country.name };\n const nodes = [...this.graph.nodes, node];\n const link = {\n source: country.name,\n target: nodes[Math.floor(Math.random() * (nodes.length - 1))].value,\n };\n const links = [...this.graph.links, link];\n this.graph = { links, nodes };\n\n // bubble\n const bubbleYear = Math.floor((2010 - 1990) * Math.random() + 1990);\n const bubbleEntry = {\n name: country.name,\n series: [\n {\n name: \"\" + bubbleYear,\n x: new Date(bubbleYear, 0, 1),\n y: Math.floor(30 + Math.random() * 70),\n r: Math.floor(30 + Math.random() * 20),\n },\n ],\n };\n\n this.bubble = [...this.bubble, bubbleEntry];\n\n // box\n const boxEntry = {\n name: country.name,\n series: [\n {\n name: \"1990\",\n value: getRandomInt(10, 5),\n },\n {\n name: \"2000\",\n value: getRandomInt(15, 5),\n },\n {\n name: \"2010\",\n value: getRandomInt(20, 10),\n },\n {\n name: \"2020\",\n value: getRandomInt(30, 10),\n },\n {\n name: \"2030\",\n value: getRandomInt(50, 20),\n },\n ],\n };\n\n const index = this.boxData.findIndex((box) => box.name === country.name);\n if (index > -1) {\n this.boxData[index] = boxEntry;\n } else {\n this.boxData = [...this.boxData, boxEntry];\n }\n\n // bubble interactive demo\n this.bubbleDemoProcess(\n bubbleDemoData[getRandomInt(0, bubbleDemoData.length - 1)]\n );\n\n this.statusData = this.getStatusData();\n\n this.timelineFilterBarData = timelineFilterBarData();\n }\n\n const date = new Date(\n Math.floor(1473700105009 + Math.random() * 1000000000)\n );\n for (const series of this.dateData) {\n series.series.push({\n name: date,\n value: Math.floor(2000 + Math.random() * 5000),\n });\n }\n this.dateData = [...this.dateData];\n\n this.dateDataWithRange = generateData(2, true);\n\n if (this.chart.inputFormat === \"calendarData\")\n this.calendarData = this.getCalendarData();\n }\n\n applyDimensions() {\n this.view = [this.width, this.height];\n }\n\n toggleFitContainer() {\n if (this.fitContainer) {\n this.view = undefined;\n } else {\n this.applyDimensions();\n }\n }\n\n selectChart(chartSelector) {\n this.chartType = chartSelector = chartSelector.replace(\"/\", \"\");\n this.location.replaceState(this.chartType);\n\n for (const group of this.chartGroups) {\n this.chart = group.charts.find((x) => x.selector === chartSelector);\n if (this.chart) break;\n }\n\n this.linearScale = false;\n this.yAxisLabel = \"GDP Per Capita\";\n this.xAxisLabel = \"Country\";\n\n this.width = 700;\n this.height = 300;\n\n Object.assign(this, this.chart.defaults);\n\n if (!this.fitContainer) {\n this.applyDimensions();\n }\n }\n\n changeTheme(theme: string) {\n this.theme = theme;\n if (theme === \"light\") {\n this.strokeColor = \"#000000\";\n } else {\n this.strokeColor = \"#FFFFFF\";\n }\n }\n\n select(data) {\n\n }\n\n activate(data) {\n // \n }\n\n deactivate(data) {\n // \n }\n\n getInterpolationType(curveType) {\n return this.curves[curveType] || this.curves[\"default\"];\n }\n\n setColorScheme(name) {\n this.selectedColorScheme = name;\n this.colorScheme = this.colorSets.find((s) => s.name === name);\n }\n\n onLegendLabelClick(entry) {\n\n }\n\n getCalendarData(): any[] {\n // today\n const now = new Date();\n const todaysDay = now.getDate();\n const thisDay = new Date(now.getFullYear(), now.getMonth(), todaysDay);\n\n // Monday\n const thisMonday = new Date(\n thisDay.getFullYear(),\n thisDay.getMonth(),\n todaysDay - thisDay.getDay() + 1\n );\n const thisMondayDay = thisMonday.getDate();\n const thisMondayYear = thisMonday.getFullYear();\n const thisMondayMonth = thisMonday.getMonth();\n\n // 52 weeks before monday\n const calendarData = [];\n const getDate = (d) => new Date(thisMondayYear, thisMondayMonth, d);\n for (let week = -52; week <= 0; week++) {\n const mondayDay = thisMondayDay + week * 7;\n const monday = getDate(mondayDay);\n\n // one week\n const series = [];\n for (let dayOfWeek = 7; dayOfWeek > 0; dayOfWeek--) {\n const date = getDate(mondayDay - 1 + dayOfWeek);\n\n // skip future dates\n if (date > now) {\n continue;\n }\n\n // value\n const value = dayOfWeek < 6 ? date.getMonth() + 1 : 0;\n\n series.push({\n date,\n name: weekdayName.format(date),\n value,\n });\n }\n\n calendarData.push({\n name: monday.toString(),\n series,\n });\n }\n\n return calendarData;\n }\n\n calendarAxisTickFormatting(mondayString: string) {\n const monday = new Date(mondayString);\n const month = monday.getMonth();\n const day = monday.getDate();\n const year = monday.getFullYear();\n const lastSunday = new Date(year, month, day - 1);\n const nextSunday = new Date(year, month, day + 6);\n return lastSunday.getMonth() !== nextSunday.getMonth()\n ? monthName.format(nextSunday)\n : \"\";\n }\n\n calendarTooltipText(c): string {\n return `\n ${c.label\n } • ${c.cell.date.toLocaleDateString()}\n ${c.data.toLocaleString()}\n `;\n }\n\n pieTooltipText({ data }) {\n const label = formatLabel(data.name);\n const val = formatLabel(data.value);\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n\n dollarValueFormat(c): string {\n return `$${c.value.toLocaleString()}`;\n }\n\n getStatusData() {\n const sales = Math.round(1e4 * Math.random());\n const dur = 36e5 * Math.random();\n return this.calcStatusData(sales, dur);\n }\n\n calcStatusData(\n sales = this.statusData[0].value,\n dur = this.statusData[2].value\n ) {\n const ret = sales * this.salePrice;\n const cost = ((sales * dur) / 60 / 60 / 1000) * this.personnelCost;\n const ROI = (ret - cost) / cost;\n return [\n {\n name: \"Sales\",\n value: sales,\n },\n {\n name: \"Gross\",\n value: ret,\n extra: { format: \"currency\" },\n },\n {\n name: \"Avg. Time\",\n value: dur,\n extra: { format: \"time\" },\n },\n {\n name: \"Cost\",\n value: cost,\n extra: { format: \"currency\" },\n },\n {\n name: \"ROI\",\n value: ROI,\n extra: { format: \"percent\" },\n },\n ];\n }\n\n statusValueFormat(c): string {\n switch (c.data.extra ? c.data.extra.format : \"\") {\n case \"currency\":\n return `$${Math.round(c.value).toLocaleString()}`;\n case \"time\":\n return multiFormat(c.value);\n case \"percent\":\n return `${Math.round(c.value * 100)}%`;\n default:\n return c.value.toLocaleString();\n }\n }\n\n valueFormatting(value: number): string {\n return `${Math.round(value).toLocaleString()} €`;\n }\n\n currencyFormatting(value: number) {\n return `${Math.round(value).toLocaleString()}`;\n }\n\n gdpLabelFormatting(c) {\n return `${escapeLabel(\n c.label\n )}
    `;\n }\n\n statusLabelFormat(c): string {\n return `${c.label}
    This week`;\n }\n\n generatePlotData() {\n if (!this.mathFunction) {\n return [];\n }\n const twoPi = 2 * Math.PI;\n const length = 25;\n const series = Array({ length }).map((d, i) => {\n const x = i / (length - 1);\n const t = x * twoPi;\n return {\n name: ~~(x * 360),\n value: this.mathFunction(t),\n };\n });\n\n return [\n {\n name: this.mathText,\n series,\n },\n ];\n }\n\n getFunction(text = this.mathText) {\n try {\n text = `with (Math) { return ${this.mathText} }`;\n // tslint:disable-next-line: function-constructor\n const fn = new Function(\"x\", text).bind(Math); // tslint:disable-line: tsr-detect-eval-with-expression\n return typeof fn(1) === \"number\" ? fn : null;\n } catch (err) {\n return null;\n }\n }\n\n treemapProcess(sumBy = this.sumBy) {\n this.sumBy = sumBy;\n const children = treemap[0];\n const value =\n sumBy === \"Size\" ? sumChildren(children) : countChildren(children);\n this.treemap = [children];\n this.treemapPath = [{ name: \"Top\", children: [children], value }];\n\n function sumChildren(node) {\n return (node.value =\n node.size || d3Array.sum(node.children, sumChildren));\n }\n\n function countChildren(node) {\n return (node.value = node.children\n ? d3Array.sum(node.children, countChildren)\n : 1);\n }\n }\n\n treemapSelect(item) {\n if (item.children) {\n const idx = this.treemapPath.indexOf(item);\n this.treemapPath.splice(idx + 1);\n this.treemap = this.treemapPath[idx].children;\n return;\n }\n const node = this.treemap.find((d) => d.name === item.name);\n if (node.children) {\n this.treemapPath.push(node);\n this.treemap = node.children;\n }\n }\n\n getFlag(country) {\n return this.countries.find((c) => c.name === country).emoji;\n }\n\n onFilter(event) {\n\n }\n\n /*\n **\n Combo Chart\n **\n [yLeftAxisScaleFactor]=\"yLeftAxisScale\" and [yRightAxisScaleFactor]=\"yRightAxisScale\"\n exposes the left and right min and max axis values for custom scaling, it is probably best to\n scale one axis in relation to the other axis but for flexibility to scale either the left or\n right axis both were exposed.\n **\n */\n\n yLeftAxisScale(min, max) {\n return { min: `${min}`, max: `${max}` };\n }\n\n yRightAxisScale(min, max) {\n return { min: `${min}`, max: `${max}` };\n }\n\n yLeftTickFormat(data) {\n return `${data.toLocaleString()}`;\n }\n\n yRightTickFormat(data) {\n return `${data}`;\n }\n /*\n **\n End of Combo Chart\n **\n */\n\n onSelect(event) {\n\n }\n\n dblclick(event) {\n\n }\n\n /*\n **\n Bubble Chart Interactive Demo\n **\n */\n\n bubbleDemoProcess(dataFromServer) {\n this.bubbleDemoChart.setDataFromServer(dataFromServer);\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n getBubbleInteractiveTitle() {\n return this.bubbleDemoChart.getChartTitle();\n }\n\n bubbleShowDrillDownResetLink() {\n return this.bubbleDemoChart.getDrilldownDepth() > 0;\n }\n\n onClickResetBubbleInteractiveDrill() {\n this.bubbleDemoChart.resetDrilldown();\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n onSelectBubbleInteractivePoint(event) {\n this.bubbleDemoChart.drilldown(event);\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n applicationsProcessedData() {\n this.uhleadsservice.showSuccess('Your file is currently downloading. Thank you for your patience!', '')\n\n this.ReportsService.applicationsProcessedData(this.filtersData).subscribe((res: any) => {\n // console.log(\"Data: \", res.data)\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var GBPAssignedto = this.projectId === 14 ? (x?.GBPAssignedto || 'Unassigned') : undefined;\n\n\n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, ...(GBPAssignedto !== undefined && { GBPAssignedto }), EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd, 'LeadsData');\n })\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    Application status
    \n
    \n\n\n
    \n
    \n \n
    \n \n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Completed vs Pending
    \n
    \n\n
    \n
    \n
    \n \n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Assigned to
    \n
    \n\n
    \n
    \n
    \n \n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Incoming vs Completed
    \n
    \n\n
    \n
    \n
    \n \n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Courses
    \n
    \n\n
    \n
    \n
    \n \n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Applications Processed - Top Performers
    \n
    \n\n
    \n
    \n
    \n \n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n \n \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Top 10 Leads that took the least time to Completion
    \n
    Time taken from Created date to Completed Date
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    NameEmailProgramCRM AssignedToGBP AssignedToTime Taken
    {{i.FirstName}} {{i.LastName}}{{i.Email}}{{i.Program || '--'}}{{i.Assignedto || '--'}}{{i.GBPAssignedto || '--'}}{{i.Time_taken_to_close_An_application.days||0}} days\n {{i.Time_taken_to_close_An_application.hours||0}}h\n {{i.Time_taken_to_close_An_application.minutes||0}}min
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Top 10 Leads that took the least time to Validation.
    \n
    Time taken from Created date to Last document validation
    \n
    \n
    \n\n
    \n\n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    NameEmailProgramCRM AssignedToGBP AssignedToTime Taken
    {{i.FirstName}} {{i.LastName}}{{i.Email}}{{i.Program || '--'}}{{i.Assignedto || '--'}}{{i.GBPAssignedto || '--'}}{{i.total_time_till_validation.days||0}} days\n {{i.total_time_till_validation.hours||0}}h\n {{i.total_time_till_validation.minutes||0}}min
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    ","import { Component, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport {\n Location,\n LocationStrategy,\n HashLocationStrategy,\n} from \"@angular/common\";\nimport * as shape from \"d3-shape\";\nimport * as d3Array from \"d3-array\";\n\nimport { Color, colorSets } from \"@swimlane/ngx-charts/utils/color-sets\";\n\nimport {\n formatLabel,\n escapeLabel,\n} from \"@swimlane/ngx-charts/common/label.helper\";\nimport {\n single,\n multi,\n boxData,\n bubble,\n generateData,\n generateGraph,\n treemap,\n timelineFilterBarData,\n fiscalYearReport,\n} from \"../data\";\n// import { bubbleDemoData } from './custom-charts/bubble-chart-interactive/data';\nimport { bubbleDemoData } from \"../../../custom-charts/bubble-chart-interactive/data\";\n\nimport { BubbleChartInteractiveServerDataModel } from \"../../../custom-charts/bubble-chart-interactive/models\";\nimport { data as countries } from \"emoji-flags\";\nimport chartGroups from \"../chartTypes\";\nimport { barChart, lineChartSeries } from \"../combo-chart-data\";\n// import pkg from '../../projects/swimlane/ngx-charts/package.json';\n// import pkg from '../../../../projects/swimlane/ngx-charts/package.json';\n\nimport { InputTypes } from \"@swimlane/ngx-ui\";\nimport { LegendPosition } from \"@swimlane/ngx-charts/common/types/legend.model\";\nimport { ScaleType } from \"@swimlane/ngx-charts/common/types/scale-type.enum\";\nimport { DashboardReportsService } from \"../dashboard-reports.service\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { ReportsService } from \"../../reports/reports.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { each, post } from \"jquery\";\nimport { use } from \"echarts\";\nimport { forEach, toNumber } from \"lodash\";\nimport { Console } from \"console\";\nimport * as moment from \"moment\";\nimport { CreateAgent } from \"../../create-agent/create-agent.service\";\nimport { UhLeadsService } from \"../../uhleads.service\";\nimport * as XLSX from 'xlsx';\nimport { stringLength } from \"@firebase/util\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\nconst monthName = new Intl.DateTimeFormat(\"en-us\", { month: \"short\" });\nconst weekdayName = new Intl.DateTimeFormat(\"en-us\", { weekday: \"short\" });\n\nfunction multiFormat(value) {\n if (value < 1000) return `${value.toFixed(2)}ms`;\n value /= 1000;\n if (value < 60) return `${value.toFixed(2)}s`;\n value /= 60;\n if (value < 60) return `${value.toFixed(2)}mins`;\n value /= 60;\n return `${value.toFixed(2)}hrs`;\n}\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n};\n\n@Component({\n selector: \"app-dashboard-reports\",\n providers: [\n Location,\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n ],\n encapsulation: ViewEncapsulation.None,\n templateUrl: \"./call-analytics.component.html\",\n styleUrls: [\"./call-analytics.component.scss\"],\n})\nexport class CallAnalyticsComponent implements OnInit {\n // APP_VERSION = pkg.version;\n\n inputTypes = InputTypes;\n\n theme = \"dark\";\n chartType: string;\n chartGroups: any[];\n chart: any;\n realTimeData: boolean = false;\n countries: any[];\n single: any[];\n multi: any[];\n fiscalYearReport: any[];\n dateData: any[];\n dateDataWithRange: any[];\n calendarData: any[];\n statusData: any[];\n sparklineData: any[];\n timelineFilterBarData: any[];\n graph: { links: any[]; nodes: any[] };\n bubble: any;\n linearScale: boolean = false;\n range: boolean = false;\n\n view: [number, number];\n width: number = 500;\n height: number = 350;\n fitContainer: boolean = false;\n\n // options\n showXAxis = true;\n showYAxis = true;\n gradient = false;\n showLegend = true;\n legendTitle = \"Legend\";\n legendPosition = LegendPosition.Right;\n showXAxisLabel = true;\n tooltipDisabled = false;\n showText = false;\n xAxisLabel = \"Country\";\n showYAxisLabel = true;\n yAxisLabel = \"Applications Received\";\n showGridLines = true;\n innerPadding = \"10%\";\n barPadding = 8;\n groupPadding = 16;\n roundDomains = false;\n maxRadius = 10;\n minRadius = 3;\n showSeriesOnHover = true;\n roundEdges: boolean = true;\n animations: boolean = true;\n xScaleMin: any;\n xScaleMax: any;\n yScaleMin: number;\n yScaleMax: number;\n showDataLabel: boolean = false;\n noBarWhenZero: boolean = true;\n trimXAxisTicks: boolean = true;\n trimYAxisTicks: boolean = true;\n rotateXAxisTicks: boolean = true;\n maxXAxisTickLength: number = 16;\n maxYAxisTickLength: number = 16;\n strokeColor: string = \"#FFFFFF\";\n strokeWidth: number = 2;\n\n curves = {\n Basis: shape.curveBasis,\n \"Basis Closed\": shape.curveBasisClosed,\n Bundle: shape.curveBundle.beta(1),\n Cardinal: shape.curveCardinal,\n \"Cardinal Closed\": shape.curveCardinalClosed,\n \"Catmull Rom\": shape.curveCatmullRom,\n \"Catmull Rom Closed\": shape.curveCatmullRomClosed,\n Linear: shape.curveLinear,\n \"Linear Closed\": shape.curveLinearClosed,\n \"Monotone X\": shape.curveMonotoneX,\n \"Monotone Y\": shape.curveMonotoneY,\n Natural: shape.curveNatural,\n Step: shape.curveStep,\n \"Step After\": shape.curveStepAfter,\n \"Step Before\": shape.curveStepBefore,\n default: shape.curveLinear,\n };\n\n // line interpolation\n curveType: string = \"Linear\";\n curve: any = this.curves[this.curveType];\n interpolationTypes = [\n \"Basis\",\n \"Bundle\",\n \"Cardinal\",\n \"Catmull Rom\",\n \"Linear\",\n \"Monotone X\",\n \"Monotone Y\",\n \"Natural\",\n \"Step\",\n \"Step After\",\n \"Step Before\",\n ];\n\n closedCurveType: string = \"Linear Closed\";\n closedCurve: any = this.curves[this.closedCurveType];\n closedInterpolationTypes = [\n \"Basis Closed\",\n \"Cardinal Closed\",\n \"Catmull Rom Closed\",\n \"Linear Closed\",\n ];\n\n colorSets: any;\n colorScheme: any;\n schemeType = ScaleType.Ordinal;\n selectedColorScheme: string;\n rangeFillOpacity: number = 0.15;\n\n // Override colors for certain values\n customColors: any[] = [\n {\n name: \"Germany\",\n value: \"#a8385d\",\n },\n ];\n\n // pie\n showLabels = true;\n explodeSlices = false;\n doughnut = false;\n arcWidth = 0.25;\n\n // line, area\n autoScale = true;\n timeline = false;\n\n // margin\n margin: boolean = false;\n marginTop: number = 40;\n marginRight: number = 40;\n marginBottom: number = 40;\n marginLeft: number = 40;\n\n // box\n boxData = boxData;\n\n // gauge\n gaugeMin: number = 0;\n gaugeMax: number = 100;\n gaugeLargeSegments: number = 10;\n gaugeSmallSegments: number = 5;\n gaugeTextValue: string = \"\";\n gaugeUnits: string = \"alerts\";\n gaugeAngleSpan: number = 240;\n gaugeStartAngle: number = -120;\n gaugeShowAxis: boolean = true;\n gaugeValue: number = 50; // linear gauge value\n gaugePreviousValue: number = 70;\n\n // heatmap\n heatmapMin: number = 0;\n heatmapMax: number = 50000;\n\n // Combo Chart\n barChart: any[] = barChart;\n lineChartSeries: any[] = lineChartSeries;\n // barChart: any[];\n // lineChartSeries: any[];\n lineChartScheme: Color = {\n name: \"coolthree\",\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\"#01579b\", \"#7aa3e5\", \"#a8385d\", \"#00bfa5\"],\n };\n\n comboBarScheme: Color = {\n name: \"singleLightBlue\",\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\"#01579b\"],\n };\n\n showRightYAxisLabel: boolean = true;\n yAxisLabelRight: string = \"Utilization\";\n\n // demos\n totalSales = 0;\n salePrice = 100;\n personnelCost = 100;\n\n mathText = \"3 - 1.5*sin(x) + cos(2*x) - 1.5*abs(cos(x))\";\n mathFunction: (o: any) => any;\n\n treemap: any[];\n treemapPath: any[] = [];\n sumBy: string = \"Size\";\n\n // bubble chart interactive demo\n bubbleDemoTempData: any[] = [];\n bubbleDemoChart: BubbleChartInteractiveServerDataModel;\n\n // Reference lines\n showRefLines: boolean = true;\n showRefLabels: boolean = true;\n\n // Supports any number of reference lines.\n refLines = [\n { value: 42500, name: \"Maximum\" },\n { value: 37750, name: \"Average\" },\n { value: 33000, name: \"Minimum\" },\n ];\n\n // data\n plotData: any;\n\n // Sidebar Controls:\n colorVisible: boolean = true;\n dataVisible: boolean = true;\n dimVisible: boolean = true;\n optsVisible: boolean = true;\n\n //Filters Data\n userData: any;\n filtersData: any;\n\n //data for charts\n statusCounts: any;\n completedStatus: any;\n assignedCounts: any;\n courseCounts: any;\n projectId: any;\n combochartData: {\n barChart: any[];\n lineChart: [{ name: \"Completed\"; series: any[] }];\n };\n barChartCombo: any = [];\n barChartCombo2: any = [\n { name: \"Completed\", series: [] },\n { name: \"Pending\", series: [] },\n ];\n\n lineChartCombo = [{ name: \"Completed\", series: [] }];\n lineChartCalls = [{ name: \"Calls\", series: [] }];\n inboundOutbound = [];\n totalAgents: any[];\n GBPagentList: any;\n topPerformers: any;\n incomingVsOutgoing: any[];\n callStatusCounts: any[];\n top10Data: any[];\n top10Validation: any[];\n\n constructor(\n public location: Location,\n private ReportsService: DashboardReportsService,\n private ReportService2: ReportsService,\n private sharedService: SharedService,\n private momentFormatService: MomentFormatService,\n private agentService: CreateAgent,\n private uhleadsservice: UhLeadsService,\n private fb: FormBuilder,\n private handleError: ErrorHandlerService,\n\n ) {\n this.mathFunction = this.getFunction();\n\n Object.assign(this, {\n single,\n multi,\n countries,\n chartGroups,\n colorSets,\n graph: generateGraph(50),\n boxData,\n bubble,\n plotData: this.generatePlotData(),\n treemap,\n bubbleDemoData,\n fiscalYearReport,\n });\n\n // interactive drill down demos\n this.treemapProcess();\n this.bubbleDemoChart = new BubbleChartInteractiveServerDataModel();\n this.bubbleDemoProcess(bubbleDemoData[0]);\n\n this.dateData = generateData(5, false);\n this.dateDataWithRange = generateData(2, true);\n this.setColorScheme(\"cool\");\n this.calendarData = this.getCalendarData();\n this.statusData = this.getStatusData();\n this.sparklineData = generateData(1, false, 30);\n this.timelineFilterBarData = timelineFilterBarData();\n }\n\n get dateDataWithOrWithoutRange() {\n if (this.range) {\n return this.dateDataWithRange;\n } else {\n return this.dateData;\n }\n }\n\n ngOnInit() {\n const state = this.location.path(true);\n // this.selectChart(state.length ? state : 'bar-vertical');\n\n this.sharedService.pageEvent.emit({\n pageName: \"Call Analytics\",\n });\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n // \n\n\n this.ReportService2.projectId.subscribe((data) => {\n // \n if (data!= null) {\n this.projectId = data;\n \n\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n\n this.filtersData = {\n course: \"All\",\n agentEmail: \"All\",\n from: this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n ),\n to: this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n ),\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n application: \"All\",\n };\n // \n // this.getDefaultData(postData);\n\n setInterval(this.updateData.bind(this), 1000);\n\n if (!this.fitContainer) {\n this.applyDimensions();\n }\n\n this.ReportService2.filterData.subscribe((filters: any) => {\n // \n if (filters) {\n this.filtersData = filters;\n\n // this.getIncomingCompleted();\n // this.getStatusCounts();\n // this.getAssignedCounts();\n // this.getCourseCounts();\n // this.getTopPerformers();\n // this.getPendingCounts();\n this.getCallsPerDay();\n this.getCallsInboundOutbound();\n this.getCallsInVsOut();\n this.getCallStatus();\n // this.gettop10TimeTaken();\n // this.gettop10ValidationTime();\n }\n });\n\n // this.getStatusCounts();\n // this.getAssignedCounts();\n // this.getCourseCounts();\n // this.getIncomingCompleted();\n // this.getTopPerformers();\n // this.getPendingCounts();\n this.getCallsPerDay();\n this.getCallsInboundOutbound();\n this.getCallsInVsOut();\n this.getCallStatus();\n // this.gettop10TimeTaken();\n // this.gettop10ValidationTime();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n }\n });\n\n \n\n // this.getAgentList();\n }\n\n getAgentList() {\n throw new Error(\"Method not implemented.\");\n }\n\n getStatusCounts() {\n this.ReportsService.getStatusCounts(this.filtersData).subscribe(\n (res: any) => {\n this.statusCounts = [];\n // \n let pieData = [];\n let pending: number = 0;\n let completed: number = 0;\n res.data.forEach((element) => {\n pieData.push({\n name: this.capitalizeFirstLetter(element.document_status),\n value: element.document_count,\n });\n if (\n element.document_status == \"completed\" ||\n element.document_status == \"denied\"\n ) {\n completed = completed + Number(element.document_count);\n } else {\n pending = pending + Number(element.document_count);\n }\n });\n\n this.completedStatus = [\n {\n name: \"Completed\",\n value: completed,\n },\n {\n name: \"Pending\",\n value: pending,\n },\n ];\n this.statusCounts = pieData;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getAssignedCounts() {\n this.ReportsService.getAssignedCounts(this.filtersData).subscribe(\n (res: any) => {\n this.assignedCounts = [];\n let pieData = [];\n res.data.forEach((element) => {\n pieData.push({ name: element.agent, value: element.document_count });\n });\n\n for (let i = 0; i < pieData.length; i++) {\n if (pieData[i].name != \"Unassigned\") {\n if (this.getAgentName(pieData[i].name)) {\n pieData[i].name = this.getAgentName(pieData[i].name);\n }\n // pieData[i].name = this.getAgentName(pieData[i].name)\n }\n }\n\n this.assignedCounts = pieData;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCourseCounts() {\n this.ReportsService.getCourseCounts(this.filtersData).subscribe(\n (res: any) => {\n this.courseCounts = [];\n // this.courseCounts = res.data;\n let pieData = [];\n res.data.forEach((element) => {\n pieData.push({\n name: element.Program,\n value: element.count_of_applications,\n });\n });\n\n this.courseCounts = pieData;\n this.courseCounts.sort(function (a, b) {\n return a.count_of_applications - b.count_of_applications;\n });\n // this.courseCounts.reverse();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getTopPerformers() {\n this.ReportsService.getTopPerformers(this.filtersData).subscribe(\n (res: any) => {\n this.topPerformers = [];\n let gaugeData = [];\n let max = 0;\n res.data.forEach((element) => {\n gaugeData.push({\n name: element.agent,\n value: element.document_count,\n });\n max = max + element.document_count;\n });\n\n for (let i = 0; i < gaugeData.length; i++) {\n if (this.getAgentName(gaugeData[i].name)) {\n gaugeData[i].name = this.getAgentName(gaugeData[i].name);\n }\n }\n this.gaugeMax = Math.ceil(gaugeData[0].value / 10) * 10;\n this.topPerformers = gaugeData;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getPendingCounts() {\n // this.ReportsService.getPendingCounts(this.filtersData).subscribe(\n // (res: any) => {\n // // \n // }\n // );\n }\n\n getIncomingCompleted() {\n // this.ReportsService.getIncomingCompleted2(this.filtersData).subscribe((res: any)=>{\n // \n // })\n this.ReportsService.getIncomingCompleted(this.filtersData).subscribe(\n (res: any) => {\n // this.ReportsService.getPendingCounts(this.filtersData).subscribe((res2:any)=>{\n // \n // \n this.barChartCombo = [];\n // this.barChartCombo2 = [{ name: \"Completed\", series: [] },{ name: \"Pending\", series: [] }];\n\n this.lineChartCombo = [{ name: \"Completed\", series: [] }];\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n // \n let check = false;\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data.length; j++) {\n if (\n allDates[i] == res.data[j].incoming_date ||\n allDates[i] == res.data[j].close_date\n ) {\n check = true;\n this.barChartCombo.push({\n name: allDates[i],\n value: toNumber(res.data[j].incoming_count),\n });\n\n this.lineChartCombo[0].series.push({\n name: allDates[i],\n value: toNumber(res.data[j].processed_count),\n });\n }\n }\n if (check == false) {\n this.barChartCombo.push({\n name: allDates[i],\n value: 0,\n });\n\n this.lineChartCombo[0].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n\n if (allDates.length > 500) {\n // \n\n for (let i = 0; i < this.barChartCombo.length; i++) {\n let d = new Date(this.barChartCombo[i].name);\n // \n // \n this.barChartCombo[i].name = moment(\n this.barChartCombo[i].name\n ).format(\"YYYY\");\n this.lineChartCombo[0].series[i].name = moment(\n this.lineChartCombo[0].series[i].name\n ).format(\"YYYY\");\n }\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n const years = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n // \n\n for (let i = 0; i < years.length; i++) {\n temp2.push({\n name: years[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (years[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n // \n // \n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else if (allDates.length > 300) {\n // \n for (let i = 0; i < this.barChartCombo.length; i++) {\n let d = new Date(this.barChartCombo[i].name);\n // \n // \n this.barChartCombo[i].name = moment(\n this.barChartCombo[i].name\n ).format(\"MMM YY\");\n this.lineChartCombo[0].series[i].name = moment(\n this.lineChartCombo[0].series[i].name\n ).format(\"MMM YY\");\n }\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n const years = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n // \n\n for (let i = 0; i < years.length; i++) {\n temp2.push({\n name: years[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (years[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n // \n // \n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else if (allDates.length > 30) {\n // \n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.barChartCombo.length; i++) {\n this.barChartCombo[i].name = allDates[i];\n }\n\n const dates = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n for (let i = 0; i < dates.length; i++) {\n temp2.push({\n name: dates[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (dates[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < dates.length; i++) {\n temp4[0].series.push({\n name: dates[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (dates[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else {\n this.barChart = this.barChartCombo;\n this.lineChartSeries = this.lineChartCombo;\n }\n\n // \n // \n\n // \n // \n\n // });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCallsPerDay() {\n this.ReportsService.getCallsPerDay(this.filtersData).subscribe(\n (res: any) => {\n // \n\n this.lineChartCalls = [{ name: \"Calls\", series: [] }];\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n let check = false;\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data.length; j++) {\n if (allDates[i] == res.data[j].createdAt) {\n check = true;\n this.lineChartCalls[0].series.push({\n name: allDates[i],\n value: toNumber(res.data[j].count),\n });\n }\n }\n if (check == false) {\n this.lineChartCalls[0].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n\n if (allDates.length > 500) {\n // \n\n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n let d = new Date(this.lineChartCalls[0].series[i].name);\n\n this.lineChartCalls[0].series[i].name = moment(\n this.lineChartCalls[0].series[i].name\n ).format(\"YYYY\");\n }\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n const years = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else if (allDates.length > 300) {\n // \n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n let d = new Date(this.lineChartCalls[0].series[i].name);\n\n this.lineChartCalls[0].series[i].name = moment(\n this.lineChartCalls[0].series[i].name\n ).format(\"MMM YY\");\n }\n\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n const years = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else if (allDates.length > 30) {\n // \n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n this.lineChartCalls[0].series[i].name = allDates[i];\n }\n\n const dates = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n for (let i = 0; i < dates.length; i++) {\n temp4[0].series.push({\n name: dates[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (dates[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else {\n //Empty Condition\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n // getCallsInboundOutboundOld() {\n // this.ReportsService.getCallsInboundOutbound(this.filtersData).subscribe(\n // (res: any) => {\n // \n\n // this.inboundOutbound = [{name:\"OutGoing\", series: []},{name:\"InComing\", series: []}];\n\n // const d1 = new Date(this.filtersData.from);\n // const d2 = new Date(this.filtersData.to);\n\n // let allDates = this.getDatesInRange(d1, d2);\n // let check = false;\n\n // for(let k = 0; k < 2; k++){\n // for (let i = 0; i < allDates.length; i++) {\n // check = false;\n // for (let j = 0; j < res.data[k].length; j++) {\n // if (allDates[i] == res.data[k][j].createdAt) {\n // check = true;\n // this.inboundOutbound[k].series.push({\n // name: allDates[i],\n // value: toNumber(res.data[k][j].count),\n // });\n // }\n // }\n // if (check == false) {\n // this.inboundOutbound[k].series.push({\n // name: allDates[i],\n // value: 0,\n // });\n // }\n // }\n // }\n // \n\n // if (allDates.length > 500) {\n // // \n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for(let k=0; k<2;k++){\n\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // let d = new Date(this.inboundOutbound[k].series[i].name);\n\n // this.inboundOutbound[k].series[i].name = moment(\n // this.inboundOutbound[k].series[i].name\n // ).format(\"YYYY\");\n // }\n\n // const years = [\n // ...new Set(\n // this.inboundOutbound[k].series.map((item) => item.name)\n // ),\n // ];\n\n // for (let i = 0; i < years.length; i++) {\n // temp4[k].series.push({\n // name: years[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (years[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n\n // }\n // this.inboundOutbound[k] = temp4[k]\n // }\n\n // }else if (allDates.length > 300) {\n // // \n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for(let k=0; k<2;k++){\n\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // let d = new Date(this.inboundOutbound[k].series[i].name);\n\n // this.inboundOutbound[k].series[i].name = moment(\n // this.inboundOutbound[k].series[i].name\n // ).format(\"MMM YY\");\n // }\n\n // const years = [\n // ...new Set(\n // this.inboundOutbound[k].series.map((item) => item.name)\n // ),\n // ];\n\n // for (let i = 0; i < years.length; i++) {\n // temp4[k].series.push({\n // name: years[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (years[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n\n // }\n // this.inboundOutbound[k] = temp4[k]\n // }\n\n // } else if(allDates.length > 30){\n\n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for (let i = allDates.length - 1; i > 0; i--) {\n // for (let j = i - 1; j > i - 7; j--) {\n // allDates[j] = allDates[i];\n // }\n // i = i - 6;\n // }\n\n // for (let k = 0; k < 2; k++) {\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // this.inboundOutbound[k].series[i].name = allDates[i];\n // }\n // const dates = [\n // ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n // ];\n // for (let i = 0; i < dates.length; i++) {\n // temp4[k].series.push({\n // name: dates[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (dates[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n // }\n // this.inboundOutbound[k] = temp4[k];\n // }\n\n // // this.inboundOutbound = temp4;\n\n // }\n\n // \n\n // }\n // );\n // }\n getCallsInboundOutbound() {\n this.ReportsService.getCallsInboundOutbound(this.filtersData).subscribe(\n (res: any) => {\n this.inboundOutbound = [\n { name: \"OutGoing\", series: [] },\n { name: \"InComing\", series: [] },\n ];\n\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n let check = false;\n let chartData = [];\n\n for (let k = 0; k < 2; k++) {\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data[k].length; j++) {\n if (allDates[i] == res.data[k][j].createdAt) {\n check = true;\n this.inboundOutbound[k].series.push({\n name: allDates[i],\n value: toNumber(res.data[k][j].count),\n });\n }\n }\n if (check == false) {\n this.inboundOutbound[k].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n }\n\n if (allDates.length > 300) {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n let d = new Date(this.inboundOutbound[0].series[i].name);\n\n this.inboundOutbound[0].series[i].name = moment(\n this.inboundOutbound[0].series[i].name\n ).format(\"YYYY\");\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else if (allDates.length > 150) {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n let d = new Date(this.inboundOutbound[0].series[i].name);\n\n this.inboundOutbound[0].series[i].name = moment(\n this.inboundOutbound[0].series[i].name\n ).format(\"MMM YY\");\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else if (allDates.length > 10) {\n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n this.inboundOutbound[0].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n this.inboundOutbound[1].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n this.inboundOutbound[0].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n this.inboundOutbound[1].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n }\n\n this.inboundOutbound = chartData;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCallsInVsOut() {\n this.ReportsService.getCallsInVsOut(this.filtersData).subscribe(\n (res: any) => {\n this.incomingVsOutgoing = [];\n\n for (let i = 0; i < res.data.length; i++) {\n this.incomingVsOutgoing.push({\n name: this.capitalizeFirstLetter(res.data[i].Direction),\n value: res.data[i].count,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCallStatus() {\n this.ReportsService.getCallStatus(this.filtersData).subscribe(\n (res: any) => {\n this.callStatusCounts = [];\n for (let i = 0; i < res.data.length; i++) {\n this.callStatusCounts.push({\n name: this.capitalizeFirstLetter(res.data[i].Call_status),\n value: res.data[i].count,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n gettop10TimeTaken(){\n this.ReportsService.getProcessingtimeMax10(this.filtersData).subscribe((res:any)=>{\n if(res.data){\n this.top10Data = res.data\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n gettop10ValidationTime(){\n this.ReportsService.getValidationtimeMax10(this.filtersData).subscribe((res:any)=>{\n\n if(res.data){\n this.top10Validation = res.data\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n GetSortOrder(prop) {\n return function (a, b) {\n if (a[prop] > b[prop]) {\n return 1;\n } else if (a[prop] < b[prop]) {\n return -1;\n }\n return 0;\n };\n }\n\n capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n getDatesInRange(startDate, endDate) {\n const date = new Date(startDate.getTime());\n\n // ✅ Exclude start date\n date.setDate(date.getDate() + 1);\n\n const dates = [];\n\n // ✅ Exclude end date\n while (date <= endDate) {\n dates.push(this.formatDate(new Date(date)));\n date.setDate(date.getDate() + 1);\n }\n\n return dates;\n }\n\n formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getAgentName(email) {\n let name = \"\";\n if (this.totalAgents) {\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n }\n\n leadsData() {\n this.ReportsService.getStatusCountsData(this.filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { GUID, FirstName, LastName, Program, EnrollmentTerm, EnrollmentYear, createdAt, updatedAt, LeadDocStatus, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentTerm, EnrollmentYear, createdAt, updatedAt, LeadDocStatus, CallStatus };\n })\n\n this.downloadFile(fd,'LeadsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n incomingVsCompletedData() {\n this.ReportsService.getIncomingCompletedData(this.filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm,LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd,'LeadsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n callsData(){\n this.ReportsService.getCallsPerDayData(this.filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { FirstName, LastName,callstatus, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType} = x;\n return { FirstName, LastName,callstatus, Assignedto, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType};\n })\n\n this.downloadFile(fd,'CallsData');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n top10CompletionData(){\n this.ReportsService.getProcessingtimeMax10Data(this.filtersData).subscribe((res:any)=>{\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var b = '';\n\n if( x.Time_taken_to_close_An_application.days==undefined){\n x.Time_taken_to_close_An_application.days = 0\n }\n if( x.Time_taken_to_close_An_application.hours==undefined){\n x.Time_taken_to_close_An_application.hours = 0\n }if( x.Time_taken_to_close_An_application.minutes==undefined){\n x.Time_taken_to_close_An_application.minutes = 0\n }\n b = x.Time_taken_to_close_An_application.days + ' d ' + x.Time_taken_to_close_An_application.hours +' h '+ + x.Time_taken_to_close_An_application.minutes +' m ' ;\n var CompletionTime = b\n\n const { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus} = x;\n return { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, Assignedto, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus, CompletionTime};\n })\n\n this.downloadFile(fd,'Completion_Time');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n top10ValidationData(){\n this.ReportsService.getValidationtimeMax10Data(this.filtersData).subscribe((res:any)=>{\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var b = '';\n if( x.total_time_till_validation.days==undefined){\n x.total_time_till_validation.days = 0\n }\n if( x.total_time_till_validation.hours==undefined){\n x.total_time_till_validation.hours = 0\n }if( x.total_time_till_validation.minutes==undefined){\n x.total_time_till_validation.minutes = 0\n }\n b = x.total_time_till_validation.days + ' d ' + x.total_time_till_validation.hours +' h ' + x.total_time_till_validation.minutes +' m ';\n var ValidationTime = b\n\n const { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus } = x;\n return { GUID, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, Assignedto, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus, ValidationTime};\n })\n\n this.downloadFile(fd,'Validtion_Time');\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n downloadFile(filedata,name){\n\n var json = filedata;\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = name+\"-\" + x.getFullYear() + \"-\" + x.getMonth() + \"-\" + x.getDay() + '.xlsx';\n a.download = link;\n a.click();\n this.uhleadsservice.showSuccess('Download Successful!', '')\n\n }\n\n updateData() {\n if (!this.realTimeData) {\n return;\n }\n\n this.gaugeValue =\n this.gaugeMin +\n Math.floor(Math.random() * (this.gaugeMax - this.gaugeMin));\n\n const country =\n this.countries[Math.floor(Math.random() * this.countries.length)];\n const add = Math.random() < 0.7;\n const remove = Math.random() < 0.5;\n\n if (remove) {\n if (this.single.length > 1) {\n const index = Math.floor(Math.random() * this.single.length);\n this.single.splice(index, 1);\n this.single = [...this.single];\n }\n\n if (this.multi.length > 1) {\n const index = Math.floor(Math.random() * this.multi.length);\n this.multi.splice(index, 1);\n this.multi = [...this.multi];\n }\n\n if (this.bubble.length > 1) {\n const index = Math.floor(Math.random() * this.bubble.length);\n this.bubble.splice(index, 1);\n this.bubble = [...this.bubble];\n }\n\n if (this.graph.nodes.length > 1) {\n const index = Math.floor(Math.random() * this.graph.nodes.length);\n const value = this.graph.nodes[index].value;\n this.graph.nodes.splice(index, 1);\n const nodes = [...this.graph.nodes];\n\n const links = this.graph.links.filter((link) => {\n return (\n link.source !== value &&\n link.source.value !== value &&\n link.target !== value &&\n link.target.value !== value\n );\n });\n this.graph = { links, nodes };\n }\n\n if (this.boxData.length > 1) {\n const index = Math.floor(Math.random() * this.boxData.length);\n this.boxData.splice(index, 1);\n this.boxData = [...this.boxData];\n }\n }\n\n if (add) {\n // single\n const entry = {\n name: country.name,\n value: Math.floor(10000 + Math.random() * 50000),\n };\n this.single = [...this.single, entry];\n\n // multi\n const multiEntry = {\n name: country.name,\n series: [\n {\n name: \"1990\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n {\n name: \"2000\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n {\n name: \"2010\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n ],\n };\n\n this.multi = [...this.multi, multiEntry];\n\n // graph\n const node = { value: country.name };\n const nodes = [...this.graph.nodes, node];\n const link = {\n source: country.name,\n target: nodes[Math.floor(Math.random() * (nodes.length - 1))].value,\n };\n const links = [...this.graph.links, link];\n this.graph = { links, nodes };\n\n // bubble\n const bubbleYear = Math.floor((2010 - 1990) * Math.random() + 1990);\n const bubbleEntry = {\n name: country.name,\n series: [\n {\n name: \"\" + bubbleYear,\n x: new Date(bubbleYear, 0, 1),\n y: Math.floor(30 + Math.random() * 70),\n r: Math.floor(30 + Math.random() * 20),\n },\n ],\n };\n\n this.bubble = [...this.bubble, bubbleEntry];\n\n // box\n const boxEntry = {\n name: country.name,\n series: [\n {\n name: \"1990\",\n value: getRandomInt(10, 5),\n },\n {\n name: \"2000\",\n value: getRandomInt(15, 5),\n },\n {\n name: \"2010\",\n value: getRandomInt(20, 10),\n },\n {\n name: \"2020\",\n value: getRandomInt(30, 10),\n },\n {\n name: \"2030\",\n value: getRandomInt(50, 20),\n },\n ],\n };\n\n const index = this.boxData.findIndex((box) => box.name === country.name);\n if (index > -1) {\n this.boxData[index] = boxEntry;\n } else {\n this.boxData = [...this.boxData, boxEntry];\n }\n\n // bubble interactive demo\n this.bubbleDemoProcess(\n bubbleDemoData[getRandomInt(0, bubbleDemoData.length - 1)]\n );\n\n this.statusData = this.getStatusData();\n\n this.timelineFilterBarData = timelineFilterBarData();\n }\n\n const date = new Date(\n Math.floor(1473700105009 + Math.random() * 1000000000)\n );\n for (const series of this.dateData) {\n series.series.push({\n name: date,\n value: Math.floor(2000 + Math.random() * 5000),\n });\n }\n this.dateData = [...this.dateData];\n\n this.dateDataWithRange = generateData(2, true);\n\n if (this.chart.inputFormat === \"calendarData\")\n this.calendarData = this.getCalendarData();\n }\n\n applyDimensions() {\n this.view = [this.width, this.height];\n }\n\n toggleFitContainer() {\n if (this.fitContainer) {\n this.view = undefined;\n } else {\n this.applyDimensions();\n }\n }\n\n selectChart(chartSelector) {\n this.chartType = chartSelector = chartSelector.replace(\"/\", \"\");\n this.location.replaceState(this.chartType);\n\n for (const group of this.chartGroups) {\n this.chart = group.charts.find((x) => x.selector === chartSelector);\n if (this.chart) break;\n }\n\n this.linearScale = false;\n this.yAxisLabel = \"GDP Per Capita\";\n this.xAxisLabel = \"Country\";\n\n this.width = 700;\n this.height = 300;\n\n Object.assign(this, this.chart.defaults);\n\n if (!this.fitContainer) {\n this.applyDimensions();\n }\n }\n\n changeTheme(theme: string) {\n this.theme = theme;\n if (theme === \"light\") {\n this.strokeColor = \"#000000\";\n } else {\n this.strokeColor = \"#FFFFFF\";\n }\n }\n\n select(data) {\n \n }\n\n activate(data) {\n // \n }\n\n deactivate(data) {\n // \n }\n\n getInterpolationType(curveType) {\n return this.curves[curveType] || this.curves[\"default\"];\n }\n\n setColorScheme(name) {\n this.selectedColorScheme = name;\n this.colorScheme = this.colorSets.find((s) => s.name === name);\n }\n\n onLegendLabelClick(entry) {\n \n }\n\n getCalendarData(): any[] {\n // today\n const now = new Date();\n const todaysDay = now.getDate();\n const thisDay = new Date(now.getFullYear(), now.getMonth(), todaysDay);\n\n // Monday\n const thisMonday = new Date(\n thisDay.getFullYear(),\n thisDay.getMonth(),\n todaysDay - thisDay.getDay() + 1\n );\n const thisMondayDay = thisMonday.getDate();\n const thisMondayYear = thisMonday.getFullYear();\n const thisMondayMonth = thisMonday.getMonth();\n\n // 52 weeks before monday\n const calendarData = [];\n const getDate = (d) => new Date(thisMondayYear, thisMondayMonth, d);\n for (let week = -52; week <= 0; week++) {\n const mondayDay = thisMondayDay + week * 7;\n const monday = getDate(mondayDay);\n\n // one week\n const series = [];\n for (let dayOfWeek = 7; dayOfWeek > 0; dayOfWeek--) {\n const date = getDate(mondayDay - 1 + dayOfWeek);\n\n // skip future dates\n if (date > now) {\n continue;\n }\n\n // value\n const value = dayOfWeek < 6 ? date.getMonth() + 1 : 0;\n\n series.push({\n date,\n name: weekdayName.format(date),\n value,\n });\n }\n\n calendarData.push({\n name: monday.toString(),\n series,\n });\n }\n\n return calendarData;\n }\n\n calendarAxisTickFormatting(mondayString: string) {\n const monday = new Date(mondayString);\n const month = monday.getMonth();\n const day = monday.getDate();\n const year = monday.getFullYear();\n const lastSunday = new Date(year, month, day - 1);\n const nextSunday = new Date(year, month, day + 6);\n return lastSunday.getMonth() !== nextSunday.getMonth()\n ? monthName.format(nextSunday)\n : \"\";\n }\n\n calendarTooltipText(c): string {\n return `\n ${\n c.label\n } • ${c.cell.date.toLocaleDateString()}\n ${c.data.toLocaleString()}\n `;\n }\n\n pieTooltipText({ data }) {\n const label = formatLabel(data.name);\n const val = formatLabel(data.value);\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n\n dollarValueFormat(c): string {\n return `$${c.value.toLocaleString()}`;\n }\n\n getStatusData() {\n const sales = Math.round(1e4 * Math.random());\n const dur = 36e5 * Math.random();\n return this.calcStatusData(sales, dur);\n }\n\n calcStatusData(\n sales = this.statusData[0].value,\n dur = this.statusData[2].value\n ) {\n const ret = sales * this.salePrice;\n const cost = ((sales * dur) / 60 / 60 / 1000) * this.personnelCost;\n const ROI = (ret - cost) / cost;\n return [\n {\n name: \"Sales\",\n value: sales,\n },\n {\n name: \"Gross\",\n value: ret,\n extra: { format: \"currency\" },\n },\n {\n name: \"Avg. Time\",\n value: dur,\n extra: { format: \"time\" },\n },\n {\n name: \"Cost\",\n value: cost,\n extra: { format: \"currency\" },\n },\n {\n name: \"ROI\",\n value: ROI,\n extra: { format: \"percent\" },\n },\n ];\n }\n\n statusValueFormat(c): string {\n switch (c.data.extra ? c.data.extra.format : \"\") {\n case \"currency\":\n return `$${Math.round(c.value).toLocaleString()}`;\n case \"time\":\n return multiFormat(c.value);\n case \"percent\":\n return `${Math.round(c.value * 100)}%`;\n default:\n return c.value.toLocaleString();\n }\n }\n\n valueFormatting(value: number): string {\n return `${Math.round(value).toLocaleString()} €`;\n }\n\n currencyFormatting(value: number) {\n return `${Math.round(value).toLocaleString()}`;\n }\n\n gdpLabelFormatting(c) {\n return `${escapeLabel(\n c.label\n )}
    `;\n }\n\n statusLabelFormat(c): string {\n return `${c.label}
    This week`;\n }\n\n generatePlotData() {\n if (!this.mathFunction) {\n return [];\n }\n const twoPi = 2 * Math.PI;\n const length = 25;\n const series = Array({ length }).map((d, i) => {\n const x = i / (length - 1);\n const t = x * twoPi;\n return {\n name: ~~(x * 360),\n value: this.mathFunction(t),\n };\n });\n\n return [\n {\n name: this.mathText,\n series,\n },\n ];\n }\n\n getFunction(text = this.mathText) {\n try {\n text = `with (Math) { return ${this.mathText} }`;\n // tslint:disable-next-line: function-constructor\n const fn = new Function(\"x\", text).bind(Math); // tslint:disable-line: tsr-detect-eval-with-expression\n return typeof fn(1) === \"number\" ? fn : null;\n } catch (err) {\n return null;\n }\n }\n\n treemapProcess(sumBy = this.sumBy) {\n this.sumBy = sumBy;\n const children = treemap[0];\n const value =\n sumBy === \"Size\" ? sumChildren(children) : countChildren(children);\n this.treemap = [children];\n this.treemapPath = [{ name: \"Top\", children: [children], value }];\n\n function sumChildren(node) {\n return (node.value =\n node.size || d3Array.sum(node.children, sumChildren));\n }\n\n function countChildren(node) {\n return (node.value = node.children\n ? d3Array.sum(node.children, countChildren)\n : 1);\n }\n }\n\n treemapSelect(item) {\n if (item.children) {\n const idx = this.treemapPath.indexOf(item);\n this.treemapPath.splice(idx + 1);\n this.treemap = this.treemapPath[idx].children;\n return;\n }\n const node = this.treemap.find((d) => d.name === item.name);\n if (node.children) {\n this.treemapPath.push(node);\n this.treemap = node.children;\n }\n }\n\n getFlag(country) {\n return this.countries.find((c) => c.name === country).emoji;\n }\n\n onFilter(event) {\n \n }\n\n /*\n **\n Combo Chart\n **\n [yLeftAxisScaleFactor]=\"yLeftAxisScale\" and [yRightAxisScaleFactor]=\"yRightAxisScale\"\n exposes the left and right min and max axis values for custom scaling, it is probably best to\n scale one axis in relation to the other axis but for flexibility to scale either the left or\n right axis both were exposed.\n **\n */\n\n yLeftAxisScale(min, max) {\n return { min: `${min}`, max: `${max}` };\n }\n\n yRightAxisScale(min, max) {\n return { min: `${min}`, max: `${max}` };\n }\n\n yLeftTickFormat(data) {\n return `${data.toLocaleString()}`;\n }\n\n yRightTickFormat(data) {\n return `${data}`;\n }\n /*\n **\n End of Combo Chart\n **\n */\n\n onSelect(event) {\n \n }\n\n dblclick(event) {\n \n }\n\n /*\n **\n Bubble Chart Interactive Demo\n **\n */\n\n bubbleDemoProcess(dataFromServer) {\n this.bubbleDemoChart.setDataFromServer(dataFromServer);\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n getBubbleInteractiveTitle() {\n return this.bubbleDemoChart.getChartTitle();\n }\n\n bubbleShowDrillDownResetLink() {\n return this.bubbleDemoChart.getDrilldownDepth() > 0;\n }\n\n onClickResetBubbleInteractiveDrill() {\n this.bubbleDemoChart.resetDrilldown();\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n onSelectBubbleInteractivePoint(event) {\n this.bubbleDemoChart.drilldown(event);\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    Calls Trend - All Calls
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Calls: Incoming vs Outgoing
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Calls - Incoming vs Outgoing
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Call Status
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n\n \n
    \n
    \n\n
    \n\n
    \n
    ","const chartGroups = [\n {\n name: 'Bar Charts',\n charts: [\n {\n name: 'Vertical Bar Chart',\n selector: 'bar-vertical',\n inputFormat: 'singleSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'roundEdges',\n 'yScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ]\n },\n {\n name: 'Horizontal Bar Chart',\n selector: 'bar-horizontal',\n inputFormat: 'singleSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'roundEdges',\n 'xScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'Country',\n xAxisLabel: 'GDP Per Capita'\n }\n },\n {\n name: 'Grouped Vertical Bar Chart',\n selector: 'bar-vertical-2d',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'groupPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'roundEdges',\n 'yScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ]\n },\n {\n name: 'Grouped Horizontal Bar Chart',\n selector: 'bar-horizontal-2d',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'groupPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'roundEdges',\n 'xScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'Country',\n xAxisLabel: 'GDP Per Capita'\n }\n },\n {\n name: 'Stacked Vertical Bar Chart',\n selector: 'bar-vertical-stacked',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'yScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ]\n },\n {\n name: 'Stacked Horizontal Bar Chart',\n selector: 'bar-horizontal-stacked',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'xScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'Country',\n xAxisLabel: 'GDP Per Capita'\n }\n },\n {\n name: 'Normalized Vertical Bar Chart',\n selector: 'bar-vertical-normalized',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'Normalized GDP Per Capita',\n xAxisLabel: 'Country'\n }\n },\n {\n name: 'Normalized Horizontal Bar Chart',\n selector: 'bar-horizontal-normalized',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'Country',\n xAxisLabel: 'Normalized GDP Per Capita'\n }\n }\n ]\n },\n {\n name: 'Pie Charts',\n charts: [\n {\n name: 'Pie Chart',\n selector: 'pie-chart',\n inputFormat: 'singleSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'doughnut',\n 'arcWidth',\n 'explodeSlices',\n 'showLabels',\n 'tooltipDisabled'\n ]\n },\n {\n name: 'Advanced Pie Chart',\n selector: 'advanced-pie-chart',\n inputFormat: 'singleSeries',\n options: ['animations', 'colorScheme', 'gradient', 'tooltipDisabled']\n },\n {\n name: 'Pie Grid',\n selector: 'pie-grid',\n inputFormat: 'singleSeries',\n options: ['animations', 'colorScheme', 'tooltipDisabled']\n }\n ]\n },\n {\n name: 'Line/Area Charts',\n charts: [\n {\n name: 'Line Chart',\n selector: 'line-chart',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'autoScale',\n 'timeline',\n 'showGridLines',\n 'curve',\n 'rangeFillOpacity',\n 'roundDomains',\n 'tooltipDisabled',\n 'showRefLines',\n 'referenceLines',\n 'showRefLabels',\n 'xScaleMin',\n 'xScaleMax',\n 'yScaleMin',\n 'yScaleMax',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'GDP Per Capita',\n xAxisLabel: 'Census Date',\n linearScale: true\n }\n },\n {\n name: 'Polar Chart',\n selector: 'polar-chart',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'autoScale',\n 'showGridLines',\n 'curveClosed',\n 'roundDomains',\n 'tooltipDisabled',\n 'trimYAxisTicks',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'GDP Per Capita',\n xAxisLabel: 'Census Date',\n linearScale: true\n }\n },\n {\n name: 'Area Chart',\n selector: 'area-chart',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'autoScale',\n 'timeline',\n 'showGridLines',\n 'curve',\n 'roundDomains',\n 'tooltipDisabled',\n 'xScaleMin',\n 'xScaleMax',\n 'yScaleMin',\n 'yScaleMax',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'GDP Per Capita',\n xAxisLabel: 'Census Date',\n linearScale: true\n }\n },\n {\n name: 'Stacked Area Chart',\n selector: 'area-chart-stacked',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'autoScale',\n 'timeline',\n 'showGridLines',\n 'curve',\n 'roundDomains',\n 'tooltipDisabled',\n 'xScaleMin',\n 'xScaleMax',\n 'yScaleMin',\n 'yScaleMax',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'GDP Per Capita',\n xAxisLabel: 'Census Date',\n linearScale: true\n }\n },\n {\n name: 'Normalized Area Chart',\n selector: 'area-chart-normalized',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'autoScale',\n 'timeline',\n 'showGridLines',\n 'curve',\n 'roundDomains',\n 'tooltipDisabled',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'Normalized GDP Per Capita',\n xAxisLabel: 'Census Date',\n linearScale: true\n }\n }\n ]\n },\n {\n name: 'Other Charts',\n charts: [\n {\n name: 'Bubble Chart',\n selector: 'bubble-chart',\n inputFormat: 'bubble',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'autoScale',\n 'minRadius',\n 'maxRadius',\n 'tooltipDisabled',\n 'xScaleMin',\n 'xScaleMax',\n 'yScaleMin',\n 'yScaleMax',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n xAxisLabel: 'Census Date',\n yAxisLabel: 'Life expectancy [years]'\n }\n },\n {\n name: 'Box Chart',\n selector: 'box-plot',\n inputFormat: 'boxMultiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'roundEdges',\n 'strokeColor',\n 'strokeWidth',\n 'tooltipDisabled',\n 'gradient'\n ],\n defaults: {\n xAxisLabel: 'Latin American Countries',\n yAxisLabel: ' Average Wage [USD]'\n }\n },\n {\n name: 'Force Directed Graph (deprecated)',\n selector: 'force-directed-graph',\n inputFormat: 'graph',\n options: ['animations', 'colorScheme', 'showLegend', 'legendTitle', 'legendPosition', 'tooltipDisabled']\n },\n {\n name: 'Heat Map',\n selector: 'heat-map',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'innerPadding',\n 'tooltipDisabled',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'rotateXAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength',\n 'min',\n 'max'\n ],\n defaults: {\n yAxisLabel: 'Census Date',\n cAxisLabel: 'Country'\n }\n },\n {\n name: 'Tree Map',\n selector: 'tree-map',\n inputFormat: 'singleSeries',\n options: ['animations', 'colorScheme', 'tooltipDisabled', 'gradient']\n },\n {\n name: 'Number Cards',\n selector: 'number-card',\n inputFormat: 'singleSeries',\n options: ['animations', 'colorScheme']\n },\n {\n name: 'Gauge',\n selector: 'gauge',\n inputFormat: 'singleSeries',\n options: [\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'colorScheme',\n 'min',\n 'max',\n 'largeSegments',\n 'smallSegments',\n 'units',\n 'angleSpan',\n 'startAngle',\n 'showAxis',\n 'margin',\n 'tooltipDisabled',\n 'animations',\n 'showText'\n ]\n },\n {\n name: 'Linear Gauge',\n selector: 'linear-gauge',\n inputFormat: 'single',\n options: ['animations', 'colorScheme', 'value', 'previousValue', 'min', 'max', 'units']\n }\n ]\n },\n {\n name: 'Demos',\n charts: [\n {\n name: 'Combo Chart',\n selector: 'combo-chart',\n inputFormat: 'comboChart',\n options: [\n 'animations',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'noBarWhenZero',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled'\n ]\n },\n {\n name: 'Heat Map - Calendar',\n selector: 'calendar',\n inputFormat: 'calendarData',\n options: [\n 'animations',\n 'colorScheme',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'innerPadding',\n 'tooltipDisabled',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n width: 1100,\n height: 200\n }\n },\n {\n name: 'Number Cards - Status',\n selector: 'status-demo',\n inputFormat: 'statusData',\n options: ['animations', 'colorScheme']\n },\n {\n name: 'TreeMap - Interactive',\n selector: 'tree-map-demo',\n inputFormat: 'treemap',\n options: ['animations', 'colorScheme']\n },\n {\n name: 'Bubble Chart - Interactive',\n selector: 'bubble-chart-interactive-demo',\n inputFormat: 'bubbleInteractive',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'showLegend',\n 'legendTitle',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'autoScale',\n 'minRadius',\n 'maxRadius',\n 'tooltipDisabled',\n 'xScaleMin',\n 'xScaleMax',\n 'yScaleMin',\n 'yScaleMax'\n ],\n defaults: {\n xAxisLabel: 'Order Total',\n yAxisLabel: 'Order Item Count',\n showLegend: false,\n minRadius: 5,\n maxRadius: 20\n }\n },\n {\n name: 'Equation Plots',\n selector: 'plot-demo',\n inputFormat: 'statusData',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'autoScale',\n 'showGridLines',\n 'gradient',\n 'roundDomains',\n 'tooltipDisabled',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ]\n },\n {\n name: 'Tooltip Templates',\n selector: 'tooltip-templates',\n inputFormat: 'singleSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled'\n ]\n },\n {\n name: 'Sparklines',\n selector: 'sparkline',\n inputFormat: 'multiSeries',\n options: ['animations', 'curve']\n },\n {\n name: 'Line Chart with Reference Lines',\n selector: 'line-reference-lines',\n inputFormat: 'multiSeries',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'autoScale',\n 'timeline',\n 'showGridLines',\n 'curve',\n 'rangeFillOpacity',\n 'roundDomains',\n 'tooltipDisabled',\n 'showRefLines',\n 'referenceLines',\n 'showRefLabels',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ],\n defaults: {\n yAxisLabel: 'GDP Per Capita',\n xAxisLabel: 'Year',\n linearScale: false\n }\n },\n {\n name: 'Timeline Filter Bar Chart',\n selector: 'timeline-filter-bar-chart-demo',\n inputFormat: 'timelineFilter',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'noBarWhenZero',\n 'gradient',\n 'showGridLines',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel'\n ]\n },\n {\n name: 'Stacked Vertical Bar Chart Negative',\n selector: 'bar-vertical-stacked-negative',\n inputFormat: 'multiSeriesNegative',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'barPadding',\n 'noBarWhenZero',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'yScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ]\n },\n {\n name: 'Stacked Horizontal Bar Chart Negative',\n selector: 'bar-horizontal-stacked-negative',\n inputFormat: 'multiSeriesNegative',\n options: [\n 'animations',\n 'colorScheme',\n 'schemeType',\n 'showXAxis',\n 'showYAxis',\n 'gradient',\n 'noBarWhenZero',\n 'barPadding',\n 'showLegend',\n 'legendTitle',\n 'legendPosition',\n 'showXAxisLabel',\n 'xAxisLabel',\n 'showYAxisLabel',\n 'yAxisLabel',\n 'showGridLines',\n 'roundDomains',\n 'tooltipDisabled',\n 'yScaleMax',\n 'showDataLabel',\n 'trimXAxisTicks',\n 'trimYAxisTicks',\n 'maxXAxisTickLength',\n 'maxYAxisTickLength'\n ]\n }\n ]\n }\n];\n\nexport default chartGroups;\n","export const lineChart: any = [\n {\n value: 50,\n name: \"USA\",\n },\n {\n value: 80,\n name: \"United Kingdom\",\n },\n {\n value: 85,\n name: \"France\",\n },\n {\n value: 90,\n name: \"Japan\",\n },\n {\n value: 100,\n name: \"China\",\n },\n];\n\nexport const lineChartSeries1 = [\n {\n name: \"Tablets\",\n series: [\n {\n name: \"USA\",\n value: 50,\n },\n {\n value: 80,\n name: \"United Kingdom\",\n },\n {\n value: 85,\n name: \"France\",\n },\n {\n value: 90,\n name: \"Japan\",\n },\n {\n value: 100,\n name: \"China\",\n },\n ],\n },\n {\n name: \"Cell Phones\",\n series: [\n {\n value: 10,\n name: \"USA\",\n },\n {\n value: 20,\n name: \"United Kingdom\",\n },\n {\n value: 30,\n name: \"France\",\n },\n {\n value: 40,\n name: \"Japan\",\n },\n {\n value: 10,\n name: \"China\",\n },\n ],\n },\n {\n name: \"Computers\",\n series: [\n {\n value: 2,\n name: \"USA\",\n },\n {\n value: 4,\n name: \"United Kingdom\",\n },\n {\n value: 20,\n name: \"France\",\n },\n {\n value: 30,\n name: \"Japan\",\n },\n {\n value: 35,\n name: \"China\",\n },\n ],\n },\n];\n\nexport var lineChartSeries = [\n {\n name: \"Completed\",\n series: [\n \n ],\n },\n];\n\nexport const barChart1: any = [\n {\n name: \"USA\",\n value: 50000,\n },\n {\n name: \"United Kingdom\",\n value: 30000,\n },\n {\n name: \"France\",\n value: 10000,\n },\n {\n name: \"Japan\",\n value: 0,\n },\n {\n name: \"China\",\n value: 500,\n },\n];\n\nexport var barChart: any = [\n \n];\n","import { Component, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport {\n Location,\n LocationStrategy,\n HashLocationStrategy,\n} from \"@angular/common\";\nimport * as shape from \"d3-shape\";\nimport * as d3Array from \"d3-array\";\n\nimport { Color, colorSets } from \"@swimlane/ngx-charts/utils/color-sets\";\n\nimport {\n formatLabel,\n escapeLabel,\n} from \"@swimlane/ngx-charts/common/label.helper\";\nimport {\n single,\n multi,\n boxData,\n bubble,\n generateData,\n generateGraph,\n treemap,\n timelineFilterBarData,\n fiscalYearReport,\n} from \"./data\";\n// import { bubbleDemoData } from './custom-charts/bubble-chart-interactive/data';\nimport { bubbleDemoData } from \"../../custom-charts/bubble-chart-interactive/data\";\n\nimport { BubbleChartInteractiveServerDataModel } from \"../../custom-charts/bubble-chart-interactive/models\";\nimport { data as countries } from \"emoji-flags\";\nimport chartGroups from \"./chartTypes\";\nimport { barChart, lineChartSeries } from \"./combo-chart-data\";\n// import pkg from '../../projects/swimlane/ngx-charts/package.json';\n// import pkg from '../../../../projects/swimlane/ngx-charts/package.json';\n\nimport { InputTypes } from \"@swimlane/ngx-ui\";\nimport { LegendPosition } from \"@swimlane/ngx-charts/common/types/legend.model\";\nimport { ScaleType } from \"@swimlane/ngx-charts/common/types/scale-type.enum\";\nimport { DashboardReportsService } from \"./dashboard-reports.service\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { ReportsService } from \"../reports/reports.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { each, post } from \"jquery\";\nimport { use } from \"echarts\";\nimport { forEach, toNumber } from \"lodash\";\nimport { Console } from \"console\";\nimport * as moment from \"moment\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport * as XLSX from 'xlsx';\nimport { stringLength } from \"@firebase/util\";\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\nconst monthName = new Intl.DateTimeFormat(\"en-us\", { month: \"short\" });\nconst weekdayName = new Intl.DateTimeFormat(\"en-us\", { weekday: \"short\" });\n\nfunction multiFormat(value) {\n if (value < 1000) return `${value.toFixed(2)}ms`;\n value /= 1000;\n if (value < 60) return `${value.toFixed(2)}s`;\n value /= 60;\n if (value < 60) return `${value.toFixed(2)}mins`;\n value /= 60;\n return `${value.toFixed(2)}hrs`;\n}\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n};\n\n@Component({\n selector: \"app-dashboard-reports\",\n providers: [\n Location,\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n ],\n encapsulation: ViewEncapsulation.None,\n templateUrl: \"./dashboard-reports.component.html\",\n styleUrls: [\"./dashboard-reports.component.scss\"],\n})\nexport class DashboardReportsComponent implements OnInit {\n // APP_VERSION = pkg.version;\n\n inputTypes = InputTypes;\n\n theme = \"dark\";\n chartType: string;\n chartGroups: any[];\n chart: any;\n realTimeData: boolean = false;\n countries: any[];\n single: any[];\n multi: any[];\n fiscalYearReport: any[];\n dateData: any[];\n dateDataWithRange: any[];\n calendarData: any[];\n statusData: any[];\n sparklineData: any[];\n timelineFilterBarData: any[];\n graph: { links: any[]; nodes: any[] };\n bubble: any;\n linearScale: boolean = false;\n range: boolean = false;\n\n view: [number, number];\n width: number = 500;\n height: number = 350;\n fitContainer: boolean = false;\n\n // options\n showXAxis = true;\n showYAxis = true;\n gradient = false;\n showLegend = true;\n legendTitle = \"Legend\";\n legendPosition = LegendPosition.Right;\n showXAxisLabel = true;\n tooltipDisabled = false;\n showText = false;\n xAxisLabel = \"Country\";\n showYAxisLabel = true;\n yAxisLabel = \"Applications Received\";\n showGridLines = true;\n innerPadding = \"10%\";\n barPadding = 8;\n groupPadding = 16;\n roundDomains = false;\n maxRadius = 10;\n minRadius = 3;\n showSeriesOnHover = true;\n roundEdges: boolean = true;\n animations: boolean = true;\n xScaleMin: any;\n xScaleMax: any;\n yScaleMin: number;\n yScaleMax: number;\n showDataLabel: boolean = false;\n noBarWhenZero: boolean = true;\n trimXAxisTicks: boolean = true;\n trimYAxisTicks: boolean = true;\n rotateXAxisTicks: boolean = true;\n maxXAxisTickLength: number = 16;\n maxYAxisTickLength: number = 16;\n strokeColor: string = \"#FFFFFF\";\n strokeWidth: number = 2;\n\n curves = {\n Basis: shape.curveBasis,\n \"Basis Closed\": shape.curveBasisClosed,\n Bundle: shape.curveBundle.beta(1),\n Cardinal: shape.curveCardinal,\n \"Cardinal Closed\": shape.curveCardinalClosed,\n \"Catmull Rom\": shape.curveCatmullRom,\n \"Catmull Rom Closed\": shape.curveCatmullRomClosed,\n Linear: shape.curveLinear,\n \"Linear Closed\": shape.curveLinearClosed,\n \"Monotone X\": shape.curveMonotoneX,\n \"Monotone Y\": shape.curveMonotoneY,\n Natural: shape.curveNatural,\n Step: shape.curveStep,\n \"Step After\": shape.curveStepAfter,\n \"Step Before\": shape.curveStepBefore,\n default: shape.curveLinear,\n };\n\n // line interpolation\n curveType: string = \"Linear\";\n curve: any = this.curves[this.curveType];\n interpolationTypes = [\n \"Basis\",\n \"Bundle\",\n \"Cardinal\",\n \"Catmull Rom\",\n \"Linear\",\n \"Monotone X\",\n \"Monotone Y\",\n \"Natural\",\n \"Step\",\n \"Step After\",\n \"Step Before\",\n ];\n\n closedCurveType: string = \"Linear Closed\";\n closedCurve: any = this.curves[this.closedCurveType];\n closedInterpolationTypes = [\n \"Basis Closed\",\n \"Cardinal Closed\",\n \"Catmull Rom Closed\",\n \"Linear Closed\",\n ];\n\n colorSets: any;\n colorScheme: any;\n schemeType = ScaleType.Ordinal;\n selectedColorScheme: string;\n rangeFillOpacity: number = 0.15;\n\n // Override colors for certain values\n customColors: any[] = [\n {\n name: \"Germany\",\n value: \"#a8385d\",\n },\n ];\n\n // pie\n showLabels = true;\n explodeSlices = false;\n doughnut = false;\n arcWidth = 0.25;\n\n // line, area\n autoScale = true;\n timeline = false;\n\n // margin\n margin: boolean = false;\n marginTop: number = 40;\n marginRight: number = 40;\n marginBottom: number = 40;\n marginLeft: number = 40;\n\n // box\n boxData = boxData;\n\n // gauge\n gaugeMin: number = 0;\n gaugeMax: number = 100;\n gaugeLargeSegments: number = 10;\n gaugeSmallSegments: number = 5;\n gaugeTextValue: string = \"\";\n gaugeUnits: string = \"alerts\";\n gaugeAngleSpan: number = 240;\n gaugeStartAngle: number = -120;\n gaugeShowAxis: boolean = true;\n gaugeValue: number = 50; // linear gauge value\n gaugePreviousValue: number = 70;\n\n // heatmap\n heatmapMin: number = 0;\n heatmapMax: number = 50000;\n\n // Combo Chart\n barChart: any[] = barChart;\n lineChartSeries: any[] = lineChartSeries;\n // barChart: any[];\n // lineChartSeries: any[];\n lineChartScheme: Color = {\n name: \"coolthree\",\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\"#01579b\", \"#7aa3e5\", \"#a8385d\", \"#00bfa5\"],\n };\n\n comboBarScheme: Color = {\n name: \"singleLightBlue\",\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\"#01579b\"],\n };\n\n showRightYAxisLabel: boolean = true;\n yAxisLabelRight: string = \"Utilization\";\n\n // demos\n totalSales = 0;\n salePrice = 100;\n personnelCost = 100;\n\n mathText = \"3 - 1.5*sin(x) + cos(2*x) - 1.5*abs(cos(x))\";\n mathFunction: (o: any) => any;\n\n treemap: any[];\n treemapPath: any[] = [];\n sumBy: string = \"Size\";\n\n // bubble chart interactive demo\n bubbleDemoTempData: any[] = [];\n bubbleDemoChart: BubbleChartInteractiveServerDataModel;\n\n // Reference lines\n showRefLines: boolean = true;\n showRefLabels: boolean = true;\n\n // Supports any number of reference lines.\n refLines = [\n { value: 42500, name: \"Maximum\" },\n { value: 37750, name: \"Average\" },\n { value: 33000, name: \"Minimum\" },\n ];\n\n // data\n plotData: any;\n\n // Sidebar Controls:\n colorVisible: boolean = true;\n dataVisible: boolean = true;\n dimVisible: boolean = true;\n optsVisible: boolean = true;\n\n //Filters Data\n userData: any;\n filtersData: any;\n\n //data for charts\n statusCounts: any;\n completedStatus: any;\n assignedCounts: any;\n courseCounts: any;\n projectId: any;\n combochartData: {\n barChart: any[];\n lineChart: [{ name: \"Completed\"; series: any[] }];\n };\n barChartCombo: any = [];\n barChartCombo2: any = [\n { name: \"Completed\", series: [] },\n { name: \"Pending\", series: [] },\n ];\n\n lineChartCombo = [{ name: \"Completed\", series: [] }];\n lineChartCalls = [{ name: \"Calls\", series: [] }];\n inboundOutbound = [];\n totalAgents: any[];\n GBPagentList: any;\n topPerformers: any;\n incomingVsOutgoing: any[];\n callStatusCounts: any[];\n top10Data: any[];\n top10Validation: any[];\n\n constructor(\n public location: Location,\n private ReportsService: DashboardReportsService,\n private ReportService2: ReportsService,\n private sharedService: SharedService,\n private momentFormatService: MomentFormatService,\n private agentService: CreateAgent,\n private uhleadsservice: UhLeadsService,\n private fb: FormBuilder\n ) {\n this.mathFunction = this.getFunction();\n\n Object.assign(this, {\n single,\n multi,\n countries,\n chartGroups,\n colorSets,\n graph: generateGraph(50),\n boxData,\n bubble,\n plotData: this.generatePlotData(),\n treemap,\n bubbleDemoData,\n fiscalYearReport,\n });\n\n // interactive drill down demos\n this.treemapProcess();\n this.bubbleDemoChart = new BubbleChartInteractiveServerDataModel();\n this.bubbleDemoProcess(bubbleDemoData[0]);\n\n this.dateData = generateData(5, false);\n this.dateDataWithRange = generateData(2, true);\n this.setColorScheme(\"cool\");\n this.calendarData = this.getCalendarData();\n this.statusData = this.getStatusData();\n this.sparklineData = generateData(1, false, 30);\n this.timelineFilterBarData = timelineFilterBarData();\n }\n\n get dateDataWithOrWithoutRange() {\n if (this.range) {\n return this.dateDataWithRange;\n } else {\n return this.dateData;\n }\n }\n\n ngOnInit() {\n const state = this.location.path(true);\n // this.selectChart(state.length ? state : 'bar-vertical');\n\n this.sharedService.pageEvent.emit({\n pageName: \"BI Analytics\",\n });\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n // \n\n\n this.ReportService2.projectId.subscribe((data) => {\n // \n if (data!= null) {\n this.projectId = data;\n \n\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n\n this.filtersData = {\n course: \"All\",\n agentEmail: \"All\",\n from: this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n ),\n to: this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n ),\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n application: \"All\",\n };\n // \n // this.getDefaultData(postData);\n\n setInterval(this.updateData.bind(this), 1000);\n\n if (!this.fitContainer) {\n this.applyDimensions();\n }\n\n this.ReportService2.filterData.subscribe((filters: any) => {\n // \n if (filters) {\n this.filtersData = filters;\n\n this.getIncomingCompleted();\n this.getStatusCounts();\n this.getAssignedCounts();\n this.getCourseCounts();\n this.getTopPerformers();\n this.getPendingCounts();\n this.getCallsPerDay();\n this.getCallsInboundOutbound();\n this.getCallsInVsOut();\n this.getCallStatus();\n this.gettop10TimeTaken();\n this.gettop10ValidationTime();\n }\n });\n\n this.getStatusCounts();\n this.getAssignedCounts();\n this.getCourseCounts();\n this.getIncomingCompleted();\n this.getTopPerformers();\n this.getPendingCounts();\n this.getCallsPerDay();\n this.getCallsInboundOutbound();\n this.getCallsInVsOut();\n this.getCallStatus();\n this.gettop10TimeTaken();\n this.gettop10ValidationTime();\n });\n });\n\n }\n });\n\n \n\n // this.getAgentList();\n }\n\n getAgentList() {\n throw new Error(\"Method not implemented.\");\n }\n\n getStatusCounts() {\n this.ReportsService.getStatusCounts(this.filtersData).subscribe(\n (res: any) => {\n this.statusCounts = [];\n // \n let pieData = [];\n let pending: number = 0;\n let completed: number = 0;\n res.data.forEach((element) => {\n pieData.push({\n name: this.capitalizeFirstLetter(element.document_status),\n value: element.document_count,\n });\n if (\n element.document_status == \"completed\" ||\n element.document_status == \"denied\"\n ) {\n completed = completed + Number(element.document_count);\n } else {\n pending = pending + Number(element.document_count);\n }\n });\n\n this.completedStatus = [\n {\n name: \"Completed\",\n value: completed,\n },\n {\n name: \"Pending\",\n value: pending,\n },\n ];\n this.statusCounts = pieData;\n }\n );\n }\n\n getAssignedCounts() {\n this.ReportsService.getAssignedCounts(this.filtersData).subscribe(\n (res: any) => {\n this.assignedCounts = [];\n let pieData = [];\n res.data.forEach((element) => {\n pieData.push({ name: element.agent, value: element.document_count });\n });\n\n for (let i = 0; i < pieData.length; i++) {\n if (pieData[i].name != \"Unassigned\") {\n if (this.getAgentName(pieData[i].name)) {\n pieData[i].name = this.getAgentName(pieData[i].name);\n }\n // pieData[i].name = this.getAgentName(pieData[i].name)\n }\n }\n\n this.assignedCounts = pieData;\n }\n );\n }\n\n getCourseCounts() {\n this.ReportsService.getCourseCounts(this.filtersData).subscribe(\n (res: any) => {\n this.courseCounts = [];\n // this.courseCounts = res.data;\n let pieData = [];\n res.data.forEach((element) => {\n pieData.push({\n name: element.Program,\n value: element.count_of_applications,\n });\n });\n\n this.courseCounts = pieData;\n this.courseCounts.sort(function (a, b) {\n return a.count_of_applications - b.count_of_applications;\n });\n // this.courseCounts.reverse();\n }\n );\n }\n\n getTopPerformers() {\n this.ReportsService.getTopPerformers(this.filtersData).subscribe(\n (res: any) => {\n this.topPerformers = [];\n let gaugeData = [];\n let max = 0;\n res.data.forEach((element) => {\n gaugeData.push({\n name: element.agent,\n value: element.document_count,\n });\n max = max + element.document_count;\n });\n\n for (let i = 0; i < gaugeData.length; i++) {\n if (this.getAgentName(gaugeData[i].name)) {\n gaugeData[i].name = this.getAgentName(gaugeData[i].name);\n }\n }\n this.gaugeMax = Math.ceil(gaugeData[0].value / 10) * 10;\n this.topPerformers = gaugeData;\n }\n );\n }\n\n getPendingCounts() {\n // this.ReportsService.getPendingCounts(this.filtersData).subscribe(\n // (res: any) => {\n // // \n // }\n // );\n }\n\n getIncomingCompleted() {\n // this.ReportsService.getIncomingCompleted2(this.filtersData).subscribe((res: any)=>{\n // \n // })\n this.ReportsService.getIncomingCompleted(this.filtersData).subscribe(\n (res: any) => {\n // this.ReportsService.getPendingCounts(this.filtersData).subscribe((res2:any)=>{\n // \n // \n this.barChartCombo = [];\n // this.barChartCombo2 = [{ name: \"Completed\", series: [] },{ name: \"Pending\", series: [] }];\n\n this.lineChartCombo = [{ name: \"Completed\", series: [] }];\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n // \n let check = false;\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data.length; j++) {\n if (\n allDates[i] == res.data[j].incoming_date ||\n allDates[i] == res.data[j].close_date\n ) {\n check = true;\n this.barChartCombo.push({\n name: allDates[i],\n value: toNumber(res.data[j].incoming_count),\n });\n\n this.lineChartCombo[0].series.push({\n name: allDates[i],\n value: toNumber(res.data[j].processed_count),\n });\n }\n }\n if (check == false) {\n this.barChartCombo.push({\n name: allDates[i],\n value: 0,\n });\n\n this.lineChartCombo[0].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n\n if (allDates.length > 500) {\n // \n\n for (let i = 0; i < this.barChartCombo.length; i++) {\n let d = new Date(this.barChartCombo[i].name);\n // \n // \n this.barChartCombo[i].name = moment(\n this.barChartCombo[i].name\n ).format(\"YYYY\");\n this.lineChartCombo[0].series[i].name = moment(\n this.lineChartCombo[0].series[i].name\n ).format(\"YYYY\");\n }\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n const years = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n // \n\n for (let i = 0; i < years.length; i++) {\n temp2.push({\n name: years[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (years[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n // \n // \n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else if (allDates.length > 300) {\n // \n for (let i = 0; i < this.barChartCombo.length; i++) {\n let d = new Date(this.barChartCombo[i].name);\n // \n // \n this.barChartCombo[i].name = moment(\n this.barChartCombo[i].name\n ).format(\"MMM YY\");\n this.lineChartCombo[0].series[i].name = moment(\n this.lineChartCombo[0].series[i].name\n ).format(\"MMM YY\");\n }\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n const years = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n // \n\n for (let i = 0; i < years.length; i++) {\n temp2.push({\n name: years[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (years[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n // \n // \n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else if (allDates.length > 30) {\n // \n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.barChartCombo.length; i++) {\n this.barChartCombo[i].name = allDates[i];\n }\n\n const dates = [\n ...new Set(this.barChartCombo.map((item) => item.name)),\n ];\n\n let temp = this.barChartCombo;\n let temp2: any[] = [];\n let temp3 = this.lineChartCombo;\n let temp4 = [{ name: \"Completed\", series: [] }];\n\n for (let i = 0; i < dates.length; i++) {\n temp2.push({\n name: dates[i],\n value: 0,\n });\n for (let j = 0; j < temp.length; j++) {\n if (dates[i] == temp[j].name) {\n temp2[i].value = temp2[i].value + temp[j].value;\n }\n }\n }\n\n for (let i = 0; i < dates.length; i++) {\n temp4[0].series.push({\n name: dates[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (dates[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.barChart = temp2;\n this.lineChartSeries = temp4;\n } else {\n this.barChart = this.barChartCombo;\n this.lineChartSeries = this.lineChartCombo;\n }\n\n // \n // \n\n // \n // \n\n // });\n }\n );\n }\n\n getCallsPerDay() {\n this.ReportsService.getCallsPerDay(this.filtersData).subscribe(\n (res: any) => {\n // \n\n this.lineChartCalls = [{ name: \"Calls\", series: [] }];\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n let check = false;\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data.length; j++) {\n if (allDates[i] == res.data[j].createdAt) {\n check = true;\n this.lineChartCalls[0].series.push({\n name: allDates[i],\n value: toNumber(res.data[j].count),\n });\n }\n }\n if (check == false) {\n this.lineChartCalls[0].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n\n if (allDates.length > 500) {\n // \n\n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n let d = new Date(this.lineChartCalls[0].series[i].name);\n\n this.lineChartCalls[0].series[i].name = moment(\n this.lineChartCalls[0].series[i].name\n ).format(\"YYYY\");\n }\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n const years = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else if (allDates.length > 300) {\n // \n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n let d = new Date(this.lineChartCalls[0].series[i].name);\n\n this.lineChartCalls[0].series[i].name = moment(\n this.lineChartCalls[0].series[i].name\n ).format(\"MMM YY\");\n }\n\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n const years = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n temp4[0].series.push({\n name: years[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (years[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else if (allDates.length > 30) {\n // \n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.lineChartCalls[0].series.length; i++) {\n this.lineChartCalls[0].series[i].name = allDates[i];\n }\n\n const dates = [\n ...new Set(this.lineChartCalls[0].series.map((item) => item.name)),\n ];\n let temp3 = this.lineChartCalls;\n let temp4 = [{ name: \"Calls\", series: [] }];\n\n for (let i = 0; i < dates.length; i++) {\n temp4[0].series.push({\n name: dates[i],\n value: 0,\n });\n\n for (let j = 0; j < temp3[0].series.length; j++) {\n if (dates[i] == temp3[0].series[j].name) {\n temp4[0].series[i].value =\n temp4[0].series[i].value + temp3[0].series[j].value;\n }\n }\n }\n\n this.lineChartCalls = temp4;\n } else {\n //Empty Condition\n }\n }\n );\n }\n\n // getCallsInboundOutboundOld() {\n // this.ReportsService.getCallsInboundOutbound(this.filtersData).subscribe(\n // (res: any) => {\n // \n\n // this.inboundOutbound = [{name:\"OutGoing\", series: []},{name:\"InComing\", series: []}];\n\n // const d1 = new Date(this.filtersData.from);\n // const d2 = new Date(this.filtersData.to);\n\n // let allDates = this.getDatesInRange(d1, d2);\n // let check = false;\n\n // for(let k = 0; k < 2; k++){\n // for (let i = 0; i < allDates.length; i++) {\n // check = false;\n // for (let j = 0; j < res.data[k].length; j++) {\n // if (allDates[i] == res.data[k][j].createdAt) {\n // check = true;\n // this.inboundOutbound[k].series.push({\n // name: allDates[i],\n // value: toNumber(res.data[k][j].count),\n // });\n // }\n // }\n // if (check == false) {\n // this.inboundOutbound[k].series.push({\n // name: allDates[i],\n // value: 0,\n // });\n // }\n // }\n // }\n // \n\n // if (allDates.length > 500) {\n // // \n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for(let k=0; k<2;k++){\n\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // let d = new Date(this.inboundOutbound[k].series[i].name);\n\n // this.inboundOutbound[k].series[i].name = moment(\n // this.inboundOutbound[k].series[i].name\n // ).format(\"YYYY\");\n // }\n\n // const years = [\n // ...new Set(\n // this.inboundOutbound[k].series.map((item) => item.name)\n // ),\n // ];\n\n // for (let i = 0; i < years.length; i++) {\n // temp4[k].series.push({\n // name: years[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (years[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n\n // }\n // this.inboundOutbound[k] = temp4[k]\n // }\n\n // }else if (allDates.length > 300) {\n // // \n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for(let k=0; k<2;k++){\n\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // let d = new Date(this.inboundOutbound[k].series[i].name);\n\n // this.inboundOutbound[k].series[i].name = moment(\n // this.inboundOutbound[k].series[i].name\n // ).format(\"MMM YY\");\n // }\n\n // const years = [\n // ...new Set(\n // this.inboundOutbound[k].series.map((item) => item.name)\n // ),\n // ];\n\n // for (let i = 0; i < years.length; i++) {\n // temp4[k].series.push({\n // name: years[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (years[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n\n // }\n // this.inboundOutbound[k] = temp4[k]\n // }\n\n // } else if(allDates.length > 30){\n\n // let temp3 = this.inboundOutbound;\n // let temp4 = [\n // { name: \"OutGoing\", series: [] },\n // { name: \"InComing\", series: [] },\n // ];\n\n // for (let i = allDates.length - 1; i > 0; i--) {\n // for (let j = i - 1; j > i - 7; j--) {\n // allDates[j] = allDates[i];\n // }\n // i = i - 6;\n // }\n\n // for (let k = 0; k < 2; k++) {\n // for (let i = 0; i < this.inboundOutbound[k].series.length; i++) {\n // this.inboundOutbound[k].series[i].name = allDates[i];\n // }\n // const dates = [\n // ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n // ];\n // for (let i = 0; i < dates.length; i++) {\n // temp4[k].series.push({\n // name: dates[i],\n // value: 0,\n // });\n\n // for (let j = 0; j < temp3[k].series.length; j++) {\n // if (dates[i] == temp3[k].series[j].name) {\n // temp4[k].series[i].value =\n // temp4[k].series[i].value + temp3[k].series[j].value;\n // }\n // }\n // }\n // this.inboundOutbound[k] = temp4[k];\n // }\n\n // // this.inboundOutbound = temp4;\n\n // }\n\n // \n\n // }\n // );\n // }\n getCallsInboundOutbound() {\n this.ReportsService.getCallsInboundOutbound(this.filtersData).subscribe(\n (res: any) => {\n this.inboundOutbound = [\n { name: \"OutGoing\", series: [] },\n { name: \"InComing\", series: [] },\n ];\n\n const d1 = new Date(this.filtersData.from);\n const d2 = new Date(this.filtersData.to);\n\n let allDates = this.getDatesInRange(d1, d2);\n let check = false;\n let chartData = [];\n\n for (let k = 0; k < 2; k++) {\n for (let i = 0; i < allDates.length; i++) {\n check = false;\n for (let j = 0; j < res.data[k].length; j++) {\n if (allDates[i] == res.data[k][j].createdAt) {\n check = true;\n this.inboundOutbound[k].series.push({\n name: allDates[i],\n value: toNumber(res.data[k][j].count),\n });\n }\n }\n if (check == false) {\n this.inboundOutbound[k].series.push({\n name: allDates[i],\n value: 0,\n });\n }\n }\n }\n\n if (allDates.length > 300) {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n let d = new Date(this.inboundOutbound[0].series[i].name);\n\n this.inboundOutbound[0].series[i].name = moment(\n this.inboundOutbound[0].series[i].name\n ).format(\"YYYY\");\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else if (allDates.length > 150) {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n let d = new Date(this.inboundOutbound[0].series[i].name);\n\n this.inboundOutbound[0].series[i].name = moment(\n this.inboundOutbound[0].series[i].name\n ).format(\"MMM YY\");\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else if (allDates.length > 10) {\n for (let i = allDates.length - 1; i > 0; i--) {\n for (let j = i - 1; j > i - 7; j--) {\n allDates[j] = allDates[i];\n }\n i = i - 6;\n }\n\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n this.inboundOutbound[0].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n this.inboundOutbound[1].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n } else {\n for (let i = 0; i < this.inboundOutbound[0].series.length; i++) {\n this.inboundOutbound[0].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n this.inboundOutbound[1].series[i].name = moment(allDates[i]).format(\n \"DD MMM\"\n );\n }\n\n const years = [\n ...new Set(this.inboundOutbound[0].series.map((item) => item.name)),\n ];\n\n for (let i = 0; i < years.length; i++) {\n let outbound = 0;\n let inbound = 0;\n\n for (let j = 0; j < allDates.length; j++) {\n if (years[i] == this.inboundOutbound[0].series[j].name) {\n outbound = outbound + this.inboundOutbound[0].series[j].value;\n inbound = inbound + this.inboundOutbound[1].series[j].value;\n }\n }\n\n chartData.push({\n name: years[i],\n series: [\n {\n name: \"outbound\",\n value: outbound,\n },\n {\n name: \"inbound\",\n value: inbound,\n },\n ],\n });\n }\n }\n\n this.inboundOutbound = chartData;\n }\n );\n }\n\n getCallsInVsOut() {\n this.ReportsService.getCallsInVsOut(this.filtersData).subscribe(\n (res: any) => {\n this.incomingVsOutgoing = [];\n\n for (let i = 0; i < res.data.length; i++) {\n this.incomingVsOutgoing.push({\n name: this.capitalizeFirstLetter(res.data[i].Direction),\n value: res.data[i].count,\n });\n }\n }\n );\n }\n\n getCallStatus() {\n this.ReportsService.getCallStatus(this.filtersData).subscribe(\n (res: any) => {\n this.callStatusCounts = [];\n for (let i = 0; i < res.data.length; i++) {\n this.callStatusCounts.push({\n name: this.capitalizeFirstLetter(res.data[i].Call_status),\n value: res.data[i].count,\n });\n }\n }\n );\n }\n\n gettop10TimeTaken(){\n this.ReportsService.getProcessingtimeMax10(this.filtersData).subscribe((res:any)=>{\n if(res.data){\n this.top10Data = res.data\n }\n })\n }\n\n gettop10ValidationTime(){\n this.ReportsService.getValidationtimeMax10(this.filtersData).subscribe((res:any)=>{\n\n if(res.data){\n this.top10Validation = res.data\n }\n })\n }\n\n GetSortOrder(prop) {\n return function (a, b) {\n if (a[prop] > b[prop]) {\n return 1;\n } else if (a[prop] < b[prop]) {\n return -1;\n }\n return 0;\n };\n }\n\n capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n getDatesInRange(startDate, endDate) {\n const date = new Date(startDate.getTime());\n\n // ✅ Exclude start date\n date.setDate(date.getDate() + 1);\n\n const dates = [];\n\n // ✅ Exclude end date\n while (date <= endDate) {\n dates.push(this.formatDate(new Date(date)));\n date.setDate(date.getDate() + 1);\n }\n\n return dates;\n }\n\n formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n \n });\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n });\n }\n\n getAgentName(email) {\n let name = \"\";\n if (this.totalAgents) {\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n }\n\n leadsData() {\n this.ReportsService.getStatusCountsData(this.filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { GUID, FirstName, LastName, Program, EnrollmentTerm, EnrollmentYear, createdAt, updatedAt, LeadDocStatus, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentTerm, EnrollmentYear, createdAt, updatedAt, LeadDocStatus, CallStatus };\n })\n\n this.downloadFile(fd,'LeadsData');\n })\n }\n\n incomingVsCompletedData() {\n this.ReportsService.getIncomingCompletedData(this.filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm,LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd,'LeadsData');\n })\n }\n\n callsData(){\n this.ReportsService.getCallsPerDayData(this.filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { id, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType, FirstName, LastName} = x;\n return { id, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType, FirstName, LastName};\n })\n\n this.downloadFile(fd,'CallsData');\n })\n }\n\n top10CompletionData(){\n this.ReportsService.getProcessingtimeMax10Data(this.filtersData).subscribe((res:any)=>{\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var b = '';\n\n if( x.Time_taken_to_close_An_application.days==undefined){\n x.Time_taken_to_close_An_application.days = 0\n }\n if( x.Time_taken_to_close_An_application.hours==undefined){\n x.Time_taken_to_close_An_application.hours = 0\n }if( x.Time_taken_to_close_An_application.minutes==undefined){\n x.Time_taken_to_close_An_application.minutes = 0\n }\n b = x.Time_taken_to_close_An_application.days + ' d ' + x.Time_taken_to_close_An_application.hours +' h '+ + x.Time_taken_to_close_An_application.minutes +' m ' ;\n var CompletionTime = b\n\n const { GUID, id, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, APPStatus, CallStatus, Phase, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus} = x;\n return { GUID, id, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, Assignedto, APPStatus, CallStatus, Phase, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus, CompletionTime};\n })\n\n this.downloadFile(fd,'Completion_Time');\n })\n }\n\n top10ValidationData(){\n this.ReportsService.getValidationtimeMax10Data(this.filtersData).subscribe((res:any)=>{\n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n var b = '';\n if( x.total_time_till_validation.days==undefined){\n x.total_time_till_validation.days = 0\n }\n if( x.total_time_till_validation.hours==undefined){\n x.total_time_till_validation.hours = 0\n }if( x.total_time_till_validation.minutes==undefined){\n x.total_time_till_validation.minutes = 0\n }\n b = x.total_time_till_validation.days + ' d ' + x.total_time_till_validation.hours +' h ' + x.total_time_till_validation.minutes +' m ';\n var ValidationTime = b\n\n const { GUID, id, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, APPStatus, CallStatus, Phase, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus } = x;\n return { GUID, id, FirstName, LastName, Email, EnrollmentYear, EnrolmentTerm, Assignedto, APPStatus, CallStatus, Phase, createdAt, updatedAt, ClosedDate, ClosedBy, Program, LeadDocStatus, ValidationTime};\n })\n\n this.downloadFile(fd,'Validtion_Time');\n })\n }\n\n downloadFile(filedata,name){\n\n var json = filedata;\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = name+\"-\" + x.getFullYear() + \"-\" + x.getMonth() + \"-\" + x.getDay() + '.xlsx';\n a.download = link;\n a.click();\n }\n\n updateData() {\n if (!this.realTimeData) {\n return;\n }\n\n this.gaugeValue =\n this.gaugeMin +\n Math.floor(Math.random() * (this.gaugeMax - this.gaugeMin));\n\n const country =\n this.countries[Math.floor(Math.random() * this.countries.length)];\n const add = Math.random() < 0.7;\n const remove = Math.random() < 0.5;\n\n if (remove) {\n if (this.single.length > 1) {\n const index = Math.floor(Math.random() * this.single.length);\n this.single.splice(index, 1);\n this.single = [...this.single];\n }\n\n if (this.multi.length > 1) {\n const index = Math.floor(Math.random() * this.multi.length);\n this.multi.splice(index, 1);\n this.multi = [...this.multi];\n }\n\n if (this.bubble.length > 1) {\n const index = Math.floor(Math.random() * this.bubble.length);\n this.bubble.splice(index, 1);\n this.bubble = [...this.bubble];\n }\n\n if (this.graph.nodes.length > 1) {\n const index = Math.floor(Math.random() * this.graph.nodes.length);\n const value = this.graph.nodes[index].value;\n this.graph.nodes.splice(index, 1);\n const nodes = [...this.graph.nodes];\n\n const links = this.graph.links.filter((link) => {\n return (\n link.source !== value &&\n link.source.value !== value &&\n link.target !== value &&\n link.target.value !== value\n );\n });\n this.graph = { links, nodes };\n }\n\n if (this.boxData.length > 1) {\n const index = Math.floor(Math.random() * this.boxData.length);\n this.boxData.splice(index, 1);\n this.boxData = [...this.boxData];\n }\n }\n\n if (add) {\n // single\n const entry = {\n name: country.name,\n value: Math.floor(10000 + Math.random() * 50000),\n };\n this.single = [...this.single, entry];\n\n // multi\n const multiEntry = {\n name: country.name,\n series: [\n {\n name: \"1990\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n {\n name: \"2000\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n {\n name: \"2010\",\n value: Math.floor(10000 + Math.random() * 50000),\n },\n ],\n };\n\n this.multi = [...this.multi, multiEntry];\n\n // graph\n const node = { value: country.name };\n const nodes = [...this.graph.nodes, node];\n const link = {\n source: country.name,\n target: nodes[Math.floor(Math.random() * (nodes.length - 1))].value,\n };\n const links = [...this.graph.links, link];\n this.graph = { links, nodes };\n\n // bubble\n const bubbleYear = Math.floor((2010 - 1990) * Math.random() + 1990);\n const bubbleEntry = {\n name: country.name,\n series: [\n {\n name: \"\" + bubbleYear,\n x: new Date(bubbleYear, 0, 1),\n y: Math.floor(30 + Math.random() * 70),\n r: Math.floor(30 + Math.random() * 20),\n },\n ],\n };\n\n this.bubble = [...this.bubble, bubbleEntry];\n\n // box\n const boxEntry = {\n name: country.name,\n series: [\n {\n name: \"1990\",\n value: getRandomInt(10, 5),\n },\n {\n name: \"2000\",\n value: getRandomInt(15, 5),\n },\n {\n name: \"2010\",\n value: getRandomInt(20, 10),\n },\n {\n name: \"2020\",\n value: getRandomInt(30, 10),\n },\n {\n name: \"2030\",\n value: getRandomInt(50, 20),\n },\n ],\n };\n\n const index = this.boxData.findIndex((box) => box.name === country.name);\n if (index > -1) {\n this.boxData[index] = boxEntry;\n } else {\n this.boxData = [...this.boxData, boxEntry];\n }\n\n // bubble interactive demo\n this.bubbleDemoProcess(\n bubbleDemoData[getRandomInt(0, bubbleDemoData.length - 1)]\n );\n\n this.statusData = this.getStatusData();\n\n this.timelineFilterBarData = timelineFilterBarData();\n }\n\n const date = new Date(\n Math.floor(1473700105009 + Math.random() * 1000000000)\n );\n for (const series of this.dateData) {\n series.series.push({\n name: date,\n value: Math.floor(2000 + Math.random() * 5000),\n });\n }\n this.dateData = [...this.dateData];\n\n this.dateDataWithRange = generateData(2, true);\n\n if (this.chart.inputFormat === \"calendarData\")\n this.calendarData = this.getCalendarData();\n }\n\n applyDimensions() {\n this.view = [this.width, this.height];\n }\n\n toggleFitContainer() {\n if (this.fitContainer) {\n this.view = undefined;\n } else {\n this.applyDimensions();\n }\n }\n\n selectChart(chartSelector) {\n this.chartType = chartSelector = chartSelector.replace(\"/\", \"\");\n this.location.replaceState(this.chartType);\n\n for (const group of this.chartGroups) {\n this.chart = group.charts.find((x) => x.selector === chartSelector);\n if (this.chart) break;\n }\n\n this.linearScale = false;\n this.yAxisLabel = \"GDP Per Capita\";\n this.xAxisLabel = \"Country\";\n\n this.width = 700;\n this.height = 300;\n\n Object.assign(this, this.chart.defaults);\n\n if (!this.fitContainer) {\n this.applyDimensions();\n }\n }\n\n changeTheme(theme: string) {\n this.theme = theme;\n if (theme === \"light\") {\n this.strokeColor = \"#000000\";\n } else {\n this.strokeColor = \"#FFFFFF\";\n }\n }\n\n select(data) {\n \n }\n\n activate(data) {\n // \n }\n\n deactivate(data) {\n // \n }\n\n getInterpolationType(curveType) {\n return this.curves[curveType] || this.curves[\"default\"];\n }\n\n setColorScheme(name) {\n this.selectedColorScheme = name;\n this.colorScheme = this.colorSets.find((s) => s.name === name);\n }\n\n onLegendLabelClick(entry) {\n \n }\n\n getCalendarData(): any[] {\n // today\n const now = new Date();\n const todaysDay = now.getDate();\n const thisDay = new Date(now.getFullYear(), now.getMonth(), todaysDay);\n\n // Monday\n const thisMonday = new Date(\n thisDay.getFullYear(),\n thisDay.getMonth(),\n todaysDay - thisDay.getDay() + 1\n );\n const thisMondayDay = thisMonday.getDate();\n const thisMondayYear = thisMonday.getFullYear();\n const thisMondayMonth = thisMonday.getMonth();\n\n // 52 weeks before monday\n const calendarData = [];\n const getDate = (d) => new Date(thisMondayYear, thisMondayMonth, d);\n for (let week = -52; week <= 0; week++) {\n const mondayDay = thisMondayDay + week * 7;\n const monday = getDate(mondayDay);\n\n // one week\n const series = [];\n for (let dayOfWeek = 7; dayOfWeek > 0; dayOfWeek--) {\n const date = getDate(mondayDay - 1 + dayOfWeek);\n\n // skip future dates\n if (date > now) {\n continue;\n }\n\n // value\n const value = dayOfWeek < 6 ? date.getMonth() + 1 : 0;\n\n series.push({\n date,\n name: weekdayName.format(date),\n value,\n });\n }\n\n calendarData.push({\n name: monday.toString(),\n series,\n });\n }\n\n return calendarData;\n }\n\n calendarAxisTickFormatting(mondayString: string) {\n const monday = new Date(mondayString);\n const month = monday.getMonth();\n const day = monday.getDate();\n const year = monday.getFullYear();\n const lastSunday = new Date(year, month, day - 1);\n const nextSunday = new Date(year, month, day + 6);\n return lastSunday.getMonth() !== nextSunday.getMonth()\n ? monthName.format(nextSunday)\n : \"\";\n }\n\n calendarTooltipText(c): string {\n return `\n ${\n c.label\n } • ${c.cell.date.toLocaleDateString()}\n ${c.data.toLocaleString()}\n `;\n }\n\n pieTooltipText({ data }) {\n const label = formatLabel(data.name);\n const val = formatLabel(data.value);\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n\n dollarValueFormat(c): string {\n return `$${c.value.toLocaleString()}`;\n }\n\n getStatusData() {\n const sales = Math.round(1e4 * Math.random());\n const dur = 36e5 * Math.random();\n return this.calcStatusData(sales, dur);\n }\n\n calcStatusData(\n sales = this.statusData[0].value,\n dur = this.statusData[2].value\n ) {\n const ret = sales * this.salePrice;\n const cost = ((sales * dur) / 60 / 60 / 1000) * this.personnelCost;\n const ROI = (ret - cost) / cost;\n return [\n {\n name: \"Sales\",\n value: sales,\n },\n {\n name: \"Gross\",\n value: ret,\n extra: { format: \"currency\" },\n },\n {\n name: \"Avg. Time\",\n value: dur,\n extra: { format: \"time\" },\n },\n {\n name: \"Cost\",\n value: cost,\n extra: { format: \"currency\" },\n },\n {\n name: \"ROI\",\n value: ROI,\n extra: { format: \"percent\" },\n },\n ];\n }\n\n statusValueFormat(c): string {\n switch (c.data.extra ? c.data.extra.format : \"\") {\n case \"currency\":\n return `$${Math.round(c.value).toLocaleString()}`;\n case \"time\":\n return multiFormat(c.value);\n case \"percent\":\n return `${Math.round(c.value * 100)}%`;\n default:\n return c.value.toLocaleString();\n }\n }\n\n valueFormatting(value: number): string {\n return `${Math.round(value).toLocaleString()} €`;\n }\n\n currencyFormatting(value: number) {\n return `${Math.round(value).toLocaleString()}`;\n }\n\n gdpLabelFormatting(c) {\n return `${escapeLabel(\n c.label\n )}
    `;\n }\n\n statusLabelFormat(c): string {\n return `${c.label}
    This week`;\n }\n\n generatePlotData() {\n if (!this.mathFunction) {\n return [];\n }\n const twoPi = 2 * Math.PI;\n const length = 25;\n const series = Array({ length }).map((d, i) => {\n const x = i / (length - 1);\n const t = x * twoPi;\n return {\n name: ~~(x * 360),\n value: this.mathFunction(t),\n };\n });\n\n return [\n {\n name: this.mathText,\n series,\n },\n ];\n }\n\n getFunction(text = this.mathText) {\n try {\n text = `with (Math) { return ${this.mathText} }`;\n // tslint:disable-next-line: function-constructor\n const fn = new Function(\"x\", text).bind(Math); // tslint:disable-line: tsr-detect-eval-with-expression\n return typeof fn(1) === \"number\" ? fn : null;\n } catch (err) {\n return null;\n }\n }\n\n treemapProcess(sumBy = this.sumBy) {\n this.sumBy = sumBy;\n const children = treemap[0];\n const value =\n sumBy === \"Size\" ? sumChildren(children) : countChildren(children);\n this.treemap = [children];\n this.treemapPath = [{ name: \"Top\", children: [children], value }];\n\n function sumChildren(node) {\n return (node.value =\n node.size || d3Array.sum(node.children, sumChildren));\n }\n\n function countChildren(node) {\n return (node.value = node.children\n ? d3Array.sum(node.children, countChildren)\n : 1);\n }\n }\n\n treemapSelect(item) {\n if (item.children) {\n const idx = this.treemapPath.indexOf(item);\n this.treemapPath.splice(idx + 1);\n this.treemap = this.treemapPath[idx].children;\n return;\n }\n const node = this.treemap.find((d) => d.name === item.name);\n if (node.children) {\n this.treemapPath.push(node);\n this.treemap = node.children;\n }\n }\n\n getFlag(country) {\n return this.countries.find((c) => c.name === country).emoji;\n }\n\n onFilter(event) {\n \n }\n\n /*\n **\n Combo Chart\n **\n [yLeftAxisScaleFactor]=\"yLeftAxisScale\" and [yRightAxisScaleFactor]=\"yRightAxisScale\"\n exposes the left and right min and max axis values for custom scaling, it is probably best to\n scale one axis in relation to the other axis but for flexibility to scale either the left or\n right axis both were exposed.\n **\n */\n\n yLeftAxisScale(min, max) {\n return { min: `${min}`, max: `${max}` };\n }\n\n yRightAxisScale(min, max) {\n return { min: `${min}`, max: `${max}` };\n }\n\n yLeftTickFormat(data) {\n return `${data.toLocaleString()}`;\n }\n\n yRightTickFormat(data) {\n return `${data}`;\n }\n /*\n **\n End of Combo Chart\n **\n */\n\n onSelect(event) {\n \n }\n\n dblclick(event) {\n \n }\n\n /*\n **\n Bubble Chart Interactive Demo\n **\n */\n\n bubbleDemoProcess(dataFromServer) {\n this.bubbleDemoChart.setDataFromServer(dataFromServer);\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n getBubbleInteractiveTitle() {\n return this.bubbleDemoChart.getChartTitle();\n }\n\n bubbleShowDrillDownResetLink() {\n return this.bubbleDemoChart.getDrilldownDepth() > 0;\n }\n\n onClickResetBubbleInteractiveDrill() {\n this.bubbleDemoChart.resetDrilldown();\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n\n onSelectBubbleInteractivePoint(event) {\n this.bubbleDemoChart.drilldown(event);\n this.bubbleDemoTempData = this.bubbleDemoChart.toChart();\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    Application status
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Completed vs Pending
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Assigned to
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Incoming vs Completed
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Courses
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Applications Processed - Top Performers
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Calls Trend - All Calls
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Calls: Incoming vs Outgoing
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Calls - Incoming vs Outgoing
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Call Status
    \n
    \n\n\n
    \n
    \n \n \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n

    \n Top 10 Leads that took the least time to Completion\n Time taken from Created date to Completed Date\n

    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    GUIDNameProgramAssignedToTime Taken
    {{i.GUID}}{{i.FirstName}} {{i.LastName}}{{i.Program}}{{i.Assignedto}}{{i.Time_taken_to_close_An_application.days||0}} days {{i.Time_taken_to_close_An_application.hours||0}}h {{i.Time_taken_to_close_An_application.minutes||0}}min
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n

    \n Top 10 Leads that took the least time to Validation\n Time taken from Created date to Last document validation\n

    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    GUIDNameProgramAssignedToTime Taken
    {{i.GUID}}{{i.FirstName}} {{i.LastName}}{{i.Program}}{{i.Assignedto}}{{i.total_time_till_validation.days||0}} days {{i.total_time_till_validation.hours||0}}h {{i.total_time_till_validation.minutes||0}}min
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    ","import { HttpClientService } from \"src/app/httpclient.service\";\nimport { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { ToastrService } from \"ngx-toastr\";\n@Injectable({\n providedIn: \"root\",\n})\nexport class DashboardReportsService {\n baseApiUrl = environment.baseApiUrl2;\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n\n constructor(\n private http: HttpClientService,\n private http2: HttpClient,\n private toastr: ToastrService\n ) {}\n\n getStatusCounts(body) {\n return this.http.post(`${this.baseApiUrl}reports/statusCounts`, body);\n }\n\n getAssignedCounts(body) {\n return this.http.post(`${this.baseApiUrl}reports/assignedCounts`,body);\n }\n getAssignedCountsGBP(body) {\n return this.http.post(`${this.baseApiUrl}reports/assignedCountsGBP`,body);\n }\n \n getCourseCounts(body) {\n return this.http.post(`${this.baseApiUrl}reports/courseCounts`,body);\n }\n\n getIncomingCompleted(body) {\n return this.http.post(`${this.baseApiUrl}reports/incomingCompleted`,body);\n }\n\n getTopPerformers(body) {\n return this.http.post(`${this.baseApiUrl}reports/topPerformers`,body);\n }\n\n getPendingCounts(body){\n return this.http.post(`${this.baseApiUrl}reports/pendingCounts`,body);\n }\n\n getCallsPerDay(body){\n return this.http.post(`${this.baseApiUrl}reports/callsPerDay`,body);\n }\n\n getCallsInboundOutbound(body){\n return this.http.post(`${this.baseApiUrl}reports/callsInboundOutbound`,body);\n }\n\n getCallsInVsOut(body){\n return this.http.post(`${this.baseApiUrl}reports/callsInVsOut`,body);\n }\n getCallStatus(body){\n return this.http.post(`${this.baseApiUrl}reports/callStatus`,body);\n }\n\n\n\n\n\n getStatusCountsData(body) {\n return this.http.post(`${this.baseApiUrl}reports/statusCountsData`, body);\n }\n\n getIncomingCompletedData(body) {\n return this.http.post(`${this.baseApiUrl}reports/incomingCompletedData`,body);\n }\n courseData(body) {\n return this.http.post(`${this.baseApiUrl}reports/courseData`,body);\n }\n\n getCallsPerDayData(body){\n return this.http.post(`${this.baseApiUrl}reports/callsPerDayData`,body);\n }\n\n getProcessingtimeMax10(body){\n return this.http.post(`${this.baseApiUrl}reports/processingtimeMax10`,body);\n }\n\n getValidationtimeMax10(body){\n return this.http.post(`${this.baseApiUrl}reports/validationtimeMax10`,body);\n }\n\n getProcessingtimeMax10Data(body){\n return this.http.post(`${this.baseApiUrl}reports/processingtimeMax10Data`,body);\n }\n\n getValidationtimeMax10Data(body){\n return this.http.post(`${this.baseApiUrl}reports/validationtimeMax10Data`,body);\n }\n applicationsProcessedData(body){\n return this.http.post(`${this.baseApiUrl}reports/applicationsProcessedData`,body);\n }\n\n}\n","import { data as countries } from 'emoji-flags';\nimport {\n SingleSeries,\n MultiSeries,\n BubbleChartMultiSeries,\n BoxChartMultiSeries,\n Series,\n TreeMapData\n} from '@swimlane/ngx-charts/models/chart-data.model';\n\nexport const single: SingleSeries = [\n {\n name: 'Germany',\n value: 40632,\n extra: {\n code: 'de'\n }\n },\n {\n name: 'United States',\n value: 50000,\n extra: {\n code: 'us'\n }\n },\n {\n name: 'France',\n value: 36745,\n extra: {\n code: 'fr'\n }\n },\n {\n name: 'United Kingdom',\n value: 36240,\n extra: {\n code: 'uk'\n }\n },\n {\n name: 'Spain',\n value: 33000,\n extra: {\n code: 'es'\n }\n },\n {\n name: 'Italy',\n value: 35800,\n extra: {\n code: 'it'\n }\n }\n];\n\nexport const multi: MultiSeries = [\n {\n name: 'Germany',\n series: [\n {\n name: '2010',\n value: 40632,\n extra: {\n code: 'de'\n }\n },\n {\n name: '2000',\n value: 36953,\n extra: {\n code: 'de'\n }\n },\n {\n name: '1990',\n value: 31476,\n extra: {\n code: 'de'\n }\n }\n ]\n },\n {\n name: 'United States',\n series: [\n {\n name: '2010',\n value: 0,\n extra: {\n code: 'us'\n }\n },\n {\n name: '2000',\n value: 45986,\n extra: {\n code: 'us'\n }\n },\n {\n name: '1990',\n value: 37060,\n extra: {\n code: 'us'\n }\n }\n ]\n },\n {\n name: 'France',\n series: [\n {\n name: '2010',\n value: 36745,\n extra: {\n code: 'fr'\n }\n },\n {\n name: '2000',\n value: 34774,\n extra: {\n code: 'fr'\n }\n },\n {\n name: '1990',\n value: 29476,\n extra: {\n code: 'fr'\n }\n }\n ]\n },\n {\n name: 'United Kingdom',\n series: [\n {\n name: '2010',\n value: 36240,\n extra: {\n code: 'uk'\n }\n },\n {\n name: '2000',\n value: 32543,\n extra: {\n code: 'uk'\n }\n },\n {\n name: '1990',\n value: 26424,\n extra: {\n code: 'uk'\n }\n }\n ]\n }\n];\n\nexport const fiscalYearReport: MultiSeries = [\n {\n name: 'Q1',\n series: [\n {\n name: '1001',\n value: -10632\n },\n {\n name: '2001',\n value: -36953\n }\n ]\n },\n {\n name: 'Q2',\n series: [\n {\n name: '1001',\n value: -19737\n },\n {\n name: '2001',\n value: 45986\n }\n ]\n },\n {\n name: 'Q3',\n series: [\n {\n name: '1001',\n value: -16745\n },\n {\n name: '2001',\n value: 0\n }\n ]\n },\n {\n name: 'Q4',\n series: [\n {\n name: '1001',\n value: -16240\n },\n {\n name: '2001',\n value: 32543\n }\n ]\n }\n];\n\nexport const bubble: BubbleChartMultiSeries = [\n {\n name: 'Germany',\n series: [\n {\n name: '2010',\n x: '2010',\n y: 80.3,\n r: 80.4\n },\n {\n name: '2000',\n x: '2000',\n y: 80.3,\n r: 78\n },\n {\n name: '1990',\n x: '1990',\n y: 75.4,\n r: 79\n }\n ]\n },\n {\n name: 'United States',\n series: [\n {\n name: '2010',\n x: '2010',\n y: 78.8,\n r: 310\n },\n {\n name: '2000',\n x: '2000',\n y: 76.9,\n r: 283\n },\n {\n name: '1990',\n x: '1990',\n y: 75.4,\n r: 253\n }\n ]\n },\n {\n name: 'France',\n series: [\n {\n name: '2010',\n x: '2010',\n y: 81.4,\n r: 63\n },\n {\n name: '2000',\n x: '2000',\n y: 79.1,\n r: 59.4\n },\n {\n name: '1990',\n x: '1990',\n y: 77.2,\n r: 56.9\n }\n ]\n },\n {\n name: 'United Kingdom',\n series: [\n {\n name: '2010',\n x: '2010',\n y: 80.2,\n r: 62.7\n },\n {\n name: '2000',\n x: '2000',\n y: 77.8,\n r: 58.9\n },\n {\n name: '1990',\n x: '1990',\n y: 75.7,\n r: 57.1\n }\n ]\n }\n];\n\nexport const boxData: BoxChartMultiSeries = [\n {\n name: 'Colombia',\n series: [\n {\n name: '2019',\n value: 12\n },\n {\n name: '2020',\n value: 23\n },\n {\n name: '2021',\n value: 34\n },\n {\n name: '2022',\n value: 27\n },\n {\n name: '2023',\n value: 18\n },\n {\n name: '2024',\n value: 45\n }\n ]\n },\n {\n name: 'Chile',\n series: [\n {\n name: '2019',\n value: 20\n },\n {\n name: '2020',\n value: 28\n },\n {\n name: '2021',\n value: 42\n },\n {\n name: '2022',\n value: 39\n },\n {\n name: '2023',\n value: 31\n },\n {\n name: '2024',\n value: 61\n }\n ]\n },\n {\n name: 'Perú',\n series: [\n {\n name: '2019',\n value: 47\n },\n {\n name: '2020',\n value: 62\n },\n {\n name: '2021',\n value: 55\n },\n {\n name: '2022',\n value: 42\n },\n {\n name: '2023',\n value: 49\n },\n {\n name: '2024',\n value: 71\n }\n ]\n }\n];\n\nexport function generateGraph(nodeCount: number) {\n const nodes = [];\n const links = [];\n for (let i = 0; i < nodeCount; i++) {\n const country = countries[Math.floor(Math.random() * countries.length)];\n nodes.push({\n value: country.name\n });\n for (let j = 0; j < nodes.length - 1; j++) {\n if (Math.random() < 0.03) {\n links.push({\n source: country,\n target: nodes[j].value\n });\n }\n }\n }\n return { links, nodes };\n}\n\nexport function timelineFilterBarData(): SingleSeries {\n const results: SingleSeries = [];\n const dataPoints = 30;\n const dayLength = 24 * 60 * 60 * 1000;\n let date = 1473700105009; // Sep 12, 2016\n for (let j = 0; j < dataPoints; j++) {\n // random dates between Sep 12, 2016 and Sep 24, 2016\n results.push({\n name: new Date(date),\n value: Math.floor(Math.random() * 300)\n });\n date += dayLength;\n }\n if (!results.some(r => r.value === 0)) {\n results[Math.floor(Math.random() * results.length)].value = 0;\n }\n\n return results;\n}\n\nexport function generateData(seriesLength: number, includeMinMaxRange: boolean, dataPoints: number = 5): MultiSeries {\n const results: MultiSeries = [];\n\n const domain: Date[] = []; // array of time stamps in milliseconds\n\n for (let j = 0; j < dataPoints; j++) {\n // random dates between Sep 12, 2016 and Sep 24, 2016\n domain.push(new Date(Math.floor(1473700105009 + Math.random() * 1000000000)));\n }\n\n for (let i = 0; i < seriesLength; i++) {\n const country = countries[Math.floor(Math.random() * countries.length)];\n const series: Series = {\n name: country.name,\n series: []\n };\n\n for (let j = 0; j < domain.length; j++) {\n const value = Math.floor(2000 + Math.random() * 5000);\n // let timestamp = Math.floor(1473700105009 + Math.random() * 1000000000);\n const timestamp = domain[j];\n if (includeMinMaxRange) {\n const errorMargin = 0.02 + Math.random() * 0.08;\n\n series.series.push({\n value,\n name: timestamp,\n min: Math.floor(value * (1 - errorMargin)),\n max: Math.ceil(value * (1 + errorMargin))\n });\n } else {\n series.series.push({\n value,\n name: timestamp\n });\n }\n }\n\n results.push(series);\n }\n return results;\n}\n\nexport const treemap: TreeMapData = [\n {\n name: 'flare',\n children: [\n {\n name: 'analytics',\n children: [\n {\n name: 'cluster',\n children: [\n { name: 'AgglomerativeCluster', size: 3938 },\n { name: 'CommunityStructure', size: 3812 },\n { name: 'HierarchicalCluster', size: 6714 },\n { name: 'MergeEdge', size: 743 }\n ]\n },\n {\n name: 'graph',\n children: [\n { name: 'BetweennessCentrality', size: 3534 },\n { name: 'LinkDistance', size: 5731 },\n { name: 'MaxFlowMinCut', size: 7840 },\n { name: 'ShortestPaths', size: 5914 },\n { name: 'SpanningTree', size: 3416 }\n ]\n },\n {\n name: 'optimization',\n children: [{ name: 'AspectRatioBanker', size: 7074 }]\n }\n ]\n },\n {\n name: 'animate',\n children: [\n { name: 'Easing', size: 17010 },\n { name: 'FunctionSequence', size: 5842 },\n {\n name: 'interpolate',\n children: [\n { name: 'ArrayInterpolator', size: 1983 },\n { name: 'ColorInterpolator', size: 2047 },\n { name: 'DateInterpolator', size: 1375 },\n { name: 'Interpolator', size: 8746 },\n { name: 'MatrixInterpolator', size: 2202 },\n { name: 'NumberInterpolator', size: 1382 },\n { name: 'ObjectInterpolator', size: 1629 },\n { name: 'PointInterpolator', size: 1675 },\n { name: 'RectangleInterpolator', size: 2042 }\n ]\n },\n { name: 'ISchedulable', size: 1041 },\n { name: 'Parallel', size: 5176 },\n { name: 'Pause', size: 449 },\n { name: 'Scheduler', size: 5593 },\n { name: 'Sequence', size: 5534 },\n { name: 'Transition', size: 9201 },\n { name: 'Transitioner', size: 19975 },\n { name: 'TransitionEvent', size: 1116 },\n { name: 'Tween', size: 6006 }\n ]\n },\n {\n name: 'data',\n children: [\n {\n name: 'converters',\n children: [\n { name: 'Converters', size: 721 },\n { name: 'DelimitedTextConverter', size: 4294 },\n { name: 'GraphMLConverter', size: 9800 },\n { name: 'IDataConverter', size: 1314 },\n { name: 'JSONConverter', size: 2220 }\n ]\n },\n { name: 'DataField', size: 1759 },\n { name: 'DataSchema', size: 2165 },\n { name: 'DataSet', size: 586 },\n { name: 'DataSource', size: 3331 },\n { name: 'DataTable', size: 772 },\n { name: 'DataUtil', size: 3322 }\n ]\n },\n {\n name: 'display',\n children: [\n { name: 'DirtySprite', size: 8833 },\n { name: 'LineSprite', size: 1732 },\n { name: 'RectSprite', size: 3623 },\n { name: 'TextSprite', size: 10066 }\n ]\n },\n {\n name: 'flex',\n children: [{ name: 'FlareVis', size: 4116 }]\n },\n {\n name: 'physics',\n children: [\n { name: 'DragForce', size: 1082 },\n { name: 'GravityForce', size: 1336 },\n { name: 'IForce', size: 319 },\n { name: 'NBodyForce', size: 10498 },\n { name: 'Particle', size: 2822 },\n { name: 'Simulation', size: 9983 },\n { name: 'Spring', size: 2213 },\n { name: 'SpringForce', size: 1681 }\n ]\n },\n {\n name: 'query',\n children: [\n { name: 'AggregateExpression', size: 1616 },\n { name: 'And', size: 1027 },\n { name: 'Arithmetic', size: 3891 },\n { name: 'Average', size: 891 },\n { name: 'BinaryExpression', size: 2893 },\n { name: 'Comparison', size: 5103 },\n { name: 'CompositeExpression', size: 3677 },\n { name: 'Count', size: 781 },\n { name: 'DateUtil', size: 4141 },\n { name: 'Distinct', size: 933 },\n { name: 'Expression', size: 5130 },\n { name: 'ExpressionIterator', size: 3617 },\n { name: 'Fn', size: 3240 },\n { name: 'If', size: 2732 },\n { name: 'IsA', size: 2039 },\n { name: 'Literal', size: 1214 },\n { name: 'Match', size: 3748 },\n { name: 'Maximum', size: 843 },\n {\n name: 'methods',\n children: [\n { name: 'add', size: 593 },\n { name: 'and', size: 330 },\n { name: 'average', size: 287 },\n { name: 'count', size: 277 },\n { name: 'distinct', size: 292 },\n { name: 'div', size: 595 },\n { name: 'eq', size: 594 },\n { name: 'fn', size: 460 },\n { name: 'gt', size: 603 },\n { name: 'gte', size: 625 },\n { name: 'iff', size: 748 },\n { name: 'isa', size: 461 },\n { name: 'lt', size: 597 },\n { name: 'lte', size: 619 },\n { name: 'max', size: 283 },\n { name: 'min', size: 283 },\n { name: 'mod', size: 591 },\n { name: 'mul', size: 603 },\n { name: 'neq', size: 599 },\n { name: 'not', size: 386 },\n { name: 'or', size: 323 },\n { name: 'orderby', size: 307 },\n { name: 'range', size: 772 },\n { name: 'select', size: 296 },\n { name: 'stddev', size: 363 },\n { name: 'sub', size: 600 },\n { name: 'sum', size: 280 },\n { name: 'update', size: 307 },\n { name: 'variance', size: 335 },\n { name: 'where', size: 299 },\n { name: 'xor', size: 354 },\n { name: '_', size: 264 }\n ]\n },\n { name: 'Minimum', size: 843 },\n { name: 'Not', size: 1554 },\n { name: 'Or', size: 970 },\n { name: 'Query', size: 13896 },\n { name: 'Range', size: 1594 },\n { name: 'StringUtil', size: 4130 },\n { name: 'Sum', size: 791 },\n { name: 'Variable', size: 1124 },\n { name: 'Variance', size: 1876 },\n { name: 'Xor', size: 1101 }\n ]\n },\n {\n name: 'scale',\n children: [\n { name: 'IScaleMap', size: 2105 },\n { name: 'LinearScale', size: 1316 },\n { name: 'LogScale', size: 3151 },\n { name: 'OrdinalScale', size: 3770 },\n { name: 'QuantileScale', size: 2435 },\n { name: 'QuantitativeScale', size: 4839 },\n { name: 'RootScale', size: 1756 },\n { name: 'Scale', size: 4268 },\n { name: 'ScaleType', size: 1821 },\n { name: 'TimeScale', size: 5833 }\n ]\n },\n {\n name: 'util',\n children: [\n { name: 'Arrays', size: 8258 },\n { name: 'Colors', size: 10001 },\n { name: 'Dates', size: 8217 },\n { name: 'Displays', size: 12555 },\n { name: 'Filter', size: 2324 },\n { name: 'Geometry', size: 10993 },\n {\n name: 'heap',\n children: [\n { name: 'FibonacciHeap', size: 9354 },\n { name: 'HeapNode', size: 1233 }\n ]\n },\n { name: 'IEvaluable', size: 335 },\n { name: 'IPredicate', size: 383 },\n { name: 'IValueProxy', size: 874 },\n {\n name: 'math',\n children: [\n { name: 'DenseMatrix', size: 3165 },\n { name: 'IMatrix', size: 2815 },\n { name: 'SparseMatrix', size: 3366 }\n ]\n },\n { name: 'Maths', size: 17705 },\n { name: 'Orientation', size: 1486 },\n {\n name: 'palette',\n children: [\n { name: 'ColorPalette', size: 6367 },\n { name: 'Palette', size: 1229 },\n { name: 'ShapePalette', size: 2059 },\n { name: 'SizePalette', size: 2291 }\n ]\n },\n { name: 'Property', size: 5559 },\n { name: 'Shapes', size: 19118 },\n { name: 'Sort', size: 6887 },\n { name: 'Stats', size: 6557 },\n { name: 'Strings', size: 22026 }\n ]\n },\n {\n name: 'vis',\n children: [\n {\n name: 'axis',\n children: [\n { name: 'Axes', size: 1302 },\n { name: 'Axis', size: 24593 },\n { name: 'AxisGridLine', size: 652 },\n { name: 'AxisLabel', size: 636 },\n { name: 'CartesianAxes', size: 6703 }\n ]\n },\n {\n name: 'controls',\n children: [\n { name: 'AnchorControl', size: 2138 },\n { name: 'ClickControl', size: 3824 },\n { name: 'Control', size: 1353 },\n { name: 'ControlList', size: 4665 },\n { name: 'DragControl', size: 2649 },\n { name: 'ExpandControl', size: 2832 },\n { name: 'HoverControl', size: 4896 },\n { name: 'IControl', size: 763 },\n { name: 'PanZoomControl', size: 5222 },\n { name: 'SelectionControl', size: 7862 },\n { name: 'TooltipControl', size: 8435 }\n ]\n },\n {\n name: 'data',\n children: [\n { name: 'Data', size: 20544 },\n { name: 'DataList', size: 19788 },\n { name: 'DataSprite', size: 10349 },\n { name: 'EdgeSprite', size: 3301 },\n { name: 'NodeSprite', size: 19382 },\n {\n name: 'render',\n children: [\n { name: 'ArrowType', size: 698 },\n { name: 'EdgeRenderer', size: 5569 },\n { name: 'IRenderer', size: 353 },\n { name: 'ShapeRenderer', size: 2247 }\n ]\n },\n { name: 'ScaleBinding', size: 11275 },\n { name: 'Tree', size: 7147 },\n { name: 'TreeBuilder', size: 9930 }\n ]\n },\n {\n name: 'events',\n children: [\n { name: 'DataEvent', size: 2313 },\n { name: 'SelectionEvent', size: 1880 },\n { name: 'TooltipEvent', size: 1701 },\n { name: 'VisualizationEvent', size: 1117 }\n ]\n },\n {\n name: 'legend',\n children: [\n { name: 'Legend', size: 20859 },\n { name: 'LegendItem', size: 4614 },\n { name: 'LegendRange', size: 10530 }\n ]\n },\n {\n name: 'operator',\n children: [\n {\n name: 'distortion',\n children: [\n { name: 'BifocalDistortion', size: 4461 },\n { name: 'Distortion', size: 6314 },\n { name: 'FisheyeDistortion', size: 3444 }\n ]\n },\n {\n name: 'encoder',\n children: [\n { name: 'ColorEncoder', size: 3179 },\n { name: 'Encoder', size: 4060 },\n { name: 'PropertyEncoder', size: 4138 },\n { name: 'ShapeEncoder', size: 1690 },\n { name: 'SizeEncoder', size: 1830 }\n ]\n },\n {\n name: 'filter',\n children: [\n { name: 'FisheyeTreeFilter', size: 5219 },\n { name: 'GraphDistanceFilter', size: 3165 },\n { name: 'VisibilityFilter', size: 3509 }\n ]\n },\n { name: 'IOperator', size: 1286 },\n {\n name: 'label',\n children: [\n { name: 'Labeler', size: 9956 },\n { name: 'RadialLabeler', size: 3899 },\n { name: 'StackedAreaLabeler', size: 3202 }\n ]\n },\n {\n name: 'layout',\n children: [\n { name: 'AxisLayout', size: 6725 },\n { name: 'BundledEdgeRouter', size: 3727 },\n { name: 'CircleLayout', size: 9317 },\n { name: 'CirclePackingLayout', size: 12003 },\n { name: 'DendrogramLayout', size: 4853 },\n { name: 'ForceDirectedLayout', size: 8411 },\n { name: 'IcicleTreeLayout', size: 4864 },\n { name: 'IndentedTreeLayout', size: 3174 },\n { name: 'Layout', size: 7881 },\n { name: 'NodeLinkTreeLayout', size: 12870 },\n { name: 'PieLayout', size: 2728 },\n { name: 'RadialTreeLayout', size: 12348 },\n { name: 'RandomLayout', size: 870 },\n { name: 'StackedAreaLayout', size: 9121 },\n { name: 'TreeMapLayout', size: 9191 }\n ]\n },\n { name: 'Operator', size: 2490 },\n { name: 'OperatorList', size: 5248 },\n { name: 'OperatorSequence', size: 4190 },\n { name: 'OperatorSwitch', size: 2581 },\n { name: 'SortOperator', size: 2023 }\n ]\n },\n { name: 'Visualization', size: 16540 }\n ]\n }\n ]\n }\n];\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { AuthGuard } from 'src/app/core/guards/auth.guard';\nimport { UhleadsComponent } from '../uhleads/uhleads.component';\n\n\nconst routes: Routes = [\n { path: 'dashboard/dashboard-view', component: DashboardComponent, canActivate: [AuthGuard] },\n { path: 'dashboard/:phoneNumber', component: DashboardComponent, canActivate: [AuthGuard] },\n { path: '', component: UhleadsComponent, canActivate: [AuthGuard] }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class DashboardRoutingModule { }\n","import { PagesModule } from \"./../pages.module\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { DashboardRoutingModule } from \"./dashboard-routing.module\";\nimport { DashboardComponent } from \"./dashboard/dashboard.component\";\nimport { SharedModule } from \"src/app/shared/shared.module\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { Ng2SearchPipeModule } from \"ng2-search-filter\";\nimport { SortPipe } from \"./sort.pipe\";\nimport { TicketsModule } from \"../tickets/tickets.module\";\nimport { LayoutModule } from \"src/app/layout/layout.module\";\n// import { FilterPipe } from './filter.pipe';\n\n@NgModule({\n declarations: [DashboardComponent, SortPipe],\n imports: [\n CommonModule,\n DashboardRoutingModule,\n SharedModule,\n FormsModule,\n NgbModule,\n MatPaginatorModule,\n Ng2SearchPipeModule,\n TicketsModule,\n LayoutModule\n ],\n providers: [DatePipe],\n exports: [SortPipe, Ng2SearchPipeModule],\n})\nexport class DashboardModule {}\n","import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { HttpHeaders } from '@angular/common/http';\nimport * as io from 'socket.io-client';\nimport { Ticket } from './models/ticket.model';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { AuthService } from 'src/app/account/auth/auth.service';\nimport { HttpClientService } from 'src/app/httpclient.service';\ndeclare const Twilio: any;\n\ninterface TicketChannel {\n mail: any,\n accessque: any,\n sms: any,\n call: any,\n website: any,\n chat: any,\n myGroups: any,\n myTickets: any\n\n}\ninterface Tickets {\n mail: string,\n tickets: string,\n admin: any,\n companyId: number\n}\n@Injectable({\n providedIn: 'root',\n\n})\nexport class DashboardService {\n baseApiUrl: any = environment.baseApiUrl;\n baseApiUrl2: any = environment.baseApiUrl2;\n private url = 'http://localhpst:3000';\n private socket;\n private httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n };\n\n constructor(public http: HttpClientService, private sharedService: SharedService, private authService: AuthService) {\n // this.socket = io.connect(this.url, {\n // });\n Twilio.Device.ready(function () {\n });\n }\n getTickets(page, pageSize, sortBy) {\n return this.http.get(this.baseApiUrl + 'tickets?page= ' + page + '&pageSize=' + pageSize + '&sortBy=' + sortBy)\n .toPromise()\n .then(res => res)\n .catch(this.handleError);\n }\n getTicketsSummary() {\n return this.http.get(this.baseApiUrl + 'ticketSummary')\n .toPromise()\n .then(res => res)\n .catch(this.handleError);\n }\n answerCall(CallSid) {\n return this.http.get('http://localhost:3000/answerCall?id=' + CallSid)\n .toPromise()\n .then(res => res)\n .catch(this.handleError);\n }\n // setupTwilio(companyId) {\n // // tslint:disable-next-line: max-line-length\n // // Twilio.Device.setup('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzY29wZSI6InNjb3BlOmNsaWVudDppbmNvbWluZz9jbGllbnROYW1lPUtpbGxlckdyYWNpZVhpYW9KaW4gc2NvcGU6Y2xpZW50Om91dGdvaW5nP2FwcFNpZD1BUDBlYTA5ZDlhY2MzMDRlNjE4MzY2YzlmNmFjZmViNTJkJmNsaWVudE5hbWU9S2lsbGVyR3JhY2llWGlhb0ppbiIsImlzcyI6IkFDYzQ3MWI5ZjdkYzhmZjc1ZGIzZmIzZmUyYzFmMjk2M2EiLCJleHAiOjE1ODQzODY5ODYsImlhdCI6MTU4NDM4MzM4Nn0.os3cl-Zm-r2Ud5atU91vO57DC-A-QJkGkzQTiM7qeAo', {\n // // audioConstraints: {\n // // optional: [\n // // { googAutoGainControl: false }\n // // ]\n // // }\n // // });\n // //John -WKf7663be70dce5424a1dedc44dc176c60\n // //Alice- WKa0ecdaf7dd73e15d2cdbae3c9dc49a9f\n // //Bob - WK3f819d89924b4480006146da841c5ab7\n // return this.http.post('http://ec2-18-188-72-14.us-east-2.compute.amazonaws.com/api/agents/login',\n // { \"worker\": { \"SID\": \"WKa0ecdaf7dd73e15d2cdbae3c9dc49a9f\" } },\n // { responseType: 'text' })\n // .toPromise()\n // .then(res => res)\n // .catch(this.handleError);\n // }\n handleError(error: any): Promise {\n if (error.status === 500) {\n return Promise.reject(error);\n }\n if (error.status === 401) {\n // localStorage.clear();\n return Promise.reject(error);\n }\n return Promise.reject(error.message || error);\n }\n getAllTickets() {\n return this.http.get(`${this.baseApiUrl2}tickets`)\n }\n getAllDashboardInformation(mail, admin, companyId) {\n return this.http.get(`${this.baseApiUrl2}dashboard/${mail}/${admin}/${companyId}`).pipe(map(data => {\n let dashboard: TicketChannel = {\n call: '0',\n accessque: '0',\n chat: '0',\n mail: '0',\n sms: '0',\n website: '0',\n myGroups: '0',\n myTickets: '0'\n\n };\n for (let channel of data) {\n switch (channel['TicketChannel']) {\n case 'sms':\n dashboard['sms'] = channel['count']\n break;\n case 'chat':\n dashboard['chat'] = channel['count']\n break\n case 'accessque':\n dashboard['accessque'] = channel['count']\n break\n case 'mail':\n dashboard['mail'] = channel['count']\n break\n case 'website':\n dashboard['website'] = channel['count']\n break\n case 'call':\n dashboard['call'] = channel['count']\n default:\n dashboard['myGroups'] = channel['MYGroups'];\n dashboard['myTickets'] = channel['MYTickets']\n break\n }\n\n }\n return dashboard;\n\n }))\n }\n getTicketsChannel(body: Tickets) {\n\n return this.http.post(`${this.baseApiUrl2}dashboardTickets`, body).\n pipe(map(res => {\n let myTickets: Ticket[] = [];\n for (let item of res) {\n let Assignedto = item['Assignedto'];\n let CreatedDate = item['CreatedDate'];\n let ReportedBy = item['ReportedBy'];\n let RequestId = item['RequestId'];\n let RequestStatus = item['RequestStatus'];\n let UpdatedDate = item['UpdatedDate'];\n let group = item['AssignmentGroup'];\n let id = item['id'];\n let summary = item['RequestDetail'];\n let TicketRead = item['TicketUnRead']\n myTickets.push(new Ticket(id, summary, ReportedBy, UpdatedDate, Assignedto, group, CreatedDate, RequestId, RequestStatus, TicketRead, item['TicketChannel']));\n }\n return myTickets;\n }))\n }\n\n\n\n\n}\n","import { ActivatedRoute } from \"@angular/router\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { DashboardService } from \"../dashboard.service\";\nimport * as io from \"socket.io-client\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Ticket } from \"../models/ticket.model\";\nimport { NgbDropdownConfig } from \"@ng-bootstrap/ng-bootstrap\";\n\nimport { TicketsService } from \"../../tickets/tickets.service\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { Observable } from \"rxjs\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\ndeclare const $: any;\ndeclare const Twilio: any;\ninterface TicketChannel {\n mail: any;\n accessque: any;\n sms: any;\n call: any;\n website: any;\n chat: any;\n myGroups: any;\n myTickets: any;\n}\n\n@Component({\n templateUrl: \"./dashboard.component.html\",\n styleUrls: [\"./dashboard.component.css\"],\n providers: [NgbDropdownConfig],\n})\nexport class DashboardComponent implements OnInit {\n tickSummary: any = {};\n ticketsList: any = [];\n tickets: Ticket[] = [];\n connection: any = null;\n phoneNumber: any = \"+44 1227 641187\";\n private url = \"http://localhost:3000\";\n private socket;\n public page: any = 1;\n public pageSize: any = 10;\n callData: any;\n workerJS: any = null;\n reservation: any;\n task: any;\n configuration: any;\n worker: any;\n direction: any = null;\n search: any = \"\";\n totalGroups: number;\n dashboard: TicketChannel = {\n accessque: 0,\n call: 0,\n chat: 0,\n mail: 0,\n sms: 0,\n website: 0,\n myGroups: 0,\n myTickets: 0,\n };\n userData: any;\n // superAdmin: Boolean = false;\n companyId: any;\n companyAdmin: Boolean = false;\n superAdminObervable: Observable;\n order: boolean = false;\n orderFeild: string = \"UpdatedDate\";\n orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n rotating: boolean = false;\n\n constructor(\n public dashBoardService: DashboardService,\n public sharedService: SharedService,\n public ticketService: TicketsService,\n config: NgbDropdownConfig,\n private authService: AuthService,\n private readonly route: ActivatedRoute,\n private readonly layoutService: LayoutService,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n\n ) { }\n toggleIsOnQueue(activitySid) {\n let payload = {\n ActivitySid: activitySid,\n };\n\n this.workerJS.update(payload, function (error, worker) {\n \n });\n }\n complete() {\n this.workerJS.completeTask(this.task.sid, function (error, task) {\n if (error) {\n console.error(error);\n return;\n }\n\n });\n }\n\n ngOnInit() {\n this.route.params.subscribe((data) => {\n if (data[\"phoneNumber\"]) {\n const reg = new RegExp(\"^([0|+[0-9]{1,5})?([7-9][0-9]{9})$\");\n if (data[\"phoneNumber\"].match(reg)) {\n setTimeout(() => {\n this.layoutService.callAgent.next(data[\"phoneNumber\"]);\n }, 10000);\n }\n }\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.ticketService\n .getgroupsusers(this.userData[\"mail\"])\n .subscribe((data) => {\n this.totalGroups = data.length;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.pageEvent.emit({ pageName: \"Dashboard\" });\n // this.sharedService.projectId.subscribe((data) => {\n // this.companyId = +data;\n // if (data) {\n // this.sharedService\n // .getProjectAdmin(this.companyId)\n // .subscribe((admin) => {\n // this.companyAdmin = admin;\n // this.getIntialTickets(this.companyId, this.companyAdmin);\n // });\n // }\n // });\n setTimeout(() => {\n this.companyId = this.projectchangeService._projectId;\n this.sharedService\n .getProjectAdmin(this.companyId)\n .subscribe((admin) => {\n this.companyAdmin = admin;\n this.getIntialTickets(this.companyId, this.companyAdmin);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 500);\n }\n\n getIntialTickets(data, admin) {\n this.rotating = true;\n this.dashBoardService\n .getTicketsChannel({\n mail: this.userData[\"mail\"],\n tickets: \"mygroups\",\n admin: admin,\n companyId: data,\n })\n .subscribe((data) => {\n this.tickets = data;\n this.rotating = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.dashBoardService\n .getAllDashboardInformation(this.userData[\"mail\"], admin, data)\n .subscribe((data) => {\n this.dashboard = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getTicketsChannel(data: string) {\n this.rotating = true;\n // if (this.userData.companyId === 0 || this.companyAdmin) {\n return this.dashBoardService\n .getTicketsChannel({\n mail: this.userData[\"mail\"],\n tickets: data,\n admin: this.companyAdmin,\n companyId: this.companyId,\n })\n .subscribe((data) => {\n this.tickets = data;\n this.rotating = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n initWorker(res) {\n this.workerJS = new Twilio.TaskRouter.Worker(JSON.parse(res).tokens.worker);\n if (this.workerJS) {\n this.workerJS.on(\"ready\", (worker) => {\n\n\n // $scope.worker = worker;\n });\n\n this.workerJS.on(\"reservation.created\", (reservation) => {\n alert(\"TaskRouter Worker: reservation.created\");\n this.reservation = reservation;\n // $scope.$broadcast('InitializeReservation', { reservation: reservation });\n });\n this.workerJS.on(\"activity.update\", (w) => {\n\n\n this.worker = w;\n // this.$apply();\n });\n // this.toggleIsOnQueue();\n }\n this.workerJS.on(\"reservation.accepted\", (reservation) => {\n\n this.task = reservation.task;\n\n /* check if the customer name is a phone number */\n var pattern = /(.*)(\\+[0-9]{8,20})(.*)$/;\n\n if (pattern.test(this.task.attributes.name) === true) {\n this.task.attributes.nameIsPhoneNumber = true;\n }\n\n // $scope.$broadcast('DestroyReservation');\n });\n\n this.workerJS.on(\"reservation.timeout\", (reservation) => {\n // this.resetWorkspace();\n });\n\n // this.workerJS.on('reservation.rescinded', function (reservation) {\n // \n // this.resetWorkspace();\n // });\n\n this.workerJS.on(\"reservation.canceled\", function (reservation) {\n // this.resetWorkspace();\n });\n\n this.workerJS.on(\"reservation.rejected\", function (reservation) {\n // this.resetWorkspace();\n });\n\n this.workerJS.on(\"task.completed\", function (reservation) {\n // this.resetWorkspace();\n });\n\n // this.workerJS.on('token.expired', function () {\n // \n\n // /* the worker token expired, the agent shoud log in again, token is generated upon log in */\n // // window.location.replace('/callcenter/');\n // });\n\n // /* the agent's browser conntected to Twilio */\n this.workerJS.on(\"connected\", function () {\n // this.UI.warning.worker = null;\n // this.$apply();\n });\n\n // /* the agent's browser lost the connection to Twilio */\n // this.workerJS.on('disconnected', function () {\n // console.error('TaskRouter Worker: WebSocket has disconnected');\n // // this.UI.warning.worker = 'TaskRouter Worker: WebSocket has disconnected';\n // // this.$apply();\n // });\n\n // this.workerJS.on('error', function (error) {\n // console.error('TaskRouter Worker: an error occurred: ' + error.response + ' with message: ' + error.message);\n // // this.UI.warning.worker = 'TaskRouter Worker: an error occured: ' + error.response + ' with message: ' + error.message;\n // // this.$apply();\n // });\n }\n InitializePhone(data) {\n Twilio.Device.setup(data.token, {\n debug: true,\n codecPreferences: [\"opus\", \"pcmu\"],\n });\n\n Twilio.Device.ready((device) => {\n // $scope.debug = 'Ready';\n // $timeout(function () {\n // \t$scope.$apply();\n // });\n });\n\n Twilio.Device.error((error) => {\n // $scope.debug = 'error: ' + error.code + ' - ' + error.message;\n // $scope.reset();\n });\n\n Twilio.Device.connect((connection) => {\n this.connection = connection;\n // $scope.debug = 'successfully established call';\n // $scope.UI.state = 'busy';\n\n // $scope.registerConnectionHandler($scope.connection);\n\n // $timeout(function () {\n // \t$scope.$apply();\n // });\n });\n\n Twilio.Device.disconnect(function (connection) {\n // $scope.debug = 'call disconnected';\n // $scope.reset();\n });\n\n Twilio.Device.offline(function (device) {\n // $scope.debug = 'offline';\n // $scope.reset();\n });\n\n Twilio.Device.incoming((connection) => {\n // $scope.debug = 'incoming connection from ' + connection.parameters.From;\n // $scope.UI.state = 'busy';\n this.connection = connection;\n this.direction = \"inbound\";\n this.phoneNumber = connection.parameters.From;\n\n connection.accept();\n\n connection.disconnect(function (connection) {\n // $scope.debug = 'call has ended';\n // $scope.reset();\n });\n\n // $scope.registerConnectionHandler($scope.connection);\n });\n }\n accept(reservation) {\n\n /* depending on the typ of taks that was created we handle the reservation differently */\n\n if (reservation.task.attributes.channel === \"phone\") {\n reservation.conference(\n this.configuration.configuration.twilio.callerId,\n null,\n null,\n null,\n function (error, reservation) {\n if (error) {\n console.error(error);\n return;\n }\n },\n {\n EndConferenceOnExit: true,\n EndConferenceOnCustomerExit: true,\n ConferenceRecord:\n this.configuration.configuration.twilio.voice.recording,\n }\n );\n }\n\n /* we accept the reservation and initiate a call to the customer's phone number */\n // if (reservation.task.attributes.channel === 'callback') {\n\n // \treservation.accept(\n\n // \t\tfunction (error, reservation) {\n\n // \t\t\tif (error) {\n // \t\t\t\tconsole.error(error);\n // \t\t\t\treturn;\n // \t\t\t}\n\n // \t\t\t$rootScope.$broadcast('CallPhoneNumber', { phoneNumber: reservation.task.attributes.phone });\n\n // \t\t});\n // }\n }\n getTickets(page, pageSize, sortBy) {\n this.dashBoardService\n .getTickets(page, pageSize, sortBy)\n .then((res) => {\n this.ticketsList = res;\n })\n .catch((err) => { });\n }\n answerCall() {\n\n this.dashBoardService\n .answerCall(this.callData.data.CallSid)\n .then((res) => {\n })\n .catch((err) => { });\n }\n Phonecall() {\n if (this.connection == null) {\n const params = { To: this.phoneNumber, IsRecord: false };\n this.connection = Twilio.Device.connect(params);\n } else {\n this.connection = null;\n Twilio.Device.disconnectAll();\n }\n }\n getTicketsSummary() {\n this.dashBoardService\n .getTicketsSummary()\n .then((res) => {\n this.tickSummary = res;\n })\n .catch((err) => { });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n projectChange(data) {\n this.companyId = +data;\n if (data) {\n this.sharedService\n .getProjectAdmin(this.companyId)\n .subscribe((admin) => {\n this.companyAdmin = admin;\n this.getIntialTickets(this.companyId, this.companyAdmin);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n}\n","
    \n \n
    \n\n
    \n
    \n
    \n \n
    \n

    Open Tickets

    \n
    \n
    \n \n

    \n {{ dashboard.myTickets }}\n

    \n \n

    by you

    \n
    \n \n

    \n {{ dashboard.myGroups }}\n

    \n \n

    by Groups

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n

    \n {{ dashboard.mail }} \n

    \n

    Mails

    \n
    \n
    \n \n
    \n
    \n \n \n

    \n {{ dashboard.chat }}\n

    \n

    Chat

    \n
    \n
    \n \n
    \n
    \n \n \n

    \n {{ dashboard.website }}\n

    \n

    Website

    \n
    \n
    \n \n
    \n
    \n \n \n

    \n {{ dashboard.call }}\n

    \n

    Calls

    \n
    \n
    \n \n
    \n
    \n
    \n \n

    \n {{ dashboard.sms }}\n

    \n

    SMS

    \n
    \n
    \n
    \n
    \n
    \n \n \n

    \n {{ dashboard.accessque }}\n

    \n

    Accessque

    \n
    \n
    \n \n\n\n
    \n
    \n \n
    \n
    Latest Tickets
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n {{ item[\"RequestId\"] }}\n \n \n \n {{\n item[\"summary\"].length > 25\n ? item[\"summary\"].slice(0, 25) + \"...\"\n : item[\"summary\"]\n }}\n \n \n \n {{ item[\"group\"] }}\n \n \n \n {{ item[\"ReportedBy\"] }}\n \n \n {{ item[\"CreatedDate\"] | date: \"medium\" }}\n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n \n
    \n Incident Id\n \n \n Description\n \n \n Assigned To\n \n \n Assigned Group\n \n \n Status\n \n \n Requested By\n \n \n Created Date\n \n
    {{ item[\"Assignedto\"] || \"-\" }}\n \n {{ item[\"RequestStatus\"] | requeststatus }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n","export class Ticket {\n constructor(\n private id: string,\n private summary: string,\n private ReportedBy: string,\n private UpdatedDate: string,\n private Assignedto: string,\n private group: string,\n private CreatedDate: string,\n private RequestId: string,\n private RequestStatus: string,\n private TicketRead: boolean,\n private TicketChannel?: string,\n private TicketCount?: number,\n ) { }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { orderBy } from 'lodash';\n\n@Pipe({\n name: 'sort'\n})\nexport class SortPipe implements PipeTransform {\n\n transform = orderBy;\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n@Component({\n selector: 'app-documentation',\n templateUrl: './documentation.component.html',\n styleUrls: ['./documentation.component.css']\n})\nexport class DocumentationComponent implements OnInit {\n docUrl = '';\n documentsList = [\n {\n \"name\":\"University Hub\",\n \"desc\": \"\",\n \"type\": \"doc\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/StudentDocs/1677239460277-UHUB-UniversityHubCRM-240223-0931.pdf\"\n }, \n {\n \"name\": \"Recruiter\",\n \"desc\": \"\",\n \"type\": \"doc\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680251632530-uploads%5CUHUB-RECRUITERWEBAPP-310323-0721.pdf\"\n },\n {\n \"name\": \"Functional Overview of University Hub CRM\",\n \"desc\": \"\",\n \"type\": \"video\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680252963104-uploads%5CGMT20230301-083404_Recording_1920x1080+%281%29.mp4\"\n },\n {\n \"name\": \"Universities\",\n \"desc\": \"\",\n \"type\": \"video\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680253096791-uploads%5CGMT20230301-083404_Recording.cutfile.20230307111614675_1920x1080.mp4\"\n },\n {\n \"name\": \"Recruiters, Transfers & International Students\",\n \"desc\": \"\",\n \"type\": \"video\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680253228379-uploads%5CGMT20230303-083657_Recording_1920x1080.mp4\"\n },\n {\n \"name\": \"Referrals\",\n \"desc\": \"\",\n \"type\": \"video\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680253478494-uploads%5CGMT20230306-083436_Recording.cutfile.20230307112650979_2560x1440.mp4\"\n },\n {\n \"name\": \"Calendar\",\n \"desc\": \"\",\n \"type\": \"video\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680257457600-uploads%5CGMT20230313-083429_Recording.cutfile.20230331082731894_1920x1080.mp4\"\n },\n {\n \"name\": \"Marketing, Enquiries, My Team\",\n \"desc\": \"\",\n \"type\": \"video\",\n \"url\": \"https://crmprod-universityhub.s3.us-west-1.amazonaws.com/crmprod-universityhub/files/1680257566851-uploads%5CGMT20230310-083247_Recording_1920x1080+%281%29.mp4\"\n },\n];\n docLoaded = false;\n docType: any;\n constructor(\n private readonly modalService: NgbModal) { }\n\n ngOnInit(): void {\n this.openPreview(this.documentsList[0].url,\"doc\");\n }\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n openPreview(url,type) {\n this.docLoaded = true;\n this.docType = type;\n this.docUrl = url;\n }\n}\n","
    \n \n\n
    \n
    \n
    \n
    Knowledge Articles
    \n
    \n
    \n
    \n
    \n
    {{item.name}}
    \n \n
    \n
    \n
    \n
    \n
    Knowledge Sessions
    \n
    \n
    \n
    \n
    \n
    {{item.name}}
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    ","import { ActivatedRoute } from \"@angular/router\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport {\n Component,\n OnInit,\n ViewChild,\n AfterViewInit,\n Input,\n OnDestroy,\n} from \"@angular/core\";\nimport { EmailEditorComponent } from \"angular-email-editor\";\nimport { MailserviceService } from \"../mailservice.service\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectService } from \"../project-management/project.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\n\n@Component({\n selector: \"app-emailsettings\",\n templateUrl: \"./emailsettings.component.html\",\n styleUrls: [\"./emailsettings.component.css\"],\n})\nexport class EmailsettingsComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n inputData: any = {};\n localst: any;\n isUpdate: boolean = false;\n template: any;\n group: any[] = [];\n groups: any[] = [];\n projectId: number;\n companySettings: IDropdownSettings;\n error: boolean = false;\n errorMessage: string = \"\";\n @Input() templateId = null;\n project: Subscription;\n\n @ViewChild(EmailEditorComponent, { static: true })\n private emailEditor!: EmailEditorComponent;\n\n constructor(\n private mailService: MailserviceService,\n private sharedService: SharedService,\n private route: ActivatedRoute,\n private snackbar: MatSnackBar,\n private agentService: CreateAgent,\n private companyService: RoleService,\n public readonly modalService: NgbModal,\n private handleError: ErrorHandlerService,\n private projectchangeService: ProjectchangeService,\n private readonly projectService: ProjectService,\n\n ) {}\n\n ngAfterViewInit() {}\n\n ngOnInit() {\n \n this.localst = JSON.parse(localStorage.getItem(\"userData\"));\n \n \n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (this.localst[\"companyId\"] === 0) {\n this.projectId =this.projectchangeService._projectId;\n this.getProjectId(this.projectId);\n // this.getCompany(data);\n // });\n \n\n this.companySettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n };\n if (this.templateId != null) {\n this.loadTemplate(this.templateId);\n this.isUpdate = true;\n } else {\n this.isUpdate = false;\n }\n this.route.params.subscribe((res) => {\n if (res[\"id\"]) {\n this.loadTemplate(res[\"id\"]);\n }\n });\n \n // this.sharedService.pageEvent.emit({ pageName: 'Email Settings' });\n }\n ngOnDestroy(): void {\n this.templateId = null;\n this.template = null;\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n loadTemplate(id) {\n this.isUpdate = true;\n this.mailService.getTemplateById(id).subscribe((data) => {\n this.template = data;\n this.inputData.name = data[\"Name\"];\n if (data[\"Design\"]) {\n setTimeout(() => {\n if (this.emailEditor) {\n this.emailEditor.loadDesign(data[\"Design\"]);\n }\n }, 1500);\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n // getCompany(companyId) {\n // // this.companyId = companyId;\n // // this.agentService.GetAllGroups(companyId).subscribe((data) => {\n // // this.groups = data.map((data) => ({\n // // Name: data[\"Name\"],\n // // id: data[\"id\"],\n // // }));\n // // this.companyService.getCompanyById(companyId).subscribe((data) => {\n // // this.inputData.fromEmail = data[\"SupportMail\"];\n // // let selectedGroup = this.groups.find(\n // // (datas) => datas[\"id\"] === data[\"IncomingMailGroup\"]\n // // );\n // // this.group =\n // // data[\"IncomingMailGroup\"] === null\n // // ? [\"select group\"]\n // // : [selectedGroup[\"Name\"]];\n // // });\n // // });\n // }\n\n getProjectId(id) {\n this.projectService.getProject(id).subscribe((data) => {\n // this.fromMail=data['ForwardMail']\n this.inputData[\"fromEmail\"] = data[\"ForwardMail\"] || \"\";\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n saveTemplate() {\n this.emailEditor.editor.exportHtml((data) => {\n \n this.mailService.htmlTemplate.next(data[\"html\"].toString());\n this.mailService\n .createTemplate({\n Name: this.inputData.name,\n Creator: this.localst[\"workerFriendlyName\"],\n Html: data[\"html\"],\n Design: data[\"design\"],\n FromEmail: this.inputData[\"fromEmail\"],\n companyId: this.projectId,\n })\n .subscribe(\n (data) => {\n if (data[\"status\"]) {\n // this.modalService.dismissAll()\n return (this.errorMessage = data[\"status\"]);\n }\n \n this.modalService.dismissAll();\n // this.snackbar.open('template created successfully', 'close', { duration: 10000 })\n },\n (err) => {\n this.snackbar.open(err.error.status, \"close\", { duration: 10000 });\n this.handleError.handleError(err)\n\n }\n );\n });\n }\n\n updateTemplate() {\n this.emailEditor.editor.exportHtml((data) => {\n this.mailService\n .updateTemplate({\n id: this.template[\"id\"],\n Design: data[\"design\"],\n Html: data[\"html\"],\n Active: this.template[\"Active\"],\n FromEmail: this.inputData[\"fromEmail\"],\n })\n .subscribe(\n (data) => {\n if (data) {\n this.modalService.dismissAll();\n // this.snackbar.open('upadted successfully template', 'close', { duration: 10000 })\n }\n \n },\n (err) => {\n this.error = true;\n this.errorMessage = \"something went wrong please try again\";\n this.handleError.handleError(err)\n\n // this.snackbar.open('something went wrong please try again', 'close', { duration: 10000 })\n }\n );\n });\n }\n\n // updateGroup(value) {\n // this.companyService\n // .updateMailGroup(this.projectId, this.group[0][\"id\"])\n // .subscribe((data) => {});\n // }\n projectChange(data) {\n this.projectId = data;\n this.getProjectId(this.projectId);\n }\n}\n\n","
    \n

    Edit Template

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n \n\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n Inject,\n ViewChild,\n ElementRef,\n} from \"@angular/core\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { EnquiryDashboardService } from \"./enquiry.service\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport { ReportsService } from \"../reports/reports.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { environment } from \"src/environments/environment\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\n\n@Component({\n selector: \"app-enquiry\",\n templateUrl: \"./enquiry.component.html\",\n styleUrls: [\"./enquiry.component.css\"],\n})\nexport class EnquiryComponent implements OnInit {\n endDate: any;\n startDate: any;\n date1: any;\n date2: any;\n userData: any;\n leadType = \"total\";\n pageNo = 1;\n totalPages: number;\n topBarCounts: any;\n leadsTable: any;\n projectLists: any;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n audio = new Audio();\n audioStatus: boolean = false;\n tab: string;\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n public callData: any[] = [];\n selectedLead: any;\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n referralList: any[] = [];\n public startIndex: number = 0;\n startCall: boolean = false;\n commentText: string = \"\";\n testConfig: any;\n agentCall: String = \"\";\n disabled: any;\n public statusValue = \"pending\";\n selectedAll: boolean = false;\n leadIds = [];\n sortColumn = \"updatedAt\";\n sortOrder = \"des\";\n showDate: boolean = false;\n public filterValue = \"all\";\n direction: string = \"inbound\";\n\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n\n leadsData: any;\n currentLeadId: any;\n smsList: [] = [];\n smsText: string;\n projectId: any;\n leadProjectId: any;\n\n DIyear: any;\n DIterms: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n callerProjectId: any;\n callSid: any;\n leadtoEdit: {\n id: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n Address: string;\n City: string;\n State: string;\n Zip: string;\n Country: string;\n AgentMail: string;\n };\n editComment: string;\n editStatus: string;\n public edited: boolean = false;\n public search: string;\n pageNumber: Number = 1;\n isLoading: boolean = true;\n noRecords: boolean = false;\n\n constructor(\n public EnquiryService: EnquiryDashboardService,\n public uhleadsService: UhLeadsService,\n public SharedService: SharedService,\n public momentService: MomentFormatService,\n private reportService: ReportsService,\n private companyService: RoleService,\n public layoutService: LayoutService,\n private handleError: ErrorHandlerService,\n private uhleadsservice: UhLeadsService,\n private readonly modalService: NgbModal,\n @Inject(DOCUMENT) private domService: HTMLDocument,\n public countupTimerService: CountupTimerService\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit() {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.SharedService.pageEvent.emit({\n pageName: \"Enquiries\",\n });\n\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.getCounts();\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n });\n\n this.uhleadsService.pageNumber.subscribe((pageNo: any) => {\n if (pageNo) {\n this.pageNo = pageNo;\n this.getLeads();\n }\n });\n this.EnquiryService.startTimer.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n //incoming sms check\n this.uhleadsservice.incomingSms.subscribe((from: any) => {\n if (from.from) {\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {});\n }\n });\n\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n //server side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNo = 1;\n // \n // \n this.searchLeads(this.input.nativeElement.value, this.pageNo);\n })\n )\n .subscribe();\n this.EnquiryService.getCallSid.subscribe((data) => {\n this.callSid = data;\n });\n this.EnquiryService.callStatus.subscribe((status) => {\n this.callStatus = status;\n });\n }\n\n dropdownSelect(event) {\n this.onClick(null);\n this.leadType = event;\n this.getCounts();\n this.uhleadsservice.pageNumber.next(1);\n this.EnquiryService.getCountByCallStatus({\n status: event,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n }).subscribe((data: any) => {\n \n this.totalPages = data.count;\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsService.totalPages.next(this.totalPages);\n });\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n\n this.leadType = \"total\";\n this.getCounts();\n this.getLeads();\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsService.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getCounts();\n this.leadType = \"total\";\n this.getLeads();\n this.showDate = false;\n }\n }\n\n getLeads() {\n this.isLoading = true;\n this.noRecords = false;\n let payload = {\n start: this.startDate,\n end: this.endDate,\n leadType: this.leadType,\n page: this.pageNo,\n };\n\n // \n this.EnquiryService.getLeads(payload).subscribe((res: any) => {\n // \n this.isLoading = false;\n this.leadsData = res;\n if (this.leadsData.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n for (let i = 0; i < this.leadsData.length; i++) {\n for (let j = 0; j < this.projectLists.length; j++) {\n if (this.leadsData[i].ProjectId == this.projectLists[j].id) {\n this.leadsData[i].projectName = this.projectLists[j].Name;\n this.leadsData[i].To = this.projectLists[j].TwilioNumber;\n }\n }\n }\n this.sortTableData(this.sortColumn, this.sortOrder);\n });\n }\n\n getCounts() {\n let payload = {\n start: this.startDate,\n end: this.endDate,\n };\n this.EnquiryService.getCounts(payload).subscribe((resp: any) => {\n this.totalPages = 1;\n\n if (this.leadType == \"total\") {\n this.totalPages = resp.TopBarCount.total;\n } else if (this.leadType == \"assigned\") {\n this.totalPages = resp.TopBarCount.assigned;\n } else if (this.leadType == \"assignedtoMe\") {\n this.totalPages = resp.TopBarCount.assignedtoMe;\n } else if (this.leadType == \"completedDocs\") {\n this.totalPages = resp.TopBarCount.completedDocs;\n } else if (this.leadType == \"documentsSubmitted\") {\n this.totalPages = resp.TopBarCount.documentsSubmitted;\n } else if (this.leadType == \"pendingDocs\") {\n this.totalPages = resp.TopBarCount.pendingDocs;\n } else if (this.leadType == \"reopen\") {\n this.totalPages = resp.TopBarCount.reopen;\n } else if (this.leadType == \"revalidatedDocs\") {\n this.totalPages = resp.TopBarCount.revalidatedDocs;\n } else if (this.leadType == \"studentDenied\") {\n this.totalPages = resp.TopBarCount.studentDenied;\n } else if (this.leadType == \"unassigned\") {\n this.totalPages = resp.TopBarCount.unassigned;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"validatedDocs\") {\n this.totalPages = resp.TopBarCount.validatedDocs;\n } else if (this.leadType == \"pending\") {\n this.totalPages = resp.TopBarCount.pending;\n } else if (this.leadType == \"called\") {\n this.totalPages = resp.TopBarCount.called;\n } else if (this.leadType == \"callback\") {\n this.totalPages = resp.TopBarCount.callback;\n } else if (this.leadType == \"callfailed\") {\n this.totalPages = resp.TopBarCount.callfailed;\n } else if (this.leadType == \"notinterested\") {\n this.totalPages = resp.TopBarCount.notinterested;\n } else if (this.leadType == \"universityhub\") {\n this.totalPages = resp.TopBarCount.universityhub;\n } else if (this.leadType == \"campbellsville\") {\n this.totalPages = resp.TopBarCount.campbellsville;\n } else if (this.leadType == \"referrals\") {\n this.totalPages = resp.TopBarCount.referrals;\n } else if (this.leadType == \"informed\") {\n this.totalPages = resp.TopBarCount.informed;\n } else if (this.leadType == \"wrongnumber\") {\n this.totalPages = resp.TopBarCount.wrongnumber;\n } else if (this.leadType == \"notanswered\") {\n this.totalPages = resp.TopBarCount.notanswered;\n } else if (this.leadType == \"deferredintake\") {\n this.totalPages = resp.TopBarCount.deferredintake;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n }\n\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsService.totalPages.next(this.totalPages);\n\n this.topBarCounts = resp.TopBarCount;\n // \n // this.getLeads();\n });\n }\n\n showTotalApplications() {\n this.leadType = \"total\";\n this.getCounts();\n this.getLeads();\n }\n\n showCampbellsvilleApplications() {\n this.leadType = \"campbellsville\";\n this.getCounts();\n this.getLeads();\n }\n\n showUniversityHubApplications() {\n this.leadType = \"universityhub\";\n this.getCounts();\n this.getLeads();\n }\n showSFCApplications() {\n this.leadType = \"sfc\";\n this.getCounts();\n this.getLeads();\n }\n\n showReferralApplications() {\n this.leadType = \"referrals\";\n this.getCounts();\n this.getLeads();\n }\n\n sideNavData(data) {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n var y = document.getElementsByClassName(\n \"sideNav\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < y.length; i++) {\n y[i].style.display = \"\";\n }\n\n this.currentLeadId = data.id;\n this.leadProjectId = data.ProjectId;\n // \n this.EnquiryService.getLeadById(data.id, data.ProjectId).subscribe(\n (res: any) => {\n // \n this.sideViewerData = res;\n this.smsList = res.SMSDetails;\n for (let i = 0; i < this.projectLists.length; i++) {\n if (this.sideViewerData.ProjectId == this.projectLists[i].id) {\n this.sideViewerData.ProjectName = this.projectLists[i].Name;\n }\n }\n this.replaceNull(this.sideViewerData);\n }\n );\n }\n\n viewLead(id) {\n this.sideNav.toggle();\n this.sideNavData({ id: id });\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n for (let i = 0; i < res.length; i++) {\n if (res[i].id == this.leadProjectId) {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n this.EnquiryService.sendSms(payload, this.leadProjectId).subscribe(\n (res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.EnquiryService.getLeadById(item.id, item.ProjectId).subscribe(\n (res: any) => {\n this.smsList = res.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n }\n );\n });\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n\n playAudio(data) {\n // let audio = new Audio();\n if (this.audioStatus == false) {\n this.audio.src = data.RecordingURL;\n this.audio.pause();\n this.audio.currentTime = 0;\n // this.audio.load();\n this.audio.play();\n this.audioStatus = true;\n } else if (this.audioStatus == true) {\n this.audio.pause();\n this.audio.currentTime = 0;\n this.audioStatus = false;\n }\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n pauseAudio(data) {\n // audio.stop();\n }\n\n onClick(check) {\n this.uhleadsservice.pageNumber.next(1);\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else {\n this.tab = null;\n }\n }\n\n startCallListener() {\n this.direction = \"outbound\";\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n\n this.callData = this.leadsTable;\n\n if (this.callData.length === 0) {\n this.startCall = false;\n return;\n }\n\n if (this.statusValue === \"pending\") {\n this.startIndex = 0;\n }\n this.marketingId = {\n id: this.callData[this.startIndex][\"id\"],\n status: this.callData[this.startIndex][\"CallStatus\"],\n name: this.callData[this.startIndex][\"FirstName\"],\n email: this.callData[this.startIndex][\"Email\"],\n phoneNumber:\n \"+\" +\n this.callData[this.startIndex][\"CountryCode\"] +\n this.callData[this.startIndex][\"PhoneNumber\"],\n // phoneNumber: \"+919848311098\",\n module: this.callData[this.startIndex][\"Module\"],\n city: this.callData[this.startIndex][\"City\"],\n nextCaller: this.callData.length > 1 ? 1 : 0,\n lead: this.callData[this.startIndex],\n };\n if (this.leadsTable.length > 1) {\n var nextFirstname = this.callData[this.startIndex + 1]?.FirstName\n ? this.callData[this.startIndex + 1]?.FirstName\n : \"\";\n var nextLastname = this.callData[this.startIndex + 1]?.LastName\n ? this.callData[this.startIndex + 1]?.LastName\n : \"\";\n var nextCallerCity = this.callData[this.startIndex + 1]?.City\n ? this.callData[this.startIndex + 1]?.City\n : \"\";\n var nextCallerCountryCode = this.callData[this.startIndex + 1]\n ?.CountryCode\n ? this.callData[this.startIndex + 1]?.CountryCode.replace(\"+\", \"\")\n : \"\";\n var nextCallerPhoneNumber = this.callData[this.startIndex + 1]\n ?.PhoneNumber\n ? this.callData[this.startIndex + 1]?.PhoneNumber\n : \"\";\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode\n ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber\n : \"\";\n this.startIndex = this.startIndex + 1;\n }\n this.EnquiryService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n userData: this.userData,\n leadData: this.marketingId,\n ProjectId: this.callData[this.startIndex].ProjectId,\n });\n\n this.startCall = true;\n }\n\n startCallListener2(data, index) {\n this.direction = \"outbound\";\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.callerProjectId = data.ProjectId;\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatus = null;\n\n this.callData[0] = data;\n this.selectedLead = data;\n\n this.marketingId = {\n id: data.id,\n status: data.CallStatus,\n name: data.FirstName,\n email: data.Email,\n phoneNumber: \"+\" + data.CountryCode + data.PhoneNumber,\n // phoneNumber: \"+919848311098\",\n module: data.Module,\n city: \"\",\n nextCaller: this.leadsTable.length > 1 ? 1 : 0,\n lead: 0,\n };\n if (this.leadsTable.length > 1) {\n var nextFirstname = this.referralList[index + 1]?.FirstName\n ? this.referralList[index + 1]?.FirstName\n : \"\";\n var nextLastname = this.referralList[index + 1]?.LastName\n ? this.referralList[index + 1]?.LastName\n : \"\";\n var nextCallerCity = this.referralList[index + 1]?.City\n ? this.referralList[index + 1]?.City\n : \"\";\n var nextCallerCountryCode = this.referralList[index + 1]?.CountryCode\n ? this.referralList[index + 1]?.CountryCode.replace(\"+\", \"\")\n : \"\";\n var nextCallerPhoneNumber = this.referralList[index + 1]?.PhoneNumber\n ? this.referralList[index + 1]?.PhoneNumber\n : \"\";\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode\n ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber\n : \"\";\n this.startIndex = index + 1;\n }\n \n this.EnquiryService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n ProjectId: data.ProjectId,\n });\n this.startCall = true;\n }\n\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n\n updateComments() {\n if (!this.newStatus) {\n } else {\n this.EnquiryService.updateComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n followupDate: null,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n diyear: this.DIyear,\n diterms: this.DIterms,\n ProjectId: this.callerProjectId,\n }).subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.uhleadsService.showSuccess(\"Comment added!\", \"Success!\");\n },\n (error) => {\n this.uhleadsService.showSuccess(\"Something went wrong!\", \"Error!\");\n this.handleError.handleError(error);\n }\n );\n this.commentText = \"\";\n this.newStatus = null;\n this.closeButton2.nativeElement.click();\n }\n this.closeButton2.nativeElement.click();\n }\n\n onStatusChange(data) {\n this.newStatus = data;\n if (this.newStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n callNext() {}\n\n stopCurrentCall() { \n this.EnquiryService.startCall.next(null);\n this.EnquiryService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n\n conferenceCall(value: any) {\n this.EnquiryService.conferenceCall.next({ value });\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.leadsTable.length; i++) {\n this.leadIds.push(this.leadsTable[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\n sortData(arr, value) {\n return arr.sort((a, b) => {\n return a[value] - b[value];\n //return a[value] < b[value] ? -1 : a[value] > b[value] ? 1: 0\n });\n }\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n this.sortColumn = column;\n this.leadsTable = sortJsonArray(this.leadsData, column, this.sortOrder);\n }\n onDIItermsChange(data) {\n // \n }\n onDIYearChange(data) {\n // \n }\n\n openEditLead(content, lead) {\n this.editStatus = lead.CallStatus;\n\n this.leadtoEdit = {\n id: lead.id,\n FirstName: lead.FirstName,\n LastName: lead.LastName,\n CountryCode: \"+\" + lead.CountryCode,\n PhoneNumber: lead.PhoneNumber,\n Email: lead.Email,\n Address: lead.Address,\n City: lead.City,\n State: lead.State,\n Zip: lead.Zip,\n Country: lead.Country,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"lg\" });\n }\n\n replaceAll(string, search, replace) {\n return string.split(search).join(replace);\n }\n\n updateLead() {\n this.edited = true;\n if (this.EnquiryService.editLead.invalid) {\n return;\n }\n this.leadtoEdit.CountryCode = this.replaceAll(\n this.leadtoEdit.CountryCode,\n \"+\",\n \"\"\n );\n if (this.leadtoEdit.CountryCode == \"-\") {\n this.leadtoEdit.CountryCode = \"00\";\n }\n if (this.leadtoEdit.PhoneNumber == \"-\") {\n this.leadtoEdit.PhoneNumber = \"0000000000\";\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.EnquiryService.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n this.getLeads();\n\n document.getElementById(\"closeButton3\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n onInput(event: any) {\n let payload = {\n admin: true,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: 1,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search != \"\") {\n } else if (this.search == \"\") {\n this.totalRecords.nativeElement.click();\n }\n }\n\n searchLeads(value, page) {\n \n this.isLoading = true;\n this.noRecords = false;\n let payload = {\n admin: true,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.EnquiryService.GetSearchEnquiryLeads(payload).subscribe(\n (res: any) => {\n // \n this.isLoading = false;\n this.leadsTable = res.data;\n\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n },\n (error) => { \n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.getCounts();\n this.getLeads();\n }\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date: \"medium\" }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    DirectionInComing CallOutGoing Call
    Call Recording\n \n
    Comments{{i.Comments ||'-'}}
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    CallSid\n {{sideViewerData.CallSid}}
    Name{{sideViewerData.FirstName || '-' }} {{sideViewerData.LastName || '-'}}
    Email{{sideViewerData.Email || '-'}}
    Created Date Date{{sideViewerData.createdAt || '-' | date: \"dd MMM, yyyy\"}}
    Updated Date{{sideViewerData.updatedAt || '-' | date: \"dd MMM, yyyy\"}}
    Address{{sideViewerData.Address || '-'}}
    City{{sideViewerData.City || '-'}}
    State{{sideViewerData.State || '-'}}
    Country{{sideViewerData.Country || '-'}}
    Zip{{sideViewerData.Zip || '-'}}
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date: \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date: \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n
    \n \n
    \n
    \n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts.total }}\n
    \n
    \n
    All Enquires
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts.campbellsville }}\n
    \n
    \n
    Campbellsville
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts.universityhub }}\n
    \n
    \n
    University Hub
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts.sfc }}\n
    \n
    \n
    SFC
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    Total Enquires
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    Created Date
    \n \n
    \n
    \n Updated Date\n \n \n Student Name\n \n \n Student Email\n \n \n Project\n \n \n To\n \n \n From\n \n \n Call Status\n \n Actions
    \n
    \n \n
    \n {{ item.createdAt | date: \"dd MMM, yyyy\" }}\n
    \n
    \n
    {{ item.updatedAt | date: \"dd MMM, yyyy\" }}\n
    \n \n\n
    \n
    {{ item.Email || '-'}}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ item.projectName || '-'}}\n
    \n
    \n
    {{ item.To || '-'}}\n {{ item.PhoneNumber || '-'}}\n \n Pending\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n Un Contactable\n \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Student details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.FirstName + \" \" + callData[0].LastName }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.GUID }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.APPStatus }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.createdAt | date: \"medium\" }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0].DOB| date: \"dd MMM, yyyy\" }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.EnrollmentYear }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Program }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.PhoneNumber }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0]?.Email }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Address }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n \n\n\n
    \n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class EnquiryDashboardService {\n baseApiUrl = environment.baseApiUrl2;\n baseApiUrl2 = environment.SMSapiurl;\n\n\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n viewReceivedLead = new BehaviorSubject(null);\n pageNumber = new BehaviorSubject(null);\n totalPages = new BehaviorSubject(null);\n callStatus = new BehaviorSubject(null);\n conferenceCall = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n Address: [\"\"],\n City: [\"\"],\n State: [\"\"],\n Zip: [\"\"],\n Country: [\"\"],\n LeadComment: [\"\"],\n CallStatus: [\"\"],\n });\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) {}\n\n \n getLeads(data){\n return this.http.post(`${this.baseApiUrl}communication/getDashboardInquiries`,data);\n }\n\n getCounts(data){\n return this.http.post(`${this.baseApiUrl}communication/getTopBarInquiries`,data);\n }\n\n getLeadById(id, projectId){\n return this.http.get(`${this.baseApiUrl}communication/newInquiryById/`+id+'/'+projectId);\n }\n\n updateCallStatus(data){\n return this.http.post(`${this.baseApiUrl}communication/updateCallStatus`,data)\n }\n\n updateCallSid(data){\n return this.http.post(`${this.baseApiUrl}communication/updateCallSid`,data)\n }\n\n updateComments(data){\n return this.http.post(`${this.baseApiUrl}communication/outgoingCallComments`,data);\n }\n\n getSms(id) {\n return this.http.get(`${this.baseApiUrl}communication/campbellsvilleSMS/` + id);\n }\n\n sendSms(data, projectId) {\n return this.http.post(`${this.baseApiUrl2}`+projectId+`/messaging-adapter/sendSMS`,data);\n }\n\n \n updateLead(data) {\n return this.http.post(`${this.baseApiUrl}communication/updateNewInquiry`,data);\n }\n getCountByCallStatus(data) {\n return this.http.post(`${this.baseApiUrl}communication/getCountByCallStatus`,data);\n }\n GetSearchEnquiryLeads(data){\n return this.http.post(\n `${this.baseApiUrl}campbellsville/getSearchEnquiryLeads`,\n data\n );\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { EventScheduleService } from './event-schedule.service';\nimport { MatCalendarCellClassFunction, MatCalendarCellCssClasses } from '@angular/material/datepicker';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nconst countryCodes = require('../../../assets/allcountryDetails.json');\nconst timeSlotList = require('../calendar/timedataset.json');\n\n@Component({\n selector: 'app-event-schedule',\n templateUrl: './event-schedule.component.html',\n styleUrls: ['./event-schedule.component.css']\n})\nexport class EventScheduleComponent implements OnInit {\n showForm: Boolean = false\n selectedDate: Date | null;\n currentDateTime: any = null\n startTimeSlot: any = []\n endTimeSlot: any = []\n timeList: any = []\n SelectedStartTime: any = null\n SelectedEndTime: any = null\n timeZoneDetails: any = []\n\n payload: any = {\n currentTimezone: moment.tz.guess(),\n currentTime: moment().tz(moment.tz.guess()).format('hh:mm A'),\n display_selected_date: moment().tz(moment.tz.guess()).format('dddd, MMM DD YYYY'),\n selected_date: moment().tz(moment.tz.guess()).format(),\n selected_time: null\n }\n minDate: any;\n startMinDate: any\n\n // myFilter = (d: Date | null): boolean => { // disable weekend\n\n // const day = (d || new Date()).getDay();\n // return day !== 0 && day !== 6;\n // };\n\n dateClass1: (d: Date) => any;\n agentDetails: any = {\n agentName: null,\n id: null,\n ProjectId: null,\n scheduleStatus: null,\n respond: null\n }\n agentScheduledEvents: any = []\n showcalendar: Boolean = false\n scheduleEventForm: FormGroup\n cancelEventForm: FormGroup\n rescheduleEventForm: FormGroup\n scheduledDetails: any;\n showConfirmationDialogue: Boolean = false\n cancellationReason: String = null\n scheduleDetailsForCancelReschedle: any = []\n countries: any[] = [];\n selectedCountryCode: any\n constructor(\n public route: ActivatedRoute,\n private router: Router,\n private eventScheduleService: EventScheduleService,\n private toastrservice: ToastrService,\n private formBuilder: FormBuilder,\n\n ) {\n\n this.route.queryParams.subscribe((Data) => {\n\n if (Data.status) {\n if (Data.status == 'accept' || Data.status == 'reject') {\n this.agentDetails.respond = Data.status\n }\n else {\n this.agentDetails.scheduleStatus = Data.status\n }\n this.agentDetails.id = Data.id\n this.agentDetails.ProjectId = Data.pid\n }\n else {\n this.agentDetails.id = Data.id\n this.agentDetails.ProjectId = Data.pid\n\n }\n })\n this.route.params.subscribe((param) => {\n\n if (param.agentName) {\n this.agentDetails.agentName = param.agentName\n }\n else {\n if (!this.agentDetails.respond) {\n // this.router.navigate(['/home']);\n }\n }\n });\n if (this.agentDetails.scheduleStatus == null && this.agentDetails.respond == null) {\n this.getAgentEventDetails()\n }\n else {\n if (this.agentDetails.respond) {\n this.updateEventRespond()\n } else {\n this.getScheduleEventbyId()\n\n }\n }\n\n }\n\n ngOnInit(): void {\n\n this.initForm()\n this.fetchCountries()\n this.startMinDate = moment(new Date).format('YYYY-MM-DD');\n this.currentDateTime = moment().tz(moment.tz.guess()).format('dddd, MMM DD')\n\n this.startTimeSlot = timeSlotList\n this.endTimeSlot = timeSlotList\n this.getTimeList()\n\n let allCountryname = moment.tz.countries();\n let currentDate = moment().format('YYYY-MM-DD');\n let timezones = []\n\n for (let i = 0; i < allCountryname.length; i++) {\n\n const CountryElement = allCountryname[i];\n timezones = []\n let allTimeZoneName = moment.tz.zonesForCountry(CountryElement);\n if (allTimeZoneName && allTimeZoneName.length) {\n for (let j = 0; j < allTimeZoneName.length; j++) {\n const element = allTimeZoneName[j];\n timezones.push({\n utc_time: moment(currentDate).tz(element).format('Z'),\n display_name: \"(\" + moment(currentDate).tz(element).format('Z') + \")\" + \" \" + element,\n name: element\n })\n }\n this.timeZoneDetails.push(\n {\n country_name: CountryElement,\n timezones: timezones\n\n }\n )\n }\n }\n\n this.minDate = moment().tz(moment.tz.guess()).format()\n }\n initForm() {\n this.scheduleEventForm = this.formBuilder.group({\n name: ['', Validators.required],\n email: ['', Validators.required],\n guestmail: [''],\n mobile_no: ['', Validators.required],\n CountryCode: ['', Validators.required],\n message: ['', Validators.required],\n EventTitle: ['', Validators.required],\n EventType: [null, Validators.required]\n });\n this.cancelEventForm = this.formBuilder.group({\n cancel_reason: ['', Validators.required]\n });\n this.rescheduleEventForm = this.formBuilder.group({\n Name: [''],\n EmailId: [''],\n Members: [''],\n CountryCode: [''],\n MobileNumber: [''],\n Message: [''],\n StartDate: [''],\n StartTime: [''],\n EndDate: [''],\n EndTime: [''],\n EventTitle: [''],\n ScheduledTimezone: [''],\n EventType: ['']\n });\n }\n\n getTimeList() {\n var startTime = new Date();\n var EndTime = new Date();\n\n // this.minDate=moment().tz(this.payload.currentTimezone).format()\n this.startTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n this.endTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n this.timeList = []\n startTime.setHours(7, 29, 59, 9999);\n EndTime.setHours(23, 29, 59, 9999);\n let tempstartTime: any = startTime\n let tempEndTime: any = EndTime\n for (let i = 0; i < 48; i++) {\n if (moment(tempstartTime).format('hh:mm A') != moment(tempEndTime).format('hh:mm A')) {\n this.timeList.push({ time: moment(tempstartTime).add(30, 'm').format('hh:mm A'), Eventbooked: false })\n tempstartTime = moment(tempstartTime).add(30, 'm');\n }\n }\n }\n\n _pad(num) {\n let norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n }\n\n onSelectedDate(event: any) {\n\n let d = new Date(event)\n let curretnDate = moment(new Date()).format('YYYY-MM-DD')\n this.selectedDate = event\n this.getTimeList()\n\n this.payload.selected_date = event\n this.currentDateTime = moment(event).format('dddd, MMM DD')\n this.payload.display_selected_date = new Date(this.selectedDate).toLocaleDateString(undefined, {\n weekday: 'long',\n month: 'short',\n day: '2-digit',\n year: 'numeric'\n });\n this.startTimeSlot = timeSlotList\n this.endTimeSlot = timeSlotList\n\n this.SelectedStartTime = null\n this.SelectedEndTime = null\n\n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n if (agentEventDetailsForSelectedDate && agentEventDetailsForSelectedDate.length) {\n\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let StartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('HH:mm:ss')\n let EndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('HH:mm:ss')\n this.startTimeSlot = this.startTimeSlot.filter(x => {\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n })\n this.endTimeSlot = this.endTimeSlot.filter(x => {\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n })\n }\n }\n else {\n if (moment(d).format('YYYY-MM-DD') == moment(new Date()).format('YYYY-MM-DD')) {\n this.startTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n this.endTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n }\n else{\n this.startTimeSlot = timeSlotList\n this.endTimeSlot = timeSlotList\n }\n \n }\n }\n }\n\n\n dateClass() {\n // if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n return (date: Date): MatCalendarCellCssClasses => {\n\n let curretnDate = new Date()\n if (date.getDate() >= curretnDate.getDate() &&\n (date.getMonth() + 1) >= (curretnDate.getMonth() + 1) &&\n date.getFullYear() >= curretnDate.getFullYear()) {\n let highlightDate = this.agentScheduledEvents\n .find((x) => {\n return new Date(x.StartDate).getDate() === date.getDate() &&\n (new Date(x.StartDate).getMonth() + 1) === (date.getMonth() + 1) &&\n new Date(x.StartDate).getFullYear() === date.getFullYear()\n });\n return highlightDate ? 'selected-date' : '';\n }\n else {\n return ''\n }\n };\n // }\n // return '';\n\n\n }\n\n selectTimeSlot(item: any, from: any) {\n if (from == 1) {\n this.SelectedStartTime = item;\n this.endTimeSlot = this.startTimeSlot.filter(x => {\n if (x.time > this.SelectedStartTime) {\n return x\n }\n });\n this.SelectedEndTime = null\n }\n if (from == 2) {\n this.SelectedEndTime = item;\n }\n\n }\n\n showConfirmationForm(Data?: any) {\n this.showForm = true\n this.payload.selected_time = Data\n // this.payload.currentTimezone = new Date().toLocaleDateString(undefined, {\n // timeZoneName: 'long'\n // }).split(\", \")[1]\n }\n\n getAgentEventDetails(id?: any) {\n let payload = {\n id: id ? id : this.agentDetails.id,\n ProjectId: this.agentDetails.ProjectId\n }\n this.eventScheduleService.getAgentEventDetails(payload).subscribe((Data: any) => {\n if (Data.status === true) {\n this.agentScheduledEvents = Data.data\n this.showcalendar = true\n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n\n let d = new Date()\n let curretnDate = moment(d).format('YYYY-MM-DD')\n\n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n\n if (agentEventDetailsForSelectedDate && agentEventDetailsForSelectedDate.length) {\n\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let StartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('HH:mm:ss')\n let EndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('HH:mm:ss')\n this.startTimeSlot = this.startTimeSlot.filter(x => {\n\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n }\n })\n this.endTimeSlot = this.endTimeSlot.filter(x => {\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n }\n });\n \n }\n }\n else {\n this.startTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n this.endTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n }\n }\n if (id) {\n this.getScheduleEventTimeSlots()\n }\n\n }\n else {\n this.toastrservice.error(Data.message)\n }\n })\n }\n\n getScheduleEventbyId() {\n let req_payload = {\n id: this.agentDetails.id,\n ProjectId: this.agentDetails.ProjectId\n }\n this.eventScheduleService.getScheduleEventById(req_payload).subscribe(async (Data: any) => {\n if (Data.status === true) {\n this.scheduleDetailsForCancelReschedle = {\n ...Data.data,\n fullDate: moment(Data.data.StartDate).format('dddd, MMM, DD YYYY')\n }\n await this.getAgentEventDetails(Buffer.from(this.scheduleDetailsForCancelReschedle.AgentId.toString(), 'binary').toString('base64').toString())\n\n // this.getScheduleEventTimeSlots()\n if (this.rescheduleEventForm) {\n this.startTimeSlot = timeSlotList\n this.endTimeSlot = timeSlotList\n this.rescheduleEventForm.controls['Name'].setValue(this.scheduleDetailsForCancelReschedle.Name)\n this.rescheduleEventForm.controls['EmailId'].setValue(this.scheduleDetailsForCancelReschedle.EmailId)\n this.rescheduleEventForm.controls['MobileNumber'].setValue(this.scheduleDetailsForCancelReschedle.MobileNumber)\n this.rescheduleEventForm.controls['Members'].setValue(this.scheduleDetailsForCancelReschedle.Members)\n this.rescheduleEventForm.controls['Message'].setValue(this.scheduleDetailsForCancelReschedle.Message)\n this.rescheduleEventForm.controls['StartDate'].setValue(this.scheduleDetailsForCancelReschedle.StartDate)\n this.rescheduleEventForm.controls['StartTime'].setValue(this.scheduleDetailsForCancelReschedle.StartTime)\n this.rescheduleEventForm.controls['EndDate'].setValue(this.scheduleDetailsForCancelReschedle.EndDate)\n this.rescheduleEventForm.controls['EndTime'].setValue(this.scheduleDetailsForCancelReschedle.EndTime)\n this.rescheduleEventForm.controls['ScheduledTimezone'].setValue(this.scheduleDetailsForCancelReschedle.ScheduledTimezone)\n this.rescheduleEventForm.controls['EventTitle'].setValue(this.scheduleDetailsForCancelReschedle.EventTitle)\n this.rescheduleEventForm.controls['EventType'].setValue(this.scheduleDetailsForCancelReschedle.EventType)\n this.rescheduleEventForm.controls['CountryCode'].setValue(this.scheduleDetailsForCancelReschedle.CountryCode)\n this.selectedCountryCode = this.scheduleDetailsForCancelReschedle.CountryCode\n this.selectedDate = this.scheduleDetailsForCancelReschedle.EndDate\n }\n // this.toastrservice.success(Data.message);\n }\n else {\n // this.toastrservice.error(Data.message);\n }\n })\n }\n\n onSelectedRecheduleDate(event: any) {\n let d = new Date(event.target['value']);\n let curretnDate = moment(new Date()).format('YYYY-MM-DD')\n this.selectedDate = event.target['value']\n\n this.startTimeSlot = timeSlotList\n this.endTimeSlot = timeSlotList\n\n this.rescheduleEventForm.controls['EndDate'].setValue(event.target['value'])\n this.rescheduleEventForm.controls['StartTime'].setValue(null)\n this.rescheduleEventForm.controls['EndTime'].setValue(null)\n \n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n \n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n if (agentEventDetailsForSelectedDate && agentEventDetailsForSelectedDate.length) {\n\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let StartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('HH:mm:ss')\n let EndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('HH:mm:ss')\n this.startTimeSlot = this.startTimeSlot.filter(x => {\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n })\n this.endTimeSlot = this.endTimeSlot.filter(x => {\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n })\n }\n }\n else {\n this.startTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n this.endTimeSlot = timeSlotList.filter(x => {\n if (x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n })\n }\n }\n }\n selectedResheduleStartTime(event: any) {\n \n this.rescheduleEventForm.controls['EndTime'].setValue(null)\n\n this.endTimeSlot = this.startTimeSlot.filter(x => {\n if (x.time > event.target['value'] + \":00\")\n return x\n })\n\n // this.event_form.controls['EndTime'].value(this.endTimeDataset[0]['time'])\n }\n\n getScheduleEventTimeSlots() {\n\n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n let d = new Date(this.scheduleDetailsForCancelReschedle.StartDate)\n let curretnDate = moment(new Date()).format('YYYY-MM-DD')\n this.startTimeSlot = timeSlotList\n this.endTimeSlot = timeSlotList\n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n\n // if (agentEventDetailsForSelectedDate && agentEventDetailsForSelectedDate.length) {\n\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let StartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('HH:mm:ss')\n let EndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('HH:mm:ss')\n this.startTimeSlot = this.startTimeSlot.filter(x => {\n\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n })\n this.endTimeSlot = this.endTimeSlot.filter(x => {\n if (x.time >= StartTime.trim() && x.time <= EndTime.trim()) {\n // return x.time, x.Eventbooked = true\n }\n else {\n if (curretnDate == agentEventDetailsForSelectedDate[i].StartDate && x.time > moment(new Date()).format('HH:mm:ss')) {\n return x\n }\n if (curretnDate != agentEventDetailsForSelectedDate[i].StartDate) {\n return x\n }\n }\n });\n\n }\n // }\n // else {\n // this.startTimeSlot = timeSlotList\n // this.endTimeSlot = timeSlotList\n // }\n }\n }\n\n scheduleEvent() { // Add schedule Event\n let getUTCOffset = moment.tz(this.payload.currentTimezone).format('Z')\n if (this.SelectedEndTime < this.SelectedStartTime) {\n this.toastrservice.error(\"Please select valid end time!\")\n }\n else {\n if (this.scheduleEventForm.valid) {\n let payload = {\n ...this.scheduleEventForm.value,\n ...this.payload,\n startDateTime: this.SelectedStartTime,\n endDateTime: this.SelectedEndTime,\n selected_date: moment(this.payload.selected_date).utcOffset(getUTCOffset).format('YYYY-MM-DD'),\n CurrentTimezone: this.payload.currentTimezone,\n AgentId: this.agentDetails.id,\n ProjectId: this.agentDetails.ProjectId\n\n }\n\n this.eventScheduleService.createEventSchedule(payload).subscribe((Data: any) => {\n if (Data.status === true) {\n\n this.scheduledDetails = {\n ...Data.data,\n fullDate: moment(Data.data.StartDate).format('dddd, MMM, DD YYYY')\n }\n this.showConfirmationDialogue = true\n this.scheduleEventForm.reset()\n this.toastrservice.success(Data.message)\n\n }\n else {\n this.toastrservice.error(Data.message)\n }\n })\n }\n else {\n this.toastrservice.error(\"Please fill mandatory fields!\")\n }\n }\n }\n\n selectedZone(Data?: any) {\n\n let zoneDateTime = moment.utc().utcOffset(Data.value['utc_time']).format('LTS')\n this.payload.currentTimezone = Data.value['name']\n this.payload.currentTime = zoneDateTime\n this.getTimeList()\n\n let d = new Date(this.payload.selected_date)\n if (this.agentScheduledEvents && this.agentScheduledEvents.length) {\n let agentEventDetailsForSelectedDate = this.agentScheduledEvents.filter(x => x.StartDate == d.getFullYear() + \"-\" + this._pad(d.getMonth() + 1) + \"-\" + this._pad(d.getDate()))\n for (let i = 0; i < agentEventDetailsForSelectedDate.length; i++) {\n let AgentEventStartTime = moment(agentEventDetailsForSelectedDate[i].StartDate + \" \" + agentEventDetailsForSelectedDate[i].StartTime).format('hh:mm A')\n let AgentEventEndTime = moment(agentEventDetailsForSelectedDate[i].EndDate + \" \" + agentEventDetailsForSelectedDate[i].EndTime).format('hh:mm A')\n this.timeList = this.timeList.filter(x => {\n\n if (x.time >= AgentEventStartTime && x.time <= AgentEventEndTime) {\n return x.time, x.Eventbooked = true\n }\n else {\n return x\n }\n })\n }\n }\n }\n\n onKeyUpSearch(Data: any) {\n let filter = Data.toLowerCase();\n let data = []\n this.timeZoneDetails.filter(x => {\n return x.timezones.filter(y => {\n if (y.display_name.toLowerCase().includes(filter)) {\n data.push(x)\n return data\n }\n\n });\n });\n // if(x.timezones.toLowerCase().includes(filter)){\n // return {\n // country_name:x.country_name,\n // timezones:x.timezones\n // }\n // }\n\n\n }\n\n cancelEvent() { // Cancel Event\n let req_payload = {\n ...this.cancelEventForm.value,\n ...this.agentDetails\n }\n this.eventScheduleService.updateScheduleEventDetails(req_payload).subscribe((Data: any) => {\n if (Data.status === true) {\n\n this.toastrservice.success(Data.message)\n }\n else {\n this.toastrservice.error(Data.message)\n }\n })\n }\n\n rescheduleEvent() {\n if (this.rescheduleEventForm.value['EndTime'] < this.rescheduleEventForm.value['StartTime']) {\n this.toastrservice.error(\"Please select valid end time!\")\n }\n else {\n let req_payload = {\n ...this.agentDetails,\n ...this.rescheduleEventForm.value\n }\n this.eventScheduleService.updateScheduleEventDetails(req_payload).subscribe((Data: any) => {\n if (Data.status === true) {\n this.toastrservice.success(Data.message)\n\n }\n else {\n this.toastrservice.warning(Data.message)\n\n }\n });\n }\n }\n\n fetchCountries() {\n this.countries = countryCodes;\n }\n\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.scheduleEventForm.controls['CountryCode'].setValue(this.selectedCountryCode)\n\n }\n\n onInput(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n\n EventResponded: Boolean = false\n updateEventRespond() {\n\n this.eventScheduleService.updateEventRespond(this.agentDetails).subscribe((Data: any) => {\n if (Data.status == true) {\n this.EventResponded = true\n this.toastrservice.success(Data.message);\n\n }\n else {\n this.toastrservice.error(Data.message);\n }\n })\n }\n\n confirmedTimeSlot() {\n\n this.showForm = true\n }\n ClearForm() {\n this.showForm = false\n this.SelectedStartTime = null\n this.SelectedEndTime = null\n }\n}\n","
    \n
    \n
    \n\n
    \n
    \n
    {{showForm?'Discussion':'For Booking & Timings'}}
    \n
    \n
    \n
    \n
    \n\n
    \n
    Partnership Discussion
    \n
    {{currentDateTime}}
    \n\n
    \n
    \n
    \n
    \n\n \n Select Zone\n \n \n \n\n \n \n {{timezone.display_name}}\n \n \n\n \n \n \n \n \n \n \n \n \n
    \n
    \n \n {{payload.currentTimezone}} ({{payload.currentTime}})\n
    \n
    \n \n
    \n
    \n \n\n
    \n
    \n
    \n\n
    \n {{item.time}}\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n\n
    \n
    \n
    \n\n
    \n {{item.time}}\n
    \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    Partnership\n Discussion
    \n
    \n
    \n \n
    {{SelectedStartTime}} - {{SelectedEndTime}} ,\n {{this.payload.display_selected_date}}\n
    \n
    {{payload.currentTimezone}} ({{payload.currentTime}})
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n \n\n
      \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{\n country.callingCodes[0] }})\n \n
    • \n
      \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n\n \n\n
    \n
    \n
    \n\n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n\n
    \n
    \n\n \n\n \n\n\n
    \n
    \n
    \n
    \n
    Confirmed
    \n
    \n
    \n
    \n
    \n
    \n
    Confirmed
    \n
    You are scheduled with {{scheduledDetails.AgenetName}}.
    \n
    \n
    \n
    \n
    \n
    {{scheduledDetails.EventTitle}}
    \n
    {{scheduledDetails.EventDescription}}
    \n
    {{scheduledDetails.StartTime}} - {{scheduledDetails.EndTime}},\n {{scheduledDetails.fullDate}}
    \n
    {{scheduledDetails.ScheduledTimezone}} (Timezone)
    \n
    {{scheduledDetails.EventType || '--'}}
    \n
    {{scheduledDetails.Members || '--'}}
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n \n\n

    Meeting : {{scheduleDetailsForCancelReschedle.StartTime}} -\n {{scheduleDetailsForCancelReschedle.EndTime}}\n

    \n
    \n
    \n
    \n
    Event Title : {{scheduleDetailsForCancelReschedle.EventTitle}}
    \n
    Event Description :{{scheduleDetailsForCancelReschedle.EventDescription}}
    \n
    {{scheduleDetailsForCancelReschedle.Name}}
    \n
    {{scheduleDetailsForCancelReschedle.StartTime}} -\n {{scheduleDetailsForCancelReschedle.EndTime}},\n {{scheduleDetailsForCancelReschedle.fullDate}}
    \n
    {{scheduleDetailsForCancelReschedle.ScheduledTimezone||'--'}}\n (Timezone)\n
    \n
    Web\n conferencing details to follow.
    \n
    {{scheduleDetailsForCancelReschedle.Members ||'--'}}
    \n
    \n\n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    No Event Found!

    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    Reschedule Event

    \n
    \n\n

    \n Meeting : {{scheduleDetailsForCancelReschedle.StartTime}} -\n {{scheduleDetailsForCancelReschedle.EndTime}}, {{scheduleDetailsForCancelReschedle.fullDate}}

    \n
    {{scheduleDetailsForCancelReschedle.ScheduledTimezone}} (Timezone)
    \n\n\n
    \n\n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n\n \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{selectedDate | date:'MM/dd/yyyy'}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n

    No Event Found!

    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    ","import { Injectable } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { HttpClientService } from 'src/app/httpclient.service';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventScheduleService {\n baseApiUrl = environment.baseApiUrl2;\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder) {\n \n }\n getAgentEventDetails(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventCal/getAgentEventDetails`, data);\n }\n createEventSchedule(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventSchedule/createEventSchedule`, data);\n }\n getScheduleEventById(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventSchedule/getScheduleEventById`, data);\n }\n updateScheduleEventDetails(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventSchedule/updateScheduleEventDetails`, data);\n }\n updateEventRespond(data?: any) {\n return this.http.post(`${this.baseApiUrl}eventSchedule/updateEventRespond`, data);\n }\n \n}\n","import { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { HttpClientService } from \"../httpclient.service\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { io } from 'socket.io-client';\nimport { UhLeadsService } from \"./uhleads.service\";\n\nexport enum REGEX {\n EMAIL = '[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\\\.[a-z]{2,4}',\n PHONE = '[0-9]{10}$',\n PASSWORD = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$',\n ZIP = '^[a-zA-Z0-9,\\'-]*$',\n NUMBER = '^[0-9]*$',\n URL = '^(http:\\/\\/www\\.|https:\\/\\/www\\.|www\\.|http:\\/\\/|https:\\/\\/)[a-zA-Z0-9\\.\\-]+\\\\.[a-zA-Z]{2,5}[\\.]{0,1}',\n CHARACTER = \"^[a-zA-Z /'.-]*$\",\n SPECIAL_PHONE = '^[+|0-9]+[0-9]{1,}$',\n ADDRESS = '^[a-zA-Z0-9\\s,\\'-]*$',\n}\n@Injectable({\n providedIn: \"root\",\n})\nexport class FreJunService {\n baseApiUrl = environment.baseApiUrl2;\n baseApiUrl2 = environment.SMSapiurl;\n freJunURL = environment.freJunURL;\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n twilioApiUrl: any = environment.twilioApiUrl;\n ActivityData: any;\n socket: any;\n callInitiate = new BehaviorSubject(null);\n callAnswered = new BehaviorSubject(null);\n callDisconnected = new BehaviorSubject(null);\n\n constructor(\n private http: HttpClient,\n private UuhLeadsService: UhLeadsService,\n\n ) { }\n\n createCall(payload): Observable {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n let customHeaders = {\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque', \"Access-Control-Allow-Origin\": \"*\" }\n )\n };\n if (this.userData) {\n customHeaders = {\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque', \"Access-Control-Allow-Origin\": \"*\", 'Authentication': 'Bearer ' + this.userData.token }\n )\n }\n }\n return this.http.post(this.baseApiUrl + \"createCall\", payload, customHeaders);\n }\n createCallLog(payload): Observable {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n let customHeaders = {\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque', \"Access-Control-Allow-Origin\": \"*\" }\n )\n };\n if (this.userData) {\n customHeaders = {\n headers: new HttpHeaders(\n { 'x-auth-token': 'asseccque', \"Access-Control-Allow-Origin\": \"*\", 'Authentication': 'Bearer ' + this.userData.token }\n )\n }\n }\n return this.http.post(this.baseApiUrl + \"createCallLog\", payload, customHeaders);\n }\n\n connect() {\n this.socket = io(environment.socketUrl2, { transports: ['websocket'], query: { userId: 10 } });\n this.socket.on('connect', (data) => {\n console.log(\"************************************************************************************\")\n console.log(\"connected\", data)\n });\n\n\n \n }\n sendMesage() {\n this.socket.emit('message', 'Test Message');\n }\n disConnect() {\n this.socket.emit('disconnect', '')\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { ErrorHandlerService } from 'src/app/error-handler.service';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { UhLeadsService } from '../../uhleads.service';\ndeclare const google: any;\n\n@Component({\n selector: 'app-google-analytics',\n templateUrl: './google-analytics.component.html',\n styleUrls: ['./google-analytics.component.css']\n})\nexport class GoogleAnalyticsComponent implements OnInit {\n eventNameReport:any;\n countryReport:any;\n cityReport:any;\n audienceReport:any;\n\n eventNameRealTimeReport:any;\n countryRealTimeReport:any;\n cityRealTimeReport:any;\n audienceRealTimeReport:any;\n\n loadingMainReport:any;\n loadingEventReport: boolean = false;\n loadingCountryReport: boolean = false;\n loadingCityReport: boolean = false;\n loadingAudianceReport: boolean = false;\n filterValue: string = 'all';\n\n payload:any={\n from:'',\n for:'activeusers',\n startDate:new Date(Date.now() - 864e5 * 365),\n endDate:new Date(Date.now() - 864e5)\n }\n\n reportInterval:any\n is_realTimeReport:Boolean=false\n ViewData:any=[]\n view: any[] = [400, 100];\n gradient = false;\n colorScheme = {\n domain: ['#1a73e8']\n };\n showButton: boolean = false;\n startDate: any;\n endDate: any;\n showDate: boolean = false;\n date1: any;\n date2: any;\n\n popover_header:any\n popover_title:any\n popover_value:any\n constructor(\n public uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n private momentService: MomentFormatService,\n private handleError: ErrorHandlerService,\n ) { \n if(this.reportInterval){\n clearInterval(this.reportInterval)\n }\n google.charts.load('current', {\n 'packages':['geochart'],\n });\n }\n\n ngOnInit(): void {\n this.sharedService.pageEvent.emit({\n pageName: \"Analytics\",\n });\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.getRunReport()\n this.getCountryWiseReport()\n this.getRealTimeCountryReportChart()\n setInterval(()=>{\n this.getRealTimeCountryReportChart()\n },60000)\n \n }\n getRunReport(){\n \n this.loadingMainReport=true\n this.uhleadsservice.getRunReports(this.payload).subscribe((resp:any)=>{\n if(resp.statusText==true){\n let reportData = resp.response.reports\n this.countryReport=reportData[0].rows\n this.audienceReport=reportData[1].rows\n this.eventNameReport=reportData[2].rows\n this.cityReport=reportData[3].rows\n this.setGooglChart(this.countryReport)\n \n }\n this.loadingMainReport=false\n\n // this.runReport = resp.reports[0].rowCount>0?resp.reports[0].rows:[]\n // \n }, (error) => {\n \n this.handleError.handleError(error)\n });\n }\n getEventnameWiseReport(){\n this.loadingEventReport = true;\n this.payload.from='eventName'\n this.uhleadsservice.getRealTimeEentNameReport().subscribe((resp:any)=>{\n this.eventNameRealTimeReport = resp && resp.rowCount>0?resp.rows:[]\n this.loadingEventReport = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCountryWiseReport(){\n this.payload.from='counrty'\n this.loadingCountryReport = true;\n this.uhleadsservice.getRealTimeCountryReport().subscribe((resp:any)=>{\n this.countryRealTimeReport = resp && resp.rowCount>0?resp.rows:[]\n \n \n this.loadingCountryReport = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getCityWiseReport(){\n this.payload.from='city'\n this.loadingCityReport = true;\n this.uhleadsservice.getRealTimeCityReport(this.payload).subscribe((resp:any)=>{\n this.cityRealTimeReport = resp && resp.rowCount>0?resp.rows:[]\n this.loadingCityReport = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getAudianceWiseReport(){\n this.payload.from='audienceName'\n // this.payload.for='activeusers'\n this.loadingAudianceReport = true;\n this.uhleadsservice.getRealTimeAudienceNameReport().subscribe((resp:any)=>{\n this.audienceRealTimeReport = resp && resp.rowCount>0?resp.rows:[]\n this.loadingAudianceReport = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n onChangeUsers(Event:any,from:any){\n if(from==='country'){\n this.payload.for=Event.target.value\n this.getRunReport();\n }\n }\n\n getRealTimeRecords(_for?:any){\n if(_for==1){\n this.is_realTimeReport=true\n if(!this.reportInterval){\n this.getEventnameWiseReport()\n this.getCountryWiseReport()\n this.getCityWiseReport()\n this.getAudianceWiseReport()\n }\n this.reportInterval = setInterval(()=>{\n this.getEventnameWiseReport()\n this.getCountryWiseReport()\n this.getCityWiseReport()\n this.getAudianceWiseReport()\n },60000)\n }\n else if(_for==2){\n this.getRunReport()\n this.is_realTimeReport=false\n clearInterval(this.reportInterval)\n }\n }\n //Country Realtime report chart\n getRealTimeCountryReportChart(){\n this.payload.from='counrty'\n this.loadingCountryReport = true;\n this.uhleadsservice.getRealTimeCountryReportChart(this.payload).subscribe((resp:any)=>{\n \n let data = resp && resp.rowCount>0?resp.rows:[]\n let tempViewData=[]\n for (let j = 29; j > 0; j--) {\n for (let i = 0; i < data.length; i++) {\n if(j==data[i].dimensionValues[1].value){\n tempViewData.push(\n {\n \"name\": \"Users \"+j+\" mins Ago\",\n \"value\": data[i].metricValues[0].value\n })\n }\n else{\n tempViewData.push(\n {\n \"name\": \"Users \"+j+\" mins Ago\",\n \"value\":0\n })\n }\n }\n }\n \n this.ViewData=tempViewData\n Object.assign(this, {tempViewData} )\n\n this.loadingCountryReport = false;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n setGooglChart(Data?:any){\n \n \n let googlDataTable=[['Country','Users']]\n Data.forEach((Element:any)=>{\n let name=Element.dimensionValues[0].value\n let value=parseInt(Element.metricValues[0].value)\n googlDataTable.push([Element.dimensionValues[0].value,value])\n });\n\n google.charts.setOnLoadCallback(drawRegionsMap);\n \n function drawRegionsMap() {\n var data = google.visualization.arrayToDataTable(googlDataTable);\n\n var options = {\n colorAxis: {colors: ['#aecbfa','#174ea6']}\n };\n\n var chart = new google.visualization.GeoChart(document.getElementById('Geo_map'));\n\n chart.draw(data, options);\n }\n }\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.payload.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.payload.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n if(!this.showDate){\n this.getRunReport()\n this.getCountryWiseReport()\n this.getRealTimeCountryReportChart() \n }\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n filterData() {\n // this.onClick(null);\n this.payload.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.payload.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.payload.endDate < this.payload.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getRunReport()\n this.getCountryWiseReport()\n this.getRealTimeCountryReportChart() \n this.showDate = false;\n }\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n}\n","
    \n
    {{is_realTimeReport ? 'Realtime Analytics overview (Last 30 Minutes Record)':'Analytics overview'}}
    \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    by
    \n
    Country
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    CountryUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n Users in last 30 minutes\n
    \n
    \n
    \n \n \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Top CountriesUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n Users by AUDIANCE\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    AUDIANCEUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n Users by CITY\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    CountryUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n Views by Event Name and Event Count\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    EVENT NAME\n EVENT COUNT
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n Users in last 30 minutes\n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Top CountriesUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n Users by AUDIANCE\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    AUDIANCEUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Users by CITY\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    CountryUsers
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n Views by Event Name and Event Count\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    EVENT NAME\n EVENT COUNT
    {{item.dimensionValues[0].value}}{{item.metricValues[0].value}}
    \n \n\n
    \n
    \n
    \n \n \n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n

    No data available

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n\n\n
    \n
    \n

    {{payload.startDate|date:'medium'}} - {{payload.endDate|date:'medium'}}

    \n

    {{popover_header}}

    \n
    \n
    {{popover_title}}
    \n
    {{popover_value}}
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n

    In Last 30 Minutes

    \n

    {{popover_header}}

    \n
    \n
    {{popover_title}}
    \n
    {{popover_value}}
    \n
    \n
    \n
    \n
    ","import { RoleService } from \"./../role-management/role.service\";\nimport { Role } from \"./../create-agent/models/role.model\";\nimport { CreateAgent } from \"./../create-agent/create-agent.service\";\nimport { Group } from \"./../create-agent/models/group.model\";\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { GroupService } from \"../group.service\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport { NgForm } from \"@angular/forms\";\nimport { TicketsService } from \"../tickets/tickets.service\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { Subscription } from \"rxjs\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-group-management\",\n templateUrl: \"./group-management.component.html\",\n styleUrls: [\"./group-management.component.less\"],\n})\nexport class GroupManagementComponent implements OnInit, OnDestroy {\n public groups: Group[] = [];\n public page: any = 1;\n public pageSize: any = 5;\n public isError: boolean = false;\n public closeResult: string = \"\";\n public error: string = \"\";\n public search: string = \"\";\n public isUpdate: boolean = false;\n public inputData: any = {};\n public managers: any[] = [];\n public dropdownSettings: IDropdownSettings;\n public localData: any;\n public admin: Boolean;\n public roleSettings: IDropdownSettings;\n public selectedRole: any = { id: \"\" };\n private roleSubcription: Subscription;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n\n constructor(\n private modalService: NgbModal,\n private groupService: GroupService,\n private SharedService: SharedService,\n private authService: AuthService,\n private ticketService: TicketsService,\n private roleService: RoleService,\n private agentService: CreateAgent,\n private handleError: ErrorHandlerService,\n private route: ActivatedRoute\n ) {}\n\n getGroups() {\n if (this.selectedRole[\"id\"]) {\n this.groupService\n .fetchGroups(this.selectedRole[\"id\"])\n .subscribe((data) => {\n this.groups = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n ngOnDestroy() {\n \n this.groups = [];\n this.roleService.selectedRole.next({ id: \"\" });\n this.roleSubcription.unsubscribe();\n }\n\n ngOnInit() {\n this.roleSubcription = this.roleService.selectedRole.subscribe((data) => {\n this.selectedRole = data;\n this.getGroups();\n });\n this.dropdownSettings = {\n singleSelection: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n idField: \"value\",\n };\n this.roleSettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n };\n\n this.authService.admin.subscribe((data) => {\n if (this.admin) {\n return;\n }\n this.admin = data;\n \n });\n this.authService.companyAdmin.subscribe((data) => {\n if (this.admin) {\n return;\n }\n this.admin = data;\n \n });\n\n this.localData = JSON.parse(localStorage.getItem(\"userData\"));\n\n this.route.params.subscribe((data) => {\n this.ticketService\n .getUsersList(data[\"projectId\"])\n .subscribe((data: any[]) => {\n this.managers = data.map((data) => ({\n value: data[\"Mailid\"],\n Name: data[\"FirstName\"] + \" \" + data[\"LastName\"],\n }));\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n\n this.getGroups();\n }\n\n open(content) {\n this.isError = false;\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.getGroups();\n this.isUpdate = false;\n this.isError = false;\n this.inputData = {};\n this.isUpdate = false;\n\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n public submit(form: NgForm) {\n if (!this.isUpdate) {\n \n this.groupService\n .createGroup({\n name: form.name,\n description: form[\"description\"],\n manager: this.inputData.manager[0][\"value\"],\n createdBy: this.localData.mail,\n roleId: this.selectedRole[\"id\"],\n })\n .subscribe(\n (data) => {\n if (data) {\n this.modalService.dismissAll();\n }\n },\n (err) => {\n this.isError = true;\n this.error = err.error.message;\n this.handleError.handleError(err)\n\n }\n );\n } else {\n this.groupService\n .updateGroup({\n name: this.inputData[\"name\"],\n Description: this.inputData[\"description\"],\n id: this.inputData[\"id\"],\n activestatus: this.inputData[\"activeStatus\"] === \"active\",\n manager: this.inputData[\"manager\"][0][\"value\"],\n createdBy: \"admin\",\n roleId: this.selectedRole[\"id\"],\n })\n .subscribe(\n (data) => {\n if (data) {\n this.modalService.dismissAll();\n }\n },\n (err) => {\n this.isError = true;\n this.error = err.error.message;\n this.handleError.handleError(err)\n\n }\n );\n }\n }\n\n public updateGroup(content, id) {\n const group: Group = this.groups[id];\n\n this.groupService.getGroup(id).subscribe((data) => {\n this.inputData.name = data[\"Name\"];\n this.inputData.description = data[\"Description\"];\n this.inputData.activeStatus = data[\"ActiveStatus\"];\n this.inputData.id = data[\"id\"];\n this.inputData.activeStatus = data[\"ActiveStatus\"]\n ? \"active\"\n : \"inactive\";\n let manager = this.managers.find(\n (val) => val[\"value\"] === data[\"Manager\"]\n );\n this.inputData.manager = manager ? [manager] : [\"select manager\"];\n // this.inputData.selectedRole = [this.availableRoles.find(role => role['id'] === data['RoleId'])]\n\n this.isUpdate = true;\n\n this.open(content);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n}\n","
    \n
    \n
    \n \n {{ selectedRole[\"Name\"] | titlecase }}\n \n
    \n
    \n
    \n \n \"\"\n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ item[\"Name\"] | titlecase }}\n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Group Name\n \n \n \n \n Group Description\n \n \n \n \n Status\n \n \n \n \n Created Date\n \n \n \n \n Updated Date\n \n \n
    {{ item[\"Description\"] | titlecase }}\n
    \n {{ item[\"ActiveStatus\"] ? \"Active\" : \"In Active\" }}\n
    \n
    {{ item[\"CreatedDate\"] | date: \"medium\" }}{{ item[\"UpdatedDate\"] | date: \"medium\" }}
    \n
    \n
    \n
    \n\n
    \n
    \n {{ isUpdate ? \"Update\" : \"Create\" }} Group\n
    \n \n ×\n \n
    \n
    \n {{\n error\n }}\n
    \n
    \n \n \n \n please enter a valid group name\n
    \n
    \n\n
    \n \n \n
    \n please select a manager\n
    \n
    \n\n
    \n
    \n\n
    \n \n \n \n \n \n \n please select value\n
    \n
    \n\n \n \n \n\n\n","import { Group } from './create-agent/models/group.model';\nimport { environment } from 'src/environments/environment';\n// import { HttpClientService } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { HttpClientService } from '../httpclient.service';\n\ninterface CreateGroup {\n name: any,\n description: string,\n manager: string,\n createdBy: string,\n roleId: number\n}\n\ninterface UpdateGroup {\n name: string,\n Description: string,\n activestatus: boolean,\n id: number,\n manager: string,\n createdBy: string,\n roleId: number\n\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService {\n\n public baseUrl = environment.baseApiUrl2;\n\n constructor(private http: HttpClientService) { }\n\n fetchGroups(id) {\n return this.http.get(`${this.baseUrl}Group/roles/${id}`).pipe(map(data => {\n let transformedGroup: Group[] = [];\n for (let gp of data) {\n transformedGroup.push(new Group(gp['id'], gp['Name'], gp['Description'], gp['createdAt'], gp['updatedAt'], gp['ActiveStatus'], gp['Manager']))\n }\n return transformedGroup;\n }))\n }\n\n createGroup(body: CreateGroup) {\n return this.http.post(`${this.baseUrl}createGroup`, body);\n }\n updateGroup(body: UpdateGroup) {\n return this.http.put(`${this.baseUrl}updateGroup/${body.id}`, body)\n }\n\n getAgentGroups(id) {\n return this.http.get(`${this.baseUrl}agentGroups/${id}`);\n }\n\n getGroup(id) {\n return this.http.get(`${this.baseUrl}Group/${id}`);\n }\n\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport HelloSign from \"hellosign-embedded\";\n\n@Component({\n selector: \"app-hellosign\",\n templateUrl: \"./hellosign.component.html\",\n styleUrls: [\"./hellosign.component.css\"],\n})\nexport class HellosignComponent implements OnInit {\n client: HelloSign;\n\n constructor() {}\n\n ngOnInit() {\n this.client = new HelloSign({\n clientId: \"903248d72884ac004b18a9e628890de8\",\n });\n\n setTimeout(() => {\n this.client.open(\n \"https://embedded.hellosign.com/prep-and-send/embedded-template?cached_params_token=18ae0f12e435c3ca2066fe564011ce60\",\n {\n skipDomainVerification: true,\n clientId: \"903248d72884ac004b18a9e628890de8\",\n }\n );\n }, 10000);\n \n }\n}\n","

    hellosign works!

    \n","import {\n Component,\n OnInit,\n ViewChild,\n HostListener,\n ElementRef,\n Inject,\n} from \"@angular/core\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { DashboardService } from \"../dashboard/dashboard.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { formatDate } from \"@angular/common\";\nimport { MarketingService } from \"../marketing/marketing.service\";\nimport * as xlsx from \"xlsx\";\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport * as moment from \"moment\";\nimport { Exceldata2 } from \"../marketing/smsmarketing/models/ExecelData.model2\";\nimport { start } from \"repl\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { Router } from \"@angular/router\";\nimport { forEach, now, round } from \"lodash\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { environment } from \"src/environments/environment\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { NotificationsService } from \"src/app/notification.service\";\n\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nconst countryCodes = require('../../../assets/allcountryDetails.json');\n\n@Component({\n selector: 'app-judsonu-leads',\n templateUrl: './judsonu-leads.component.html',\n styleUrls: ['./judsonu-leads.component.css']\n})\nexport class JudsonuLeadsComponent implements OnInit {\n public fileSource = environment.fileServer;\n public userData: any;\n public filterValue = \"all\";\n nav_position: string = \"end\";\n public statusValue = \"pending\";\n public page: any = 1;\n public pageSize: any = 12;\n public search: string;\n totalApplications: number;\n completedApplications: number;\n completedApplications2: number;\n incompleteapplications: number;\n documentspending: number;\n documentssubmitted: number;\n callback: number;\n activityData: any;\n activityData2: any;\n\n activityTable: any = [];\n activityTable2: any;\n\n startDate: any;\n endDate: any;\n leadsbody: any;\n companyId: any;\n companyAdmin: Boolean = false;\n rotating: boolean = false;\n projectId: any;\n downloadLink: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public leadType: string = \"all\";\n public errorMessage: string = \"\";\n public submitted: boolean = false;\n public edited: boolean = false;\n admin: boolean = false;\n public counselling: boolean = false;\n isCallcomming: boolean = false;\n connection: any = null;\n // audio: any;\n audio = new Audio();\n audioStatus: boolean = false;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n documentsList: any;\n documentsList2: any;\n selectedCallerId: any;\n selectedLead: any;\n commentText: string = \"\";\n newStatus: any;\n newStatusCheck = true;\n docUrl: any;\n currentLeadId: any;\n currentGuid: any;\n documentComments: string;\n validationStatus: boolean = false;\n currentItem: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButton3\", { static: true }) closeButton3;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n\n leadIds = [];\n selectedAll: boolean = false;\n agentList: any;\n GBPagentList: any;\n defaultAgent = \"default\";\n selectedAgent: any;\n\n testConfig: any;\n // callStarted: boolean = false;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public clearTime: any;\n dialerScreen1 = \"dialer\";\n phoneNumber: any = \"\";\n agentCall: String = \"\";\n isShownMarketing: boolean = false;\n dailerScreen: any = \"nocall\";\n isCallingProgress: boolean = false;\n isOutgoing: boolean = false;\n isIncoming: boolean = false;\n disabled: any;\n callStatus: string = \"Calling..\";\n tab: any;\n showDate: boolean = false;\n\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n totalAgents: any;\n agentName: any;\n\n public callData: any[] = [];\n public startIndex: number = 0;\n\n date1: any;\n date2: any;\n serializedDate = new FormControl(new Date().toISOString());\n documentsDenied: number;\n CallsPending: number;\n revalidate: any;\n minItems = 5;\n unassigned: any;\n assigned: any;\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n assignedtome: any;\n file: File;\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: any = [];\n customDocLeadId: any;\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n DOB: Date;\n EnrollmentYear: string;\n EnrollmentTerm: string;\n Address: string;\n City: string;\n State: string;\n Zip: string;\n Country: string;\n LeadComment: string;\n CallStatus: string;\n AgentMail: string;\n DIyear?: string;\n DIterms?: string;\n };\n editComment: string;\n editStatus: string;\n allRecords: any;\n isLoading: boolean = true;\n noRecords: boolean = false;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n activityfilterString: string = \"\";\n uploadSuccess: string = \"none\";\n topBarCounts = {\n validatedDocs: \"0\",\n completedDocs: \"0\",\n studentDenied: \"0\",\n reopen: \"0\",\n total: \"0\",\n revalidatedDocs: \"0\",\n pendingDocs: \"0\",\n documentsSubmitted: \"0\",\n unassigned: \"0\",\n assigned: \"0\",\n assignedtoMe: \"0\",\n uncontactable: \"0\",\n };\n cardLeadType: string = \"all\";\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n currentCard: string = \"total\";\n sortColumn = \"updatedAt\";\n sortOrder = \"des\";\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n smsText: string;\n\n DIyear: any;\n DIterms: any;\n callSid: any;\n countries: any[] = [];\n selectedCountryCode = 1;\n selectedCountryName = \"United States of America\";\n\n constructor(\n public uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n public dashBoardService: DashboardService,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n private readonly loginService: AuthService,\n private readonly modalService: NgbModal,\n private authService: AuthService,\n private router: Router,\n private agentService: CreateAgent,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private NotificationService: NotificationsService,\n private companyService: RoleService,\n private handleError: ErrorHandlerService,\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit() {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.fetchCountries();\n this.sharedService.pageEvent.emit({\n pageName: \"Leads Dashboard\",\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // \n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == \"24hrs\";\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == environment.Judsonuleads\n )[0].id;\n if (this.projectId != null) {\n this.sharedService.getProjectAdmin(this.projectId).subscribe(\n (data) => {\n this.admin = data;\n this.getTopBarCRM();\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.showTotalApplications(); //Shohw only pending records on page load\n this.onClick(1); //Activating pending card by default\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n ////\n\n this.getDownloadLink();\n this.uhleadsservice.startTimerjudson.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n\n this.uhleadsservice.viewReceivedLeadjudson.subscribe((res: any) => {\n if (res) {\n this.viewLead(res);\n }\n });\n\n this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n // this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n } else if (this.leadType == \"filter\") {\n // this.searchLeads(this.search, this.pageNumber)\n\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search.length > 0) {\n this.uhleadsservice\n .GetSearchDashboardLeads(payload)\n .subscribe(\n (res: any) => {\n this.activityTable = res.data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n // this.totalRecords.nativeElement.click();\n this.leadType = \"all\";\n }\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.admin = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n // \n // \n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n //incoming sms check\n this.uhleadsservice.incomingSmsjudson.subscribe((from: any) => {\n\n if (from.from) {\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n\n });\n }\n });\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n this.uhleadsservice.callStatusjudson.subscribe((status) => {\n this.callStatus = status;\n });\n\n this.uhleadsservice.getCallSidjudson.subscribe((sid) => {\n this.callSid = sid;\n });\n }\n\n startTimer() {\n this.stopTimer();\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n stopTimer() {\n this.countupTimerService.stopTimer();\n }\n\n onClick(check) {\n this.uhleadsservice.pageNumber.next(1);\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else {\n this.tab = null;\n }\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.activityTable.length; i++) {\n this.leadIds.push(this.activityTable[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.uhleadsservice\n .assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe(\n (res) => {\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: this.selectedAgent,\n GUID: \"\",\n LeadId: this.leadIds,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Assigned\",\n description:\n \"New leads are assigned to you by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"AssignedToAgent\",\n token: this.userData.token,\n };\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n // this.getDashboardLeads();\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n setLeadType() {\n this.leadType = \"\";\n }\n\n showTotalApplications() {\n this.statusValue = \"all\";\n this.leadType = \"all\";\n this.currentCard = \"total\";\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"all\",\n start: this.startDate,\n end: this.endDate,\n },\n \"all\"\n );\n }\n //Shows date if the filter value is custom\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n showCompletedApplications() {\n this.statusValue = \"all\";\n this.leadType = \"validatedDocs\";\n this.currentCard = \"validated\";\n\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"validatedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"validatedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"validatedDocs\"\n );\n }\n showUncontactable() {\n this.statusValue = \"all\";\n this.leadType = \"uncontactable\";\n this.currentCard = \"uncontactable\";\n\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"uncontactable\",\n start: this.startDate,\n end: this.endDate,\n },\n \"uncontactable\"\n );\n }\n showCompletedApplications2() {\n this.statusValue = \"all\";\n this.leadType = \"completedDocs\";\n this.currentCard = \"completed\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"completedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"completedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"completedDocs\"\n );\n }\n\n showIncompleteApplications() {\n this.statusValue = \"all\";\n this.leadType = \"pendingDocs\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"ValidationPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pendingDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pendingDocs\"\n );\n }\n showDocumentsPending() {\n this.statusValue = \"all\";\n this.leadType = \"pendingDocs\";\n this.currentCard = \"updated\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pendingDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pendingDocs\"\n );\n }\n showDocumentsSubmitted() {\n this.statusValue = \"all\";\n this.leadType = \"documentsSubmitted\";\n this.currentCard = \"updated\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsSubmitted\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"documentsSubmitted\",\n start: this.startDate,\n end: this.endDate,\n },\n \"documentsSubmitted\"\n );\n }\n showCallback() {\n this.statusValue = \"all\";\n this.leadType = \"callback\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"callback\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"callback\",\n start: this.startDate,\n end: this.endDate,\n },\n \"callback\"\n );\n }\n showCallsPending() {\n this.statusValue = \"all\";\n this.leadType = \"pending\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"pendingCalls\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pending\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pending\"\n );\n }\n\n showRevalidate() {\n this.statusValue = \"all\";\n this.leadType = \"revalidatedDocs\";\n this.currentCard = \"revalidate\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"revalidate\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"revalidatedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"revalidatedDocs\"\n );\n }\n\n showApplicationsDenied() {\n this.statusValue = \"all\";\n this.leadType = \"studentDenied\";\n this.currentCard = \"denied\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"denied\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"studentDenied\",\n start: this.startDate,\n end: this.endDate,\n },\n \"studentDenied\"\n );\n }\n\n showUnassigned() {\n this.statusValue = \"all\";\n this.leadType = \"unassigned\";\n this.currentCard = \"total\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"unassigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"unassigned\",\n start: this.startDate,\n end: this.endDate,\n },\n \"unassigned\"\n );\n }\n\n showAssigned() {\n this.statusValue = \"all\";\n this.leadType = \"assigned\";\n this.currentCard = \"assigned\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"assigned\",\n start: this.startDate,\n end: this.endDate,\n },\n \"assigned\"\n );\n }\n\n showAssignedtoMe() {\n this.statusValue = \"all\";\n this.leadType = \"assignedtoMe\";\n this.currentCard = \"assigned\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assignedtome\"\n // );\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"assignedtoMe\",\n start: this.startDate,\n end: this.endDate,\n };\n this.getTopBarCRM();\n this.getCardCount(obj, \"assignedtoMe\");\n }\n\n public onInput(event: any) {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: 1,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search != \"\") {\n // this.uhleadsservice\n // .GetSearchDashboardLeads(payload)\n // .subscribe((res: any) => {\n // // \n // this.activityTable = res.data;\n // });\n // this.activityTable = this.allRecords;\n } else if (this.search == \"\") {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.totalRecords.nativeElement.click();\n // this.getTopBarCRM();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n searchLeads(value, page) {\n this.leadType = \"all\";\n this.currentCard = \"total\";\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.uhleadsservice.GetSearchDashboardLeads(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n this.activityTable = res.data;\n\n for (let i = 0; i < this.activityTable.length; i++) {\n if (this.activityTable[i].PhoneNumber == \"0000000000\") {\n this.activityTable[i].PhoneNumber = \"-\";\n this.activityTable[i].CountryCode = \"-\";\n }\n this.activityTable[i].AssignedtoName = this.getAgentName(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoColor = this.getAgentColor(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable[i].Assignedto\n );\n if (\n this.activityTable[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable[i].LeadDocStatus = \"Revalidate\";\n }\n }\n if (this.activityTable.length <= 0) {\n this.noRecords = true\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n //Table Filter\n dropdownSelect(event) {\n this.uhleadsservice.pageNumber.next(1);\n this.onClick(null);\n this.leadType = \"dropdown\";\n this.cardLeadType = event;\n this.getTopBarCRM();\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n\n updateActivity() {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n this.totalApplications = this.activityTable.length;\n this.completedApplications = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"validated\" || el.LeadDocStatus == \"Validated\";\n }).length;\n this.completedApplications2 = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"completed\" || el.LeadDocStatus == \"complete\";\n }).length;\n this.incompleteapplications = this.activityTable.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n }).length;\n this.documentspending = this.activityTable.filter(function (el) {\n return el.Phase == \"pending\";\n }).length;\n this.documentssubmitted = this.activityTable.filter(function (el) {\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n }).length;\n this.callback = this.activityTable.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n getDownloadLink() {\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/\" + environment.Judsonucsvfile)\n .subscribe(\n (data) => {\n this.downloadLink = data[\"url\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n redirectToUpload() {\n\n this.router.navigate([\"./upload/\" + this.projectId]);\n }\n\n convertFile(e) {\n\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n\n\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"GUID\" && sheet_data.length !== 0) {\n this.fileData = this.uhleadsservice.convert2dArraytoObject(sheet_data);\n\n this.uhleadsservice\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n // this.getDashboardLeads(this.leadType);\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n get createLeads() {\n return this.uhleadsservice.createLead.controls;\n }\n get editLeads() {\n return this.uhleadsservice.editLead.controls;\n }\n\n createLead() {\n this.uhleadsservice.createLead.controls['form_name'].setValue('none');\n this.uhleadsservice.createLead.controls['channel'].setValue('none');\n this.submitted = true;\n if (this.uhleadsservice.createLead.invalid) {\n return;\n }\n let fileData: Exceldata2[] = [\n new Exceldata2(\n this.uhleadsservice.createLeadValue[\"GUID\"],\n this.uhleadsservice.createLeadValue[\"firstName\"],\n this.uhleadsservice.createLeadValue[\"lastName\"],\n this.uhleadsservice.createLeadValue[\"countryCode\"],\n this.uhleadsservice.createLeadValue[\"phoneNumber\"],\n this.uhleadsservice.createLeadValue[\"email\"],\n \"\",\n this.uhleadsservice.createLeadValue[\"program\"],\n this.uhleadsservice.createLeadValue[\"applicationType\"],\n this.uhleadsservice.createLeadValue[\"CreatedDate\"],\n this.uhleadsservice.createLeadValue[\"comments\"]\n ),\n ];\n this.uhleadsservice\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Manual'\n })\n .subscribe(\n (data) => {\n this.uhleadsservice.showSuccess(\"Lead Added\", \"Success\");\n this.uhleadsservice.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.leadType = \"all\";\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getDashboardLeads(leadType) {\n if (!this.projectId) {\n return;\n }\n // this.statusValue = \"pending\";\n this.leadType = leadType;\n return this.marketingService\n .getDashboardLeads({\n admin: this.admin,\n // admin: true,\n mail: this.userData[\"mail\"],\n ProjectId: this.projectId,\n leadType: this.leadType,\n counselling: this.counselling,\n })\n .subscribe(\n (data) => {\n this.callData = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.showDate = false;\n }\n }\n getCounts(userData: any, leadtype, startDate, endDate, filter) {\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n // this.activityTable = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == environment.Judsonuleads\n )[0].id;\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityData2 = res;\n\n // this.callData = this.activityTable;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n this.activityData2[i].PhoneNumber = \"-\";\n this.activityData2[i].CountryCode = \"-\";\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityData2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityData = this.activityData2;\n this.totalApplications = this.activityData.length;\n this.completedApplications = this.activityData.filter(function (\n el\n ) {\n return el.LeadDocStatus == \"validated\";\n }).length;\n this.completedApplications2 = this.activityData.filter(function (\n el\n ) {\n return (\n el.LeadDocStatus == \"completed\" ||\n el.LeadDocStatus == \"Completed\"\n );\n }).length;\n this.incompleteapplications = this.activityData.filter(function (\n el\n ) {\n // return el.LeadDocStatus != \"validated\";\n return (\n el.LeadDocStatus == \"pending\" ||\n el.LeadDocStatus == \"Admin-revalidate\" ||\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"reopen\" ||\n el.LeadDocStatus == \"denied\"\n );\n }).length;\n var count = 0;\n\n this.documentspending = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n count = count + 1;\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n count = count + 1;\n } else {\n }\n }\n return el.Phase == \"pending\";\n }).length;\n this.documentspending = count;\n this.documentsDenied = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"denied\" || el.LeadDocStatus == \"Denied\"\n );\n }).length;\n this.CallsPending = this.activityData.filter(function (el) {\n return el.Phase == \"pending\" || el.Phase == \"Pending\";\n }).length;\n this.revalidate = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"GBP-revalidate\"\n );\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == \"\" || el.Assignedto == \"-\";\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.assignedtome = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == \"\" || el.Assignedto == \"-\";\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.documentssubmitted =\n this.totalApplications - this.documentspending;\n\n this.callback = this.activityData.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n\n var DocPendingList = [];\n var DocSubmittedList = [];\n\n if (filter == \"all\") {\n this.activityTable = this.activityData;\n } else if (filter == \"validatedDocuments\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == \"validated\";\n });\n } else if (filter == \"completedDocuments\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == \"completed\";\n });\n } else if (filter == \"ValidationPending\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"pending\" ||\n el.LeadDocStatus == \"Admin-revalidate\" ||\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"reopen\" ||\n el.LeadDocStatus == \"denied\"\n );\n });\n } else if (filter == \"completedApplications\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == \"complete\" || el.APPStatus == \"complete\";\n });\n } else if (filter == \"incompleteApplications\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n });\n } else if (filter == \"documentsPending\") {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n DocPendingList.push(el);\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n DocPendingList.push(el);\n }\n }\n return el.Phase == \"pending\";\n });\n this.activityTable = DocPendingList;\n } else if (filter == \"documentsSubmitted\") {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length != 0) {\n var docCheck = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n docCheck = false;\n }\n }\n if (docCheck == true) {\n DocSubmittedList.push(el);\n }\n }\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n });\n this.activityTable = DocSubmittedList;\n } else if (filter == \"callback\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n });\n } else if (filter == \"denied\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"Denied\" || el.LeadDocStatus == \"denied\"\n );\n });\n } else if (filter == \"pendingCalls\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == \"pending\" || el.Phase == \"Pending\";\n });\n } else if (filter == \"revalidate\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"GBP-revalidate\"\n );\n });\n } else if (filter == \"assigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != \"-\";\n });\n } else if (filter == \"assignedtome\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n });\n } else if (filter == \"unassigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == \"-\" || el.Assignedto == \"\";\n });\n } else if (filter == \"assigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != \"-\";\n });\n } else if (filter == \"unassigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == \"-\" || el.Assignedto == \"\";\n });\n }\n\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n }\n\n getData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityTable2 = res;\n\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n // this.getAgentName()\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAllData(userData: any, leadtype, startDate, endDate) {\n\n }\n\n getCallData() { }\n\n startCallListener() {\n this.uhleadsservice.startCalljudson.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n }\n\n startCallListener2(data, index) {\n\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatusCheck = true;\n\n this.callData[0] = data;\n this.selectedLead = data;\n\n this.uhleadsservice.getDocumentDetails(data.GUID).subscribe(\n (res) => {\n this.documentsList = res;\n this.documentsList = this.documentsList.uploadDocsStatus;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.marketingId = {\n id: data?.id,\n status: data?.CallStatus,\n name: data?.FirstName,\n email: data?.Email,\n phoneNumber: \"+\" + data?.CountryCode + data?.PhoneNumber,\n // phoneNumber: \"+919848311098\",\n module: data?.Module,\n city: data?.City,\n nextCaller: this.activityTable.length > 1 ? 1 : 0,\n lead: 0,\n };\n\n if (this.activityTable.length > 1) {\n var nextFirstname = this.activityTable[index + 1]?.FirstName ? this.activityTable[index + 1]?.FirstName : '';\n var nextLastname = this.activityTable[index + 1]?.LastName ? this.activityTable[index + 1]?.LastName : '';\n var nextCallerCity = this.activityTable[index + 1]?.City ? this.activityTable[index + 1]?.City : '';\n var nextCallerCountryCode = this.activityTable[index + 1]?.CountryCode ? this.activityTable[index + 1]?.CountryCode.replace(\"+\", \"\") : '';\n var nextCallerPhoneNumber = this.activityTable[index + 1]?.PhoneNumber ? this.activityTable[index + 1]?.PhoneNumber : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber : '';\n this.startIndex = index + 1;\n }\n\n\n this.uhleadsservice.startCalljudson.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n //Start Call timer\n\n // conferenceCall(from) {}\n\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCalljudson.next({ value });\n }\n\n conferenceCall2(value: any) {\n if (value.phone_number) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: value.phone_number,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n if (value.manager[0]) {\n if (value.manager[0].Name) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: \"client:\" + value.manager[0].value,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n updateComments() {\n if (this.newStatusCheck) {\n } else {\n // this.uhleadsservice.getCallSiduwla.subscribe(\n // (data) => {\n this.uhleadsservice\n .updateComments2({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n diyear: this.DIyear,\n diterms: this.DIterms,\n CallSid: this.callSid,\n })\n .subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.commentText = \"\";\n this.closeButton2.nativeElement.click();\n }\n }\n\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.newStatusCheck = false;\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n onStatusChange(data) {\n this.newStatus = data;\n this.newStatusCheck = false;\n if (this.newStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == environment.Judsonuleads) {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendSms(payload, this.projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n if (smsList.SMSDetails) {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n });\n }\n\n sideNavData(data) {\n this.activityfilterString = \"\";\n this.file = null;\n this.customDocName = \"\";\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.uhleadsservice.getStudentActivity(data.id).subscribe(\n (res: any) => {\n this.uhleadsservice.getSms(data.id).subscribe((smsList: any) => {\n if (smsList?.SMSDetails) {\n this.smsList = smsList?.SMSDetails;\n }\n });\n let wpObj = {\n phone: \"+\" + res?.CountryCode.replace('+', '') + res?.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n if (res.APPStatus == 'complete') {\n res.APPStatus = 'Completed';\n }\n this.sideViewerData = res;\n \n this.currentLeadId = this.sideViewerData.id;\n if (this.customDocLeadId != this.currentLeadId) {\n this.customFileList = [];\n this.customDocLeadId = this.currentLeadId;\n } else {\n this.customDocLeadId = this.currentLeadId;\n }\n this.currentGuid = this.sideViewerData.GUID;\n this.replaceNull(this.sideViewerData);\n this.documentValidation(data.id);\n function replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n this.sideViewerData.uploadlistofdocuments.forEach((x) => {\n x.DocComments.forEach((y) => {\n y.AgentColor = this.getAgentColor(y.AgentMail);\n });\n });\n for (\n let i = 0;\n i < this.sideViewerData.uploadlistofdocuments.length;\n i++\n ) {\n this.sideViewerData.LeadComments[i].AgentColor = this.getAgentColor(\n this.sideViewerData.LeadComments[i].AgentMail\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n\n documentValidation(id) {\n this.uhleadsservice.getDocumentComments(id).subscribe(\n (res) => {\n this.documentsList2 = res;\n this.documentsList2 = this.documentsList2.uploadlistofdocuments;\n \n \n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n this.checkValidation();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n changeValidation(value, docId) {\n this.uhleadsservice\n .updateValidationStatus({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n })\n .subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"Document Status updated!\",\n \"Success!\"\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: \"\",\n GUID: \"\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: docId,\n Title: \"Document Validation\",\n description:\n \"Document status changed to \" +\n value +\n \" by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"Validation\",\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.documentsList2.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.documentsList2.length; i++) {\n if (\n this.documentsList2[i].AgentValidation == \"revalidate\" ||\n this.documentsList2[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (this.documentsList2[i].AgentValidation == \"validated\") {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n if (this.validationStatus == true) {\n // Send Notification\n\n let payload = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRMGBP\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n // this.NotificationService.sendNotifications(payload).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // this.uhleadsservice.showSuccess(\n // \"All Documents Validated\",\n // \"Validation Complete\"\n // );\n // this.NotificationService.success(\"Validation\", \"Notification sent\");\n // }\n // }\n // );\n // this.NotificationService.sendNotifications(payload2).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // // this.uhleadsservice.showSuccess(\"All Documents Validated\", \"Validation Complete\");\n // this.NotificationService.success(\n // \"Validation\",\n // \"Notification sent to GBP\"\n // );\n // }\n // }\n // );\n }\n }\n\n postComments(item, HTMLid) {\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentGuid,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n // Admin: false,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData(item);\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n\n let payload = {\n LeadId: 0,\n GBPAssignedTo: \"\",\n Platform: \"CRM\",\n GUID: this.currentGuid,\n StudentDocId: 0,\n notificationType: \"LeadComments\",\n description: this.getAgentName(this.userData.mail) + \" has commented\",\n AgentMail: this.userData.mail,\n Title: \"Comment\",\n token: this.userData.token,\n };\n\n if (HTMLid == \"leadComments\") {\n payload.StudentDocId = 0;\n } else if (\n HTMLid == \"documentComments\" ||\n HTMLid == \"callingComments\"\n ) {\n payload.StudentDocId = item.StudentdocId;\n }\n try {\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n // this.toastr.showSuccess('Successfully send notification', 'Notification')\n // this.NotificationService.success('success', 'loading component');\n } else if (res.status == 500) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } catch (err) {\n\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n callFromDocs(data, item) {\n this.startCallListener2(data, 0);\n this.currentItem = item;\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.StudentdocId);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n uploadCustomDocument(event) {\n let fileList: FileList = event.target.files;\n this.file = fileList[0];\n event.target.value = '';\n if (fileList.length > 0) {\n if (!this.validateFile(this.file.type)) {\n this.uhleadsservice.showError(\"Invalid file format!\", \"Error\");\n return;\n }\n } \n }\n\n addCustomDocument() {\n this.docUploadError = \"\";\n if (this.customDocName == \"\") {\n this.docUploadError = \"Document name cannot be empty!\";\n return;\n } else {\n let formData: FormData = new FormData();\n formData.append(\"GUID\", this.currentGuid);\n formData.append(\"docName\", this.customDocName);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n if (this.file != undefined) {\n formData.append(\"document\", this.file, this.file.name);\n }\n this.uhleadsservice.uploadCustomDocument(formData).subscribe(\n (res: any) => {\n // let response = res.map((d:any) =>{status: d.status});\n let response = res.status;\n if (response == 200) {\n this.customFileList.push({\n docName: this.customDocName,\n fileName: \"\",\n });\n this.docUploadError = \"Custom document added\";\n this.uhleadsservice.showSuccess(\n \"Custom document added!\",\n \"Success\"\n );\n } else if (response == 201) {\n this.customFileList.push({\n docName: this.customDocName,\n fileName: this.file.name,\n });\n this.docUploadError = \"Uploaded a custom document\";\n this.uhleadsservice.showSuccess(\n \"Uploaded a custom document!\",\n \"Success\"\n );\n } else if (response == 202) {\n this.docUploadError = \"Document with given name already exists!\";\n this.uhleadsservice.showError(\n \"Document with given name already exists!\",\n \"Error\"\n );\n return;\n }\n this.sideNavData({ id: this.currentLeadId });\n this.file = null;\n this.customDocName = \"\";\n },\n (err) => {\n if (err.error.status == 400) {\n this.docUploadError = `The file ${err.error.file} is corrupted. Please upload valid files .`\n } else if (err.error.status == 500) {\n this.docUploadError = err.error.message;\n }\n else {\n this.docUploadError = 'Files not uploaded. Please check document extensions, upload supported documents.'\n }\n this.uhleadsservice.showError(\n this.docUploadError,\n \"Error\"\n );\n this.handleError.handleError(err);\n }\n );\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.uhleadsservice\n .deleteCustomDocument({\n StudentdocId: docId,\n docName: docName,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n })\n .subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.uhleadsservice.showSuccess(\n \"Custom document deleted successfully.\",\n \"Deleted Successfully!\"\n );\n } else {\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.sideNavData({ id: this.currentLeadId });\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n playAudio(data) {\n // let audio = new Audio();\n if (this.audioStatus == false) {\n this.audio.src = data.RecordingURL;\n this.audio.pause();\n this.audio.currentTime = 0;\n // this.audio.load();\n this.audio.play();\n this.audioStatus = true;\n } else if (this.audioStatus == true) {\n this.audio.pause();\n this.audio.currentTime = 0;\n this.audioStatus = false;\n }\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n pauseAudio(data) {\n // audio.stop();\n }\n\n callNext() { }\n\n stopCurrentCall() {\n this.uhleadsservice.startCalljudson.next(null);\n this.uhleadsservice.stopCalljudson.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n\n stopCallListener() {\n\n this.uhleadsservice.startCalljudson.next(null);\n this.uhleadsservice.stopCalljudson.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n openCreateLead(content) {\n this.modalService.open(content, { size: \"md\" });\n let country = countryCodes.find(x => x.callingCodes[0] == 1);\n this.selectCountry(country);\n }\n openEditLead(content, lead) {\n if (lead.DOB == \"-\") {\n lead.DOB = \"\";\n }\n\n this.editStatus = lead.CallStatus;\n this.DIterms = lead.DIterms;\n this.DIyear = parseInt(lead.DIyear);\n if (this.editStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n this.leadtoEdit = {\n LeadId: lead.id,\n FirstName: lead.FirstName,\n LastName: lead.LastName,\n CountryCode: lead.CountryCode,\n PhoneNumber: lead.PhoneNumber,\n Email: lead.Email,\n DOB: lead.DOB,\n EnrollmentYear: lead.EnrollmentYear,\n EnrollmentTerm: lead.EnrollmentTerm,\n Address: lead.Address,\n City: lead.City,\n State: lead.State,\n Zip: lead.Zip,\n Country: lead.Country,\n LeadComment: this.editComment,\n CallStatus: this.editStatus,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"lg\" });\n\n this.uhleadsservice.editLead.markAllAsTouched();\n if (lead.Country != \"-\") {\n let country = countryCodes.find(x => ((x.alpha2Code == lead.Country)|| (x.name == lead.Country)));\n this.selectCountryEditName(country);\n }\n if (lead.CountryCode != \"-\") {\n let country1 = countryCodes.find(x => x.callingCodes[0] == lead.CountryCode);\n this.selectCountryEdit(country1);\n }\n }\n\n replaceAll(string, search, replace) {\n return string.split(search).join(replace);\n }\n\n updateLead() {\n if (this.leadtoEdit.EnrollmentTerm === '-') {\n this.leadtoEdit.EnrollmentTerm = null;\n this.uhleadsservice.editLead.controls['EnrollmentTerm'].setValue(null);\n }\n if (this.leadtoEdit.EnrollmentYear === '-') {\n this.leadtoEdit.EnrollmentYear = null;\n this.uhleadsservice.editLead.controls['EnrollmentYear'].setValue(null);\n }\n this.edited = true;\n if (this.uhleadsservice.editLead.invalid) {\n this.uhleadsservice.editLead.markAllAsTouched();\n return;\n }\n\n // this.leadtoEdit.CountryCode = this.leadtoEdit.CountryCode.replace(\"+\", \"\");\n this.leadtoEdit.CountryCode = this.replaceAll(\n this.leadtoEdit.CountryCode,\n \"+\",\n \"\"\n );\n this.leadtoEdit.DIterms = this.DIterms;\n this.leadtoEdit.DIyear = this.DIyear;\n if (this.leadtoEdit.CountryCode == \"-\") {\n this.leadtoEdit.CountryCode = \"00\";\n }\n if (this.leadtoEdit.PhoneNumber == \"-\") {\n this.leadtoEdit.PhoneNumber = \"0000000000\";\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.uhleadsservice.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n\n document.getElementById(\"closeButton3\").click();\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n page: 1,\n },\n this.cardLeadType\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n // Clear file and document name in custom document upload modal\n clearData() {\n this.file = null;\n this.customDocName = \"\";\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append(\"fileUpload\", this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, this.docUploadID).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.cancelUpload();\n this.uploadSuccess = \"success\";\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.docUploadStatus = false;\n\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n }\n },\n (err) => {\n this.handleError.handleError(err);\n this.uploadSuccess = \"failure\";\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n );\n }\n }\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n\n open() {\n let payload = {\n LeadId: 0,\n GBPAssignedTo: \"\",\n Platform: \"CRM\",\n // GUID: \"f083dc22-9ed2-4204-b46c-d4e2958b6de0\",\n GUID: \"12356yyu98\",\n StudentDocId: 0,\n notificationType: \"LeadComments\",\n description: \"Test Comment\",\n AgentMail: \"ramana@universityhub.com\",\n Title: \"Test\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Comment\",\n description: \"12356yyu98\",\n notificationType: \"LeadComments\",\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.NotificationService.sendNotifications(payload2).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.NotificationService.success(\"success\", \"loading component\");\n // this.NotificationService.error('error', 'loading component');\n // this.NotificationService.info('info', 'loading component');\n // this.NotificationService.alert('alert', 'loading component');\n // this.NotificationService.warn('warn', 'loading component');\n }\n\n viewLead(id) {\n this.sideNav.toggle();\n this.sideNavData({ id: id });\n }\n\n onInputActivity(event: any) {\n\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n getTopBarCRM() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.uhleadsservice\n .getTopBarCRM(postData)\n .toPromise()\n .then((resp: any) => {\n this.totalPages = 1;\n\n if (this.leadType == \"all\") {\n this.totalPages = resp.TopBarCount.total;\n } else if (this.leadType == \"assigned\") {\n this.totalPages = resp.TopBarCount.assigned;\n } else if (this.leadType == \"assignedtoMe\") {\n this.totalPages = resp.TopBarCount.assignedtoMe;\n } else if (this.leadType == \"completedDocs\") {\n this.totalPages = resp.TopBarCount.completedDocs;\n } else if (this.leadType == \"documentsSubmitted\") {\n this.totalPages = resp.TopBarCount.documentsSubmitted;\n } else if (this.leadType == \"pendingDocs\") {\n this.totalPages = resp.TopBarCount.pendingDocs;\n } else if (this.leadType == \"reopen\") {\n this.totalPages = resp.TopBarCount.reopen;\n } else if (this.leadType == \"revalidatedDocs\") {\n this.totalPages = resp.TopBarCount.revalidatedDocs;\n } else if (this.leadType == \"studentDenied\") {\n this.totalPages = resp.TopBarCount.studentDenied;\n } else if (this.leadType == \"unassigned\") {\n this.totalPages = resp.TopBarCount.unassigned;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"validatedDocs\") {\n this.totalPages = resp.TopBarCount.validatedDocs;\n } else if (this.leadType == \"pending\") {\n this.totalPages = resp.TopBarCount.pending;\n } else if (this.leadType == \"called\") {\n this.totalPages = resp.TopBarCount.called;\n } else if (this.leadType == \"callback\") {\n this.totalPages = resp.TopBarCount.callback;\n } else if (this.leadType == \"informed\") {\n this.totalPages = resp.TopBarCount.informed;\n } else if (this.leadType == \"wrongnumber\") {\n this.totalPages = resp.TopBarCount.wrongnumber;\n } else if (this.leadType == \"notanswered\") {\n this.totalPages = resp.TopBarCount.notanswered;\n } else if (this.leadType == \"deferredintake\") {\n this.totalPages = resp.TopBarCount.deferredintake;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"dropdown\") {\n this.uhleadsservice.getCountByCallStatus({\n status: this.cardLeadType,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n }).subscribe((count: any) => {\n this.totalPages = count.count;\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n });\n }\n\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n\n this.topBarCounts = resp.TopBarCount;\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n\n sortData(arr, value) {\n\n return arr.sort((a, b) => {\n return a[value] - b[value];\n //return a[value] < b[value] ? -1 : a[value] > b[value] ? 1: 0\n });\n }\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n if (column == \"createdAt\") {\n if (this.currentCard == \"total\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"validated\") {\n column = \"ValidatedDate\";\n } else if (this.currentCard == \"uncontactable\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"completed\") {\n column = \"CompletedDate\";\n } else if (this.currentCard == \"updated\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"revalidate\") {\n column = \"RevalidateDate\";\n } else if (this.currentCard == \"denied\") {\n column = \"DeniedDate\";\n } else if (this.currentCard == \"assigned\") {\n column = \"createdAt\";\n }\n }\n this.sortColumn = column;\n this.activityTable = sortJsonArray(\n this.activityTable,\n column,\n this.sortOrder\n );\n\n // if (this.sortOrder == 'asc'){\n // this.sortOrder ='des'\n // }else{\n // this.sortOrder = 'asc';\n // }\n }\n\n getCardCount(obj, type) {\n\n this.cardLeadType = type;\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.activityData2 = [];\n this.activityData = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n\n delete obj.ProjectId;\n obj.ProjectId = projects.filter(\n (x) => x.Name == environment.Judsonuleads\n )[0].id;\n // obj.ProjectId = data;\n obj.page = this.pageNumber;\n obj.leadType = this.cardLeadType;\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n this.activityData2 = resp;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n this.activityData2[i].PhoneNumber = \"-\";\n this.activityData2[i].CountryCode = \"-\";\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityData2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n this.activityData = this.activityData2;\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.activityTable = this.activityData;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getCardData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n let obj = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n page: this.pageNumber,\n };\n\n\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n // \n this.activityTable2 = resp;\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n // \n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"total\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n checkThresHold(content, item, id) {\n this.thresItem = item;\n this.thresId = id;\n if (item.TotalCalls > 12) {\n this.thresModal = this.modalService.open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n });\n } else {\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById(\"openModalButton\").click();\n }\n }\n thresHold() {\n this.thresModal.close();\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById(\"openModalButton\").click();\n }\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n onDIYearChange(data) {\n this.DIyear = data;\n }\n getLeadDocStatusName(value) {\n switch (value) {\n case 'notsubmitted':\n return 'Not Submitted';\n break;\n case 'previousintake':\n return 'Previous Intake';\n break;\n\n default:\n return value;\n break;\n }\n }\n sendSmsWp(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n let wpObj = {\n phone: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n }\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.createLead.get(\"countryCode\").patchValue(this.selectedCountryCode);\n }\n selectCountryEdit(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.editLead.get(\"CountryCode\").patchValue(this.selectedCountryCode);\n this.leadtoEdit.CountryCode = this.selectedCountryCode.toString();\n }\n selectCountryEditName(country) {\n this.selectedCountryName = country.name;\n this.leadtoEdit.Country = this.selectedCountryName;\n this.uhleadsservice.editLead.get(\"Country\").patchValue(country?.alpha2Code)\n }\n fetchCountries() {\n this.countries = countryCodes;\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date : \"medium\" }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    DirectionInComing CallOutGoing Call
    Call Recording\n \n
    Comments{{ i.Comments }}
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    GUID{{ sideViewerData.GUID }}
    Name\n {{\n sideViewerData.FirstName + \" \" + sideViewerData.LastName\n | titlecase\n }}\n
    DOB{{ sideViewerData.DOB | date: \"dd MMM, yyyy\"}}
    Submitted Date{{ sideViewerData.createdAt | date : \"medium\" }}
    APP Status{{ sideViewerData.APPStatus | titlecase }}
    Enrollment Year{{ sideViewerData.EnrollmentYear || \"NA\" }}
    Program{{ sideViewerData.Program }}
    Phone Number\n {{\n \"+\" + sideViewerData.CountryCode + sideViewerData.PhoneNumber\n }}\n
    Email{{ sideViewerData.Email }}
    Address\n {{\n sideViewerData.Address +\n \" \" +\n sideViewerData.City +\n \" \" +\n sideViewerData.State +\n \" \" +\n sideViewerData.Zip +\n \" \" +\n sideViewerData.Country || \"NA\" | titlecase\n }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item.ProgramDoc | titlecase }}\n
    \n \n
    \n\n
    \n {{ item.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n\n \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    {{ i.AgentName }}
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.total }}\n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assignedtoMe || 0 }}\n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.completedDocs || 0 }}\n
    \n
    \n
    Completed Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.validatedDocs || 0 }}\n
    \n
    \n
    Validated Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.documentsSubmitted || 0 }}\n
    \n
    \n
    Documents Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.pendingDocs || 0 }}\n
    \n
    \n
    Documents Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.studentDenied || 0 }}\n
    \n
    \n
    Students Denied
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.revalidatedDocs || 0 }}\n
    \n
    \n
    Revalidate Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.uncontactable || 0 }}\n
    \n
    \n
    Uncontactable
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.unassigned || 0 }}\n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assigned || 0 }}\n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    Total Applications
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n\n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Add New Document\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n {{ i.docName | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Upload Documents\n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n \n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded\n successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document\n extensions, upload supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    Created Date
    \n
    \n Validation Date\n
    \n
    \n Uncontactable Date\n
    \n
    \n Completed Date\n
    \n
    \n Revalidation Date\n
    \n
    Denied Date
    \n
    \n Assigned Date\n
    \n \n
    \n
    \n Updated Date\n \n \n Student Name\n \n \n Student Email\n \n \n Assigned To\n \n \n Phone Number\n \n \n Enrollment Term\n \n \n Study Programme\n \n \n Document Status\n \n \n Call Status\n \n Actions
    \n
    \n
    \n \n
    \n
    \n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.ValidatedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.CompletedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.DeniedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.RevalidateDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n
    \n
    \n
    \n
    \n {{ item.updatedAt | date : \"dd MMM, yyyy\" }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ item.Email | lowercase }}\n
    \n
    \n
    \n
    \n \n\n

    \n {{ item.AssignedtoInitial }}\n

    \n
    \n
    \n {{ item.AssignedtoName | titlecase }}\n
    \n
    \n
    \n {{ item.PhoneNumber }}\n \n {{ item.EnrollmentTerm }}\n \n {{ item.Program | uppercase }}\n \n \n Not Submitted\n \n \n {{ getLeadDocStatusName(item?.LeadDocStatus) | titlecase }}\n \n \n Pending\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred\n Intake\n Not Answered\n Deferred Intake\n Un Contactable\n \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Calling Screens\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    \n {{ callStatus }}\n
    \n

    \n \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Student details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{\n callData[0]?.FirstName +\n \" \" +\n callData[0].LastName\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.GUID }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.APPStatus }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0].DOB | date: \"dd MMM, yyyy\"}}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.EnrollmentYear }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Program }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.PhoneNumber }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0]?.Email }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Address }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Document details
    \n
    \n
    \n
    \n
    \n \n {{\n documentsList[i].DocumentName }}\n
    \n
    \n \n {{ documentsList[i + 1].DocumentName }}\n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{\n sideViewerData.FirstName +\n \" \" +\n sideViewerData.LastName\n }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n\n
    \n {{ callStatus }}\n
    \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    LastName is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Please use valid country code .
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    Please use valid phone number .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n \n \n
    \n
    Program is required
    \n
    Only characters are allowed .
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n \n \n
    \n\n \n \n
    \n

    \n Update Lead Details\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    Last Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid Email
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n\n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n\n
    \n
    Phone Number is required
    \n
    Only numbers are allowed
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    Enrollment Year is required
    \n
    Only numbers are allowed
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    Enrollment Term is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }}\n \n
    • \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    Call

    \n \n
    \n
    \n
    \n
    \n You have reached the calling limit.
    Are you sure you want\n to continue?\n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    ","import { Template as Tp } from \"./create-agent/models/template.model\";\n// import { HttpClientService } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { map } from \"rxjs/operators\";\nimport { HttpClientService } from \"../httpclient.service\";\n\ninterface Template {\n Name: string;\n Creator: string;\n FromEmail: string;\n Design: Object;\n Html: string;\n companyId: any;\n}\ninterface profileUpload {\n photo: string;\n id: number;\n}\ninterface UpdateTemplate {\n Html: String;\n Design: Object;\n Active: boolean;\n id: String;\n FromEmail: string;\n}\ninterface SendMail {\n To: string;\n From: { email: string; name: string };\n Subject: string;\n Body: object;\n ReplyTo: string;\n}\n@Injectable({\n providedIn: \"root\",\n})\nexport class MailserviceService {\n baseApiUrl2: any = environment.baseApiUrl2;\n twilioApiUrl: any = environment.twilioApiUrl;\n\n htmlTemplate = new BehaviorSubject(\"\");\n\n constructor(private http: HttpClientService) { }\n\n createTemplate(body: Template) {\n return this.http.post(`${this.baseApiUrl2}createTemplate`, body);\n }\n getAllTemplates(companyId) {\n return this.http.get(`${this.baseApiUrl2}allTemplates/${companyId}`);\n }\n getTemplateById(id) {\n return this.http.get(`${this.baseApiUrl2}getTemplateById/` + id);\n }\n updateTemplate(body: UpdateTemplate) {\n return this.http.put(\n `${this.baseApiUrl2}updateTemplate/` + body[\"id\"],\n body\n );\n }\n getTemplateByName(name: string) {\n return this.http.get(`${this.baseApiUrl2}templateByName/` + name);\n }\n\n getTemplateCompany(name: string, companyId) {\n return this.http.get(`${this.baseApiUrl2}getTemplate/${companyId}/${name}`);\n }\n\n sendmail(body: SendMail, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/mail/send`,\n body\n );\n }\n getConfiguration(name) {\n return this.http\n .get(`${this.baseApiUrl2}configureByName/${name}`)\n .pipe(\n map((data) => {\n return data[\"Value\"];\n })\n );\n }\n updateConfiguration(body: { name: string; value: string }) {\n return this.http.put(`${this.baseApiUrl2}updateConfiguration`, body);\n }\n\n uploadFile(body: FormData) {\n return this.http.post(`${this.baseApiUrl2}fileUpload`, body);\n }\n\n updateProfilePhoto(body: profileUpload) {\n return this.http.put(`${this.baseApiUrl2}updateProfile`, body);\n }\n\n deleteTemplate(id) {\n return this.http.post(`${this.baseApiUrl2}deleteTemplates`, { id: id });\n }\n\n getMarketingTemplates(companyId) {\n return this.http.get(\n `${this.baseApiUrl2}getMarketingTemplates/${companyId}`\n );\n }\n}\n","// import { map } from 'rxjs/operators';\n// import { HttpClientService } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { HttpClientService } from \"../httpclient.service\";\nimport { CallLogs } from \"../pages/calllogs/models/CallLogs.model\";\n\ninterface CallLogInput {\n companyId: string | number;\n from: Date | string;\n to: Date | string;\n rowNumber: number;\n workerSid?: string;\n}\n\ninterface CompanyIvr {\n projectName: string;\n twilioNumber: string;\n projectId: string;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ManagementService {\n baseApiUrl2: any = environment.baseApiUrl2;\n twilioApiUrl: any = environment.twilioApiUrl;\n\n constructor(private http: HttpClientService) {}\n\n getMenus() {\n return this.http.get(`${this.baseApiUrl2}getAllMenus`);\n }\n\n getRoleMenus() {\n return this.http.get(`${this.baseApiUrl2}getRoleMenus`);\n }\n\n updateMenu({ id, displayMenus }: { id: string; displayMenus: any[] }) {\n return this.http.post(`${this.baseApiUrl2}updateRoleMenu/${id}`, {\n displayMenus,\n });\n }\n\n getRoleMenuById(id) {\n return this.http.get(`${this.baseApiUrl2}getRoleMenuById/${id}`);\n }\n\n getRoleByName(name: number) {\n return this.http.get(`${this.baseApiUrl2}getRoleByName/${name}`);\n }\n\n createRoleMenu(body: { roleId: number; displayMenus: any[] }) {\n return this.http.post(`${this.baseApiUrl2}createRoleMenus`, body);\n }\n\n getSideMenuRoles(body: { roles: any[]; superAdmin: boolean }) {\n return this.http.post(`${this.baseApiUrl2}getSideMenuRoles`, body);\n }\n\n // getCallLogs(body: CallLogInput) {\n // return this.http.post(\n // `${this.baseApiUrl2}getCallLogsByCompany`,\n // body\n // );\n // }\n getCallLogs(body: any) {\n return this.http.post(\n `${this.baseApiUrl2}reports/calls`,\n body\n );\n }\n searchCallReports(body: any) {\n return this.http.post(\n `${this.baseApiUrl2}reports/searchCallReports`,\n body\n );\n }\n getLiveCallLogs(id: any) {\n return this.http.get(\n `${this.baseApiUrl2}reports/liveCalls/` + id,\n );\n }\n getRecentCallLogs(id: any) {\n return this.http.get(\n `${this.baseApiUrl2}reports/recentCalls/` + id,\n );\n }\n callsCount(body: any) {\n return this.http.post(\n `${this.baseApiUrl2}reports/callsCount`,\n body\n );\n }\n\n createIvr(body: CompanyIvr, projectId) {\n return this.http.post(`${this.twilioApiUrl}${projectId}/IVR/create`, body);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-agent-calls-dashboard',\n templateUrl: './agent-calls-dashboard.component.html',\n styleUrls: ['./agent-calls-dashboard.component.css']\n})\nexport class AgentCallsDashboardComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Completed Calls
    \n
    \n \n
    235
    \n
    Total Calls
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Scheduled Calls
    \n
    \n \n
    235
    \n
    Counselling Calls
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Calls on Queue
    \n
    \n \n
    235
    \n
    Pending Calls
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Average Response Time
    \n
    \n \n
    58 sec
    \n
    Call Response
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Total Amount of Calls
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Call Summary
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Ranking
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    1\n \n Krishna jakkamsett235
    2Krishna jakkamsett235
    3Krishna jakkamsett235
    4Krishna jakkamsett235
    5Krishna jakkamsett235
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Inbound Close Rate
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Outbound Close Rate
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Transferred calls
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    agent-calls-dashboard works!

    \n
    ","import { MarketingService } from \"./../marketing.service\";\nimport { AuthService } from \"./../../../account/auth/auth.service\";\nimport { SharedService } from \"./../../../shared/shared.service\";\nimport {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild,\n} from \"@angular/core\";\n// import { Info } from './models/Info.model';\nimport * as xlsx from \"xlsx\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-auto-mail\",\n templateUrl: \"./auto-mail.component.html\",\n styleUrls: [\"./auto-mail.component.css\"],\n})\nexport class AutoMailComponent implements OnInit, OnDestroy {\n private projectId: any;\n private admin: boolean;\n private userData: any;\n public callData: any[] = [];\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: string;\n public statusValue: any = \"\";\n public page: any = 1;\n public pageSize: any = 8;\n public downloadLink: any;\n public errorMessage: string = \"\";\n public error: boolean = false;\n public fileData: any = [];\n public filePath: any;\n public apiKey: any = null;\n @ViewChild(\"uploadFile\") uploadFile;\n public numberOfRecords: number = 0;\n public project: Subscription;\n\n constructor(\n private readonly sharedService: SharedService,\n private readonly marketingService: MarketingService,\n private handleError: ErrorHandlerService,\n public projectchangeService: ProjectchangeService\n ) { }\n\n ngOnInit() {\n this.getCompanyId();\n }\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n getCompanyId() {\n this.marketingService\n .getExcelLink(\"services/TemplateDocuments/AccessqueSchedulers.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.getCompanydata();\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.getCompanydata();\n }, 500);\n this.sharedService.pageEvent.emit({ pageName: \"Auto Email Marketing\" });\n }\n\n getCompanydata() {\n if (!this.statusValue) {\n this.marketingService\n .getAutoDialCompany(this.projectId)\n .subscribe((data) => {\n \n if (data) {\n this.apiKey = data[\"API_KEY\"];\n this.marketingService\n .getAutoEmail(this.projectId, data[\"API_KEY\"])\n .subscribe((data) => {\n this.callData = data;\n \n });\n } else {\n this.callData = [];\n this.apiKey = null;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.marketingService\n .getAutoEmailType({ ProjectId: this.projectId, type: this.statusValue })\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n dropdownSelect() {\n this.getCompanydata();\n }\n\n openFileUpload() {\n this.uploadFile.nativeElement.click();\n }\n\n convertFile(e) {\n \n this.filePath = e.target.files[0][\"name\"].toString();\n \n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n \n if (sheet_data[0][0] === \"cc\" && sheet_data.length !== 0) {\n this.fileData = this.marketingService.convert2dArraytoMailData(\n sheet_data,\n this.projectId\n );\n this.marketingService\n .insertEmailData(this.fileData, this.apiKey)\n .then((data) => {\n this.numberOfRecords = data;\n });\n \n this.error = false;\n this.getCompanydata();\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n projectChange(data) {\n this.projectId = data;\n this.getCompanydata();\n }\n}\n","
    \n \n
    \n
    \n
    \n \n \n \n
    \n \n
    \n {{ numberOfRecords + \" \" + \"Inserted Successfully\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n Recipient Email\n \n \n Sender Email\n\n \n \n Type\n \n \n Email Sent\n\n \n \n Module\n\n \n \n Feedback\n\n \n \n Scheduled Time\n\n \n \n Created Date\n\n \n
    \n {{ item[\"RecipientEmail\"] }}\n {{ item[\"SenderEmail\"] || \"-\" }}{{ item[\"Type\"] || \"-\" }}\n {{\n item[\"EmailSent\"] != \"No\"\n ? (item[\"EmailSent\"] | date: \"medium\")\n : \"No\"\n }}\n {{ item[\"Module\"] || \"-\" }}\n {{\n item[\"Feedback\"].length <= 20\n ? item[\"Feedback\"]\n : item[\"Feedback\"].slice(0, 20) + \"...\"\n }}\n -\n {{ item[\"ScheduledEmailTime\"] | date: \"medium\" }}\n {{ item[\"createdAt\"] | date: \"medium\" }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { MarketingService } from \"./../marketing.service\";\nimport { AuthService } from \"./../../../account/auth/auth.service\";\nimport { SharedService } from \"./../../../shared/shared.service\";\nimport { Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\nimport { Info } from \"../infomarketing/models/Info.model\";\nimport * as xlsx from \"xlsx\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-autosms\",\n templateUrl: \"./autosms.component.html\",\n styleUrls: [\"./autosms.component.css\"],\n})\nexport class AutosmsComponent implements OnInit {\n private projectId: any;\n private admin: boolean;\n private userData: any;\n public callData: any[] = [];\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: string;\n public statusValue: any = \"\";\n public page: any = 1;\n public pageSize: any = 8;\n public downloadLink: any;\n public errorMessage: string = \"\";\n public error: boolean = false;\n public fileData: any = [];\n public filePath: any;\n public apiKey: any = null;\n @ViewChild(\"uploadFile\") uploadFile;\n public numberOfRecords: number = 0;\n public project: Subscription;\n ngOnInit() {\n this.marketingService\n .getExcelLink(\"services/TemplateDocuments/AccessqueAutoSms.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.getCompanyId();\n }\n\n constructor(\n private readonly sharedService: SharedService,\n private readonly marketingService: MarketingService,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n\n ) { }\n\n getCompanyId() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.getCompanydata();\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.getCompanydata();\n }, 500);\n this.sharedService.pageEvent.emit({ pageName: \"Auto SMS Marketing\" });\n }\n\n getCompanydata() {\n if (!this.statusValue) {\n this.marketingService\n .getAutoDialCompany(this.projectId)\n .subscribe((data) => {\n \n if (data) {\n this.apiKey = data[\"API_KEY\"];\n this.marketingService\n .getAutoSmsByCompany(this.projectId, data[\"API_KEY\"])\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.callData = [];\n this.apiKey = null;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.marketingService\n .getSMSTypes({ ProjectId: this.projectId, type: this.statusValue })\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n dropdownSelect() {\n this.getCompanydata();\n }\n\n openFileUpload() {\n this.uploadFile.nativeElement.click();\n }\n\n convertFile(e) {\n \n this.filePath = e.target.files[0][\"name\"].toString();\n \n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n \n if (sheet_data[0][0] === \"cc\" && sheet_data.length !== 0) {\n this.fileData = this.marketingService.convert2dArraytoSMSData(\n sheet_data,\n this.projectId\n );\n this.marketingService\n .InserSmsData(this.fileData, this.apiKey)\n .then((data) => {\n this.numberOfRecords = data;\n });\n \n this.error = false;\n this.getCompanydata();\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n projectChange(data) {\n this.projectId = data;\n this.getCompanydata();\n }\n}\n","
    \n \n
    \n
    \n
    \n \n \n \n
    \n \n
    \n {{ numberOfRecords + \" \" + \"Inserted Successfully\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n Phone\n \n \n Caller Id\n\n \n \n Type\n \n \n SMS Sent\n\n \n \n Module\n\n \n \n FeedBack\n\n \n \n Scheduled Time\n\n \n
    \n {{ item[\"RecipientNumber\"] }}\n {{ item[\"CallerId\"] || \"-\" }}{{ item[\"Type\"] || \"-\" }}\n {{\n item[\"SMSSent\"] !== \"No\"\n ? (item[\"SMSSent\"] | date: \"short\")\n : \"No\"\n }}\n {{ item[\"Module\"] || \"-\" }}\n {{\n item[\"Feedback\"]\n ? (item[\"SmsConfig\"] | valuehelper: item[\"Feedback\"])\n : \"-\"\n }}\n \n {{ item[\"ScheduledSMSTime\"] | date: \"medium\" }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { MarketingService } from \"./../marketing.service\";\nimport {\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewChildren,\n} from \"@angular/core\";\nimport * as xlsx from \"xlsx\";\nimport { Exceldata } from \"../smsmarketing/models/ExecelData.model\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ModalDismissReasons, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\n// import { AuthService } from \"src/app/account/auth/auth.service\";\n// import { RoleService } from \"../../role-management/role.service\";\nimport { Subscription } from \"rxjs\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { ProjectService } from \"../../project-management/project.service\";\nimport { MailserviceService } from \"../../mailservice.service\";\n// import { MatSnackBar } from \"@angular/material\";\nimport { Router } from \"@angular/router\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n// import { clearTimeout } from 'timers';\n\n@Component({\n selector: \"app-callmarketing\",\n templateUrl: \"./callmarketing.component.html\",\n styleUrls: [\"./callmarketing.component.css\"],\n})\nexport class CallmarketingComponent implements OnInit, OnDestroy {\n public callData: any[] = [];\n public filePath: any;\n public fileData: Exceldata[] = [];\n public userData: any;\n public projectId: any;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: any;\n public page: any = 1;\n public pageSize: any = 8;\n public startCall: boolean = false;\n public stopCall: boolean = false;\n public startIndex: number = 0;\n public statusValue = \"pending\";\n public clearTime: any;\n public downloadLink: string;\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChildren(\"icon\") audioIcons: any;\n @ViewChildren(\"audio\") audios: any;\n public phoneNumber: any;\n public comments: any;\n public followUpdate: any;\n closeResult: string;\n admin: boolean = false;\n public error: boolean = false;\n public errorMessage: string = \"\";\n public insertCount: number = 0;\n public uploaded: boolean = false;\n public project: Subscription;\n public currentUser: any = {};\n public sendMails: {\n from: string;\n to: string;\n subject: string;\n content: string;\n } = { from: \"\", to: \"\", subject: \"\", content: \"\" };\n public currentProject: any = {};\n // public statusValue:any='';\n public answered = [\n \"FirstName\",\n \"PhoneNumber\",\n \"cc\",\n \"CalledBy\",\n \"createdAt\",\n \"Email\",\n \"Actions\",\n ];\n public pending = [\n \"createdAt\",\n \"FirstName\",\n \"PhoneNumber\",\n \"Email\",\n \"City\",\n \"Channel\",\n \"Assignedto\",\n \"CallStatus\",\n \"Actions\",\n ];\n\n public interested = [\n \"FirstName\",\n \"PhoneNumber\",\n \"Email\",\n \"Channel\",\n // \"City\",\n \"CalledBy\",\n \"CalledDate\",\n \"CallStatus\",\n // \"DemoScheduled\",\n // \"RecordingDuration\",\n \"Actions\",\n ];\n\n public tableColumns = [\n \"createdAt\",\n \"FirstName\",\n \"PhoneNumber\",\n \"Email\",\n \"City\",\n \"Channel\",\n \"Assignedto\",\n \"CallStatus\",\n \"Actions\",\n ];\n\n // public callStopped: boolean = false;\n\n constructor(\n private readonly marketingService: MarketingService,\n private readonly sharedService: SharedService,\n private readonly layoutService: LayoutService,\n private readonly projectService: ProjectService,\n private readonly modalService: NgbModal,\n private readonly mailService: MailserviceService,\n private readonly snackbarRef: MatSnackBar,\n private readonly router: Router,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n @Inject(DOCUMENT) private domService: HTMLDocument // private readonly loginService: AuthService, // private readonly companyService: RoleService\n ) {}\n\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n ngOnInit() {\n this.marketingService\n .getExcelLink(\"services/TemplateDocuments/accessque.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.statusValue = \"all\";\n // this.topBarTitle();\n // this.projectService.getProject(this.projectId).subscribe((data) => {\n // this.sendMails.from = data[\"SupportMail\"];\n // });\n // this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n // this.admin = data;\n // this.getCallData();\n // });\n // this.sharedService.currentProject.subscribe((data) => {\n // if (data) {\n // this.currentProject = data;\n // }\n // });\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.statusValue = \"all\";\n this.topBarTitle();\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.sendMails.from = data[\"SupportMail\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n this.admin = data;\n this.getCallData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.currentProject.subscribe((data) => {\n if (data) {\n this.currentProject = data;\n }\n });\n }, 500);\n }\n\n topBarTitle() {\n this.sharedService.pageEvent.emit({\n pageName: `Call Marketing`,\n });\n }\n\n \n getCallData() {\n this.marketingService\n .getCallData({\n ProjectId: this.projectId,\n callStatus: this.statusValue,\n mailId: this.userData[\"mail\"],\n admin: this.admin,\n })\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n \n open(content) {\n this.modalService.open(content, { size: \"lg\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.phoneNumber = \"\";\n this.comments = \"\";\n this.followUpdate = \"\";\n this.currentUser = {};\n\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n // stopCallListener() {\n // this.stopCall = true;\n // this.startCall = false;\n // clearTimeout(this.clearTime);\n // if (this.statusValue !== \"pending\") {\n // this.startIndex += 1;\n // }\n // }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n dropdownSelect(value) {\n this.router.navigate([`/leadsDashboard/type/${value}`]);\n }\n\n showCallDetails(content, item) {\n if (\n item[\"CallStatus\"] === \"pending\" ||\n item[\"CallStatus\"] === \"notanswered\"\n ) {\n this.statusValue = \"pending\";\n }\n if (item[\"Phase\"] === \"demo\" || item[\"Phase\"] === \"followup\") {\n this.statusValue = \"interested\";\n }\n if (item[\"CallStatus\"] === \"notinterested\") {\n this.statusValue = \"notinterested\";\n }\n if (\n item[\"Phase\"] === \"demo-interested\" ||\n item[\"Phase\"] === \"demo-followup\" ||\n item[\"Phase\"] === \" MOU-Sent\" ||\n item[\"Phase\"] === \"MOU-Signed\" ||\n item[\"Phase\"] === \"Payment-raised\" ||\n item[\"Phase\"] === \"Payment-Received\" ||\n item[\"Phase\"] === \" Invoice-Sent\"\n ) {\n this.statusValue = \"demo-interested\";\n }\n if (item[\"Phase\"] === \"demo-notinterested\") {\n this.statusValue = \"demo-notinterested\";\n }\n\n this.marketingService\n .showDetails(item[\"id\"], this.statusValue)\n .subscribe((data) => {\n this.currentUser = data;\n this.open(content);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n deleteContact(id) {\n this.marketingService.deleteContact(id).subscribe((data) => {\n this.getCallData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n audioPlay(audio: any, icon: any) {\n if ([...icon.classList].includes(\"fa-play\")) {\n this.audioIcons._results.forEach((element) => {\n if ([...element.nativeElement.classList].includes(\"fa-pause\")) {\n element.nativeElement.classList.remove(\"fa-pause\");\n element.nativeElement.classList.add(\"fa-play\");\n }\n });\n this.audios._results.forEach((element) => {\n element.nativeElement.pause();\n });\n icon.classList.add(\"fa-pause\");\n icon.classList.remove(\"fa-play\");\n audio.play();\n } else {\n icon.classList.add(\"fa-play\");\n icon.classList.remove(\"fa-pause\");\n audio.pause();\n }\n\n // audio.nativeElement.play();\n let current = this.audios.filter((el) => el === audio);\n \n let eAudio = this.domService.getElementsByTagName(\"audio\");\n // if (eAudio && eAudio.length > 0) {\n // for (var i = 0; i < eAudio.length; i++) {\n // if (e.target !== eAudio[i]) {\n // eAudio[i].pause();\n // }\n // }\n // }\n }\n\n openMail(content, email) {\n this.sendMails.to = email;\n this.open(content);\n }\n\n sendMail() {\n this.mailService\n .sendmail(\n {\n Body: { html: this.sendMails.content },\n From: {\n email: \"support@accessque.com\",\n name: this.currentProject[\"Name\"] || \"Accessque Ltd\",\n },\n To: this.sendMails.to,\n ReplyTo: this.sendMails.from,\n Subject: this.sendMails.subject,\n },\n this.projectId\n )\n .subscribe((data) => {\n \n this.snackbarRef.open(\"Mail Sent Successfully\", \"Close\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n });\n this.modalService.dismissAll();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n projectChange(data) {\n this.projectId = data;\n this.statusValue = \"all\";\n this.topBarTitle();\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.sendMails.from = data[\"SupportMail\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n this.admin = data;\n this.getCallData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.currentProject.subscribe((data) => {\n if (data) {\n this.currentProject = data;\n }\n });\n }\n}\n","
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n {{ names | tabletitle }}\n \n
    \n \n \n  \n {{ col | tablevalue: item | textpipe | lowercase }}\n \n \n {{ col | tablevalue: item | textpipe | lowercase }}\n \n \n \n \n \n \n
    \n \n \n \n \n \n
    \n
    \n \n {{ item[\"createdAt\"] | date: \"medium\" }}\n \n \n
    \n \n 1\n \n -\n \n \n 2\n \n -\n \n 3\n \n -\n \n \n 4\n \n -\n \n \n 5\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Overview

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n
    \n {{\n currentUser[\"FirstName\"] || \"\" + \" \" + currentUser[\"LastName\"] || \"\"\n }}\n
    \n
    \n
    \n \n
    {{ currentUser[\"Email\"] }}
    \n
    \n
    \n \n
    \n +{{\n (currentUser[\"CountryCode\"] || \"\") + currentUser[\"PhoneNumber\"]\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ currentUser[\"City\"] || \"-\" }}
    \n
    \n
    \n \n
    {{ currentUser[\"Channel\"] || \"-\" }}
    \n
    \n
    \n \n
    \n {{ currentUser[\"createdAt\"] | date: \"medium\" }}\n
    \n
    \n
    \n \n
    {{ currentUser[\"Assignedto\"] }}
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    {{ currentUser[\"CallCount\"] }}
    \n
    \n
    \n \n
    \n {{\n currentUser[\"CalledDate\"]\n ? (currentUser[\"CalledDate\"] | date: \"medium\")\n : \"-\"\n }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Comments\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"CalledBy\"] || \"-\" }}\n
    \n
    \n
    \n
    \n \n {{ currentUser[\"CallStatus\"] }}\n
    \n
    \n \n \n
    \n {{ currentUser[\"DemoScheduled\"] ? \"Yes\" : \"No\" }}\n
    \n
    \n
    \n \n
    \n \n
    \n {{ currentUser[\"Presenter\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{\n currentUser[\"DateTime\"]\n ? (currentUser[\"DateTime\"] | date: \"medium\")\n : \"-\"\n }}\n
    \n
    \n \n \n
    \n \n
    \n \n
    \n 1\n \n
    \n
    \n
    \n
    \n \n {{\n currentUser[\"Status\"]\n ? (currentUser[\"Status\"] | statusvalue)\n : \"Interested\"\n }}\n
    \n \n
    \n \n
    \n {{ currentUser[\"DemoComments\"] || \"-\" }}\n
    \n
    \n \n \n
    \n {{\n currentUser[\"RequestSent\"]\n ? (currentUser[\"RequestSent\"] | date: \"medium\")\n : \"-\"\n }}\n
    \n \n \n \n
    \n {{\n currentUser[\"SignedAt\"]\n ? (currentUser[\"SignedAt\"] | date: \"medium\")\n : \"-\"\n }}\n
    \n \n \n \n\n\n\n
    \n

    Send Mail

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n Send Mail\n \n
    \n
    \n
    \n
    ","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"tablevalue\",\n})\nexport class TablevaluePipe implements PipeTransform {\n transform(value: any, lead: any): any {\n switch (value) {\n case \"FirstName\":\n return lead[\"FirstName\"] + \" \" + (lead[\"LastName\"] || \"\");\n case \"PhoneNumber\":\n return \"+\" + lead[\"CountryCode\"] + lead[\"PhoneNumber\"];\n case \"Email\":\n return lead[\"Email\"];\n case \"Channel\":\n return lead[\"Channel\"] !== null\n ? lead[\"Channel\"].replace(/\\b\\w/g, (l) => l.toUpperCase())\n : \"-\";\n case \"City\":\n return lead[\"City\"] || \"-\";\n case \"Assignedto\":\n return lead[\"Assignedto\"];\n case \"CallStatus\":\n return lead[\"CallStatus\"];\n case \"createdAt\":\n return lead[\"createdAt\"];\n case \"CalledDate\":\n return lead[\"createdAt\"];\n case \"RecordingURL\":\n return lead[\"RecordingURL\"] || \"\";\n case \"DemoScheduled\":\n return lead[\"DemoScheduled\"] || \"No\";\n case \"RecordingDuration\":\n return (lead[\"RecordingDuration\"] || 0) + \" secs\";\n case \"CalledBy\":\n return lead[\"CalledBy\"];\n default:\n return lead[\"value\"];\n }\n // return null;\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { VideoCallingService } from \"src/app/videocalling/video-calling.service\";\nimport { MarketingService } from \"../marketing.service\";\n\n@Component({\n selector: \"app-demopage\",\n templateUrl: \"./demopage.component.html\",\n styleUrls: [\"./demopage.component.css\"],\n})\nexport class DemopageComponent implements OnInit {\n public comments: any = \"\";\n public callBack = \"interested\";\n public followUpdate = new Date();\n public isMouSent = false;\n public isUpdatedComments = false;\n public isFollowUp = false;\n public leadPerson: any = {};\n public lead: any = {};\n @Input()\n roomName: string;\n @Input()\n name: string;\n\n constructor(\n public readonly modal: NgbModal,\n private videoService: VideoCallingService,\n private marketingService: MarketingService,\n private router: Router,\n private layoutService: LayoutService\n ) {}\n\n scheduleDemo() {}\n\n async updateComments() {\n if (this.callBack !== \"followup\") {\n if (this.callBack === \"interested\") {\n }\n this.interestedLead();\n } else {\n\n await this.layoutService.scheduleDemo(\n this.lead.ProjectId,\n {\n id: this.lead.id,\n email: this.lead.Email,\n module: this.lead.Module,\n name: this.lead.FirstName,\n phoneNumber: `+${this.lead.CountryCode}${this.lead.PhoneNumber}`,\n status: this.lead.CallStatus,\n },\n this.followUpdate,\n this.comments,\n \"demo\"\n );\n this.interestedLead();\n }\n this.showMessage();\n }\n\n showMessage() {\n if (this.callBack === \"interested\") {\n this.isMouSent = true;\n }\n if (this.callBack === \"notinterested\") {\n this.isUpdatedComments = true;\n }\n if (this.callBack === \"followup\") {\n this.isFollowUp = true;\n }\n setTimeout(() => {\n this.isFollowUp = false;\n this.isUpdatedComments = false;\n this.isMouSent = false;\n }, 1000);\n }\n\n interestedLead() {\n this.videoService\n .updateComments({\n Comments: this.comments,\n Description: this.roomName,\n Status: this.callBack,\n FollowUpdate: this.followUpdate,\n })\n .subscribe((data) => {\n this.updatePhase();\n });\n }\n\n updatePhase() {\n let status;\n if (status === \"interested\") {\n status = \"demo\";\n } else {\n status = `demo`;\n }\n this.marketingService\n .updateLeadStatus({\n id: this.leadPerson.LeadId,\n phase: status,\n })\n .subscribe((data) => {\n this.router.navigate([\"/leadsDashboard\"]);\n this.modal.dismissAll();\n });\n }\n\n ngOnInit() {\n this.followUpdate.setDate(this.followUpdate.getDate() + 2);\n\n this.marketingService.getLeadByRoomId(this.roomName).subscribe((data) => {\n this.leadPerson = data;\n this.marketingService\n .getLead(this.leadPerson[\"LeadId\"])\n .subscribe((lead) => {\n this.lead = lead;\n \n });\n });\n }\n}\n","
    \n

    Demo Screen

    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Demo Ended\n
    \n \"\"\n
    \n
    \n {{ name }}\n
    \n
    Update the Comments
    \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n Update\n \n
    \n
    \n
    \n \n\n
    \n   MOU\n Sent Successfully\n
    \n
    \n  \n Comments Are Updated\n
    \n
    \n   Demo is\n Scheduled\n
    \n\n \n \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Calendar, CalendarOptions, EventInput, FullCalendarComponent } from '@fullcalendar/angular';\nimport { MarketingService } from '../marketing.service';\n\n@Component({\n selector: 'app-eventcalender',\n templateUrl: './eventcalender.component.html',\n styleUrls: ['./eventcalender.component.css']\n})\nexport class EventcalenderComponent implements OnInit {\n @ViewChild('calendar', { static: true }) calendarComponent: FullCalendarComponent;\n calendarApi: Calendar;\n calendarOptions: CalendarOptions = {\n initialView: 'dayGridMonth',\n };\n initialized = false;\n calendarEvents: EventInput[] = [];\n\n constructor(private calenderService: MarketingService) { }\n\n ngOnInit() {\n }\n ngAfterViewChecked() {\n this.calendarApi = this.calendarComponent.getApi();\n\n if (this.calendarApi && !this.initialized) {\n this.initialized = true;\n this.calenderService.getEventsByStartEnd().toPromise()\n .then((value) => {\n var data: any = value;\n data.map((eventval) => {\n this.loadEvents(eventval);\n })\n })\n .catch(err => {\n })\n }\n }\n loadEvents(eventval) {\n const event = {\n title: eventval.Event,\n start: eventval.StartTime,\n end: eventval.EndTime,\n };\n this.calendarEvents.push(event);\n this.calendarApi.removeAllEventSources();\n this.calendarApi.addEventSource(this.calendarEvents);\n }\n}\n","
    \n \n
    ","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"tabletitle\",\n})\nexport class TabletitlePipe implements PipeTransform {\n transform(value: any, ...args: any[]): any {\n switch (value) {\n case \"FirstName\":\n return \"Name\";\n case \"PhoneNumber\":\n return \"Phone Number\";\n case \"createdAt\":\n return \"Created Date\";\n case \"Assignedto\":\n return \"Assigned To\";\n default:\n return value;\n }\n return null;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"textpipe\",\n})\nexport class TextpipePipe implements PipeTransform {\n transform(value: any, ...args: any[]): any {\n switch (value) {\n case \"notinterested\":\n return \"Not Intrerested\";\n case \"notanswered\":\n return \"Not Answered\";\n case \"pending\":\n return \"Pending\";\n case \"callback\":\n return \"Call Back\";\n // case \"interested\":\n // return \"Qualified Lead\";\n case \"qualifiedhotlead\":\n return \"Qualified Hot lead\";\n case \"futurelead\":\n return \"Future Lead\";\n case \"callfailed\":\n return \"Call Failed\";\n case \"poorenglish\":\n return \"Poor English\";\n case \"interestedpending\":\n return \"Interested Pending\";\n case \"duplicate\":\n return \"Duplicate\";\n case \"Website\":\n return \"All\";\n default:\n return value;\n }\n return null;\n }\n}\n","import { MarketingService } from \"./../marketing.service\";\nimport { AuthService } from \"./../../../account/auth/auth.service\";\nimport { SharedService } from \"./../../../shared/shared.service\";\nimport {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild,\n} from \"@angular/core\";\nimport { Info } from \"./models/Info.model\";\nimport * as xlsx from \"xlsx\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-infomarketing\",\n templateUrl: \"./infomarketing.component.html\",\n styleUrls: [\"./infomarketing.component.css\"],\n})\nexport class InfomarketingComponent implements OnInit, OnDestroy {\n private projectId: any;\n private admin: boolean;\n private userData: any;\n public callData: Info[] = [];\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: string;\n public statusValue: any = \"\";\n public page: any = 1;\n public pageSize: any = 8;\n public downloadLink: any;\n public errorMessage: string = \"\";\n public error: boolean = false;\n public fileData: any = [];\n public filePath: any;\n public apiKey: any = null;\n @ViewChild(\"uploadFile\") uploadFile;\n public numberOfRecords: number = 0;\n public project: Subscription;\n constructor(\n private readonly sharedService: SharedService,\n private readonly marketingService: MarketingService,\n private handleError: ErrorHandlerService,\n public projectchangeService: ProjectchangeService,\n ) {}\n\n ngOnInit() {\n this.getCompanyId();\n }\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n getCompanyId() {\n this.marketingService\n .getExcelLink(\"services/TemplateDocuments/AccessqueSchedulers.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.getCompanydata();\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.getCompanydata();\n },500);\n this.sharedService.pageEvent.emit({ pageName: \"Student Journey\" });\n }\n\n getCompanydata() {\n if (!this.statusValue) {\n this.marketingService\n .getAutoDialCompany(this.projectId)\n .subscribe((data) => {\n \n if (data) {\n this.apiKey = data[\"API_KEY\"];\n this.marketingService\n .getAutodialCompanyData(this.projectId, data[\"API_KEY\"])\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.callData = [];\n this.apiKey = null;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.marketingService\n .getCallDialType({ ProjectId: this.projectId, type: this.statusValue })\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n dropdownSelect() {\n this.getCompanydata();\n }\n\n openFileUpload() {\n this.uploadFile.nativeElement.click();\n }\n\n convertFile(e) {\n \n this.filePath = e.target.files[0][\"name\"].toString();\n \n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n \n if (sheet_data[0][0] === \"cc\" && sheet_data.length !== 0) {\n this.fileData = this.marketingService.convert2dArraytocallData(\n sheet_data,\n this.projectId\n );\n this.marketingService\n .insertCallData(this.fileData, this.apiKey)\n .then((data) => {\n this.numberOfRecords = data;\n }).catch(err=>{\n this.handleError.handleError(err)\n\n })\n \n this.error = false;\n this.getCompanydata();\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n projectChange(data) {\n this.projectId = data;\n this.getCompanydata();\n }\n}\n","
    \n \n
    \n
    \n
    \n \n \n \n \n \n
    \n \n
    \n {{ numberOfRecords + \" \" + \"Inserted Successfully\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n Phone\n \n \n Caller Id\n\n \n \n Type\n \n \n Call Answered\n\n \n \n Module\n\n \n \n Redial Count\n\n \n \n FeedBack\n\n \n \n Scheduled Time\n\n \n
    \n {{ item[\"RecipientNumber\"] }}\n {{ item[\"CallerId\"] || \"-\" }}{{ item[\"Type\"] || \"-\" }}{{ item[\"CallAnswered\"] || \"No\" }}{{ item[\"Module\"] || \"-\" }}{{ item[\"RedialCounter\"] || 0 }}\n {{\n item[\"Feedback\"]\n ? (item[\"NumberConfig\"] | valuehelper: item[\"Feedback\"])\n : \"-\"\n }}\n \n {{\n item[\"ScheduledCallTimeUTC\"] != null\n ? (item[\"ScheduledCallTimeUTC\"]\n | date: \"medium\")\n : \"-\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'valuehelper'\n})\nexport class ValuehelperPipe implements PipeTransform {\n\n transform(value: any[], val: any): any {\n // \n // \n if (value != null) {\n \n if (value.find(data => data['feedBackNumber'] === +val)) {\n return value.find(data => data['feedBackNumber'] === +val)['value']\n } else {\n return val\n }\n }\n return val;\n }\n\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"formName\",\n})\nexport class FormNamePipe implements PipeTransform {\n transform(value: string, ...args: any[]): any {\n if (value.toLowerCase().includes(\"ielts\")) {\n return \"IELTS \";\n }\n if (value.toLowerCase().includes(\"usa\")) {\n return \"Study In USA \";\n }\n if (value) {\n return value.slice(0, 30);\n } else {\n return \"-\";\n }\n }\n}\n","import { InputSMSData, MarketingService } from \"./../marketing.service\";\nimport {\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewChildren,\n} from \"@angular/core\";\nimport * as xlsx from \"xlsx\";\nimport { Exceldata } from \"../smsmarketing/models/ExecelData.model\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ModalDismissReasons, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { RoleService } from \"../../role-management/role.service\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectService } from \"../../project-management/project.service\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { DemopageComponent } from \"../demopage/demopage.component\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport * as moment from \"moment\";\n// import { MatSnackBar } from \"@angular/material\";\nimport { environment } from \"src/environments/environment\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n@Component({\n selector: \"app-leads-dashboard\",\n templateUrl: \"./leads-dashboard.component.html\",\n styleUrls: [\"./leads-dashboard.component.css\"],\n})\nexport class LeadsDashboardComponent implements OnInit, OnDestroy {\n public fileSource = environment.fileServer;\n public callData: any[] = [];\n public filePath: any;\n public fileData: Exceldata[] = [];\n public userData: any;\n public projectId: any;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: any;\n public page: any = 1;\n public pageSize: any = 8;\n public startCall: boolean = false;\n public stopCall: boolean = false;\n public startIndex: number = 0;\n public statusValue = \"pending\";\n public clearTime: any;\n public downloadLink: string;\n @ViewChild(\"uploadFile\") uploadFile;\n public phoneNumber: any;\n public comments: any;\n public followUpdate: any;\n closeResult: string;\n admin: boolean = false;\n public error: boolean = false;\n public errorMessage: string = \"\";\n public insertCount: number = 0;\n public uploaded: boolean = false;\n public dashboardInfo: any = {\n Facebook: 0,\n Website: 0,\n pending: 0,\n AssignedTo: 0,\n followup: 0,\n };\n public project: Subscription;\n public currentUser: any = {};\n public leadType: string = \"pending\";\n @ViewChildren(\"icon\") audioIcons: any;\n @ViewChildren(\"audio\") audios: any;\n public mail: string;\n public sendMail: {\n from: string;\n to: string;\n subject: string;\n content: string;\n } = { from: \"\", to: \"\", subject: \"\", content: \"\" };\n public tempList: any[] = [];\n public modalRef: any;\n public counselling: boolean = false;\n public submitted: boolean = false;\n public isUpdateLead: boolean = false;\n public currentLead: any;\n\n constructor(\n public marketingService: MarketingService,\n private readonly sharedService: SharedService,\n public layoutService: LayoutService,\n private readonly modalService: NgbModal,\n private readonly loginService: AuthService,\n private readonly companyService: RoleService,\n private readonly projectService: ProjectService,\n private readonly route: ActivatedRoute,\n private readonly snackbarRef: MatSnackBar,\n private readonly handleError: ErrorHandlerService,\n private router: Router\n ) { }\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n ngOnInit() {\n this.route.params.subscribe((data) => {\n if (data[\"roomId\"]) {\n this.modalRef = this.modalService.open(DemopageComponent, {\n size: \"lg\",\n });\n this.modalRef.componentInstance.roomName = data[\"roomId\"];\n this.modalRef.componentInstance.name = data[\"name\"];\n }\n if (data[\"lead\"]) {\n this.statusValue = data[\"lead\"];\n }\n });\n\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/accessque.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n // \n\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.project = this.sharedService.projectId.subscribe((data) => {\n this.companyService.projectAdmin(this.userData['companyId']).subscribe((projects) => {\n if (projects) {\n this.projectId = projects.filter(x => x.Name == 'University Hub')[0].id;\n // this.projectId = data;\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.mail = data[\"SupportMail\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n this.admin = data;\n localStorage.setItem(\"RolePermission\", data);\n // \n // \n if (!this.admin) {\n this.marketingService\n .checkCounsellingCandidate({\n agentId: this.userData.id,\n projectId: this.projectId,\n })\n .subscribe((data) => {\n this.counselling = data[\"counselling\"];\n if (data[\"counselling\"]) {\n this.statusValue = \"interested\";\n }\n this.getDashboardInfo();\n this.getDashboardCompletedCallsCount();\n this.topBarTitle();\n this.getDashboardLeads(this.statusValue);\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.getDashboardInfo();\n this.getDashboardCompletedCallsCount();\n this.topBarTitle();\n this.getDashboardLeads(this.statusValue);\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n let stopCallsSub = this.layoutService.stopCalls.subscribe((data) => {\n // \n if (data) {\n this.stopCallListener();\n this.startCall = false;\n }\n });\n let startCallsSub = this.layoutService.startCalls.subscribe((data) => {\n if (data) {\n // \n\n this.startCallListener();\n }\n });\n\n let redial = this.layoutService.redialContact.subscribe((data) => {\n if (data) {\n clearTimeout(this.clearTime);\n }\n });\n\n let callEndSub = this.layoutService.callEnd.subscribe((data) => {\n // \n if (this.statusValue === \"interested\") {\n this.stopCall = true;\n this.startCall = false;\n return;\n }\n if (this.startCall && this.callData.length !== 0) {\n } else {\n this.startCall = false;\n }\n });\n\n let marketingStatusSub = this.layoutService.callMarketingStatus.subscribe(\n (data) => {\n // \n if (data[\"id\"] !== \"\") {\n this.marketingService\n .updateCallStatus({\n status: data[\"status\"],\n id: data[\"id\"],\n calledBy: data[\"calledBy\"],\n followUpdate: data.followUpdate,\n })\n .subscribe((data) => {\n this.counselling = data[\"counselling\"];\n // \n this.getDashboardLeads(this.leadType);\n this.getDashboardInfo();\n this.getDashboardCompletedCallsCount();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n );\n }\n\n getDashboardCompletedCallsCount() {\n if (!this.projectId) {\n return;\n }\n\n }\n\n getDashboardInfo() {\n if (!this.projectId) {\n return;\n }\n return this.marketingService\n .getLeadDashboardInfo({\n admin: this.admin,\n mail: this.userData[\"mail\"],\n ProjectId: this.projectId,\n counselling: this.counselling,\n })\n .subscribe((data) => {\n this.dashboardInfo[\"Facebook\"] = data[\"Facebook\"] || 0;\n this.dashboardInfo[\"Website\"] = data[\"Website\"] || 0;\n this.dashboardInfo[\"pending\"] = data[\"pending\"] || 0;\n this.dashboardInfo[\"AssignedTo\"] = data[\"AssignedTo\"] || 0;\n this.dashboardInfo[\"followup\"] = data[\"followup\"] || 0;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getDashboardLeads(leadType) {\n if (!this.projectId) {\n return;\n }\n // this.statusValue = \"pending\";\n this.leadType = leadType;\n return this.marketingService\n .getDashboardLeads({\n admin: this.admin,\n mail: this.userData[\"mail\"],\n ProjectId: this.projectId,\n leadType: this.leadType,\n counselling: this.counselling,\n })\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sectionLeads(leadType) {\n\n if (!this.counselling) {\n this.statusValue = \"pending\";\n }\n if (leadType === \"facebook\" || leadType === \"Website\") {\n this.statusValue = \"Website\"\n }\n else if (leadType === \"followup\") {\n this.statusValue = \"callback\"\n }\n\n else if (leadType === \"pending\") {\n this.statusValue = \"pending\";\n }\n else {\n if (leadType === \"pending\") {\n leadType = \"interested\";\n }\n\n }\n this.getDashboardLeads(leadType);\n }\n\n topBarTitle() {\n return this.companyService\n .getCompanyById(this.projectId)\n .subscribe((data) => {\n this.sharedService.pageEvent.emit({\n pageName: \"Leads Dashboard\",\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"First Name\" && sheet_data.length !== 0) {\n this.fileData =\n this.marketingService.convert2dArraytoObject(sheet_data);\n this.marketingService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: 'Excel'\n })\n .subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n this.getDashboardLeads(this.leadType);\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n public onInput(event: any) {\n this.statusValue = \"Website\";\n this.getDashboardLeads(\"All\");\n }\n\n getCallData() {\n this.marketingService\n .getCallData({\n ProjectId: this.projectId,\n callStatus: this.statusValue,\n mailId: this.userData[\"mail\"],\n admin: this.admin,\n })\n .subscribe((data) => {\n this.callData = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n startCallListener() {\n if (this.callData.length === 0) {\n this.startCall = false;\n return;\n }\n\n if (!this.startCall) {\n if (this.statusValue === \"pending\") {\n this.startIndex = 0;\n }\n\n this.layoutService.marketingCall.next({\n id: this.callData[this.startIndex][\"id\"],\n number: \"+\" + this.callData[this.startIndex][\"CountryCode\"] + this.callData[this.startIndex][\"PhoneNumber\"],\n name: this.callData[this.startIndex][\"FirstName\"],\n email: this.callData[this.startIndex][\"Email\"],\n comments: this.callData[this.startIndex][\"Comments\"],\n module: this.callData[this.startIndex][\"Module\"],\n city: this.callData[this.startIndex][\"city\"],\n nextCaller: this.callData[this.startIndex + 1],\n lead: this.callData[this.startIndex],\n\n });\n this.startCall = true;\n }\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n\n }\n\n open(content) {\n this.modalService.open(content, { size: \"lg\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.phoneNumber = \"\";\n this.comments = \"\";\n this.followUpdate = \"\";\n this.submitted = false;\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n stopCallListener() {\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n dropdownSelect(event: string) {\n this.getDashboardLeads(event);\n // this.getCallData();\n this.search = \"\";\n this.startIndex = 0;\n this.getDashboardInfo();\n this.getDashboardCompletedCallsCount();\n }\n\n showCallDetails(content, id) {\n this.marketingService\n .showDetails(id, this.statusValue)\n .subscribe((data) => {\n this.currentUser = data;\n\n this.open(content);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n deleteContact(id) {\n this.marketingService.deleteContact(id).subscribe((data) => {\n this.getDashboardLeads(this.leadType);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n audioPlay(audio: any, icon: any) {\n if ([...icon.classList].includes(\"fa-play\")) {\n this.audioIcons._results.forEach((element) => {\n if ([...element.nativeElement.classList].includes(\"fa-pause\")) {\n element.nativeElement.classList.remove(\"fa-pause\");\n element.nativeElement.classList.add(\"fa-play\");\n }\n });\n this.audios._results.forEach((element) => {\n element.nativeElement.pause();\n });\n icon.classList.add(\"fa-pause\");\n icon.classList.remove(\"fa-play\");\n audio.play();\n } else {\n icon.classList.add(\"fa-play\");\n icon.classList.remove(\"fa-pause\");\n audio.pause();\n }\n\n let current = this.audios.filter((el) => el === audio);\n // \n }\n\n updateComments(modal, item) {\n this.layoutService.commentsForm.get('interested').clearValidators();\n this.layoutService.commentsForm.get('interested').updateValueAndValidity();\n this.layoutService.commentsForm.get('counsellingDate').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('counsellingDate').value))\n this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm.get('dob').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('dob').value));\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm.get('interested').valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get('callBack').clearValidators();\n await this.layoutService.commentsForm.get('callBack').updateValueAndValidity()\n await this.layoutService.commentsForm.get('counsellingDate').clearValidators();\n await this.layoutService.commentsForm.get('counsellingDate').updateValueAndValidity()\n await this.layoutService.commentsForm.get('assignedTo').clearValidators()\n await this.layoutService.commentsForm.get('assignedTo').updateValueAndValidity()\n if (selectedValue == 'Callback') {\n await this.layoutService.commentsForm.get('callBack').setValidators([Validators.required]);\n this.layoutService.commentsForm.get('callBack').updateValueAndValidity();\n } else if (selectedValue == 'QualifiedLead' || selectedValue == 'QualifiedHotLead') {\n await this.layoutService.commentsForm.get('counsellingDate').setValidators([Validators.required])\n this.layoutService.commentsForm.get('counsellingDate').updateValueAndValidity();\n await this.layoutService.commentsForm.get('assignedTo').setValidators([Validators.required])\n this.layoutService.commentsForm.get('assignedTo').updateValueAndValidity();\n }\n })\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe((data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n }, (error) => {\n this.handleError.handleError(error)\n });;\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe((data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.modalService.open(modal, { size: \"xl\" });\n }\n\n get f(): { [key: string]: AbstractControl } {\n return this.layoutService.commentsForm.controls;\n }\n get createLeads(): { [key: string]: AbstractControl } {\n return this.marketingService.createLead.controls;\n }\n\n async submit() {\n // this.snackbarRef.open(\"Mail Sent Successfully\", \"Close\", {\n // verticalPosition: \"top\",\n // horizontalPosition: \"end\",\n // duration: 5000,\n // });\n if (this.isUpdateLead) {\n\n if (this.layoutService.commentsForm.invalid) {\n // \n\n } else {\n this.layoutService\n .updateCommentsBasedOnId(this.currentLead[\"id\"])\n .subscribe(() => {\n this.updateLeadComments();\n this.snackbarRef.open(\"Update Successfully\", '', {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: ['success-snackbar']\n });\n this.modalService.dismissAll();\n this.getDashboardLeads(this.leadType);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n else {\n if (this.layoutService.commentsForm.invalid) {\n // \n // \n\n } else {\n this.layoutService\n .updateComments(this.currentLead[\"id\"])\n .subscribe(() => {\n this.updateLeadComments();\n this.modalService.dismissAll();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\")\n ) {\n // \n await this.scheduleDemo();\n } else {\n this.updateLeadComments();\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n this.marketingService\n .updateLeadStatus({\n id: this.currentLead.id,\n phase: this.layoutService.commentsValue.interested,\n }).subscribe(()=>{}, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n }\n\n updateLeadComments() {\n if (this.currentLead.phase !== \"demo\") {\n let callStatus = \"interested\";\n let futureLead = \"no\";\n if (this.layoutService.commentsValue.interested === \"futurelead\") {\n callStatus = \"interested\";\n futureLead = \"yes\";\n } else {\n callStatus = this.layoutService.commentsValue.interested;\n futureLead = \"no\";\n }\n this.layoutService\n .updateCallComments({\n id: this.currentLead[\"id\"],\n agentMail: this.userData.mail,\n comments: this.layoutService.commentsValue.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: futureLead,\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.currentLead[\"Assignedto\"],\n })\n .subscribe((data) => {\n // \n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n scheduleDemo() {\n let dt = this.layoutService.commentsValue.counsellingDate;\n dt = moment(dt).format(\"dddd D MMM YY\") + \" at \" + moment(dt).format(\"h:m a\");\n let template: string = this.currentLead[\"Miscellaneous\"][\"form_name\"]\n .toLowerCase()\n .includes(\"ielts\")\n ? \"ielts\"\n : \"usastudy\";\n\n let num = Math.floor(Math.random() * 90000) + 10000;\n let room = \"live-\" + num.toString();\n let smsId = null;\n let callId = null;\n let mailId = null;\n\n let demoScheduled = `${environment.BaseURL}/videocalling/mainscreen/${this.projectId}/${room}`;\n const smsMarketingBefore6hr: InputSMSData = {\n ProjectId: this.projectId,\n Module: this.currentLead[\"Module\"],\n RecipientNumber:\n \"+\" +\n this.currentLead[\"CountryCode\"] +\n this.currentLead[\"PhoneNumber\"].replace(/\\n/g, \"\"),\n ScheduledSMSTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Type: \"Information\",\n };\n this.marketingService\n .getAutoDialCompany(this.projectId)\n .subscribe(async (data) => {\n // \n if (data) {\n let apiKey = data[\"API_KEY\"];\n if (dt) {\n smsId = await this.marketingService.createAutoSmsScheduler(\n smsMarketingBefore6hr,\n apiKey\n );\n }\n }\n setTimeout(() => {\n this.marketingService\n .createDemo({\n ProjectId: this.projectId,\n Name: this.currentLead[\"FirstName\"],\n AutoEmailId: mailId ? mailId[\"mailId\"] : null,\n AutoCallId: callId ? callId[\"callId\"] : null,\n AutoSMSId: smsId ? smsId[\"smsId\"] : null,\n Comments: this.layoutService.commentsValue.comments,\n DateTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Presenter:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0][\"value\"]\n : this.currentLead[\"Assignedto\"],\n Feedback: this.layoutService.commentsValue.interested,\n Url: demoScheduled + \"/\" + this.userData.workerFriendlyName,\n ClientURL: demoScheduled + \"/\" + this.currentLead[\"FirstName\"],\n RoomName: room,\n LeadId: this.currentLead.id,\n agentEmail: this.userData.mail,\n })\n .subscribe((demo) => {\n if (dt) {\n this.marketingService\n .updateDemo({\n demoId: demo[\"id\"],\n leadId: this.currentLead.id,\n })\n .subscribe((data) => {\n if (dt) {\n this.layoutService.sendSmsForLead({\n date: dt,\n from: this.layoutService.twilioNumber,\n projectId: this.projectId,\n student_name: this.currentLead[\"FirstName\"],\n tosms: this.currentLead.PhoneNumber,\n });\n }\n if (dt) {\n this.marketingService.sendMailForDemo(\n {\n name: this.currentLead[\"FirstName\"],\n demoDate: moment(\n this.layoutService.commentsValue.counsellingDate\n ).format(\"MMMM Do YYYY, h:mm:ss a\"),\n url:\n demoScheduled + \"/\" + this.currentLead[\"FirstName\"],\n },\n this.currentLead.Email,\n this.projectId,\n template\n );\n this.updateLeadComments();\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 2000);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n createLead() {\n this.submitted = true;\n if (this.marketingService.createLead.invalid) {\n return;\n }\n let fileData: Exceldata[] = [\n new Exceldata(\n this.marketingService.createLeadValue[\"firstName\"],\n this.marketingService.createLeadValue[\"lastName\"],\n this.marketingService.createLeadValue[\"countryCode\"],\n this.marketingService.createLeadValue[\"phoneNumber\"],\n this.marketingService.createLeadValue[\"email\"],\n this.userData.mail,\n this.marketingService.createLeadValue[\"module\"],\n this.marketingService.createLeadValue[\"channel\"],\n {\n form_id: \"\",\n form_name: this.marketingService.createLeadValue[\"form_name\"],\n \"Choose Batch\": \"\",\n \"Training Mode\": \"\",\n },\n this.marketingService.createLeadValue[\"comments\"],\n this.marketingService.createLeadValue[\"createdAt\"],\n ),\n ];\n this.marketingService\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: 'Manual'\n })\n .subscribe((data) => {\n this.marketingService.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n openCreateLead(content) {\n this.modalService.open(content, { size: \"md\" });\n }\n setTimeZoneToZero(value) {\n var offset = moment().utcOffset();\n return moment.utc(value)\n .utcOffset(offset)\n .format('DD/MM/YY, hh:mm A');\n }\n\n redirectToUpload(){\n \n this.router.navigate(['./upload/'+this.projectId])\n }\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n Social Media\n
    \n
    \n
    \n \n
    \n
    \n

    \n {{ dashboardInfo[\"Facebook\"] }}\n

    \n
    \n {{ counselling ? \"Counselling\" : \"leads\" }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n

    \n {{ dashboardInfo[\"Website\"] }}\n

    \n
    \n {{ counselling ? \"Counselling\" : \"leads\" }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Activity
    \n
    \n
    \n \n
    \n
    \n

    \n {{ dashboardInfo[\"followup\"] }}\n

    \n
    Follow Up
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n

    \n {{ dashboardInfo[\"pending\"] }}\n

    \n
    Pending Calls
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n

    \n Latest Leads\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n \n \n
    \n \n \n \n
    \n
    \n D*-Demo\n
    \n
    \n
    \n\n \n \n\n\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n Created Date\n \n \n Name\n \n \n Email\n \n \n Phone Number\n\n \n \n Form Name\n \n \n City\n \n Education\n Assigned To\n \n Status\n {{statusValue === \"callback\" || statusValue === \"futurelead\"\n ? \"CallBack Date\"\n : \"Counselling Date\"\n }}\n Actions
    \n \n {{setTimeZoneToZero(item[\"createdAt\"])}}\n \n \n {{ item[\"FirstName\"] + \" \" + (item[\"LastName\"] || \"\") | titlecase}}\n {{ item[\"Email\"] || \"-\" }} 10 }\">\n +\n {{ item[\"CountryCode\"] + item[\"PhoneNumber\"] }}\n \n {{ (item[\"Miscellaneous\"][\"form_name\"] | formName) || \"-\" }}\n \n {{ item[\"City\"] || \"-\" }}\n \n {{ item[\"Education\"] ? item[\"Education\"] : \"-\" }}\n \n {{ item[\"Assignedto\"] || \"-\" }}\n \n \n
    \n {{ item[\"CallStatus\"] | textpipe | titlecase }}\n
    \n
    \n {{\n item[\"DemoScheduled\"] === null\n ? \"CallBack\"\n : \"Counselling\"\n }}\n
    \n
    \n {{\n item[\"DemoScheduled\"] === null\n ? \"Future Lead\"\n : \"Counselling\"\n }}\n
    \n
    \n {{\n item[\"Phase\"] === \"demo\"\n ? \"Counselling\"\n : item[\"Phase\"] === \"followup\"\n ? \"CallBack\"\n : \"Future Lead\"\n }}\n
    \n
    \n \n
    \n {{ item[\"Phase\"] | statusvalue }}\n
    \n
    \n
    \n \n {{\n item[\"DemoScheduled\"] === null\n ? (item[\"FollowUpdate\"] | date: \"medium\")\n : (item[\"DateTime\"] | date: \"medium\")\n }}\n \n \n {{setTimeZoneToZero(item[\"createdAt\"])}}\n \n \n \n {{\n item[\"Status\"] === \"NotSigned\"\n ? (item[\"RequestSent\"] )\n : (item[\"SignedAt\"] | date: \"medium\")\n }}\n \n \n {{ item[\"DateTime\"] | date: \"medium\" }}\n \n \n \n {{ item[\"updatedAt\"] | date: \"medium\" }}\n \n \n \n\n \n\n \n\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n

    Overview

    \n \n
    \n
    \n
    \n \n
    \n
    Caller Details
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{\n currentUser[\"FirstName\"] ||\n \"\" + \" \" + currentUser[\"LastName\"] ||\n \" \"\n }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ currentUser[\"City\"] || \"-\" }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ currentUser[\"Email\"] }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n +{{\n (currentUser[\"CountryCode\"] || \"\") +\n currentUser[\"PhoneNumber\"]\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ setTimeZoneToZero(currentUser[\"createdAt\"])}}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ currentUser && currentUser[\"Channel\"] ? currentUser[\"Channel\"] : \"-\" }}\n
    \n
    \n
    \n \n
    {{ currentUser[\"Assignedto\"] }}
    \n
    \n
    \n \n
    \n {{ currentUser[\"Miscellaneous\"][\"form_id\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{\n currentUser && currentUser[\"Education\"] != null\n ? currentUser[\"Education\"]\n : \"-\"\n }}\n
    \n
    \n
    \n \n
    \n {{ currentUser && currentUser[\"Miscellaneous\"][\"form_name\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser?.Miscellaneous[\"Desired Start Term\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Miscellaneous\"][\"English Proficiency\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Miscellaneous\"][\"Preferred Study Level\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Miscellaneous\"][\"Choose Batch\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Miscellaneous\"][\"Training Mode\"] || \"-\" }}\n
    \n
    \n
    \n
    \n \n
    \n
    Call Details
    \n
    \n
    \n \n
    {{ currentUser ? currentUser[\"CallCount\"] : '-' }}
    \n
    \n
    \n \n
    \n {{\n currentUser && currentUser[\"CalledDate\"]\n ? setTimeZoneToZero((currentUser[\"CalledDate\"]))\n : \"-\"\n }}\n
    \n
    \n
    \n
    \n
    \n {{ currentUser && currentUser[\"CallStatus\"] ? (currentUser[\"CallStatus\"] | textpipe | titlecase) : '-'\n }}\n
    \n
    \n
    \n \n
    \n {{ currentUser && currentUser[\"CalledBy\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser && currentUser[\"Comments\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser && currentUser[\"DemoScheduled\"] ? \"Yes\" : \"No\" }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Presenter\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{\n currentUser[\"DateTime\"]\n ? setTimeZoneToZero((currentUser[\"DateTime\"] | date: \"medium\"))\n : \"-\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    Lead Details
    \n
    \n
    \n \n
    \n {{ currentUser[\"AltContactNo\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"State\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"ExistingCounselling\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"IELTS\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"PTE\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"TOEFL\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Duolingo\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"AppearTest\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"WorkExperience\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"FundingSource\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Passport\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"Visa\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"IntakePreferrence\"] || \"-\" }}\n
    \n
    \n
    \n \n
    \n -\n {{ currentUser[\"DOB\"] === (null||\"\")\n ?\"-\":setTimeZoneToZero(currentUser[\"DOB\"]) }}\n \n
    \n
    \n
    \n \n
    \n {{ setTimeZoneToZero(currentUser[\"CallbackDT\"] !=\"\" ? currentUser[\"CallbackDT\"] :\"-\" )}}\n
    \n
    \n
    \n
    \n
    \n
    Counselling Details
    \n\n
    \n \n
    \n \n
    \n {{ setTimeZoneToZero(currentUser[\"DateTime\"] !=(null || \"\") ? currentUser[\"Datetime\"] :\"-\" )}}\n
    \n
    \n
    \n
    \n
    \n {{\n currentUser[\"Status\"]\n ? (currentUser[\"Status\"] | statusvalue)\n : \"Interested\"\n }}\n
    \n
    \n
    \n \n
    \n {{ currentUser[\"DemoComments\"] || \"-\" }}\n
    \n
    \n
    \n
    \n
    \n {{ currentUser[\"Presenter\"] }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    name is required
    \n
    \n
    \n\n
    \n \n \n
    `\n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    Date of birth is required
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n \n\n
    \n
    State is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    IELETS is required
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n
    TOEFL is required
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    PTE is required
    \n
    \n
    \n
    \n \n \n\n
    \n
    Dulingo is required
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Counselling date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n callBack date is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n \n
    \n\n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n \n\n
    \n \n \n
    \n
    \n
    \n
    \n Select any one value\n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    \n
    \n\n
    \n \n \n
    \n
    LastName is required
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    Country Code is required
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    \n
    \n
    \n \n \n
    \n
    Form Name is required
    \n
    \n
    \n
    \n \n \n
    \n
    Channel is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n","import { InfomarketingComponent } from \"./infomarketing/infomarketing.component\";\nimport { AuthGuard } from \"src/app/core/guards/auth.guard\";\nimport { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { CallmarketingComponent } from \"./callmarketing/callmarketing.component\";\nimport { SmsmarketingComponent } from \"./smsmarketing/smsmarketing.component\";\nimport { AutosmsComponent } from \"./autosms/autosms.component\";\nimport { LeadsDashboardComponent } from \"./leads-dashboard/leads-dashboard.component\";\nimport { AutoMailComponent } from \"./auto-mail/auto-mail.component\";\nimport { AgentCallsDashboardComponent } from \"./agent-calls-dashboard/agent-calls-dashboard.component\";\nimport { SalesDashboardComponent } from \"./sales-dashboard/sales-dashboard.component\";\nimport { EventcalenderComponent } from \"./eventcalender/eventcalender.component\";\n\nconst routes: Routes = [\n {\n path: \"smsMarketing\",\n component: SmsmarketingComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"callMarketing\",\n component: CallmarketingComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"infoMarketing\",\n component: InfomarketingComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"leadsDashboard\",\n component: LeadsDashboardComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"leadsDashboard/:roomId\",\n component: LeadsDashboardComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"leadsDashboard/type/:lead\",\n component: LeadsDashboardComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"eventcalender\",\n component: EventcalenderComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"autoSms\",\n component: AutosmsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"autoemail\",\n component: AutoMailComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"agentcallsdashboard\",\n component: AgentCallsDashboardComponent,\n },\n {\n path: \"salesdashboard\",\n component: SalesDashboardComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class MarketingRoutingModule { }\n","import { DashboardModule } from \"./../dashboard/dashboard.module\";\n// import {\n// MatCheckboxModule,\n// MatChipsModule,\n// MatFormFieldModule,\n// MatIconModule,\n// MatSnackBarModule,\n// } from \"@angular/material\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { MarketingRoutingModule } from \"./marketing-routing.module\";\nimport { SmsmarketingComponent } from \"./smsmarketing/smsmarketing.component\";\nimport {\n NgbPaginationModule,\n NgbModule,\n NgbDropdownModule,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { CallmarketingComponent } from \"./callmarketing/callmarketing.component\";\nimport { InfomarketingComponent } from \"./infomarketing/infomarketing.component\";\nimport { ValuehelperPipe } from \"./infomarketing/valuehelper.pipe\";\nimport { AutosmsComponent } from \"./autosms/autosms.component\";\nimport { TextpipePipe } from \"./helperpipes/textpipe.pipe\";\nimport { LeadsDashboardComponent } from \"./leads-dashboard/leads-dashboard.component\";\nimport { AutoMailComponent } from \"./auto-mail/auto-mail.component\";\nimport { TablevaluePipe } from \"./callmarketing/tablevalue.pipe\";\nimport { TabletitlePipe } from \"./helperpipes/tabletitle.pipe\";\nimport { Ng2SearchPipeModule } from \"ng2-search-filter\";\n\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { DemopageComponent } from \"./demopage/demopage.component\";\nimport { LayoutModule } from \"src/app/layout/layout.module\";\nimport { StatusvaluePipe } from \"./pipes/statusvalue.pipe\";\nimport { NgMultiSelectDropDownModule } from \"ng-multiselect-dropdown\";\nimport { FormNamePipe } from './leads-dashboard/form-name.pipe';\nimport { AgentCallsDashboardComponent } from './agent-calls-dashboard/agent-calls-dashboard.component';\nimport { SalesDashboardComponent } from './sales-dashboard/sales-dashboard.component';\nimport { EventcalenderComponent } from './eventcalender/eventcalender.component';\nimport { FullCalendarModule } from '@fullcalendar/angular'; // must go before plugins\nimport dayGridPlugin from '@fullcalendar/daygrid'; // a plugin!\nimport interactionPlugin from '@fullcalendar/interaction'; // a plugin!\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\n\nFullCalendarModule.registerPlugins([ // register FullCalendar plugins\n dayGridPlugin,\n interactionPlugin\n]);\n\n@NgModule({\n declarations: [\n SmsmarketingComponent,\n CallmarketingComponent,\n InfomarketingComponent,\n ValuehelperPipe,\n AutosmsComponent,\n TextpipePipe,\n LeadsDashboardComponent,\n AutoMailComponent,\n TablevaluePipe,\n TabletitlePipe,\n DemopageComponent,\n StatusvaluePipe,\n FormNamePipe,\n AgentCallsDashboardComponent,\n SalesDashboardComponent,\n EventcalenderComponent,\n ],\n imports: [\n CommonModule,\n MarketingRoutingModule,\n FormsModule,\n HttpClientModule,\n NgbModule,\n MatCheckboxModule,\n MatChipsModule,\n MatFormFieldModule,\n MatIconModule,\n DashboardModule,\n MatTooltipModule,\n Ng2SearchPipeModule,\n MatSnackBarModule,\n LayoutModule,\n ReactiveFormsModule,\n NgbDropdownModule,\n NgMultiSelectDropDownModule,\n FullCalendarModule\n ]\n})\nexport class MarketingModule { }\n","import {\n CompanyModule,\n InputModule,\n} from \"./../companymodules/models/companymodule.model\";\nimport { Info } from \"./infomarketing/models/Info.model\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n// import { HttpClientService } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { environment } from \"src/environments/environment\";\nimport { Exceldata } from \"./smsmarketing/models/ExecelData.model\";\nimport { catchError, map } from \"rxjs/operators\";\nimport { MailserviceService } from \"../mailservice.service\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\n// import { map } from \"lodash\";\nexport enum REGEX {\n EMAIL = '[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\\\.[a-z]{2,4}',\n PHONE = '[0-9]{10}$',\n PASSWORD = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$',\n ZIP = '^[a-zA-Z0-9,\\'-]*$',\n NUMBER = '^[0-9]*$',\n URL = '^(http:\\/\\/www\\.|https:\\/\\/www\\.|www\\.|http:\\/\\/|https:\\/\\/)[a-zA-Z0-9\\.\\-]+\\\\.[a-zA-Z]{2,5}[\\.]{0,1}',\n CHARACTER = \"^[a-zA-Z /'.-]*$\",\n SPECIAL_PHONE = '^[+|0-9]+[0-9]{1,}$',\n ADDRESS = '^[a-zA-Z0-9\\s,\\'-]*$',\n}\n\nexport interface InputCallData {\n ProjectId: number;\n RecipientNumber: string;\n ScheduledCallTime: any;\n Type: string;\n CallerId: string;\n Module: string;\n // channel:\n}\ninterface CreateAutoMailCompany {\n ProjectId: any;\n EmailType: string;\n TemplateId: 18;\n BeforeEmailTime: string;\n Module: string;\n Subject: string;\n}\nexport interface CreateAutoEmail {\n ProjectId: any;\n RecipientEmail: string;\n ScheduledEmailTime: any;\n Type: string;\n Module: string;\n}\nexport interface InputSMSData {\n ProjectId: string;\n RecipientNumber: string;\n ScheduledSMSTime: any;\n Type: string;\n Module: string;\n}\nexport interface CreateModule {\n name: string;\n smsModule: string;\n callModule: string;\n mailModule: string;\n ProjectId: string;\n createdBy: string;\n description: string;\n}\ninterface updateModule {\n id: string;\n smsModule: string;\n callModule: string;\n mailModule: string;\n description: string;\n}\ninterface updateAutoMailComp {\n ProjectId: any;\n EmailType: string;\n TemplateId: string;\n Module: string;\n}\ninterface createEmailData {\n ProjectId: string;\n Type: string;\n Module: string;\n Html: string;\n RecipientEmail: string;\n ScheduledEmailTime: string;\n}\ninterface CreateDemo {\n Name: string;\n Presenter: string;\n DateTime: Date | string;\n Url: string;\n Feedback: string;\n Comments: string;\n ProjectId: any;\n AutoSMSId: any;\n AutoCallId: any;\n AutoEmailId: any;\n ClientURL: any;\n RoomName: any;\n LeadId: any;\n agentEmail: any;\n // ProspectId: any;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class MarketingService {\n baseApiUrl = environment.baseApiUrl2;\n twilioApiUrl = environment.twilioApiUrl;\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n createLead = this.formBuilder.group({\n firstName: [\"\", [Validators.required,Validators.pattern(REGEX.CHARACTER),Validators.minLength(2),Validators.maxLength(50)]],\n lastName: [\"\", [Validators.required,Validators.pattern(REGEX.CHARACTER),Validators.minLength(2),Validators.maxLength(50)]],\n countryCode: [\"\", [Validators.required,Validators.pattern(REGEX.NUMBER)]],\n form_name: [\"\", [Validators.required]],\n phoneNumber: [\"\", [Validators.required,Validators.pattern(REGEX.NUMBER),Validators.minLength(7),Validators.maxLength(15)]],\n email: [\"\", [Validators.required,Validators.pattern(REGEX.EMAIL)]],\n channel: [\"\", [Validators.required]],\n assignedTo: [this.userData ? this.userData[\"mail\"] : \"\"],\n module: [\"LeadsMarketing\"],\n Miscellaneous: [\"\"],\n });\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required,Validators.pattern(REGEX.CHARACTER),Validators.minLength(2),Validators.maxLength(50)]],\n LastName: [\"\", [Validators.required,Validators.pattern(REGEX.CHARACTER),Validators.minLength(2),Validators.maxLength(50)]],\n CountryCode: [\"\", [Validators.required,Validators.pattern(REGEX.NUMBER)]],\n PhoneNumber: [\"\", [Validators.required,Validators.pattern(REGEX.NUMBER),Validators.minLength(7),Validators.maxLength(15)]],\n Email: [\"\", [Validators.required,Validators.pattern(REGEX.EMAIL)]],\n DOB: [\"\", [Validators.required]],\n EnrollmentYear: [\"\", [Validators.required]],\n EnrollmentTerm: [\"\", [Validators.required]],\n Address: [\"\", [Validators.required]],\n City: [\"\", [Validators.required]],\n State: [\"\", [Validators.required]],\n Zip: [\"\", [Validators.required]],\n Country: [\"\", [Validators.required]],\n LeadComment: [\"\", [Validators.required]],\n });\n\n constructor(\n private http: HttpClientService,\n private readonly https: HttpClient,\n private readonly sharedService: SharedService,\n private readonly mailService: MailserviceService,\n private readonly formBuilder: FormBuilder\n ) { }\n\n resetCreateLead() {\n this.createLead.reset();\n this.createLead.patchValue({\n assignedTo: this.userData[\"mail\"],\n module: \"LeadsMarketing\",\n });\n }\n\n get createLeadValue() {\n return this.createLead.value;\n }\n\n convert2dArraytoObject(formatingData): Exceldata[] {\n let excelData: Exceldata[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n // \n\n if (formatingData[inner][0]) {\n convertData[\"firstName\"] = formatingData[inner][0];\n convertData[\"lastName\"] = formatingData[inner][1];\n convertData[\"countryCode\"] = typeof formatingData[inner][2] === 'number'?formatingData[inner][2]:'';\n convertData[\"phoneNumber\"] = formatingData[inner][3];\n convertData[\"email\"] = formatingData[inner][4];\n convertData[\"assignedTo\"] = formatingData[inner][5];\n convertData[\"module\"] = formatingData[inner][6];\n convertData[\"channel\"] = formatingData[inner][7];\n convertData[\"Miscellaneous\"] = {\n form_id: \"\",\n form_name: formatingData[inner][8],\n \"Choose Batch\": \"\",\n \"Training Mode\": \"\",\n };\n convertData[\"CreatedDate\"] = formatingData[inner][9];\n convertData[\"Comments\"] = formatingData[inner][10]\n excelData.push(convertData);\n }\n }\n\n // \n return excelData;\n }\n\n postMarketingData(data: {\n data: Exceldata[];\n createdBy: string;\n ProjectId: number;\n }) {\n return this.http.post(`${this.baseApiUrl}smsData`, data);\n }\n\n getSmsData(body: {\n SmsStatus: string;\n ProjectId: number;\n mailId: string;\n admin: boolean;\n }) {\n return this.http.post(`${this.baseApiUrl}smsMarketing`, body);\n }\n\n sendSms(body: { from: string; to: string; text: string }, companyId) {\n return this.http.post(\n `${this.twilioApiUrl}${companyId}/messaging-adapter/sendSMS`,\n body\n );\n }\n\n conferenceCallConnect(\n body: { CallSid: string; phone: string; callerId: string },\n companyId\n ) {\n // \n return this.http.post(\n `${this.twilioApiUrl}${companyId}/phone/conference-participant`,\n body\n );\n }\n updateSmsStatus(body: {\n id: string;\n messages: {\n body: string;\n sender: string;\n receiver: string;\n sendAt: any;\n };\n assignedTo: any;\n }) {\n return this.http.post(`${this.baseApiUrl}updateSmsStatus`, body);\n }\n\n updateSmsData(body: { id: string; comments: string; phoneNumber }) {\n return this.http.post(`${this.baseApiUrl}updateSmsData`, body);\n }\n\n postCallData(data: {\n data: Exceldata[];\n createdBy: string;\n ProjectId: number;\n type: string;\n }) {\n return this.http.post(`${this.baseApiUrl}addCallData`, data);\n }\n\n updateCallSid(data: { id: string; sid: string }) {\n return this.http.post(`${this.baseApiUrl}updateCallData`, data);\n }\n\n getCallData(body: {\n callStatus: string;\n ProjectId: string;\n mailId: string;\n admin: boolean;\n }) {\n return this.http.post(`${this.baseApiUrl}callData`, body);\n }\n\n updateCallStatus(body: {\n status: string;\n id: string;\n calledBy: string;\n followUpdate: Date;\n }) {\n return this.http.post(`${this.baseApiUrl}updateCallStatus`, body);\n }\n\n getExcelLink(location) {\n return this.http.post(`${this.baseApiUrl}getAwsSignedUrl`, {\n url: location,\n });\n }\n\n getAutodialCompanyData(companyId, apiKey) {\n const headers = new HttpHeaders({ \"x-auth-token\": apiKey });\n return this.https.get(\n `${this.baseApiUrl}AutoDialCallsByComp/${companyId}`,\n { headers: headers }\n );\n }\n\n getAutoDialCompany(id) {\n return this.http.get(`${this.baseApiUrl}getAutoDialCompById/${id}`);\n }\n\n convert2dArraytocallData(formatingData, companyId) {\n let excelData: InputCallData[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n // \n if (formatingData[inner][0]) {\n convertData[\"ProjectId\"] = companyId;\n convertData[\"RecipientNumber\"] = `+${formatingData[inner][0] || \" \"}${formatingData[inner][1]\n }`;\n convertData[\"ScheduledCallTime\"] = formatingData[inner][2];\n convertData[\"Type\"] = formatingData[inner][3];\n (convertData[\n \"CallerId\"\n ] = `+${formatingData[inner][4]}${formatingData[inner][5]}`),\n (convertData[\"Module\"] = formatingData[inner][6]);\n\n excelData.push(convertData);\n }\n }\n // \n return excelData;\n }\n\n async insertCallData(body: InputCallData[], apikey) {\n let headers = new HttpHeaders({ \"x-auth-token\": apikey });\n let number = 0;\n for (let el = 0; el <= body.length - 1; el++) {\n try {\n await this.https\n .post(`${this.baseApiUrl}createAutoDialCall`, body[el], {\n headers: headers,\n })\n .toPromise();\n number = number + 1;\n // \n } catch (err) {\n // \n if (number) {\n number = number - 1;\n }\n }\n }\n // \n return number;\n }\n\n getInfoCompanies(companyId) {\n return this.http.get(\n `${this.baseApiUrl}getAllAutoDialCompany/${companyId}`\n );\n }\n\n createAutoDialCompany(body: InputModule) {\n return this.http.post(`${this.baseApiUrl}createAutoDialCompany`, body);\n }\n\n getAutoDialById(id) {\n return this.http.get(`${this.baseApiUrl}getAutoDialCompany/${id}`);\n }\n updateAutoDial(body: InputModule) {\n return this.http.post(`${this.baseApiUrl}updateAutoDialComp`, body);\n }\n\n getCallDialType(body: { ProjectId: string; type: string }) {\n return this.http.post(`${this.baseApiUrl}getAutoDialType`, body);\n }\n\n createNumberConfigs(body: {\n moduleName: string;\n moduleId: string;\n numberConfig: any[];\n ProjectId: string;\n callTextHeader: string;\n callTextFooter: string;\n }) {\n return this.http.post(`${this.baseApiUrl}createIvrNumberConfig`, body);\n }\n\n updateNumberConfigs(body: {\n id: string;\n callTextHeader: string;\n callTextFooter: string;\n numberConfig: string;\n }) {\n return this.http.post(`${this.baseApiUrl}updateIvrNumberConfig`, body);\n }\n\n getModuleConfig(body: { id: string; moduleName: string }) {\n return this.http.post(`${this.baseApiUrl}getModuleConfig`, body);\n }\n\n createSmsConfig(body: {\n moduleName: string;\n moduleId: string;\n smsConfig: any[];\n ProjectId: string;\n smsTextHeader: string;\n smsTextFooter: string;\n }) {\n return this.http.post(`${this.baseApiUrl}createSmsConfig`, body);\n }\n\n updateSmsConfig(body: {\n id: string;\n smsTextHeader: string;\n smsTextFooter: string;\n smsConfig: string;\n }) {\n return this.http.post(`${this.baseApiUrl}updateSmsConfig`, body);\n }\n\n getSmsConfig(body: { id: string; moduleName: string }) {\n return this.http.post(`${this.baseApiUrl}getSmsConfig`, body);\n }\n\n createAutoSmsConfig(body: {\n CompanyId: string;\n SMSType: string;\n SMSText: string;\n BeforeSMSTime: string;\n Module: string;\n }) {\n return this.http.post(`${this.baseApiUrl}createAutoSMSCompany`, body);\n }\n\n updateAutoSmsConfig(body: {\n CompanyId: string;\n SMSType: string;\n SMSText: string;\n Module: string;\n }) {\n return this.http.post(`${this.baseApiUrl}updateAutoSMSComp`, body);\n }\n\n getAllSmsByCompany(companyId) {\n return this.http.get(\n `${this.baseApiUrl}getAllAutoSMSCompany/${companyId}`\n );\n }\n\n getSMSCompanyById(id) {\n return this.http.get(`${this.baseApiUrl}getAutoSMSCompany/${id}`);\n }\n\n getAutoSmsByCompany(companyId, apiKey) {\n const headers = new HttpHeaders({ \"x-auth-token\": apiKey });\n return this.https.get(\n `${this.baseApiUrl}AutoSMSByComp/${companyId}`,\n { headers: headers }\n );\n }\n\n convert2dArraytoSMSData(formatingData, companyId) {\n let excelData: InputSMSData[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n // \n if (formatingData[inner][0]) {\n convertData[\"CompanyId\"] = companyId;\n convertData[\"RecipientNumber\"] = `+${formatingData[inner][0] || \"\"}${formatingData[inner][1]\n }`;\n convertData[\"ScheduledSMSTime\"] = formatingData[inner][2];\n convertData[\"Type\"] = formatingData[inner][3];\n convertData[\"Module\"] = formatingData[inner][4];\n excelData.push(convertData);\n }\n }\n // \n return excelData;\n }\n\n async InserSmsData(body: InputSMSData[], apikey) {\n let headers = new HttpHeaders({ \"x-auth-token\": apikey });\n let number = 0;\n for (let el = 0; el <= body.length - 1; el++) {\n try {\n await this.https\n .post(`${this.baseApiUrl}createAutoSMS`, body[el], {\n headers: headers,\n })\n .toPromise();\n number = number + 1;\n // \n } catch (err) {\n // \n // if (number) {\n // number = number - 1;\n // }\n }\n }\n // \n return number;\n }\n\n async createAutoSmsScheduler(body: InputSMSData, apikey) {\n let headers = new HttpHeaders({ \"x-auth-token\": apikey });\n return this.https\n .post(`${this.baseApiUrl}createAutoSMS`, body, {\n headers: headers,\n })\n .toPromise();\n }\n\n async createAutoCallScheduler(body: InputCallData, apikey) {\n let headers = new HttpHeaders({ \"x-auth-token\": apikey });\n return this.https\n .post(`${this.baseApiUrl}createAutoDialCall`, body, {\n headers: headers,\n })\n .toPromise();\n }\n\n getSMSTypes(body: { ProjectId: string; type: string }) {\n return this.http.post(`${this.baseApiUrl}getAutoSMSType`, body);\n }\n\n createCompanyModule(body: CreateModule) {\n return this.http.post(`${this.baseApiUrl}companyModule`, body);\n }\n\n getCompanyModule(id) {\n return this.http.get(`${this.baseApiUrl}getModule/${id}`);\n }\n\n getCompanyModules(companyId) {\n return this.http.get(\n `${this.baseApiUrl}getAllModules/${companyId}`\n );\n }\n\n updateModule(body: updateModule) {\n return this.http.post(`${this.baseApiUrl}updateModule`, body);\n }\n\n getModuleConfigs(name: string, companyId: string) {\n return this.http.get(`${this.baseApiUrl}moduleconfig/${name}/${companyId}`);\n }\n\n deleteContact(id) {\n return this.http.post(`${this.baseApiUrl}deleteContact`, { id: id });\n }\n\n updateMailFeedback(body: {\n flag: string;\n EmailReferenceId: string;\n Feedback: string;\n }) {\n return this.http.put(`${this.baseApiUrl}updateAutoEmail`, body);\n }\n\n createAutoEmailCompany(body: CreateAutoMailCompany) {\n return this.http.post(`${this.baseApiUrl}createAutoEmailCompany`, body);\n }\n\n async createAutoEmail(body: CreateAutoEmail, apikey) {\n // let headers =\n return this.http\n .post(`${this.baseApiUrl}createAutoEmail`, body)\n .toPromise();\n }\n\n updateAutoEmail(body: updateAutoMailComp) {\n return this.http.post(`${this.baseApiUrl}updateAutoEmailComp`, body);\n }\n\n getAutoEmailCompany(id) {\n return this.http.get(`${this.baseApiUrl}getAutoEmailCompany/${id}`);\n }\n\n getCallsCountDashboard(body: {\n ProjectId: any;\n admin: boolean;\n mail: string;\n CompanyId: number;\n counselling: boolean;\n }) {\n // \n // \n return this.http\n .post(`${this.baseApiUrl}getCallsCountDashboard`, body)\n .pipe(\n map((data: any[]) => {\n // \n // \n return data;\n })\n );\n }\n\n getLeadDashboardInfo(body: {\n ProjectId: any;\n admin: boolean;\n mail: string;\n counselling: boolean;\n }) {\n // \n return this.http.post(`${this.baseApiUrl}getLeadDashboardInfo`, body).pipe(\n map((data: any[]) => {\n // \n //\n let body = {};\n // \n for (let i = 0; i <= data.length - 1; i++) {\n // \n if (data[i][\"callstatus\"] === \"pending\") {\n body[\"pending\"] = data[i][\"leads\"] || 0;\n }\n if (data[i][\"callstatus\"] === \"facebook\") {\n body[\"Facebook\"] = data[i][\"leads\"] || 0;\n }\n if (data[i][\"callstatus\"] === \"Website\") {\n body[\"Website\"] = data[i][\"leads\"] || 0;\n }\n if (data[i][\"callstatus\"] === \"followup\") {\n body[\"followup\"] = data[i][\"leads\"] || 0;\n }\n }\n // \n return body;\n })\n );\n }\n\n getDashboardLeads(body: {\n ProjectId: any;\n admin: boolean;\n mail: string;\n leadType: string;\n counselling: boolean;\n }) {\n return this.http.post(`${this.baseApiUrl}getDashboardLeads`, body);\n }\n\n getAutoEmail(companyId, apikey) {\n const headers = new HttpHeaders({ \"x-auth-token\": apikey });\n return this.http.get(\n `${this.baseApiUrl}AutoEmailByComp/${companyId}`\n );\n }\n\n getAutoMailCompany(companyId) {\n return this.http.get(`${this.baseApiUrl}getAutoEmailCompany/${companyId}`);\n }\n\n getAutoEmailType(body: { type: string; ProjectId: any }) {\n return this.http.post(`${this.baseApiUrl}getAutoEmailType`, body);\n }\n\n convert2dArraytoMailData(formatingData, companyId) {\n let excelData: createEmailData[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n // \n if (formatingData[inner][0]) {\n convertData[\"CompanyId\"] = companyId;\n convertData[\"RecipientEmail\"] = `+${formatingData[inner][0] || \"\"}${formatingData[inner][1]\n }`;\n convertData[\"ScheduledEmailTime\"] = formatingData[inner][2];\n convertData[\"Type\"] = formatingData[inner][3];\n convertData[\"Module\"] = formatingData[inner][4];\n\n excelData.push(convertData);\n }\n }\n // \n return excelData;\n }\n\n async insertEmailData(body: createEmailData[], apikey) {\n let headers = new HttpHeaders({ \"x-auth-token\": apikey });\n let number = 0;\n for (let el = 0; el <= body.length - 1; el++) {\n try {\n await this.https\n .post(`${this.baseApiUrl}createAutoEmail`, body[el], {\n headers: headers,\n })\n .toPromise();\n number = number + 1;\n // \n } catch (err) {\n // \n if (number) {\n number = number - 1;\n }\n }\n }\n // \n return number;\n }\n\n createDemo(body: CreateDemo) {\n return this.http.post(`${this.baseApiUrl}createDemo`, body);\n }\n\n updateDemo(body: { leadId: any; demoId: any }) {\n return this.http.post(`${this.baseApiUrl}leadDemo`, body);\n }\n\n getLead(id) {\n return this.http.get(`${this.baseApiUrl}getLead/${id}`);\n }\n\n sendMailForDemo(\n data: { name: any; demoDate: any; url: string },\n toMail: string,\n projectId: any,\n templateName: any\n ) {\n this.getDemoTemplate(projectId, templateName).subscribe((dTemplate) => {\n let template = dTemplate[\"Html\"];\n if (!template) {\n template = `Hi {{name}},\n \n Thank you for showing interest in our product. As discussed, our demo is scheduled on {{demoDate}}. \n Please join below link for the same:\n {{url}}\n \n Thanks`;\n }\n const result = template.replace(/{{([^{{]+)}}/g, (match, key) => {\n // If there's a replacement for the key, return that replacement with a `
    `. Otherwise, return a empty string.\n return data[key] !== undefined ? data[key] : \"\";\n });\n this.sharedService.currentProject.subscribe((data) => {\n if (data) {\n this.mailService\n .sendmail(\n {\n To: toMail,\n From: {\n email: \"support@accessque.com\",\n name: \"University Hub\",\n },\n Subject: \"University HUB: Study abroad made easy\",\n Body: {\n html: result + \"

    \",\n },\n ReplyTo: \"support@accessque.com\",\n },\n projectId\n )\n .subscribe();\n }\n });\n });\n }\n\n getLeadByRoomId(roomName: any) {\n return this.http.get(`${this.baseApiUrl}getLeadByRoomName/${roomName}`);\n }\n\n updateLeadStatus(body: { id: any; phase: any }) {\n return this.http.post(`${this.baseApiUrl}updateLeadPhase`, body);\n }\n\n sendMOU(projectId, body: { LeadId: any }) {\n return this.http.post(\n `${this.twilioApiUrl}${projectId}/eSign/request`,\n body\n );\n }\n\n showDetails(id, type) {\n return this.http.get(`${this.baseApiUrl}showDetails/${id}/${type}`);\n }\n\n getDemoTemplate(id, name) {\n return this.http.get(`${this.baseApiUrl}getDemoTemplate/${id}/${name}`);\n }\n\n checkCounsellingCandidate({ agentId, projectId }) {\n return this.http.get(\n `${this.baseApiUrl}counselling/${projectId}/${agentId}`\n );\n }\n\n getEventsByStartEnd() {\n var apiURL = `${this.baseApiUrl}getEventByStartEnd/43/2022-01-30T08:00:00/2022-02-01T12:00:00`;\n return this.http.get(\n `${apiURL}`\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"statusvalue\",\n})\nexport class StatusvaluePipe implements PipeTransform {\n transform(value: any): any {\n if (value === \"demo-followup\") {\n return \"D-Followup\";\n }\n if (value === \"demo-interested\") {\n return \"D-Interested\";\n }\n if (value === \"demo-notinterested\") {\n return \"D-Not Interested\";\n }\n if (value === \"notinterested\") {\n return \"Not Interested\";\n }\n return value;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-sales-dashboard',\n templateUrl: './sales-dashboard.component.html',\n styleUrls: ['./sales-dashboard.component.css']\n})\nexport class SalesDashboardComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
    \n
    \n
    \n
    \n
    \n Filter\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Upcoming Prospects
    \n
    \n \n
    235
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Demo Scheduled
    \n
    \n \n
    235
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    New Prospects
    \n
    \n \n
    235
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Average Prospect Time
    \n
    \n \n
    58 sec
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Sales Summary
    \n
    \n
    \n
    \n \n
    \n
    \n
    126
    \n

    Leads

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    87
    \n

    Leads

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    96
    \n

    Leads

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    42
    \n

    Direct Leads

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    Total Amount of Sales
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n
    Ranking
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    1\n \n Krishna jakkamsett235
    2Krishna jakkamsett235
    3Krishna jakkamsett235
    4Krishna jakkamsett235
    5Krishna jakkamsett235
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Inbound Close Rate
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    Transferred calls
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    agent-calls-dashboard works!

    \n
    ","export class Exceldata {\n constructor(\n private firstName: string,\n private lastName: string,\n private countryCode: string,\n private phoneNumber: string,\n private email: string,\n private assignedTo?: string,\n private module?: string,\n private channel?: string,\n private Miscellaneous?: any,\n private CreatedDate?: any,\n private Comments?: any\n ) { }\n}","export class Exceldata2 {\n constructor(\n private GUID: string,\n private firstName: string,\n private lastName: string,\n private countryCode: string,\n private phoneNumber: string,\n private email: string,\n private assignedTo?: string,\n private Program?: string,\n private ApplicationType?: any,\n private CreatedDate?: any,\n private Comments?: any,\n private studentapplicationtype?: any,\n private EnrollmentTerm?: any,\n private EnrollmentYear?: any,\n private isManualLeadCRM?:Boolean\n ) { }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ElementRef,\n OnDestroy,\n} from \"@angular/core\";\nimport { ModalDismissReasons, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Subscription } from \"rxjs\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport * as xlsx from \"xlsx\";\nimport { ProjectService } from \"../../project-management/project.service\";\nimport { RoleService } from \"../../role-management/role.service\";\nimport { MarketingService } from \"../marketing.service\";\nimport { Exceldata } from \"./models/ExecelData.model\";\n\n@Component({\n selector: \"app-smsmarketing\",\n templateUrl: \"./smsmarketing.component.html\",\n styleUrls: [\"./smsmarketing.component.css\"],\n})\nexport class SmsmarketingComponent implements OnInit, OnDestroy {\n fileData: Exceldata[] = [];\n page: any = 1;\n pageSize: any = 8;\n smsData: any[] = [];\n search: any;\n phoneNumbers: any[] = [];\n @ViewChild(\"uploadFile\") inputFile: ElementRef;\n userData: any;\n checked = false;\n closeResult: string;\n from: string = \"+13342125481\";\n sendingText: string;\n selectedItems: any[];\n comments: any;\n phoneNumber: any;\n id: any;\n statusValue = \"pending\";\n filePath: any = \"\";\n projectId: number;\n countries: any[];\n selectedCountryCode: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n @ViewChild(\"uploadFile\") uploadFile;\n public downloadLink: any;\n public admin: boolean = false;\n public isUploaded: boolean = false;\n public project: Subscription;\n\n constructor(\n private readonly sharedService: SharedService,\n private readonly marketingService: MarketingService,\n private readonly modalService: NgbModal,\n private readonly loginService: AuthService,\n private readonly projectService: ProjectService,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n\n ) { }\n\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n ngOnInit() {\n this.sharedService.pageEvent.emit({ pageName: \"SMS Marketing\" });\n this.marketingService\n .getExcelLink(\"services/TemplateDocuments/accessque.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.fetchCountries();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n // this.admin = data;\n // this.getSmsData();\n // this.getProject(this.projectId);\n // });\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n this.admin = data;\n this.getSmsData();\n this.getProject(this.projectId);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 500)\n // this.loginService.companyAdmin.subscribe((data) => {\n // if (this.userData[\"companyId\"] !== 0) {\n // this.companyId = this.userData[\"companyId\"];\n // this.getCompany(this.companyId);\n // }\n // if (data) {\n // this.admin = true;\n // } else {\n // this.admin = false;\n // }\n // this.getSmsData();\n // });\n }\n\n getProject(id) {\n this.projectService.getProject(id).subscribe((data) => {\n this.from = data[\"TwilioNumber\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n getSmsData() {\n this.marketingService\n .getSmsData({\n SmsStatus: this.statusValue,\n admin: this.admin,\n mailId: this.userData[\"mail\"],\n ProjectId: this.projectId,\n })\n .subscribe((data) => {\n for (let customer of data) {\n customer[\"checked\"] = false;\n }\n this.smsData = data;\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n convertFile(e) {\n \n this.filePath = e.target.files[0][\"name\"].toString();\n \n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n \n if (sheet_data[0][0] === \"First Name\" && sheet_data.length !== 0) {\n this.error = false;\n this.fileData =\n this.marketingService.convert2dArraytoObject(sheet_data);\n \n this.marketingService\n .postMarketingData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n })\n .subscribe((data) => {\n \n this.isUploaded = true;\n this.getSmsData();\n setTimeout(() => {\n this.isUploaded = false;\n }, 5000);\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n openFileUpload() {\n this.inputFile.nativeElement.click();\n }\n\n singleChecked(id) {\n let datas = this.smsData.find((data) => data[\"id\"] === id);\n datas[\"checked\"] = true;\n \n // this.phoneNumbers.push(datas);\n }\n\n selectAll() {\n this.checked = !this.checked;\n this.smsData\n .slice((this.page - 1) * this.pageSize, this.page * this.pageSize)\n .forEach((data) => (data[\"checked\"] = this.checked));\n this.phoneNumbers = this.smsData.map((data) => {\n if (data[\"checked\"]) {\n return data;\n }\n });\n \n }\n\n open(content) {\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.smsData.forEach((item) => (item[\"checked\"] = false));\n\n this.checked = false;\n this.phoneNumbers = [];\n this.phoneNumber = \"\";\n this.comments = \"\";\n this.id = \"\";\n \n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n sendSms(content, id) {\n this.smsData.forEach((sms) => {\n if (sms[\"id\"] === id) {\n sms[\"checked\"] = true;\n }\n });\n this.phoneNumbers = this.smsData.filter((data) => data[\"checked\"]);\n this.open(content);\n }\n\n sent() {\n this.phoneNumbers = this.smsData.filter((data) => data[\"checked\"]);\n for (let number of this.phoneNumbers) {\n this.marketingService\n .sendSms(\n {\n from: this.from,\n to: \"+\" + number[\"CountryCode\"] + number[\"PhoneNumber\"],\n text: this.replaceString(\n number[\"FirstName\"] + number[\"LastName\"],\n this.sendingText\n ),\n },\n this.projectId\n )\n .subscribe((data) => {\n \n this.marketingService\n .updateSmsStatus({\n id: number[\"id\"],\n messages: {\n body: this.replaceString(\n number[\"FirstName\"] + \" \" + number[\"LastName\"],\n this.sendingText\n ),\n sendAt: Date.now(),\n sender:\n this.userData[\"firstName\"] + \" \" + this.userData[\"lastName\"],\n receiver: \"+\" + number[\"CountryCode\"] + number[\"PhoneNumber\"],\n },\n assignedTo: number[\"AssignedTo\"] || this.userData[\"mail\"],\n })\n .subscribe((data) => {\n \n this.getSmsData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n this.modalService.dismissAll();\n }\n\n openUpdateSms(content, id) {\n let data = this.smsData.find((data) => data[\"id\"] === id);\n this.phoneNumber = data[\"PhoneNumber\"];\n this.comments = data[\"Comments\"];\n this.id = id;\n this.open(content);\n }\n\n updateSms() {\n this.marketingService\n .updateSmsData({\n id: this.id,\n phoneNumber: this.phoneNumber,\n comments: this.comments,\n })\n .subscribe((data) => {\n this.modalService.dismissAll();\n this.getSmsData();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n replaceString(fullname, content): string {\n let replacements = {\n name: fullname,\n };\n\n const result = content.replace(/{{([^{{]+)}}/g, (match, key) => {\n // If there's a replacement for the key, return that replacement with a `
    `. Otherwise, return a empty string.\n return replacements[key] !== undefined ? replacements[key] : \"\";\n });\n return result;\n }\n\n dropdownSelect() {\n this.getSmsData();\n }\n\n pageChange() {\n this.smsData.forEach((item) => (item[\"checked\"] = false));\n\n this.checked = false;\n this.phoneNumbers = [];\n }\n\n selectCountry(country) {\n this.selectedCountryCode = country[\"code\"];\n }\n\n fetchCountries() {\n this.sharedService.getCountries().subscribe((data) => {\n this.countries = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n createCustomer(value: Exceldata) {\n value[\"countryCode\"] = this.selectedCountryCode;\n this.marketingService\n .postMarketingData({\n data: [value],\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n })\n .subscribe((data) => {\n \n this.getSmsData();\n this.modalService.dismissAll();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n projectChange(data) {\n this.projectId = data;\n this.sharedService.getProjectAdmin(this.projectId).subscribe((data) => {\n this.admin = data;\n this.getSmsData();\n this.getProject(this.projectId);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n}\n","
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n {{ filePath }}\n
    \n \n\n
    \n {{ fileData.length + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n Name\n \n \n Phone Number\n\n \n \n Email\n \n \n SMS Status\n\n \n \n Assigned To\n\n \n Action
    \n \n \n {{\n item[\"FirstName\"] + \" \" + item[\"LastName\"] | titlecase\n }}\n +{{ item[\"CountryCode\"] + item[\"PhoneNumber\"] }}{{ item[\"Email\"] || \"-\" }}\n
    \n {{ item[\"SmsStatus\"] | titlecase }}\n
    \n
    {{ item[\"AssignedTo\"] || \"-\" }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    Send SMS

    \n \n
    \n
    \n
    \n
    \n
    Selected Number
    \n
    \n {{ \"+\" +\n numbers[\"CountryCode\"] + numbers[\"PhoneNumber\"] }}\n
    \n
    \n
    Message
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    Update SMS

    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    Comment
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    Create Customer

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n {{ \"please enter a valid name\" | titlecase }}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n {{ \"please enter a valid name\" | titlecase }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n
      \n
    • \n \n
      \n {{ country.name }} (+{{ country.code }})\n
      \n
    • \n
    \n
    \n \n
    \n please enter a valid phone number\n
    \n
    \n
    \n
    \n \n \n
    \n {{ \"please enter a valid email\" | titlecase }}\n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-monitoring',\n templateUrl: './monitoring.component.html',\n styleUrls: ['./monitoring.component.css']\n})\nexport class MonitoringComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

    monitoring works!

    \n","import { SmsmodulesComponent } from \"./smsmodules/smsmodules.component\";\nimport { CompanymodulesComponent } from \"./companymodules/companymodules.component\";\nimport { ProfileComponent } from \"./profile/profile.component\";\nimport { TemplatesComponent } from \"./templates/templates.component\";\nimport { EmailsettingsComponent } from \"./emailsettings/emailsettings.component\";\nimport { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { AuthGuard } from \"../core/guards/auth.guard\";\nimport { CreateAgentComponent } from \"./create-agent/create-agent.component\";\nimport { GroupManagementComponent } from \"./group-management/group-management.component\";\nimport { RoleManagementComponent } from \"./role-management/role-management.component\";\nimport { CustomTableComponent } from \"./custom-table/custom-table.component\";\nimport { ContactsComponent } from \"./contacts/contacts.component\";\nimport { CompanyManagementComponent } from \"./company-management/company-management.component\";\nimport { CalllogsComponent } from \"./calllogs/calllogs.component\";\nimport { ProjectManagementComponent } from \"./project-management/project-management.component\";\nimport { HellosignComponent } from \"./hellosign/hellosign.component\";\nimport { UhleadsComponent } from \"./uhleads/uhleads.component\";\nimport { ReportsComponent } from \"./reports/reports.component\";\nimport { ReferralComponent } from \"./referral/referral.component\";\nimport { ReferreeComponent } from \"./referree/referree.component\";\nimport { DashboardReportsComponent } from \"./dashboard-reports/dashboard-reports.component\";\nimport { MonitoringComponent } from \"./monitoring/monitoring.component\";\nimport { GoogleAnalyticsComponent } from \"./google-analytics/google-analytics/google-analytics.component\";\nimport { AppAnalyticsComponent } from \"./dashboard-reports/app-analytics/app-analytics.component\";\nimport { CallAnalyticsComponent } from \"./dashboard-reports/call-analytics/call-analytics.component\";\nimport { EnquiryComponent } from \"./enquiry/enquiry.component\";\nimport { UploadComponent } from \"./upload/upload.component\";\nimport { UhubDashboardComponent } from \"./uhub-dashboard/uhub-dashboard.component\";\nimport { CalendarComponent } from \"./calendar/calendar.component\";\nimport { AppointmentsComponent } from \"./calendar/appointment/appointment.component\";\nimport { AutoCallSMSComponent } from \"./calendar/auto-call-sms/auto-call-sms.component\";\nimport { RecruiterComponent } from \"./recruiter/recruiter.component\";\nimport { CuNextComponent } from \"./cu-next/cu-next.component\";\nimport { JudsonuLeadsComponent } from \"./judsonu-leads/judsonu-leads.component\";\nimport { SfcLeadsComponent } from \"./sfc-leads/sfc-leads.component\";\nimport { DocumentationComponent } from \"./documentation/documentation.component\";\nimport { UwlaComponent } from \"./uwla/uwla.component\"\nimport { SocialmedialeadsComponent } from \"./uhub-dashboard/socialmedialeads/socialmedialeads.component\";\nimport { RecruiterleadsComponent } from \"./uhub-dashboard/recruiterleads/recruiterleads.component\";\nconst routes: Routes = [\n {\n path: \"mail\",\n loadChildren: () => import(\"./mail/mail.module\").then((d) => d.MailModule),\n canActivate: [AuthGuard],\n },\n {\n path: \"sms\",\n loadChildren: () => import(\"./sms/sms.module\").then((m) => m.SmsModule),\n },\n {\n path: \"dashboard\",\n loadChildren: () =>\n import(\"./dashboard/dashboard.module\").then((m) => m.DashboardModule),\n },\n {\n path: \"tickets\",\n loadChildren: () =>\n import(\"./tickets/tickets.module\").then((m) => m.TicketsModule),\n canActivate: [AuthGuard],\n },\n { path: \"agents\", component: CreateAgentComponent, canActivate: [AuthGuard] },\n {\n path: \"role\",\n component: RoleManagementComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"group\",\n component: GroupManagementComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"settings/email\",\n component: EmailsettingsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"settings/email/:id\",\n component: EmailsettingsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"templates\",\n component: TemplatesComponent,\n canActivate: [AuthGuard],\n },\n { path: \"profile\", component: ProfileComponent, canActivate: [AuthGuard] },\n {\n path: \"tickets/customTable/:pageName\",\n component: CustomTableComponent,\n canActivate: [AuthGuard],\n },\n { path: \"contacts\", component: ContactsComponent, canActivate: [AuthGuard] },\n { path: \"referral\", component: ReferralComponent, canActivate: [AuthGuard] },\n { path: \"referree\", component: ReferreeComponent, canActivate: [AuthGuard] },\n { path: \"analytics\", component: GoogleAnalyticsComponent, canActivate: [AuthGuard] },\n\n\n {\n path: \"company\",\n component: CompanyManagementComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"role/:id/:name/:projectId\",\n component: RoleManagementComponent,\n canActivate: [AuthGuard],\n },\n { path: \"calllogs\", component: CalllogsComponent, canActivate: [AuthGuard] },\n {\n path: \"callModules\",\n component: CompanymodulesComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"SMSModules\",\n component: SmsmodulesComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"projects/:companyId/:name\",\n component: ProjectManagementComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"hellosign\",\n component: HellosignComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"uhleads\",\n component: UhleadsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"judsonuleads\",\n component: JudsonuLeadsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"sfcleads\",\n component: SfcLeadsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"uwlaleads\",\n component: UwlaComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"reports2\",\n component: ReportsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"reports\",\n component: DashboardReportsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"appreports\",\n component: AppAnalyticsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"callreports\",\n component: CallAnalyticsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"cunext\",\n component: CuNextComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"enquiries\",\n component: EnquiryComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"monitoring\",\n component: MonitoringComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"calendar\",\n component: CalendarComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"appointments\",\n component: AppointmentsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"auto-call-sms\",\n component: AutoCallSMSComponent,\n canActivate: [AuthGuard],\n },\n \n {\n path: 'transfers',\n loadChildren: () =>\n import(\"./trasnfers/trasnfers.module\").then((m) => m.TrasnfersModule),\n canActivate: [AuthGuard],\n },\n {\n path: 'upload/:id',\n component: UploadComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'upload/:id/:menu',\n component: UploadComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'uhub',\n component: UhubDashboardComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'socialmedia/leads',\n component: SocialmedialeadsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'recruiter/leads',\n component: RecruiterleadsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'recruiter',\n component: RecruiterComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'documentation',\n component: DocumentationComponent,\n canActivate: [AuthGuard],\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PagesRoutingModule {}\n","import { MarketingModule } from \"./marketing/marketing.module\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PagesRoutingModule } from \"./pages-routing.module\";\nimport { SharedModule } from \"../shared/shared.module\";\nimport { DashboardModule } from \"./dashboard/dashboard.module\";\nimport { TicketsModule } from \"./tickets/tickets.module\";\nimport { ChatModule } from \"./chat/chat.module\";\nimport { CreateAgentComponent } from \"./create-agent/create-agent.component\";\nimport { NgMultiSelectDropDownModule } from \"ng-multiselect-dropdown\";\nimport { RoleManagementComponent } from \"./role-management/role-management.component\";\n// import { FilterPipe } from './filter.pipe';\nimport { GroupManagementComponent } from \"./group-management/group-management.component\";\nimport { EmailsettingsComponent } from \"./emailsettings/emailsettings.component\";\nimport { EmailEditorModule } from \"angular-email-editor\";\nimport { TemplatesComponent } from \"./templates/templates.component\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { ProfileComponent } from \"./profile/profile.component\";\n// import {\n// MatCardModule,\n// MatCheckboxModule,\n// MatExpansionModule,\n// MatIconModule,\n// MatInputModule,\n// MatListModule,\n// MatSelectModule,\n// MatTabsModule,\n// } from \"@angular/material\";\nimport { CustomTableComponent } from \"./custom-table/custom-table.component\";\nimport { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { ContactsComponent } from \"./contacts/contacts.component\";\nimport { CompanyManagementComponent } from \"./company-management/company-management.component\";\nimport { CalllogsComponent } from \"./calllogs/calllogs.component\";\nimport { MarketingRoutingModule } from \"./marketing/marketing-routing.module\";\nimport { CompanymodulesComponent } from \"./companymodules/companymodules.component\";\nimport { Ng2SearchPipeModule } from \"ng2-search-filter\";\nimport { SmsmodulesComponent } from \"./smsmodules/smsmodules.component\";\nimport { PageheadersPipe } from \"./custom-table/pageheaders.pipe\";\nimport { ProjectManagementComponent } from \"./project-management/project-management.component\";\nimport { RoleNamePipe } from \"./create-agent/role-name.pipe\";\nimport { HellosignComponent } from \"./hellosign/hellosign.component\";\nimport { ReferralComponent } from \"./referral/referral.component\";\nimport { ReferreeComponent } from \"./referree/referree.component\";\nimport { NgxTimerModule } from \"ngx-timer\";\nimport { DemoMaterialModule } from \"./uhleads/material.module\";\nimport { ActivityFilterPipe2 } from \"../shared/activity2.pipe\";\nimport { ReportsComponent } from \"./reports/reports.component\";\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { MultiSelectDropdownComponent } from \"./reports/report-filter/multi-select-dropdown/multi-select-dropdown.component\";\nimport { UpdatedAtComponent } from \"./reports/report-filter/updated-at/updated-at.component\";\nimport { CreatedAtComponent } from \"./reports/report-filter/created-at/created-at.component\";\nimport { IvyCarouselModule } from \"angular-responsive-carousel\";\nimport { ReportFilterComponent } from './reports/report-filter/report-filter.component';\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { DashboardReportsComponent } from './dashboard-reports/dashboard-reports.component';\nimport { SparklineComponent } from \"../custom-charts/sparkline/sparkline.component\";\nimport { TimelineFilterBarChartComponent } from \"../custom-charts/timeline-filter-bar-chart/timeline-filter-bar-chart.component\";\nimport { ComboChartComponent, ComboSeriesVerticalComponent } from \"../custom-charts/combo-chart\";\nimport { BubbleChartInteractiveModule } from \"../custom-charts/bubble-chart-interactive\";\nimport { NgxUIModule } from \"@swimlane/ngx-ui\";\nimport { NgxChartsModule } from \"@swimlane/ngx-charts/ngx-charts.module\";\nimport { UhleadsfilterComponent } from \"./uhleads/uhleadsfilter/uhleadsfilter.component\";\nimport { MonitoringComponent } from './monitoring/monitoring.component';\nimport { GoogleAnalyticsComponent } from \"./google-analytics/google-analytics/google-analytics.component\";\nimport { LayoutModule } from \"../layout/layout.module\";\nimport { AppAnalyticsComponent } from './dashboard-reports/app-analytics/app-analytics.component';\nimport { CallAnalyticsComponent } from './dashboard-reports/call-analytics/call-analytics.component';\nimport { ReportFilterComponent2 } from \"./reports/report-filter2/report-filter.component\";\nimport { TrasnfersModule } from \"./trasnfers/trasnfers.module\";\nimport { UploadComponent } from './upload/upload.component';\nimport { ProgressComponent } from \"src/components/progress/progress.component\";\nimport { CalendarComponent } from './calendar/calendar.component';\nimport { EventScheduleComponent } from './event-schedule/event-schedule.component';\nimport { AppointmentsComponent } from './calendar/appointment/appointment.component';\nimport { AutoCallSMSComponent } from './calendar/auto-call-sms/auto-call-sms.component';\nimport { RecruiterComponent } from './recruiter/recruiter.component';\nimport { DocumentationComponent } from './documentation/documentation.component';\nimport { NgxDocViewerModule } from \"ngx-doc-viewer\";\nexport function chartModule(): any {\n return import('echarts');\n}\n\n@NgModule({\n declarations: [\n CreateAgentComponent,\n RoleManagementComponent,\n // FilterPipe,\n GroupManagementComponent,\n EmailsettingsComponent,\n TemplatesComponent,\n ProfileComponent,\n CustomTableComponent,\n ContactsComponent,\n ReferralComponent,\n ReferreeComponent,\n CompanyManagementComponent,\n CalllogsComponent,\n CompanymodulesComponent,\n SmsmodulesComponent,\n PageheadersPipe,\n ProjectManagementComponent,\n RoleNamePipe,\n HellosignComponent,\n ActivityFilterPipe2,\n ReportsComponent,\n MultiSelectDropdownComponent,\n UpdatedAtComponent,\n CreatedAtComponent,\n ReportFilterComponent,\n ReportFilterComponent2,\n DashboardReportsComponent,\n SparklineComponent,\n TimelineFilterBarChartComponent,\n ComboChartComponent,\n ComboSeriesVerticalComponent,\n UhleadsfilterComponent,\n MonitoringComponent,\n GoogleAnalyticsComponent,\n AppAnalyticsComponent,\n CallAnalyticsComponent,\n UploadComponent,\n ProgressComponent,\n CalendarComponent,\n EventScheduleComponent,\n AppointmentsComponent,\n AutoCallSMSComponent,\n RecruiterComponent,\n DocumentationComponent,\n ],\n imports: [\n CommonModule,\n PagesRoutingModule,\n DashboardModule,\n TicketsModule,\n ChatModule,\n SharedModule,\n NgbModule,\n FormsModule,\n NgMultiSelectDropDownModule.forRoot(),\n EmailEditorModule,\n MatSnackBarModule,\n MatDividerModule,\n MatIconModule,\n MatInputModule,\n Ng2SearchPipeModule,\n MatTabsModule,\n DragDropModule,\n MatCheckboxModule,\n MatCardModule,\n MatListModule,\n MatButtonModule,\n MarketingRoutingModule,\n MarketingModule,\n TicketsModule,\n MatExpansionModule,\n ReactiveFormsModule,\n NgxTimerModule,\n MatSelectModule,\n DemoMaterialModule,\n IvyCarouselModule,\n BubbleChartInteractiveModule,\n NgxUIModule,\n NgxChartsModule,\n NgxEchartsModule.forRoot({\n echarts: chartModule\n }),\n LayoutModule,\n TrasnfersModule,\n NgxDocViewerModule\n ],\n exports: [\n Ng2SearchPipeModule,\n UhleadsfilterComponent,\n \n // FilterPipe,\n ]\n})\nexport class PagesModule { }\n","import { MailserviceService } from \"./../mailservice.service\";\nimport { ModalDismissReasons, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport { Component, ElementRef, OnInit } from \"@angular/core\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { Router } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-profile\",\n templateUrl: \"./profile.component.html\",\n styleUrls: [\"./profile.component.css\"],\n})\nexport class ProfileComponent implements OnInit {\n image: File;\n isError: string = \"\";\n random = Math.random().toString(36).substring(7);\n compareNumber: string;\n closeResult: any;\n template: any;\n userRoles: any[] = [];\n userGroups: any[] = [];\n isUpdate: boolean = false;\n isShown: boolean = false;\n alert: any = {\n success: true,\n type: \"success\",\n message: \"verification code sent to mail!!\",\n };\n alert1: any = {\n success: false,\n type: \"danger\",\n message: \"please enter confirm and new password as same!!\",\n };\n userData: any;\n phoneNumber: any;\n oldPassword: any;\n newPassword: any;\n profilePhoto: any = \"../../../assets/img/profile-dummy.png\";\n locationKey: string;\n // image: string = '';\n\n constructor(\n private sharedService: SharedService,\n private modalService: NgbModal,\n private authService: AuthService,\n private mailService: MailserviceService,\n private handleError: ErrorHandlerService,\n private agentService: CreateAgent,\n private router: Router // private managementService: ManagementService\n ) {}\n\n ngOnInit() {\n // \n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n if (this.userData[\"ProfilePhoto\"] !== null) {\n this.locationKey = this.userData[\"ProfilePhoto\"];\n this.agentService\n .getSignedUrl({ url: this.locationKey })\n .subscribe((data) => {\n this.profilePhoto = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n this.mailService\n .getTemplateByName(\"passwordverification\")\n .subscribe((data) => {\n this.template = data[\"Html\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.sharedService.pageEvent.emit({\n pageName: \"Edit Profile\",\n togglePage: true,\n });\n this.agentService.GetAgentbyid(this.userData.id).subscribe((data) => {\n this.phoneNumber = data[\"PhoneNumber\"];\n this.userGroups = data[\"SelectedGroups\"].map((data) => data[\"Name\"]);\n this.userRoles = data[\"SelectedRoles\"].map((data) => data[\"Name\"]);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n uploadFile(file: HTMLInputElement) {\n file.click();\n }\n\n uploadFiles(value: any) {\n let reader = new FileReader();\n reader.readAsDataURL(value.target.files[0]);\n \n const body = new FormData();\n body.append(\"image\", value.target.files[0]);\n this.mailService.uploadFile(body).subscribe((data) => {\n this.locationKey = data[\"url\"];\n this.agentService\n .getSignedUrl({ url: data[\"url\"] })\n .subscribe((datas) => {\n this.profilePhoto = datas[\"url\"];\n this.mailService\n .updateProfilePhoto({\n id: this.userData.id,\n photo: this.locationKey,\n })\n .subscribe((data) => {\n // this.router.navigate(['/dashboard/dashboard-view']);\n this.userData.ProfilePhoto = this.locationKey;\n localStorage.setItem(\"userData\", JSON.stringify(this.userData));\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n });\n }\n\n editProfile() {}\n\n submit(value, content) {\n if (\n value.oldPassword === \"\" ||\n value.newPassword !== value.confirmPassword\n ) {\n setTimeout(() => {\n this.alert1.success = false;\n }, 10000);\n\n return (this.alert1.success = true);\n }\n this.open(content);\n }\n toggleShown() {\n this.isShown = !this.isShown;\n }\n open(content) {\n let replacements = {\n code: this.random,\n FirstName: this.userData.firstName,\n LastName: this.userData.lastName,\n };\n const result = this.template.replace(/{{([^{{]+)}}/g, (match, key) => {\n // If there's a replacement for the key, return that replacement with a `
    `. Otherwise, return a empty string.\n return replacements[key] !== undefined ? replacements[key] : \"\";\n });\n if (!this.isUpdate) {\n this.mailService\n .sendmail(\n {\n From: { email: \"support@accessque.com\", name: \"University Hub\" },\n To: `${this.userData.mail}`,\n Subject: \"sent verfication code\",\n ReplyTo: \"support@accessque.com\",\n Body: {\n html: result,\n },\n },\n 1\n )\n .subscribe((data) => {\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n this.isUpdate = true;\n\n this.modalService.open(content, { size: \"sm\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n setTimeout(() => {\n this.alert.success = false;\n }, 10000);\n }\n\n private getDismissReason(reason: any): string {\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n updatePassword(value) {\n if (this.random !== this.compareNumber) {\n this.alert.type = \"danger\";\n this.alert.success = true;\n return (this.alert.message = \"wrong verification code\");\n }\n this.modalService.dismissAll();\n\n this.authService\n .forgetPassword({\n mail: this.userData.mail,\n oldPassword: this.oldPassword,\n newPassword: this.newPassword,\n })\n .subscribe(\n (data) => {\n \n this.router.navigate([\"/dashboard/dashboard-view\"]);\n },\n (err) => {\n this.alert1.success = true;\n this.alert1.message = \"please enter valid password\";\n setTimeout(() => {\n this.alert1.success = false;\n }, 10000);\n this.handleError.handleError(err)\n\n }\n );\n }\n}\n","
    \n\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\"\"\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{{ userData.firstName }} {{ userData.lastName }}\n\t\t\t
    \n\t\t\t
    {{ userData.mail }}
    \n\t\t\t+{{ phoneNumber ? phoneNumber : '' }}\n\t\t\t
    Edit Profile\n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t
    Roles ({{ userRoles.length }})
    \n\t\t\t\t
    \n\t\t\t\t\t
    {{\n\t\t\t\t\t\tname\n\t\t\t\t\t}}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    Groups ({{ userGroups.length }})
    \n\t\t\t\t
    \n\t\t\t\t\t
    {{\n\t\t\t\t\t\tname\n\t\t\t\t\t}}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t
    \n\t\t\t\t
    Settings
    \n\t\t\t\t
    \n\t\t\t\t\t
    Change Password\n\t\t\t\t
    \n\t\t\t\t{{ alert1.message }}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\t
    \n\t\t\t

    Verification

    \n\t\t\t\n\t\t\t\t×\n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t{{ alert.message }}\n\t\t\t\n\t\t\t\n\t\t
    \n\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n
    \n","import { AuthService } from \"src/app/account/auth/auth.service\";\nimport { NgForm } from \"@angular/forms\";\nimport { RoleService } from \"./../role-management/role.service\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { ManagementService } from \"../management.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ProjectService } from \"./project.service\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-project-management\",\n templateUrl: \"./project-management.component.html\",\n styleUrls: [\"./project-management.component.css\"],\n})\nexport class ProjectManagementComponent implements OnInit {\n closeResult: string;\n search: string;\n companyInfo: any = {\n name: \"\",\n twilioNumber: \"\",\n supportMail: \"\",\n forwardMail: \"\",\n desc: \"\",\n };\n totalCompanies: any[] = [];\n isUpdate: boolean = false;\n inputData: any;\n isError: boolean = false;\n errorMessage: string;\n superAdmin: Boolean = false;\n userData: any;\n public page: any = 1;\n public pageSize: any = 6;\n selectedCountryCode;\n countries: any[];\n group: any[] = [];\n groups: any[] = [];\n companySettings: IDropdownSettings;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public companyId: string = \"\";\n public companyName: string = \"\";\n public companyForwardMail: string = \"\";\n\n constructor(\n private modalService: NgbModal,\n private companyService: RoleService,\n private sharedService: SharedService,\n private authService: AuthService,\n private managementService: ManagementService,\n private agentService: CreateAgent,\n private projectService: ProjectService,\n private handleError: ErrorHandlerService,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this.route.params.subscribe((data) => {\n if (data[\"companyId\"]) {\n this.companyId = data[\"companyId\"];\n this.getCompanyById(data[\"companyId\"]);\n this.getCompanies(data[\"companyId\"]);\n }\n if (data[\"name\"]) {\n this.companyName = data[\"name\"];\n }\n });\n\n this.companySettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n };\n\n this.fetchCountries();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.sharedService.companyCreated.next(\"company created\");\n this.sharedService.pageEvent.emit({ pageName: \"Project Management\" });\n // this.authService.admin.subscribe((data) => {\n // this.superAdmin = data;\n // });\n }\n\n open(content) {\n // this.isError = false;\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n this.getCompanies(this.companyId);\n this.isUpdate = false;\n this.companyInfo[\"id\"] = null;\n this.resetForm();\n this.isError = false;\n // this.companyInfo = { name: '', twilioNumber: '', supportMail: '' };\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n submit(form: NgForm) {\n if (form.valid) {\n if (!this.isUpdate) {\n this.projectService\n .createProject({\n name: form.value.name,\n supportMail: form.value.supportMail,\n twilioNumber: form.value.twilioNumber,\n forwardMail: this.companyInfo.forwardMail,\n companyId: this.companyId,\n description: form.value.desc,\n })\n .subscribe(\n (data) => {\n \n // this.sharedService.companyCreated.next(\"company created\");\n this.managementService\n .createIvr(\n {\n projectName: data[\"Name\"].replace(/\\s+/g, \"\").toLowerCase(),\n projectId: data[\"id\"],\n twilioNumber: data[\"TwilioNumber\"],\n },\n data[\"id\"]\n )\n .subscribe((data) => {\n this.modalService.dismissAll();\n \n });\n },\n (err) => {\n this.isError = true;\n setTimeout(() => {\n this.isError = false;\n }, 5000);\n this.errorMessage = err.error.status;\n this.handleError.handleError(err)\n\n }\n );\n } else {\n \n this.projectService\n .updateProject({\n name: form.value.name,\n ActiveStatus: form.value.ActiveStatus,\n supportMail: form.value.supportMail,\n twilioNumber: form.value.twilioNumber,\n id: this.companyInfo[\"id\"],\n incomingMailGroup:\n form.value.incomingMailGroup.length !== 0\n ? form.value.incomingMailGroup[0][\"id\"]\n : null,\n forwardMail: this.companyInfo[\"forwardMail\"],\n })\n .subscribe(\n (data) => {\n if (form.value.updateIvr) {\n \n this.managementService\n .createIvr(\n {\n projectName: form.value.name\n .replace(/\\s+/g, \"\")\n .toLowerCase(),\n twilioNumber: form.value.twilioNumber,\n projectId: this.companyInfo.id,\n },\n this.companyInfo.id\n )\n .subscribe((data) => {\n \n });\n }\n this.modalService.dismissAll();\n },\n (err) => {\n this.isError = true;\n this.errorMessage = err.error.status;\n this.handleError.handleError(err)\n\n }\n );\n }\n }\n }\n\n resetForm() {\n this.companyInfo = {\n name: \"\",\n twilioNumber: \"\",\n supportMail: \"\",\n activeStatus: null,\n id: null,\n };\n this.isError = false;\n this.errorMessage = \"\";\n this.groups = [];\n this.group = [];\n }\n\n onCompanySelect(id: any, content) {\n // if (this.superAdmin) {\n this.isUpdate = true;\n\n this.projectService.getProject(id).subscribe((data) => {\n this.companyInfo = {\n name: data[\"Name\"],\n supportMail: data[\"SupportMail\"],\n twilioNumber: data[\"TwilioNumber\"],\n ActiveStatus: data[\"ActiveStatus\"],\n id: id,\n forwardMail: data[\"ForwardMail\"] || \"\",\n desc: data[\"Description\"],\n };\n this.open(content);\n this.agentService.getMailGroups(data[\"id\"]).subscribe((datas) => {\n this.groups = datas.map((datac) => ({\n Name: datac[\"Name\"],\n id: datac[\"id\"],\n }));\n let selectedGroup = this.groups.find(\n (datap) => datap[\"id\"] === data[\"IncomingMailGroup\"]\n );\n if (selectedGroup) {\n this.group = [selectedGroup[\"Name\"]];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n // }\n }\n\n getCompanies(id) {\n this.projectService.getProjects(id).subscribe((data) => {\n this.totalCompanies = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n selectCountry(country) {\n \n this.selectedCountryCode = country.code;\n }\n\n fetchCountries() {\n this.sharedService.getCountries().subscribe((data) => {\n this.countries = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(felidName) {\n this.orderFeild = felidName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n forwardMail(event) {\n let name = event.replace(/[^A-Z0-9]+/gi, \"\");\n this.companyInfo[\"forwardMail\"] = name + this.companyForwardMail;\n }\n\n getCompanyById(id) {\n this.companyService.getCompanyById(id).subscribe((data) => {\n this.companyForwardMail = \"-\" + data[\"ForwardMail\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n}\n","\n
    \n
    \n \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n {{ item[\"Name\"] | titlecase }}\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n Project Name\n\n \n \n \n \n Project Description\n\n \n \n \n \n Twilio Number\n \n \n \n \n Support Mail\n \n \n \n \n Status\n \n \n \n \n Created Date\n \n \n Create Role
    {{ item[\"Description\"] }}{{ item[\"TwilioNumber\"] }}{{ item[\"SupportMail\"] }}\n
    \n {{ item[\"ActiveStatus\"] ? \"Active\" : \"In Active\" }}\n
    \n
    \n {{ item[\"createdAt\"] | date: \"medium\" }}\n \n Manage Roles\n
    \n
    \n
    \n
    \n\n
    \n

    \n {{ isUpdate ? \"Update\" : \"Create\" }} Project\n

    \n \n ×\n \n
    \n
    \n {{\n errorMessage\n }}\n
    \n
    \n \n \n \n \n Please Enter Valid Name\n
    \n
    \n
    \n \n \n \n \n
    \n Please Enter Valid Description\n
    \n
    \n
    \n \n \n \n
    \n Please enter valid Description\n
    \n
    \n
    \n
    \n
    \n
    \n Update IVR\n
    \n\n
    \n
    \n \n \n \n \n \n \n Please select Value\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n Please enter valid Description\n
    \n
    \n\n
    \n \n
    \n \n
    \n\n","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\n\ninterface CreateProject {\n name: string;\n description: string;\n companyId: any;\n twilioNumber: string;\n supportMail: string;\n forwardMail: string;\n}\n\ninterface UpdateProject {\n name: string;\n twilioNumber: string;\n supportMail: string;\n ActiveStatus: any;\n id: any;\n incomingMailGroup: any;\n forwardMail: string;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ProjectService {\n baseApiUrl2: any = environment.baseApiUrl2;\n\n constructor(private http: HttpClientService) {}\n\n getProjects(companyId) {\n return this.http.get(\n `${this.baseApiUrl2}getAllProjects/${companyId}`\n );\n }\n\n createProject(body: CreateProject) {\n return this.http.post(`${this.baseApiUrl2}CreateProject`, body);\n }\n\n getProject(id) {\n return this.http.get(`${this.baseApiUrl2}getProjectById/${id}`);\n }\n\n updateProject(body: UpdateProject) {\n return this.http.post(`${this.baseApiUrl2}updateproject`, body);\n }\n\n dashboardProjects(body: { admin: boolean; companyId: any; userId: any }) {\n return this.http.post(`${this.baseApiUrl2}dashboardprojects`, body);\n }\n\n projectAdmin(body: { userId: any; projectId: any }) {\n return this.http.post(`${this.baseApiUrl2}projectAdmin`, body);\n }\n}\n","import { Component, OnInit, ViewChild, Inject, ElementRef } from \"@angular/core\";\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { RecruiterService } from \"./recruiter.service\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport * as xlsx from \"xlsx\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { post } from \"jquery\";\nimport { MarketingService } from \"../marketing/marketing.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { Router } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport * as moment from \"moment\";\nimport { UhubDashboardService } from \"../uhub-dashboard/uhub-dashboard.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\n\n\nexport enum REGEX {\n EMAIL = '[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\\\.[a-z]{2,4}',\n PHONE = '[0-9]{10}$',\n PASSWORD = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$',\n ZIP = '^[a-zA-Z0-9,\\'-]*$',\n NUMBER = '^[0-9]*$',\n URL = '^(http:\\/\\/www\\.|https:\\/\\/www\\.|www\\.|http:\\/\\/|https:\\/\\/)[a-zA-Z0-9\\.\\-]+\\\\.[a-zA-Z]{2,5}[\\.]{0,1}',\n CHARACTER = \"^[a-zA-Z /'.-]*$\",\n SPECIAL_PHONE = '^[+|0-9]+[0-9]{1,}$',\n ADDRESS = '^[a-zA-Z0-9\\s,\\'-]*$',\n}\n\n@Component({\n selector: \"app-recruiter\",\n templateUrl: \"./recruiter.component.html\",\n styleUrls: [\"./recruiter.component.css\"],\n})\nexport class RecruiterComponent implements OnInit {\n userData: any;\n projectId: any;\n admin: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n public cardType: string = \"all\";\n public filePath: any;\n public fileData: ReferralData[] = [];\n recruiterList: any[] = [];\n studentList: any[] = [];\n enrolledStudentList: any[] = [];\n public page: any = 1;\n public pageSize: any = 10;\n filterString: any;\n noLeadsFound: boolean = false;\n leadsLoading: boolean = true;\n totalRecords = 0;\n sideViewerData: any = [];\n tab!: string;\n studentSearch: string = '';\n\n topBarCount: {\n all: number;\n totalrecruiters: number;\n totalFreelancer: number;\n enrolled: number;\n registered: number;\n paymentpending: number;\n paymentscomplete: number;\n } = {\n all: 0,\n totalrecruiters: 0,\n totalFreelancer: 0,\n enrolled: 0,\n registered: 0,\n paymentpending: 0,\n paymentscomplete: 0,\n };\n leadType: string = \"totalrecruiters\";\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n applicationStatus: any = \"\";\n public callData: any[] = [];\n public startIndex: number = 0;\n selectedLead: any;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n testConfig: countUpTimerConfigModel;\n public clearTime: any;\n minItems = 5;\n activityfilterString: string;\n smsText: string;\n projectLists: any;\n smsList: any;\n currentLeadIdCRM: any;\n callStatusRecruiterCRM: any;\n comments: any;\n currentCallSid: any;\n @ViewChild(\"closeButton2\") closeButton2;\n search: any;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n cardleadType: string;\n updateRecruiter: FormGroup;\n recruiterCategory: any;\n public categories = ['Organization', 'Freelancer'];\n @ViewChild(\"closeButton3\", { static: true }) closeButton3;\n public statusValue = \"pending\";\n docUrl: any;\n\n constructor(\n private SharedService: SharedService,\n public RecruiterService: RecruiterService,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private uhleadsservice: UhLeadsService,\n private uhubleadsservice: UhubDashboardService,\n private readonly modalService: NgbModal,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n public companyService: RoleService,\n private handleError: ErrorHandlerService,\n private agentService: CreateAgent,\n private router: Router,\n\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n ngOnInit() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.SharedService.pageEvent.emit({\n pageName: \"Recruiter\",\n });\n this.getRecruiterDetails();\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getLeadsByCards(this.leadType);\n this.onClick(1);\n this.RecruiterService.getCallSid.subscribe((data: any) => {\n this.currentCallSid = data;\n });\n this.RecruiterService.callStatus.subscribe((status) => {\n this.callStatus = status;\n });\n\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.page = 1;\n if (this.search.length > 0) {\n this.searchLeads();\n } else {\n this.getRecruiterDetails();\n }\n })\n )\n .subscribe();\n\n this.initForm();\n }\n getRecruiterDetails() {\n this.recruiterList = [];\n let payload = {\n page: this.page,\n cardType: this.cardType,\n };\n this.leadsLoading = true;\n this.RecruiterService.getRecruiterDetails(payload).subscribe(\n async (Data: any) => {\n if (Data?.count > 0) {\n if (Data && Data.rows.length > 0) {\n this.recruiterList = await Data.rows;\n this.recruiterList.forEach(element => {\n this.replaceNull(element)\n });\n this.totalRecords = await Data.count;\n this.leadsLoading = false;\n this.noLeadsFound = false;\n } else {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n }\n } else {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n }\n }\n ),\n (err) => {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n };\n this.RecruiterService.startTimer.subscribe((res) => {\n\n this.callStatus = \"inProgress\";\n this.startTimer();\n\n });\n }\n getStudentList(Data: any) {\n this.studentList = Data;\n }\n onPageChange(event: any) {\n this.recruiterList = [];\n this.page = event;\n if (this.cardleadType !== 'filter') {\n this.getRecruiterDetails();\n } else {\n this.searchLeads();\n }\n }\n onClick(check: any) {\n this.uhleadsservice.pageNumber.next(1);\n if (check) {\n this.tab = \"tab\" + check;\n } else {\n this.tab = \"\";\n }\n }\n sideNavData(data) {\n this.sideViewerData = [];\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.sideViewerData = data;\n this.replaceNull(this.sideViewerData);\n this.currentLeadIdCRM = data?.salesForceDataCRM?.id;\n this.RecruiterService.getRecruiterSidenav({\n id: this.currentLeadIdCRM,\n }).subscribe((resp: any) => {\n this.sideViewerData.CallDetails = resp.CallDetails;\n this.sideViewerData.Activities = resp.Activities;\n });\n this.RecruiterService.getSms(this.currentLeadIdCRM).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n }\n );\n // this.currentLeadId = this.sideViewerData.id;\n }\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n }\n\n getsignedDocument(id?: any) {\n // this.RecruiterService.getSignedDocument({id:id}).subscribe((Data:any)=>{\n // let\n // })\n }\n getLeadsByCards(cardValue) {\n this.RecruiterService.getRecruiterLeadCount(cardValue).subscribe(\n (Data: any) => {\n if (Data) {\n this.topBarCount = Data;\n }\n }\n );\n }\n leadBycards(cardValue) {\n this.page = 1;\n this.cardType = cardValue;\n this.getRecruiterDetails();\n }\n startCallListener() {\n this.RecruiterService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n userData: this.userData,\n leadData: this.marketingId,\n });\n }\n startCallListener2(data, index) {\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatus = false;\n this.callStatusRecruiterCRM = data?.salesForceDataCRM?.CallStatus;\n this.callData[0] = data;\n this.selectedLead = data;\n\n this.marketingId = {\n id: data?.salesForceDataCRM?.id,\n status: data?.salesForceDataCRM?.CallStatus,\n name: data?.firstName,\n email: data?.emailId,\n phoneNumber: data?.phone,\n module: data?.Module,\n city: data?.city,\n nextCaller: this.recruiterList.length > 1 ? 1 : 0,\n lead: 0,\n };\n if (this.recruiterList.length > 1) {\n var nextFirstname = this.recruiterList[index + 1]?.firstName\n ? this.recruiterList[index + 1]?.firstName\n : \"\";\n var nextLastname = this.recruiterList[index + 1]?.lastName\n ? this.recruiterList[index + 1]?.lastName\n : \"\";\n var nextCallerCity = this.recruiterList[index + 1]?.city\n ? this.recruiterList[index + 1]?.city\n : \"\";\n var nextCallerCountryCode = this.recruiterList[index + 1]?.phone\n ? this.recruiterList[index + 1]?.phone.replace(\"+\", \"\")\n : \"\";\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode\n ? \"+\" + nextCallerCountryCode\n : \"\";\n this.startIndex = +1;\n }\n this.RecruiterService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n stopCallListener() {\n\n this.RecruiterService.startCall.next(null);\n this.RecruiterService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n // if (this.statusValue !== \"pending\") {\n // this.startIndex += 1;\n // }\n this.startIndex += 1;\n clearTimeout(this.clearTime);\n }\n\n stopCurrentCall() {\n\n this.RecruiterService.startCall.next(null);\n this.RecruiterService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n onInputActivity(event: any) {\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService\n .projectAdmin(this.userData[\"companyId\"])\n .subscribe((res: any) => {\n this.projectLists = res;\n this.projectId = res.filter((x) => x.Name == \"Recruiter\")[0].id;\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"Recruiter\") {\n fromNumber = res[i].TwilioNumber;\n\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: item.phone.includes(\"+\") ? item.phone : \"+\" + item.phone,\n AgentMail: this.userData.mail,\n };\n\n this.uhubleadsservice\n .sendSms(payload, this.projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.RecruiterService.getSms(this.currentLeadIdCRM).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n });\n });\n }\n onStatusChange(value, id) {\n this.callStatusRecruiterCRM = value;\n }\n updateCallStatus(id) {\n let payload = {\n id: id,\n comments: this.comments,\n callStatus: this.callStatusRecruiterCRM,\n agentMail: this.userData.mail,\n };\n this.RecruiterService.updateCallComment(payload).subscribe(\n (data: any) => {\n this.updateCallCommentsNew();\n }\n );\n }\n updateCallCommentsNew() {\n let payload = {\n sid: this.currentCallSid,\n comments: this.comments,\n callstatus: this.callStatusRecruiterCRM\n }\n this.RecruiterService.updateCallCommentNew(payload).subscribe((data: any) => {\n this.closeButton2.nativeElement.click();\n this.recruiterList = [];\n this.leadsLoading = true;\n this.noLeadsFound = false;\n this.getRecruiterDetails();\n })\n }\n getStudents(type) {\n this.studentList = [];\n switch (type) {\n case 'enrolled':\n let enpayload = {\n type: 'all',\n recruiterId: 0\n }\n this.RecruiterService.getstudentsEnrolled(enpayload).subscribe((data: any) => {\n this.studentList = data;\n })\n break;\n case 'registered':\n let regpayload = {\n type: 'all',\n recruiterId: 0\n }\n this.RecruiterService.getstudentsRegistered(regpayload).subscribe((data: any) => {\n this.studentList = data;\n })\n break;\n }\n }\n conferenceCall(value: any) {\n this.RecruiterService.conferenceCall.next({ value });\n }\n callNext() { }\n\n searchLeads() {\n this.recruiterList = [];\n this.leadsLoading = true;\n this.noLeadsFound = false;\n this.cardleadType = 'filter';\n let payload = {\n search: this.search,\n page: this.page\n }\n this.RecruiterService.searchRecruiter(payload).subscribe(async (Data: any) => {\n if (Data?.count > 0) {\n if (Data && Data.rows.length > 0) {\n this.recruiterList = await Data.rows;\n this.totalRecords = await Data.count;\n this.leadsLoading = false;\n this.noLeadsFound = false;\n } else {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n }\n } else {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n }\n })\n }\n getStatus(status) {\n if (status === 'COMPLETION') {\n return `COMPLETED`\n } else if (status === 'counsellingcompleted') {\n return `COUNSELLING COMPLETED`\n } else if (status === 'enrolled') {\n return `ENROLLED`\n } else if (status === 'applicationsubmitted') {\n return `APPLICATION SUBMITTED`\n } else {\n return status;\n }\n }\n changeActive(id, value) {\n if (value.checked === true) {\n this.sideViewerData.accountActive = 1;\n } else {\n this.sideViewerData.accountActive = 0;\n }\n this.RecruiterService.updateActive({\n id: id,\n active: this.sideViewerData.accountActive\n }).subscribe((data) => {\n })\n }\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n openEditLead(content, lead) {\n if (lead?.category == \"FREELANCER\") {\n this.recruiterCategory = 'Freelancer';\n this.updateRecruiter = new FormGroup({\n firstName: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n middleName: new FormControl(null, [Validators.pattern(REGEX.CHARACTER)]),\n lastName: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n emailId: new FormControl(null, [Validators.required, Validators.pattern(REGEX.EMAIL)]),\n phone: new FormControl(null, [Validators.required, Validators.pattern(REGEX.SPECIAL_PHONE)]),\n whatsappId: new FormControl(null),\n website: new FormControl(null, [Validators.pattern(REGEX.URL)]),\n street: new FormControl(null, Validators.required),\n country: new FormControl(null, Validators.required),\n state: new FormControl(null, Validators.required),\n territory: new FormControl(null, Validators.required),\n city: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n zip: new FormControl(null, [Validators.required]),\n experienceOverseasEducation: new FormControl(null, Validators.required),\n fbPageName: new FormControl(null),\n instagramHandle: new FormControl(null),\n linkedinURL: new FormControl(null),\n aboutUniversity: new FormControl(null, Validators.required),\n studentSendEveryYearNo: new FormControl(null, Validators.required),\n studentCountSendToHub: new FormControl(null, Validators.required),\n id: new FormControl(null)\n });\n this.updateRecruiter.patchValue({\n id: lead?.id,\n street: lead?.street,\n city: lead?.city,\n state: lead?.state,\n territory: lead?.territory,\n country: lead?.country,\n zip: lead?.zip,\n firstName: lead?.firstName,\n middleName: lead?.middleName,\n lastName: lead?.lastName,\n emailId: lead?.emailId,\n confirmEmailId: lead?.emailId,\n phone: lead?.phone,\n whatsappId: lead?.whatsappId,\n website: lead?.website,\n experienceOverseasEducation: lead?.experienceOverseasEducation,\n fbPageName: lead?.fbPageName,\n instagramHandle: lead?.instagramHandle,\n linkedinURL: lead?.linkedinURL,\n aboutUniversity: lead?.aboutUniversity,\n studentSendEveryYearNo: lead?.studentSendEveryYearNo,\n studentCountSendToHub: lead?.studentCountSendToHub\n });\n\n } else if (lead?.category == \"ORGANIZATION\") {\n this.recruiterCategory = 'Organization';\n this.updateRecruiter = new FormGroup({\n companyName: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n firstName: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n middleName: new FormControl(null, [Validators.pattern(REGEX.CHARACTER)]),\n lastName: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n emailId: new FormControl(null, [Validators.required, Validators.pattern(REGEX.EMAIL)]),\n phone: new FormControl(null, [Validators.required, Validators.pattern(REGEX.SPECIAL_PHONE)]),\n whatsappId: new FormControl(null),\n website: new FormControl(null, [Validators.pattern(REGEX.URL)]),\n street: new FormControl(null, Validators.required),\n country: new FormControl(null, Validators.required),\n state: new FormControl(null, Validators.required),\n territory: new FormControl(null, Validators.required),\n city: new FormControl(null, [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n zip: new FormControl(null, [Validators.required]),\n experienceOverseasEducation: new FormControl(null, Validators.required),\n fbPageName: new FormControl(null),\n instagramHandle: new FormControl(null),\n linkedinURL: new FormControl(null),\n aboutUniversity: new FormControl(null, Validators.required),\n studentSendEveryYearNo: new FormControl(null, Validators.required),\n studentCountSendToHub: new FormControl(null, Validators.required),\n businessCertificate: new FormControl(null, Validators.required),\n businessCertificateType: new FormControl(null),\n businessCertificateFilename: new FormControl(null, Validators.required),\n isAcknowledged: new FormControl(null, Validators.required),\n id: new FormControl(null)\n });\n this.updateRecruiter.patchValue({\n id: lead?.id,\n street: lead?.street,\n city: lead?.city,\n state: lead?.state,\n territory: lead?.territory,\n country: lead?.country,\n zip: lead?.zip,\n companyName: lead?.companyName,\n firstName: lead?.firstName,\n middleName: lead?.middleName,\n lastName: lead?.lastName,\n emailId: lead?.emailId,\n confirmEmailId: lead?.emailId,\n phone: lead?.phone,\n whatsappId: lead?.whatsappId,\n website: lead?.website,\n experienceOverseasEducation: lead?.experienceOverseasEducation,\n fbPageName: lead?.fbPageName,\n instagramHandle: lead?.instagramHandle,\n linkedinURL: lead?.linkedinURL,\n aboutUniversity: lead?.aboutUniversity,\n studentSendEveryYearNo: lead?.studentSendEveryYearNo,\n studentCountSendToHub: lead?.studentCountSendToHub,\n isAcknowledged: lead?.isAcknowledged,\n businessCertificate: lead?.businessCertificate,\n businessCertificateType: lead?.businessCertificateType?.split('.').pop(),\n businessCertificateFilename: lead?.businessCertificateFilename\n });\n }\n this.modalService.open(content, { size: 'lg' });\n }\n\n initForm() {\n\n }\n updateRecruiterForm() {\n const requestBody: any = {\n category: this.recruiterCategory.toUpperCase(),\n roleId: this.roleId,\n recruiterCategory: this.recruiterCategory,\n ...this.updateRecruiter.getRawValue()\n };\n if (this.recruiterCategory == 'Organization') {\n this.RecruiterService.updateRecruiterOrganisation(requestBody).subscribe(() => {\n document.getElementById(\"closeButton3\").click();\n this.getRecruiterDetails();\n });\n } else if (this.recruiterCategory == 'Freelancer') {\n this.RecruiterService.updateRecruiterFreelancer(requestBody).subscribe(() => {\n document.getElementById(\"closeButton3\").click();\n this.getRecruiterDetails();\n });\n }\n }\n get roleId(): number {\n let id: number;\n if (this.recruiterCategory === this.categories[0]) {\n id = 5;\n }\n if (this.recruiterCategory === this.categories[1]) {\n id = 4;\n }\n return id;\n }\n dropdownSelect(event){\n this.cardType = this.statusValue;\n this.page = 1;\n this.getRecruiterDetails();\n }\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => {},\n (reason) => {}\n );\n }\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n}\n","\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Active\n \n
    Name\n {{ sideViewerData.firstName + \" \" + sideViewerData.lastName }}\n
    Email{{ sideViewerData.emailId }}
    Mobile\n {{ sideViewerData.phone }}\n
    Created Date{{ sideViewerData.createdAt | date : \"medium\" }}
    University{{ sideViewerData.University || \"N/A\" }}
    Student Added 0\" data-toggle=\"modal\" data-target=\"#stcount\"\n (click)=\"getStudentList(sideViewerData.studentDetails)\" style=\"cursor: pointer; color: blue\">\n {{ sideViewerData.totalStudent }}\n \n {{ sideViewerData.totalStudent }}\n
    Business Document\n {{\n sideViewerData?.businessCertificateFilename\n }}\n N/A
    MOU Document\n MOU\n N/A
    \n
    \n
    \n \n
    \n {{ sideViewerData?.CallDetails?.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i?.AgentName }}
    Date & Time{{ i?.DateTime | date : \"medium\" }}
    Status{{ i?.CallStatus | titlecase }}
    Call Recording\n \n
    Comments{{ i?.Comments }}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j?.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j?.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j?.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j?.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ sideViewerData?.Activities?.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i?.Description }}\n {{\n i?.DateTime | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    Activity
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.all || 0 }}\n
    \n
    \n
    Total
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.totalrecruiters || 0 }}\n
    \n
    \n
    Total Recruiters
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.totalFreelancer || 0 }}\n
    \n
    \n
    Total Freelancer
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.enrolled || 0 }}\n
    \n
    \n
    Students Enrolled
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.registered || 0 }}\n
    \n
    \n
    Students Registered
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.paymentpending || 0 }}\n
    \n
    \n
    Payments Pending
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.paymentscomplete || 0 }}\n
    \n
    \n
    Payments Completed
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    Actions\n Created\n \n \n Updated\n \n \n Name\n \n \n Email\n \n \n Role\n \n \n Phone\n \n \n Added\n \n \n Enrolled\n \n \n Payments\n \n \n Payment Date\n \n Call Status
    \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    {{ i.createdAt | date : \"dd MMM, yyyy\" }}{{ i.updatedAt | date : \"dd MMM, yyyy\" }}\n
    \n \n
    \n
    \n
    \n
    \n \n {{ i.emailId }}\n \n
    \n {{ i.emailId }}\n
    \n \n
    \n
    \n
    \n \n {{ i.category == \"ORGANIZATION\" ? \"RECRUITER\" : i.category }}\n \n
    \n \n {{ i.category == \"ORGANIZATION\" ? \"RECRUITER\" : i.category }}\n \n
    \n \n
    {{ i.phone }}\n 0\" class=\"btn-link\" data-toggle=\"modal\" data-target=\"#stcount\"\n (click)=\"getStudentList(i.studentDetails)\" style=\"cursor: pointer; color: blue\">{{ i.totalStudent }}\n
    {{ i.totalStudent }}
    \n
    \n 0\" class=\"btn-link\" data-toggle=\"modal\" data-target=\"#stcount\"\n (click)=\"getStudentList(i.enrolledStudents)\" style=\"cursor: pointer; color: blue\">{{\n i.enrolledStudents.length }}\n
    0
    \n
    Pending-\n Pending\n Informed\n Called\n Not Answered\n Call Failed\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Student Count
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    US Transfer
    \n\n
    \n \n
    \n
    International
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n
    Created DateFull NameEmail IdPhone NumberUniversityStatus
    \n {{ i?.createdDate | date : \"dd MMM, yyyy\" }}\n \n
    \n \n\n {{ (i.firstName || '') + \" \" + (i.lastName|| '') | titlecase }}\n
    \n
    \n {{ i.emailId || \"--\" }}\n \n {{ i?.phoneCountryCode ? \"+\" + i?.phoneCountryCode : \"\" }}\n {{\n i?.phoneWithoutCode\n ? i?.phoneWithoutCode\n : i?.phone || \"--\"\n }}\n \n \n {{ i?.ApplyingAs || \"--\" }}\n \n {{ getStatus(i?.status) }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    {{ nextCallerName }}
    \n
    {{ nextCallerCity }}
    \n
    {{ nextCallerNumber }}
    \n
    \n\n
    \n
    \n \"\"\n
    \n \n \n
    \n
    \n
    \n \n
    \n \n\n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Recruiter details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0].firstName || '' + \" \" + callData[0].lastName || '' }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0].emailId }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0].phone }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n {{ callData[0].createdAt | date : \"medium\" }}\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n

    \n Update Details\n

    \n \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class RecruiterService {\n baseApiUrl = environment.baseApiUrl3;\n webAppUrl = environment.webAppUrl;\n baseApiUrl2 = environment.baseApiUrl2;\n SMSapiurl = environment.SMSapiurl;\n\n\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n conferenceCall = new BehaviorSubject(null);\n callStatus = new BehaviorSubject(null);\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n CallStatus: [\"\"],\n });\n\n addLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n });\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) {}\n\n getRecruiterDetails(data) {\n return this.http.post(`${this.webAppUrl}recruiter/getRecruitersV2`, data);\n }\n\n searchRecruiter(data) {\n return this.http.post(`${this.webAppUrl}recruiter/searchRecruiter`, data);\n }\n\n getReferralLead(data) {\n return this.http.get(`${this.baseApiUrl}ref/getReferrer/` + data);\n }\n\n getReferralLead2(data) {\n return this.http.get(`${this.baseApiUrl}ref/getReferredStudent/` + data);\n }\n\n getReferredList(data) {\n return this.http.get(\n `${this.baseApiUrl}ref/getReferralCount/` + data\n );\n }\n\n getTopBarCount(obj) {\n return this.http.post(`${this.baseApiUrl}ref/getTopBarReferrer`, obj);\n }\n\n getUniversityList(){\n return this.http.get(`${this.baseApiUrl}ref/universitryhub/listOfUniversities`);\n }\n\n uploadLeads(data) {\n return this.http.post(`${this.baseApiUrl}ref/createReferrer`, data);\n }\n\n updateLead(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateReferrer`, data);\n }\n\n updateCallSid(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallSid`, data);\n }\n\n updateCallStatus(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallStatus`, data);\n }\n\n updateCallComments(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallComments`, data);\n }\n\n assignLeads(body) {\n return this.http.post(`${this.baseApiUrl}ref/AssignCRMReferrer`, body);\n }\n\n convert2dArraytoObject(formatingData): ReferralData[] {\n let excelData: ReferralData[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n\n if (formatingData[inner][0]) {\n convertData[\"FirstName\"] = formatingData[inner][0];\n convertData[\"LastName\"] = formatingData[inner][1];\n convertData[\"CountryCode\"] = formatingData[inner][2] || '';\n convertData[\"PhoneNumber\"] = formatingData[inner][3];\n convertData[\"Email\"] = formatingData[inner][4];\n convertData[\"AssignedTo\"] = formatingData[inner][5] ||\"\";\n \n excelData.push(convertData);\n }\n }\n\n return excelData;\n }\n\n getSms(id) {\n return this.http.get(`${this.baseApiUrl2}/wp/university/getRecruiterSMS/${id}`);\n }\n\n sendSms(data, projectId) {\n return this.http.post(`${this.SMSapiurl}`+projectId+`/messaging-adapter/sendSMS`,data);\n }\n getRecruiterLeadCount(data) {\n return this.http.post(`${this.webAppUrl}recruiter/getRecruityerLeadCounts`,data);\n }\n getstudentsEnrolled(data) {\n return this.http.post(`${this.webAppUrl}recruiter/studentsEnrolled`,data);\n }\n getstudentsRegistered(data) {\n return this.http.post(`${this.webAppUrl}recruiter/studentsRegistered`,data);\n }\n updateActive(data) {\n return this.http.post(`${this.webAppUrl}recruiter/updateActive`,data);\n }\n updateCallStatusV2(data) {\n return this.http.post(\n `${this.baseApiUrl2}wp/university/updateCallStatusV2`,\n data\n );\n }\n updateCallSidV2(data) {\n return this.http.post(`${this.baseApiUrl2}wp/university/updateCallSidV2`, data);\n }\n getRecruiterSidenav(data){\n return this.http.post(`${this.baseApiUrl2}wp/university/getRecruiterSidenav`, data);\n }\n\n updateCallComment(data){ \n return this.http.post(`${this.baseApiUrl2}wp/university/updateCallCommentsRec`, data);\n }\n updateCallCommentNew(data){ \n return this.http.post(`${this.baseApiUrl2}wp/university/updateCallCommentsNew`, data);\n }\n // EDIT_RECRUITER_FREELANCER_PROFILE = 'recruiter/editFreelancer',\n // EDIT_RECRUITER_ORGANIZATION_PROFILE = 'recruiter/editOrganization',\n\n updateRecruiterOrganisation(data){\n return this.http.post(`${this.webAppUrl}recruiter/editFreelancerV2`,data);\n }\n updateRecruiterFreelancer(data){\n return this.http.post(`${this.webAppUrl}recruiter/editOrganizationV2`,data);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Inject,\n ElementRef,\n} from \"@angular/core\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { ReferralService } from \"./referral.service\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\n\nimport * as xlsx from \"xlsx\";\nimport * as moment from \"moment\";\nimport { DOCUMENT } from \"@angular/common\";\n\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { now } from \"lodash\";\nimport { Data, NavigationEnd, Router } from \"@angular/router\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { environment } from \"src/environments/environment\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\ndeclare const gtag: Function;\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\n\n@Component({\n selector: \"app-referral\",\n templateUrl: \"./referral.component.html\",\n styleUrls: [\"./referral.component.css\"],\n})\nexport class ReferralComponent implements OnInit {\n userData: any;\n projectId: any;\n admin: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n public filePath: any;\n public fileData: ReferralData[] = [];\n referralList: any[] = [];\n universityList: any[];\n public page: any = 1;\n public pageSize: any = 12;\n public collectionSize: any = 1;\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n applicationStatus: any = \"\";\n public callData: any[] = [];\n public startIndex: number = 0;\n selectedLead: any;\n startCall: boolean = false;\n public stopCall: boolean = false;\n statusValue = \"all\";\n public clearTime: any;\n sideViewerData: any = { ReferralActivities: [], CallDetails: [] };\n currentLeadId: any;\n activityfilterString: string = \"\";\n minItems = 5;\n commentText: string = \"\";\n selectedAll: boolean = false;\n leadIds = [];\n defaultAgent = \"default\";\n selectedAgent: any;\n agentList: any;\n public filterValue = \"all\";\n showDate: boolean = false;\n endDate: any;\n startDate: any;\n date1: any;\n date2: any;\n agentCall: String = \"\";\n testConfig: any;\n leadTypereferee: string = \"total\";\n editStatus: string;\n otherUniversity = \"other\";\n public edited: boolean = false;\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n selectedUniversity: string;\n customUniversityName: string = \"\";\n customUniversityName2: string = \"\";\n public intakeListArray: any = [];\n requiredYear: boolean = false;\n\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeAssignModel\") closeAssignModel;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n leadtoEdit: {\n followupDate: Data;\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n University: any;\n CallStatus: string;\n AgentMail: string;\n DIyear?: string;\n DIterms?: string;\n };\n\n topBarCountReferral: {\n total: number;\n applicationSubmitted: number;\n unassigned: number;\n assigned: number;\n assignedtoMe: number;\n international: number;\n USTransfer: number;\n applicationnotsubmitted: number;\n enrolled: number;\n changeuniversity: number;\n } = {\n total: 0,\n applicationSubmitted: 0,\n unassigned: 0,\n assigned: 0,\n assignedtoMe: 0,\n international: 0,\n USTransfer: 0,\n applicationnotsubmitted: 0,\n enrolled: 0,\n changeuniversity: 0,\n };\n\n @ViewChild(\"uploadFile\") uploadFile;\n allLeads: any;\n filterString: string;\n leadsLoading: boolean = false;\n noLeadsFound: boolean = false;\n tab!: string;\n downloadLink: any;\n referralList1: any;\n\n currentCard: string = \"total\";\n sortColumn = \"createdAt\";\n sortOrder = \"des\";\n DIyear: any = null;\n DIterms: any = null;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n\n smsText: string;\n smsList: [] = [];\n projectLists: any;\n callSid: any;\n cardNumber: any = 1;\n submitting: boolean = false;\n\n constructor(\n private SharedService: SharedService,\n public ReferralService: ReferralService,\n public countupTimerService: CountupTimerService,\n private uhleadsservice: UhLeadsService,\n private readonly modalService: NgbModal,\n private momentService: MomentFormatService,\n private handleError: ErrorHandlerService,\n private companyService: RoleService,\n private router: Router,\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit() {\n this.SharedService.pageEvent.emit({\n pageName: \"Referral\",\n });\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.SharedService.projectId.subscribe((data: any) => {\n this.companyService.projectAdmin(this.userData[\"companyId\"]).subscribe(\n (projects) => {\n this.projectId = projects.filter((x) => x.Name == \"Referrals\")[0].id;\n // this.projectId = data;\n if (this.projectId) {\n this.SharedService.getProjectAdmin(this.projectId).subscribe(\n (data: any) => {\n this.admin = data;\n this.getListofUniversities();\n this.getTopBarCount();\n this.getLeadsByCards(this.leadTypereferee);\n // this.getLead();\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.ReferralService.startTimer.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n this.ReferralService.getCallSid.subscribe((data) => {\n this.callSid = data;\n });\n //incoming sms check\n this.uhleadsservice.incomingSms.subscribe((from: any) => {\n // \n if (from.from) {\n this.ReferralService.getSms(this.currentLeadId).subscribe(\n (smsList: any) => {\n // \n }\n );\n }\n });\n\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.filterString = this.input.nativeElement.value;\n this.page = 1;\n this.searchLeads();\n })\n )\n .subscribe();\n this.ReferralService.callStatus.subscribe((status) => {\n this.callStatus = status;\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.onSelectedUniversity(8);\n }, 2000);\n }\n\n onSelectedUniversity(Data: any) {\n let name = this.universityList.filter((i) => i.id == Data)[0]?.university;\n if (name) {\n if (\n name.includes(\"University of the Cumberlands\") ||\n name.includes(\"Alderson Broaddus University\") ||\n name.includes(\"Campbellsville University\")\n ) {\n this.intakeListArray = [\n \"Spring-1\",\n \"Spring-2\",\n \"Summer-1\",\n \"Summer-2\",\n \"Fall-1\",\n \"Fall-2\",\n ];\n } else if (\n name.includes(\"Judson University\") ||\n name.includes(\"Faulkner University\")\n ) {\n this.intakeListArray = [\"Spring\", \"Summer\", \"Fall\"];\n } else if (name.includes(\"St Francis College\")) {\n this.intakeListArray = [\n \"Spring-1\",\n \"Spring-2\",\n \"Summer\",\n \"Fall-1\",\n \"Fall-2\",\n ];\n } else {\n this.intakeListArray = [\n \"Spring\",\n \"Spring-1\",\n \"Spring-2\",\n \"Summer\",\n \"Summer-1\",\n \"Summer-2\",\n \"Fall\",\n \"Fall-1\",\n \"Fall-2\",\n ];\n }\n }\n else {\n this.intakeListArray = [\n \"Spring\",\n \"Spring-1\",\n \"Spring-2\",\n \"Summer\",\n \"Summer-1\",\n \"Summer-2\",\n \"Fall\",\n \"Fall-1\",\n \"Fall-2\",\n ];\n }\n\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n\n //Shows date if the filter value is custom\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n // dropdownSelect(event) {\n // // this.onClick(null);\n // // this.getData(this.userData, event, this.startDate, this.endDate);\n // // this.getCardData(this.userData, event, this.startDate, this.endDate);\n // this.getReferralList(this.admin,this.projectId, this.userData.mail, event, this.startDate, this.endDate);\n // }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n\n this.getTopBarCount();\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n filterData() {\n // this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n }\n }\n\n getListofUniversities() {\n this.ReferralService.getUniversityList().subscribe(\n (res: any) => {\n this.universityList = res.universities;\n this.onSelectedUniversity(8);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getReferralList(admin, projectId, mail, leadType, start, end) {\n let payload = {\n admin: admin,\n mail: mail,\n ProjectId: projectId,\n leadType: leadType,\n start: start,\n end: end,\n page: this.page\n };\n this.ReferralService.getReferralList(payload).subscribe(\n (res: any) => {\n this.referralList = res;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.getTopBarCount();\n this.getLeadsByCards(this.leadTypereferee);\n }\n\n getLead() {\n this.ReferralService.getReferralLead(2).subscribe(\n (res: any) => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n sideNavData(data) {\n this.smsList = [];\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.ReferralService.getReferralLead(data.id).subscribe(\n (res: any) => {\n this.ReferralService.getSms(data.id).subscribe((smsList: any) => {\n // \n this.smsList = smsList.SMSDetails;\n });\n this.sideViewerData = res;\n this.replaceNull(this.sideViewerData);\n this.currentLeadId = this.sideViewerData.id;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n // \n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"Referrals\") {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n // \n this.ReferralService.sendSms(payload, this.projectId).subscribe(\n (res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.ReferralService.getSms(this.currentLeadId).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n }\n );\n });\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n }\n\n onInputActivity(event: any) {\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"GUID\" && sheet_data.length !== 0) {\n this.fileData = this.ReferralService.convert2dArraytoObject(sheet_data);\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n startCallListener() {\n this.uhleadsservice.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n userData: this.userData,\n leadData: this.marketingId,\n });\n }\n\n startCallListener2(data, index) {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.applicationStatus = \"\";\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatus = false;\n\n this.callData[0] = data;\n this.callData[0].CountryCode = this.callData[0].CountryCode.replace(\n \"+\",\n \"\"\n );\n this.selectedLead = data;\n\n this.marketingId = {\n id: data.id,\n status: data.CallStatus,\n name: data.FirstName,\n email: data.Email,\n phoneNumber: \"+\" + data.CountryCode.replace(\"+\", \"\") + data.PhoneNumber,\n module: data.Module,\n city: \"\",\n nextCaller: 1,\n lead: 0,\n };\n if (this.referralList.length > 1) {\n var nextFirstname = this.referralList[index + 1]?.FirstName\n ? this.referralList[index + 1]?.FirstName\n : \"\";\n var nextLastname = this.referralList[index + 1]?.LastName\n ? this.referralList[index + 1]?.LastName\n : \"\";\n var nextCallerCity = this.referralList[index + 1]?.City\n ? this.referralList[index + 1]?.City\n : \"\";\n var nextCallerCountryCode = this.referralList[index + 1]?.CountryCode\n ? this.referralList[index + 1]?.CountryCode.replace(\"+\", \"\")\n : \"\";\n var nextCallerPhoneNumber = this.referralList[index + 1]?.PhoneNumber\n ? this.referralList[index + 1]?.PhoneNumber\n : \"\";\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode\n ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber\n : \"\";\n this.startIndex = +1;\n }\n this.ReferralService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n stopCallListener() {\n\n this.ReferralService.startCall.next(null);\n this.ReferralService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n // if (this.statusValue !== \"pending\") {\n // this.startIndex += 1;\n // }\n this.startIndex += 1;\n clearTimeout(this.clearTime);\n }\n\n stopCurrentCall() {\n\n this.ReferralService.startCall.next(null);\n this.ReferralService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n\n applicationstatus(data) {\n this.applicationStatus = data;\n if (this.applicationStatus == \"Yes\") {\n }\n }\n\n onStatusChange(data) {\n this.newStatus = data;\n if (this.newStatus == \"deferredintake\") {\n this.onSelectedUniversity(this.leadtoEdit.University);\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n onStatusChange2(data) {\n this.newStatus = data;\n let uniId = this.universityList.filter(x => \n x.university == this.callData[0].University\n )[0]['id'];\n \n if (this.newStatus == \"deferredintake\") {\n this.onSelectedUniversity(uniId);\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n updateComments() {\n if (!this.newStatus) {\n } else {\n // this.ReferralService.getCallSid.subscribe((data) => {\n if (this.applicationStatus == \"yes\") {\n if (this.selectedUniversity == \"other\") {\n this.ReferralService.createCustomUniversity({\n ProjectId: this.projectId,\n UniversityName: this.customUniversityName,\n }).subscribe(\n (res: any) => {\n this.selectedUniversity = res.UniversityId;\n this.ReferralService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n diyear: this.DIyear,\n diterms: this.DIterms,\n }).subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.commentText = \"\";\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.ReferralService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n diyear: this.DIyear,\n diterms: this.DIterms,\n }).subscribe(\n (res) => {\n this.commentText = \"\";\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n this.selectedUniversity = \"\";\n\n this.ReferralService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n diyear: this.DIyear,\n diterms: this.DIterms,\n }).subscribe(\n (res) => {\n this.commentText = \"\";\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n // });\n }\n }\n\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.applicationStatus = \"\";\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.referralList.length; i++) {\n this.leadIds.push(this.referralList[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.ReferralService.assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n }).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n this.leadIds = [];\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n this.selectedAll = false;\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n getTopBarCount() {\n var postData = {\n AgentMail: this.userData.mail,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n this.ReferralService.getTopBarCount(postData).subscribe(\n (res: any) => {\n this.topBarCountReferral = res.TopBarCount;\n this.onClick(this.cardNumber);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n getUniversalRecords(cardValue) {\n this.filterString = \"\";\n let obj;\n this.page = 1;\n this.leadTypereferee = cardValue;\n obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadTypereferee,\n start: this.startDate,\n end: this.endDate,\n page: this.page,\n };\n this.getLeadsSuccess(obj);\n }\n getLeadsByCards(cardValue) {\n this.filterString = \"\";\n let obj;\n this.page = 1;\n this.leadTypereferee = cardValue;\n obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadTypereferee,\n start: this.startDate,\n end: this.endDate,\n page: this.page,\n };\n this.getLeadsSuccess(obj);\n this.getTopBarCount();\n }\n\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n // \n // \n this.sortColumn = column;\n this.referralList = sortJsonArray(\n this.referralList,\n this.sortColumn,\n this.sortOrder\n );\n\n }\n\n getLeadsSuccess(obj) {\n this.referralList = [];\n this.referralList1 = [];\n this.leadsLoading = true;\n this.noLeadsFound = false;\n this.ReferralService.getReferralList(obj)\n .toPromise()\n .then((resp: any) => {\n this.referralList = resp;\n this.referralList1 = resp;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n // this.sortTableData(this.sortColumn, this.sortOrder);\n this.leadsLoading = false;\n\n if (this.referralList.length <= 0) {\n this.noLeadsFound = true;\n }\n })\n .catch((err) => { });\n }\n onClick(check: any) {\n this.page = 1;\n this.cardNumber = check;\n switch (check) {\n case 1:\n this.collectionSize = this.topBarCountReferral.total;\n break;\n case 2:\n this.collectionSize = this.topBarCountReferral.applicationSubmitted;\n break;\n case 3:\n this.collectionSize = this.topBarCountReferral.international;\n break;\n case 4:\n this.collectionSize = this.topBarCountReferral.USTransfer;\n break;\n case 5:\n this.collectionSize = this.topBarCountReferral.assigned;\n break;\n case 6:\n this.collectionSize = this.topBarCountReferral.unassigned;\n break;\n case 7:\n this.collectionSize = this.topBarCountReferral.assignedtoMe;\n break;\n case 8:\n this.collectionSize = this.topBarCountReferral.applicationnotsubmitted;\n break;\n case 9:\n this.collectionSize = this.topBarCountReferral.enrolled;\n break;\n case 10:\n this.collectionSize = this.topBarCountReferral.changeuniversity;\n break;\n default:\n break;\n }\n if (check) {\n this.tab = \"tab\" + check;\n } else {\n this.tab = \"\";\n }\n }\n dropdownSelect(event) {\n this.page = 1;\n this.getUniversalRecords(event);\n let payload = {\n status: event,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n this.ReferralService.getCountByCallStatusReferredLeads(payload).subscribe(\n (data: any) => {\n\n this.collectionSize = Number(data.count);\n }\n );\n }\n getDownloadLink() {\n this.downloadLink = environment.referralCSV;\n }\n onInput(event) {\n if (this.filterString != \"\") {\n } else {\n this.referralList = this.referralList1;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n this.sortTableData(this.sortColumn, this.sortOrder);\n }\n }\n\n openEditLead(content, lead) {\n this.editStatus = lead.CallStatus;\n\n this.modalService.open(content, { size: \"md\" });\n let unversity = this.universityList.filter((x) => {\n if (x?.university == lead?.University) return x.id;\n });\n this.DIterms = lead?.DIterms;\n this.DIyear = parseInt(lead?.DIyear);\n if (this.editStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n this.leadtoEdit = {\n followupDate: new Date(now()),\n LeadId: lead?.id,\n FirstName: lead?.FirstName || \"\",\n LastName: lead?.LastName || \"\",\n CountryCode: \"+\" + lead?.CountryCode.replace(\"+\", \"\") || \"\",\n PhoneNumber: lead?.PhoneNumber || \"\",\n Email: lead?.Email || \"\",\n University: unversity[0]?.id || \"\",\n CallStatus: lead?.CallStatus || \"\",\n AgentMail: this.userData.mail,\n };\n }\n\n updateLead() {\n this.edited = true;\n if (this.ReferralService.editLead.invalid) {\n return;\n }\n\n this.leadtoEdit.CountryCode = this.leadtoEdit.CountryCode.replace(\n /\\+/g,\n \"\"\n );\n this.leadtoEdit.DIterms = this.DIterms;\n this.leadtoEdit.DIyear = this.DIyear;\n if (this.leadtoEdit.CountryCode == \"-\") {\n this.leadtoEdit.CountryCode = \"00\";\n }\n if (this.leadtoEdit.PhoneNumber == \"-\") {\n this.leadtoEdit.PhoneNumber = \"0000000000\";\n }\n this.submitting = true;\n if (this.leadtoEdit.University == \"other\") {\n this.ReferralService.createCustomUniversity({\n ProjectId: this.projectId,\n UniversityName: this.customUniversityName2,\n }).subscribe(\n (res: any) => {\n this.leadtoEdit.University = res.UniversityId;\n this.ReferralService.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.submitting = false;\n this.edited = false;\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n document.getElementById(\"closeButton3\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.ReferralService.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.submitting = false;\n this.edited = false;\n this.getReferralList(\n this.admin,\n this.projectId,\n this.userData.mail,\n \"all\",\n this.startDate,\n this.endDate\n );\n document.getElementById(\"closeButton3\").click();\n },\n (error) => {\n this.submitting = false;\n this.handleError.handleError(error);\n }\n );\n }\n }\n onDIItermsChange(data) {\n if (this.DIyear == null || this.DIyear == \"\") {\n this.requiredYear = true;\n } else {\n this.requiredYear = false;\n this.DIterms = data;\n }\n\n }\n onDIYearChange(data) {\n // \n this.DIyear = data;\n this.requiredYear = false;\n }\n getCheckCallVisibleTiming(data: any) {\n if (moment(data.createdAt).add(48, \"hours\").format() >= moment().format()) {\n return false;\n } else {\n return true;\n }\n }\n searchLeads() {\n this.referralList = [];\n this.noLeadsFound = false;\n this.leadsLoading = true;\n let payload = {\n ProjectId: this.projectId,\n search: this.filterString,\n page: this.page\n };\n if (this.filterString.length > 0) {\n this.leadTypereferee = 'filter';\n this.ReferralService.search(payload).subscribe((resp: any) => {\n this.referralList = resp.data;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n this.collectionSize = resp.totallength;\n this.sortTableData(this.sortColumn, this.sortOrder);\n this.leadsLoading = false;\n if (this.referralList.length <= 0) {\n this.noLeadsFound = true;\n }\n });\n } else {\n this.leadTypereferee = \"total\";\n this.getTopBarCount();\n this.getLeadsByCards(this.leadTypereferee);\n }\n \n }\n onPageChange(event: any) {\n this.referralList = [];\n this.noLeadsFound = false;\n this.leadsLoading = true;\n this.page = event;\n if (this.leadTypereferee != \"filter\") {\n let obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadTypereferee,\n start: this.startDate,\n end: this.endDate,\n page: this.page,\n };\n this.getLeadsSuccess(obj);\n } else {\n let payload = {\n ProjectId: this.projectId,\n search: this.filterString,\n page: this.page\n };\n if(this.filterString.length>0){\n this.ReferralService.search(payload).subscribe((resp: any) => {\n this.referralList = resp.data;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n this.sortTableData(this.sortColumn, this.sortOrder);\n this.leadsLoading = false;\n if (this.referralList.length <= 0) {\n this.noLeadsFound = true;\n }\n });\n } else{\n this.leadTypereferee = \"total\";\n }\n }\n \n }\n get createLeads() {\n return this.ReferralService.editLead.controls;\n }\n}\n","\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.total || 0 }}\n
    \n
    \n
    Total Referrals
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.applicationSubmitted }}\n
    \n
    \n
    Applications Submitted
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.international }}\n
    \n
    \n
    International
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.USTransfer }}\n
    \n
    \n
    US Transfers
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.assigned }}\n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.unassigned }}\n
    \n
    \n
    Un Assigned
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.assignedtoMe }}\n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.applicationnotsubmitted || 0}}\n
    \n
    \n
    Application not Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.enrolled || 0 }}\n
    \n
    \n
    Enrolled
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferral?.changeuniversity || 0 }}\n
    \n
    \n
    Change University Applications
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    List of Referrals
    \n
    \n
    \n \n
    \n
    US Transfer
    \n\n
    \n \n
    \n
    International
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n Actions\n Created\n \n \n Name\n \n \n Email\n \n \n Assigned\n \n \n Phone\n \n \n Referee\n \n \n Uni\n \n \n Status\n \n \n Call Status\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    {{ i.createdAt | date : \"dd MMM, yyyy\" }}\n
    \n
    \n \n
    \n
    \n \n
    \n\n \n
    \n
    \n
    \n
    \n \n {{ i.Email }}\n \n
    \n {{ i.Email }}\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AssignedToInitials }}\n

    \n
    \n
    \n
    \n \n {{ i.AssignedToName }}\n \n
    \n {{ i.AssignedToName }}\n
    \n
    \n
    {{ i.PhoneNumber }}\n
    \n
    \n \n {{ i.ReferredByName }}\n \n
    \n {{ i.ReferredByName }}\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n {{ i.University }}\n \n
    \n {{ i.University }}\n
    \n
    \n
    \n
    Pending
    \n
    \n Submitted\n
    \n
    \n Not Submitted\n
    \n
    \n {{ i.ApplicationStatus }}\n
    \n
    \n Application Submitted\n
    \n
    \n Enrolled\n
    \n
    \n Application Not Submitted\n
    \n
    \n \n Pending\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred\n Intake\n Application\n Submitted\n Application\n Not Submitted\n Enrolled\n Change University\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different date range.\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    Add
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    {{ nextCallerName }}
    \n
    {{ nextCallerCity }}
    \n
    {{ nextCallerNumber }}
    \n
    \n\n
    \n
    \n \"\"\n
    \n \n \n
    \n
    \n
    \n \n
    \n \n\n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Referral details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0].FirstName + \" \" + callData[0].LastName }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0].Email }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{\n \"+\" +\n callData[0].CountryCode +\n \" \" +\n callData[0].PhoneNumber\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n {{ callData[0].createdAt | date : \"medium\" }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ callData[0].University || \"\" }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Application status
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    Enrollment Year is required
    \n
    \n
    \n
    \n \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Name\n {{ sideViewerData.FirstName + \" \" + sideViewerData.LastName }}\n
    Email{{ sideViewerData.Email }}
    Mobile\n {{\n sideViewerData.CountryCode + \" \" + sideViewerData.PhoneNumber\n }}\n
    Created Date{{ sideViewerData.createdAt | date : \"medium\" }}
    University{{ sideViewerData.University }}
    Enrollment Term{{ sideViewerData.DIterms }}
    \n
    \n
    \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date : \"medium\" }}
    Status{{ i.CallStatus | titlecase }}
    Call Recording\n \n
    Comments{{ i.Comments }}
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n {{ sideViewerData.ReferralActivities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n\n\n
    \n
    \n
    \n
    \n
    Assign to Agent
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    Last Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid Name
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    CountryCode is required
    \n
    \n
    \n
    \n \n
    \n
    PhoneNumber is required
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Enrollment Year is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ReferralService {\n baseApiUrl = environment.baseApiUrl3;\n baseApiUrl2 = environment.baseApiUrl2;\n SMSapiurl = environment.SMSapiurl;\n\n\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n viewReceivedLead = new BehaviorSubject(null);\n\n conferenceCall = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n callStatus = new BehaviorSubject(null);\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\", [Validators.required]],\n CallStatus: [\"\"],\n UniversityName: [\"\"],\n });\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) {\n\n\n }\n\n getReferralList(data) {\n return this.http.post(`${this.baseApiUrl}ref/getReferredLeads`, data);\n }\n\n getReferralLead(data) {\n return this.http.get(`${this.baseApiUrl}ref/getReferredStudent/` + data);\n }\n\n getUniversityList() {\n return this.http.get(\n `${this.baseApiUrl}ref/universitryhub/listOfUniversities`\n );\n }\n\n getTopBarCount(obj) {\n return this.http.post(`${this.baseApiUrl}ref/getTopBarReferral`, obj);\n }\n\n updateLead(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateReferredStudent`, data);\n }\n\n // uploadLeads(data) {\n // return this.http.post(`${this.baseApiUrl}ref/createReferrer`, data);\n // }\n\n createCustomUniversity(data){\n return this.http.post(`${this.baseApiUrl}ref/Universities/createCustom`,data)\n }\n\n updateCallStatus(data) {\n return this.http.post(\n `${this.baseApiUrl}ref/updateCallStatusReferred`,\n data\n );\n }\n\n updateCallSid(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallSidReferred`, data);\n }\n\n updateCallComments(data) {\n return this.http.post(\n `${this.baseApiUrl}ref/updateCallCommentsReferred`,\n data\n );\n }\n\n assignLeads(body) {\n return this.http.post(`${this.baseApiUrl}ref/AssignCRMReferred`, body);\n }\n\n convert2dArraytoObject(formatingData): ReferralData[] {\n let excelData: ReferralData[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n\n if (formatingData[inner][0]) {\n convertData[\"GUID\"] = formatingData[inner][0];\n convertData[\"firstName\"] = formatingData[inner][1];\n convertData[\"lastName\"] = formatingData[inner][2];\n convertData[\"countryCode\"] = formatingData[inner][3] || '';\n convertData[\"phoneNumber\"] = formatingData[inner][4];\n convertData[\"email\"] = formatingData[inner][5];\n convertData[\"AssignedTo\"] = formatingData[inner][6];\n // convertData[\"module\"] = formatingData[inner][7];\n // convertData[\"channel\"] = formatingData[inner][8];\n convertData[\"Program\"] = formatingData[inner][7];\n // convertData[\"appStatus\"] = formatingData[inner][10];\n\n // convertData[\"Miscellaneous\"] = {\n // form_id: \"\",\n // form_name: formatingData[inner][8],\n // \"Choose Batch\": \"\",\n // \"Training Mode\": \"\",\n // };\n convertData[\"ApplicationType\"] = formatingData[inner][8];\n convertData[\"CreatedDate\"] = formatingData[inner][9];\n convertData[\"Comments\"] = formatingData[inner][10];\n excelData.push(convertData);\n }\n }\n\n return excelData;\n }\n\n getSms(id) {\n return this.http.get(`${this.baseApiUrl2}communication/referralSMS/` + id);\n }\n\n sendSms(data, projectId) {\n return this.http.post(`${this.SMSapiurl}`+projectId+`/messaging-adapter/sendSMS`,data);\n }\n\n search(data){\n return this.http.post(`${this.baseApiUrl2}referredSearch`, data);\n }\n getCountByCallStatusReferredLeads(data){\n return this.http.post(`${this.baseApiUrl2}/getCountByCallStatusReferredLeads`,data)\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Inject,\n ElementRef,\n} from \"@angular/core\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { ReferreeService } from \"./referree.service\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport * as xlsx from \"xlsx\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { post } from \"jquery\";\nimport { MarketingService } from \"../marketing/marketing.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { Router } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport * as moment from \"moment\";\nimport { environment } from \"src/environments/environment\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\n\n@Component({\n selector: \"app-referree\",\n templateUrl: \"./referree.component.html\",\n styleUrls: [\"./referree.component.css\"],\n})\nexport class ReferreeComponent implements OnInit {\n userData: any;\n projectId: any;\n admin: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n public filePath: any;\n public fileData: ReferralData[] = [];\n referralList: any[] = [];\n referredList: any[] = [];\n public page: any = 1;\n public pageSize: any = 12;\n public collectionSize: any = 1;\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n applicationStatus: any = \"\";\n public callData: any[] = [];\n public startIndex: number = 0;\n selectedLead: any;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public statusValue = \"all\";\n public clearTime: any;\n sideViewerData: any = { ReferralActivities: [], CallDetails: [] };\n currentLeadId: any;\n activityfilterString: string = \"\";\n refereeSearch: string = \"\";\n minItems = 5;\n commentText: string = \"\";\n selectedAll: boolean = false;\n leadIds = [];\n defaultAgent = \"default\";\n selectedAgent: any;\n agentList: any;\n universityList: any[];\n otherUniversity = \"Other\";\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n\n public filterValue = \"all\";\n showDate: boolean = false;\n endDate: any;\n startDate: any;\n date1: any;\n date2: any;\n agentCall: String = \"\";\n testConfig: any;\n leadTypereferee: string = \"total\";\n editStatus: string;\n public edited: boolean = false;\n\n public uploaded: boolean = false;\n public insertCount: number = 0;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n University: string;\n CallStatus: string;\n AgentMail: string;\n DIterms?: string;\n DIyear?: string;\n };\n\n addLead: {\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n University: string;\n AgentMail: string;\n } = {\n FirstName: \"\",\n LastName: \"\",\n CountryCode: \"\",\n PhoneNumber: \"\",\n Email: \"\",\n University: \"\",\n AgentMail: \"\",\n };\n currentCard: string = \"total\";\n sortColumn = \"createdAt\";\n sortOrder = \"des\";\n smsText: string;\n smsList: [] = [];\n projectLists: any;\n\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeAssignModel\") closeAssignModel;\n @ViewChild(\"uploadFile\") uploadFile;\n topBarCountReferee: {\n total: number;\n referral: number;\n signedUp: number;\n notSignedUp: number;\n unassigned: number;\n assigned: number;\n assignedtoMe: number;\n androidSignup: number;\n iosSignup: number;\n webSignup: number;\n deactivated: number;\n } = {\n total: 0,\n referral: 0,\n signedUp: 0,\n notSignedUp: 0,\n unassigned: 0,\n assigned: 0,\n assignedtoMe: 0,\n androidSignup: 0,\n iosSignup: 0,\n webSignup: 0,\n deactivated: 0\n };\n allLeads: any;\n filterString: string;\n leadsLoading: boolean = false;\n noLeadsFound: boolean = false;\n tab!: string;\n downloadLink: any;\n referralList1: any;\n DIyear: any;\n DIterms: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n callSid: any;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n cardNumber: any = 1;\n paidDate = new Date();\n todayDate = new Date().toISOString().slice(0, 10);\n\n constructor(\n private SharedService: SharedService,\n public ReferreeService: ReferreeService,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private uhleadsservice: UhLeadsService,\n private readonly modalService: NgbModal,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n public companyService: RoleService,\n private handleError: ErrorHandlerService,\n private agentService: CreateAgent,\n private router: Router,\n\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n ngOnInit() {\n this.SharedService.pageEvent.emit({\n pageName: \"Referee\",\n });\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // this.SharedService.projectId.subscribe((data: any) => {\n this.companyService.projectAdmin(this.userData[\"companyId\"]).subscribe(\n (projects) => {\n this.projectId = projects.filter((x) => x.Name == \"Referrals\")[0].id;\n // this.projectId = data;\n if (this.projectId) {\n this.SharedService.getProjectAdmin(this.projectId).subscribe(\n (data: any) => {\n this.admin = data;\n setTimeout(() => {\n\n this.getListofUniversities();\n this.getTopBarCount();\n\n this.getLeadsByCards(this.leadTypereferee);\n // this.getLead();\n }, 500);\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.getDownloadLink();\n this.ReferreeService.startTimer.subscribe((res) => {\n\n this.callStatus = \"inProgress\";\n this.startTimer();\n\n });\n this.ReferreeService.getCallSid.subscribe((data) => {\n this.callSid = data;\n });\n //incoming sms check\n this.uhleadsservice.incomingSms.subscribe((from: any) => {\n // \n if (from.from) {\n this.ReferreeService.getSms(this.currentLeadId).subscribe(\n (smsList: any) => {\n // \n }\n );\n }\n });\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.filterString = this.input.nativeElement.value;\n this.page = 1;\n this.searchLeads();\n })\n )\n .subscribe();\n this.ReferreeService.callStatus.subscribe((status) => {\n this.callStatus = status;\n });\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n filterData() {\n // this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n this.getLeadsByCards(\"all\");\n }\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n this.getTopBarCount();\n this.getLeadsByCards(\"all\");\n }\n\n getReferralList(admin, projectId, mail, leadType, start, end) {\n let payload = {\n admin: admin,\n mail: mail,\n ProjectId: projectId,\n leadType: leadType,\n start: start,\n end: end,\n };\n\n this.ReferreeService.getReferralList(payload).subscribe(\n (res: any) => {\n\n\n this.referralList = res;\n\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.getTopBarCount();\n this.getLeadsByCards(this.leadTypereferee);\n }\n\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n // \n // \n this.sortColumn = column;\n this.referralList = sortJsonArray(\n this.referralList,\n this.sortColumn,\n this.sortOrder\n );\n\n // \n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n }\n\n getLead() {\n this.ReferreeService.getReferralLead(2).subscribe(\n (res: any) => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getReferredList(id) {\n this.refereeSearch = \"\";\n this.referredList = [];\n this.ReferreeService.getReferredList(id).subscribe(\n (res: any) => {\n this.referredList = res.myReferralsList;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getListofUniversities() {\n this.ReferreeService.getUniversityList().subscribe(\n (res: any) => {\n this.universityList = res.universities;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n openEditLead(content, lead) {\n this.editStatus = lead.CallStatus;\n this.DIterms = lead.DIterms;\n this.DIyear = parseInt(lead.DIyear);\n if (this.editStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n this.leadtoEdit = {\n LeadId: lead.id,\n FirstName: lead.FirstName,\n LastName: lead.LastName,\n CountryCode: \"+\" + lead.CountryCode,\n PhoneNumber: lead.PhoneNumber,\n Email: lead.Email,\n University: lead.University,\n CallStatus: lead.CallStatus,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"md\" });\n }\n\n fileUpload(event) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n }\n }\n\n openAddRecord(content) {\n this.addLead = {\n FirstName: \"\",\n LastName: \"\",\n CountryCode: \"\",\n PhoneNumber: \"\",\n Email: \"\",\n University: \"\",\n AgentMail: \"\",\n };\n this.modalService.open(content, { size: \"md\" });\n }\n\n addSingleLead() {\n let payload = {\n CreatedBy: this.userData.mail,\n ProjectId: this.projectId,\n data: [this.addLead],\n };\n\n if (\n this.addLead.FirstName == \"\" ||\n this.addLead.LastName == \"\" ||\n this.addLead.PhoneNumber == \"\" ||\n this.addLead.Email == \"\" ||\n this.addLead.CountryCode == \"\" ||\n this.addLead.University == \"\"\n ) {\n this.uhleadsservice.showError(\"Please fill all the data\", \"Error\");\n return;\n } else {\n this.ReferreeService.uploadLeads(payload).subscribe(\n (res: any) => {\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n this.getTopBarCount();\n this.getLeadsByCards(\"all\");\n document.getElementById(\"closeAddModal\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n updateLead() {\n this.edited = true;\n if (this.ReferreeService.editLead.invalid) {\n this.uhleadsservice.showError(\"Form is not valid . Please check all the fields\", \"Error!\");\n return;\n }\n\n this.leadtoEdit.CountryCode = this.leadtoEdit.CountryCode.replace(\n /\\+/g,\n \"\"\n );\n this.leadtoEdit.DIterms = this.DIterms;\n this.leadtoEdit.DIyear = this.DIyear;\n if (this.leadtoEdit.CountryCode == \"-\") {\n this.leadtoEdit.CountryCode = \"00\";\n }\n if (this.leadtoEdit.PhoneNumber == \"-\") {\n this.leadtoEdit.PhoneNumber = \"0000000000\";\n }\n\n let obj: any;\n obj = this.leadtoEdit;\n obj.paidDate = this.paidDate;\n this.ReferreeService.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.edited = false;\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n this.getTopBarCount();\n this.getLeadsByCards(\"all\");\n document.getElementById(\"closeButton3\").click();\n let dataobj = {\n userid: this.leadtoEdit.LeadId,\n paidDate: this.paidDate,\n paidStatus: 'paid'\n };\n this.ReferreeService.addPaid(dataobj).subscribe((res: any) => {\n // this.paidDate = null;\n }, (err) => {\n\n })\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"sheet\") {\n return true;\n } else {\n // window.alert(\"Please upload a valid file!\");\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n\n sideNavData(data) {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.ReferreeService.getReferralLead(data.id).subscribe(\n (res: any) => {\n this.ReferreeService.getSms(data.id).subscribe((smsList: any) => {\n // \n this.smsList = smsList.SMSDetails;\n });\n this.sideViewerData = res;\n this.replaceNull(this.sideViewerData);\n this.currentLeadId = this.sideViewerData.id;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n // \n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"Referrals\") {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n // \n this.ReferreeService.sendSms(payload, this.projectId).subscribe(\n (res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.ReferreeService.getSms(this.currentLeadId).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n }\n );\n });\n }\n\n onInputActivity(event: any) {\n if (this.refereeSearch != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n\n onRefereeSearch(event: any) {\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"FirstName\" && sheet_data.length !== 0) {\n this.fileData = this.ReferreeService.convert2dArraytoObject(sheet_data);\n this.ReferreeService.uploadLeads({\n data: this.fileData,\n CreatedBy: this.userData.mail,\n ProjectId: this.projectId,\n addType: 'Excel'\n }).subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n startCallListener() {\n this.ReferreeService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n userData: this.userData,\n leadData: this.marketingId,\n });\n }\n\n startCallListener2(data, index) {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatus = false;\n\n this.callData[0] = data;\n // \n this.selectedLead = data;\n this.marketingId = {\n id: data.id,\n status: data.CallStatus,\n name: data.FirstName,\n email: data.Email,\n phoneNumber: \"+\" + data.CountryCode + data.PhoneNumber,\n // phoneNumber: \"+919848311098\",\n module: data.Module,\n city: \"\",\n nextCaller: this.referralList.length > 1 ? 1 : 0,\n lead: 0,\n };\n if (this.referralList.length > 1) {\n var nextFirstname = this.referralList[index + 1]?.FirstName\n ? this.referralList[index + 1]?.FirstName\n : \"\";\n var nextLastname = this.referralList[index + 1]?.LastName\n ? this.referralList[index + 1]?.LastName\n : \"\";\n var nextCallerCity = this.referralList[index + 1]?.City\n ? this.referralList[index + 1]?.City\n : \"\";\n var nextCallerCountryCode = this.referralList[index + 1]?.CountryCode\n ? this.referralList[index + 1]?.CountryCode.replace(\"+\", \"\")\n : \"\";\n var nextCallerPhoneNumber = this.referralList[index + 1]?.PhoneNumber\n ? this.referralList[index + 1]?.PhoneNumber\n : \"\";\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode\n ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber\n : \"\";\n this.startIndex = index + 1;\n }\n this.ReferreeService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n conferenceCall(value: any) {\n this.ReferreeService.conferenceCall.next({ value });\n }\n\n stopCallListener() {\n\n this.ReferreeService.startCall.next(null);\n this.ReferreeService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n // if (this.statusValue !== \"pending\") {\n // this.startIndex += 1;\n // }\n this.startIndex += 1;\n\n clearTimeout(this.clearTime);\n }\n\n stopCurrentCall() {\n\n this.ReferreeService.startCall.next(null);\n this.ReferreeService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n\n applicationstatus(data) {\n this.applicationStatus = data;\n if (this.applicationStatus == \"Yes\") {\n }\n }\n\n onStatusChange(data) {\n this.newStatus = data;\n if (this.newStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n updateComments() {\n if (!this.newStatus) {\n } else {\n // this.ReferreeService.getCallSid.subscribe((data) => {\n this.ReferreeService.updateCallComments({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n diyear: this.DIyear,\n diterms: this.DIterms,\n }).subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.commentText = \"\";\n this.getTopBarCount();\n this.getLeadsByCards(this.leadTypereferee);\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // });\n }\n }\n\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.referralList.length; i++) {\n this.leadIds.push(this.referralList[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.ReferreeService.assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n }).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n this.leadIds = [];\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n this.getTopBarCount();\n this.getLeadsByCards(\"all\");\n this.selectedAll = false;\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n getTopBarCount() {\n var postData = {\n AgentMail: this.userData.mail,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n this.ReferreeService.getTopBarCount(postData).subscribe(\n (res: any) => {\n this.topBarCountReferee = res.TopBarCount;\n this.onClick(this.cardNumber);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n getUniversalRecords(cardValue) {\n this.filterString = \"\";\n let obj;\n this.leadTypereferee = cardValue;\n this.page = 1;\n obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadTypereferee,\n start: this.startDate,\n end: this.endDate,\n page: this.page,\n };\n this.getLeadsSuccess(obj);\n }\n getLeadsByCards(cardValue) {\n this.filterString = \"\";\n let obj;\n this.leadTypereferee = cardValue;\n this.page = 1;\n obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadTypereferee,\n start: this.startDate,\n end: this.endDate,\n page: this.page,\n };\n this.getLeadsSuccess(obj);\n this.getTopBarCount();\n }\n\n getLeadsSuccess(obj) {\n this.leadsLoading = true;\n this.noLeadsFound = false;\n this.referralList = [];\n this.referralList1 = [];\n this.ReferreeService.getReferralList(obj)\n .toPromise()\n .then(\n (resp: any) => {\n this.referralList = resp;\n this.referralList1 = resp;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n this.leadsLoading = false;\n if (this.referralList.length <= 0) {\n this.noLeadsFound = true;\n }\n },\n (error) => {\n\n }\n )\n .catch((err) => {\n\n });\n }\n onClick(check: any) {\n this.uhleadsservice.pageNumber.next(1);\n this.cardNumber = check;\n switch (check) {\n case 1:\n this.collectionSize = this.topBarCountReferee.total;\n break;\n case 2:\n this.collectionSize = this.topBarCountReferee.referral;\n break;\n case 3:\n this.collectionSize = this.topBarCountReferee.signedUp;\n break;\n case 4:\n this.collectionSize = this.topBarCountReferee.notSignedUp;\n break;\n case 5:\n this.collectionSize = this.topBarCountReferee.assigned;\n break;\n case 6:\n this.collectionSize = this.topBarCountReferee.unassigned;\n break;\n case 7:\n this.collectionSize = this.topBarCountReferee.assignedtoMe;\n break;\n case 8:\n this.collectionSize = this.topBarCountReferee.androidSignup;\n break;\n case 9:\n this.collectionSize = this.topBarCountReferee.iosSignup;\n break;\n case 10:\n this.collectionSize = this.topBarCountReferee.webSignup;\n break;\n case 11:\n this.collectionSize = this.topBarCountReferee.deactivated;\n break;\n default:\n break;\n }\n if (check) {\n this.tab = \"tab\" + check;\n } else {\n this.tab = \"\";\n }\n }\n dropdownSelect(event) {\n this.getUniversalRecords(event);\n let payload = {\n status: event,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n this.ReferreeService.getCountByCallStatusReferrerLeads(payload).subscribe(\n (data: any) => {\n\n this.collectionSize = data.count;\n }\n );\n }\n getDownloadLink() {\n this.downloadLink = environment.referreeCSV;\n }\n onInput(event) {\n if (this.filterString != \"\") {\n } else {\n\n this.referralList = this.referralList1;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n\n this.sortTableData(this.sortColumn, this.sortOrder);\n }\n }\n\n redirectToUpload() {\n\n this.router.navigate([\"./upload/\" + this.projectId]);\n }\n onDIItermsChange(data) {\n this.DIterms = data;\n // \n }\n onDIYearChange(data) {\n // \n this.DIyear = data;\n }\n getCheckCallVisibleTiming(data: any) {\n if (moment(data.createdAt).add(48, \"hours\").format() >= moment().format()) {\n return false;\n } else {\n return true;\n }\n }\n searchLeads() {\n this.referralList = [];\n this.noLeadsFound = false;\n this.leadsLoading = true;\n let payload = {\n ProjectId: this.projectId,\n search: this.filterString,\n page: this.page\n };\n if (this.filterString.length > 0) {\n this.leadTypereferee = 'filter';\n this.ReferreeService.search(payload).subscribe((resp: any) => {\n this.referralList = resp.data;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n this.collectionSize = resp.totallength;\n this.sortTableData(this.sortColumn, this.sortOrder);\n this.leadsLoading = false;\n if (this.referralList.length <= 0) {\n this.noLeadsFound = true;\n }\n });\n } else {\n this.leadTypereferee = \"total\";\n this.getTopBarCount();\n this.getLeadsByCards(this.leadTypereferee);\n }\n }\n\n onPageChange(event: any) {\n this.page = event;\n this.referralList = [];\n this.noLeadsFound = false;\n this.leadsLoading = true;\n if (this.leadTypereferee != \"filter\") {\n let obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadTypereferee,\n start: this.startDate,\n end: this.endDate,\n page: this.page,\n };\n this.getLeadsSuccess(obj);\n } else {\n let payload = {\n ProjectId: this.projectId,\n search: this.filterString,\n page: this.page\n };\n if(this.filterString.length>0){\n this.ReferreeService.search(payload).subscribe((resp: any) => {\n this.referralList = resp.data;\n this.referralList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n this.sortTableData(this.sortColumn, this.sortOrder);\n this.leadsLoading = false;\n if (this.referralList.length <= 0) {\n this.noLeadsFound = true;\n }\n });\n } else{\n this.leadTypereferee = \"total\";\n }\n }\n \n }\n}\n","\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Name\n {{ sideViewerData.FirstName + \" \" + sideViewerData.LastName }}\n
    Email{{ sideViewerData.Email }}
    Mobile\n {{\n sideViewerData.CountryCode + \" \" + sideViewerData.PhoneNumber\n }}\n
    Created Date{{ sideViewerData.createdAt | date: \"medium\" }}
    University{{ sideViewerData.University }}
    Referral Count 0\" data-toggle=\"modal\" data-target=\"#refcount\"\n (click)=\"getReferredList(sideViewerData.id)\" style=\"cursor: pointer;color: blue;\">{{\n sideViewerData.ReferralCount }}{{ sideViewerData.ReferralCount }}
    Referral Bonus${{sideViewerData.ReferralBonus!='-' ? sideViewerData.ReferralBonus:'0' }}
    \n
    \n
    \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date: \"medium\" }}
    Status{{ i.CallStatus | titlecase }}
    Call Recording\n \n
    Comments{{ i.Comments }}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date: \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date: \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n \n
    \n
    \n
    \n {{ sideViewerData.ReferralActivities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date: \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n
    \n
    ×
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
    Name{{sideViewerData.FirstName+\" \"+sideViewerData.LastName}}
    Email{{sideViewerData.Email}}
    Mobile{{sideViewerData.CountryCode+\" \"+sideViewerData.PhoneNumber}}
    Created Date{{sideViewerData.createdAt | date: 'medium'}}
    University{{sideViewerData.University}}
    \n
    \n
    \n \n
    \n {{sideViewerData.CallDetails.length}} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{i.AgentName}}
    Date & Time{{i.DateTime | date: 'medium'}}
    Status {{i.CallStatus | titlecase}}
    Call Recording\n
    Comments {{i.Comments}}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ sideViewerData.ReferralActivities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date: \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n\n
    \n

    Add New Lead

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n
    \n
    \n
    Referral Count
    \n \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Full NameUniversity NameEnrollment TermReferral AmountStatus
    \n \n \n
    {{ i.FIRST_NAME + \" \" + i.LAST_NAME }}
    \n
    \n
    \n
    \n {{i.university||'--'}}\n \n {{i.enrollTerms ||'--'}} {{i.enrollYear ||'--'}}\n \n ${{i.ReferralCommission ||'0'}}\n \n \n
    \n Pending\n
    \n
    \n Completed\n
    \n
    \n {{i.ReferralStatus}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n\n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.total || 0 }}\n
    \n
    \n
    Total Referees
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.androidSignup || 0 }}\n
    \n
    \n
    Android Signup
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.iosSignup || 0 }}\n
    \n
    \n
    Ios Signup
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.webSignup || 0 }}\n
    \n
    \n
    Web Signup
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.referral || 0 }}\n
    \n
    \n
    Referral Count
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.signedUp || 0 }}\n
    \n
    \n
    Signed Up
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.notSignedUp || 0 }}\n
    \n
    \n
    Not Signed Up
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.assigned || 0 }}\n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee.unassigned || 0 }}\n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCountReferee?.assignedtoMe || 0 }}\n
    \n
    \n
    AssignedtoMe
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    List of Referre
    \n\n
    \n \n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    ActionsCreated\n \n Updated\n \n Name\n \n Email\n \n Assigned\n \n Phone\n \n Uni\n \n Count\n \n Bonus\n \n Call Status\n \n Location\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    {{ i.createdAt | date: \"dd MMM, yyyy\" }}{{ i.updatedAt | date: \"dd MMM, yyyy\" }}\n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ i.Email }}\n \n
    \n {{ i.Email }}\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AssignedToInitials }}\n

    \n
    \n
    \n
    \n \n {{ i.AssignedToName }}\n \n
    \n {{ i.AssignedToName }}\n
    \n
    \n
    {{ i.PhoneNumber }}\n
    \n
    \n \n
    \n
    \n
    \n \n {{ i.University }}\n \n
    \n {{ i.University }}\n
    \n
    \n
    \n 0\" class=\"btn-link\" data-toggle=\"modal\" data-target=\"#refcount\"\n (click)=\"getReferredList(i.id)\">{{ i.ReferralCount }}\n
    {{\n i.ReferralCount }}
    \n
    \n ${{ i.ReferralBonus!='-' ? i.ReferralBonus:'0' }}\n \n Pending\n Not Interested\n Completed\n Paid\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n \n
    \n
    \n \n {{ i.signUpLocation }}\n \n
    \n {{ i.signUpLocation }}\n
    \n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different date range.\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n
    \n
    \n
    Assign to Agent
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    {{ nextCallerName }}
    \n
    {{ nextCallerCity }}
    \n
    {{ nextCallerNumber }}
    \n
    \n\n
    \n
    \n \"\"\n
    \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Referre details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0].FirstName + \" \" + callData[0].LastName }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0].Email }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{\n callData[0].CountryCode + \" \" + callData[0].PhoneNumber\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n {{ callData[0].createdAt | date: \"medium\" }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{callData[0].University || ''}}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    {{callData[0].ReferralCount}}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    ${{callData[0].ReferralBonus}}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Please select any option above!\n \n\n
    \n
    \n
    \n
    Comments
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ReferreeService {\n baseApiUrl = environment.baseApiUrl3;\n baseApiUrl2 = environment.baseApiUrl2;\n SMSapiurl = environment.SMSapiurl;\n\n\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n conferenceCall = new BehaviorSubject(null);\n callStatus = new BehaviorSubject(null);\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n CallStatus: [\"\"],\n });\n\n addLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n });\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) {}\n\n getReferralList(data) {\n return this.http.post(`${this.baseApiUrl}ref/getReferrerLeads`, data);\n }\n\n getReferralLead(data) {\n return this.http.get(`${this.baseApiUrl}ref/getReferrer/` + data);\n }\n\n getReferralLead2(data) {\n return this.http.get(`${this.baseApiUrl}ref/getReferredStudent/` + data);\n }\n\n getReferredList(data) {\n return this.http.get(\n `${this.baseApiUrl}ref/getReferralCount/` + data\n );\n }\n\n getTopBarCount(obj) {\n return this.http.post(`${this.baseApiUrl}ref/getTopBarReferrer`, obj);\n }\n\n getUniversityList(){\n return this.http.get(`${this.baseApiUrl}ref/universitryhub/listOfUniversities`);\n }\n\n uploadLeads(data) {\n return this.http.post(`${this.baseApiUrl}ref/createReferrer`, data);\n }\n\n updateLead(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateReferrer`, data);\n }\n\n updateCallSid(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallSid`, data);\n }\n\n updateCallStatus(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallStatus`, data);\n }\n\n updateCallComments(data) {\n return this.http.post(`${this.baseApiUrl}ref/updateCallComments`, data);\n }\n\n assignLeads(body) {\n return this.http.post(`${this.baseApiUrl}ref/AssignCRMReferrer`, body);\n }\n\n convert2dArraytoObject(formatingData): ReferralData[] {\n let excelData: ReferralData[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n\n if (formatingData[inner][0]) {\n convertData[\"FirstName\"] = formatingData[inner][0];\n convertData[\"LastName\"] = formatingData[inner][1];\n convertData[\"CountryCode\"] = formatingData[inner][2] || '';\n convertData[\"PhoneNumber\"] = formatingData[inner][3];\n convertData[\"Email\"] = formatingData[inner][4];\n convertData[\"AssignedTo\"] = formatingData[inner][5] ||\"\";\n \n excelData.push(convertData);\n }\n }\n\n return excelData;\n }\n\n getSms(id) {\n return this.http.get(`${this.baseApiUrl2}communication/refereeSMS/` + id);\n }\n\n sendSms(data, projectId) {\n return this.http.post(`${this.SMSapiurl}`+projectId+`/messaging-adapter/sendSMS`,data);\n }\n\n search(data){\n return this.http.post(`${this.baseApiUrl2}/referrerSearch`, data);\n }\n getCountByCallStatusReferrerLeads(data){\n return this.http.post(`${this.baseApiUrl2}/getCountByCallStatusReferrerLeads`,data)\n }\n\n addPaid(data){\n return this.http.post(`${this.baseApiUrl}ref/paid/add`, data);\n }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Form, FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-created-at',\n templateUrl: './created-at.component.html',\n styleUrls: ['./created-at.component.css']\n})\nexport class CreatedAtComponent implements OnInit {\n showDropDown: boolean = true;\n tab: string = '';\n type: string;\n withForm: FormGroup;\n morethanForm: FormGroup;\n betweenFrom: FormGroup;\n @Output() shareCheckedListCreated = new EventEmitter();\n constructor(private fb:FormBuilder) { }\n\n ngOnInit() {\n this.type='';\n this.initwith();\n this.initmore();\n this.initbetween();\n }\n onClick(tab,type){\n this.type = type\n \n \n if(tab){\n this.tab = 'tab'+tab;\n \n \n } else {\n this.tab = ''\n }\n }\n save(){\n this.showDropDown = false; \n if(this.type === 'within_the_last'){\n \n this.shareCheckedListCreated.emit(this.withForm.value);\n } else if(this.type === 'more_than'){\n \n this.shareCheckedListCreated.emit(this.morethanForm.value);\n } else if(this.type === 'in_between'){\n \n this.shareCheckedListCreated.emit(this.betweenFrom.value);\n }\n }\n cancel(){\n this.showDropDown = false; \n }\n initwith(){\n this.withForm = this.fb.group({\n inputVal: [''],\n selectVal: ['minutes']\n })\n }\n initmore(){\n this.morethanForm = this.fb.group({\n inputVal: [''],\n selectVal: ['minutes']\n })\n }\n initbetween(){\n this.betweenFrom = this.fb.group({\n inputVal1: [''],\n inputVal2: ['']\n })\n }\n}\n","
    \n
    \n
    \n\n
    \n \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    and
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    ","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n\n@Component({\n selector: 'app-multi-select-dropdown',\n templateUrl: './multi-select-dropdown.component.html',\n styleUrls: ['./multi-select-dropdown.component.css']\n})\nexport class MultiSelectDropdownComponent {\n @Input() list: any[];\n\n @Output() shareCheckedList = new EventEmitter();\n @Output() shareIndividualCheckedList = new EventEmitter();\n\n\n checkedList: any[];\n currentSelected: {};\n showDropDown: boolean = false;\n\n constructor() {\n this.checkedList = [];\n }\n\n getSelectedValue(status: Boolean, value: String) {\n this.showDropDown = false;\n if (status) {\n this.checkedList.push(value);\n } else {\n var index = this.checkedList.indexOf(value);\n this.checkedList.splice(index, 1);\n }\n\n this.currentSelected = { checked: status, name: value };\n\n //share checked list\n this.shareCheckedlist();\n\n //share individual selected item\n this.shareIndividualStatus();\n }\n shareCheckedlist() {\n this.shareCheckedList.emit(this.checkedList);\n }\n shareIndividualStatus() {\n this.shareIndividualCheckedList.emit(this.currentSelected);\n }\n\n\n\n}","
    \n
    \n \n
    \n
      \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    ","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\n// import { MatDatepickerInputEvent } from '@angular/material';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { ReportsService } from '../reports.service';\nimport * as XLSX from 'xlsx';\nimport { DashboardReportsService } from '../../dashboard-reports/dashboard-reports.service';\nimport { SharedService } from 'src/app/shared/shared.service';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\n@Component({\n selector: \"app-report-filter\",\n templateUrl: \"./report-filter.component.html\",\n styleUrls: [\"./report-filter.component.css\"],\n})\nexport class ReportFilterComponent implements OnInit {\n userData: any;\n showProjects: boolean = false;\n showCourses: boolean = false;\n showApplications: boolean = false;\n showUsers: boolean = false;\n showEnrollmentYear: boolean = false;\n showEnrollmentTerm: boolean = false;\n showDate: boolean = false;\n showCreatedDate: boolean = false;\n showUpdatedDate: boolean = false;\n allProjectLists: any;\n projectLists: any;\n allcoursesList: any;\n coursesList: any;\n applicationsList: any;\n allAgentsList: any;\n agentsList: any;\n enrollmentTermList: any;\n enrollmentYearList: any;\n list: any[] = [{ name: \"Users\", checked: false }];\n selectedIndexProject: number;\n currentProjectName: any;\n courseSelectionArray: any[] = [];\n applicationSelectionArray: any[] = [];\n usersSelectionArray: any[] = [];\n enrollmentYearSelectionArray: any[] = [];\n enrollmentTermSelectionArray: any[] = [];\n startDate: any;\n endDate: any;\n selectedIndexDate: string;\n showDateCustom: boolean = false;\n filterValue: string;\n date1: any;\n date2: any;\n filtersData: any;\n projectId: any;\n private colors = [\n [{ bg: \"#FAE2DF\", color: \"#A52A1E\" }],\n [{ bg: \"#C8EAF2\", color: \"#014C5C\" }],\n [{ bg: \"#CDEDDC\", color: \"#04745A\" }],\n [{ bg: \"#D1E2FF\", color: \"#013CA3\" }],\n [{ bg: \"#e7fadf\", color: \"#39a51e\" }],\n [{ bg: \"#dffaeb\", color: \"#1ea55b\" }],\n [{ bg: \"#dfe2fa\", color: \"#1e2ea5\" }],\n ];\n @Output() generate = new EventEmitter();\n @Output() export = new EventEmitter();\n constructor(\n private reportService: ReportsService,\n private momentService: MomentFormatService,\n private ReportsService: DashboardReportsService,\n private sharedService: SharedService\n ) { }\n\n ngOnInit() {\n // \n\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n\n\n\n this.getProjectList();\n // this.getCourses();\n // this.getAgentList();\n this.getEnrollmentTerm();\n this.getEnrollmentYear();\n this.getApplicationList();\n this.getAgentsCRM();\n this.getSetFilterData()\n }\n toggleFilters(val) {\n if (val === \"showProjects\") {\n this.showProjects = !this.showProjects;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showCourses\") {\n this.showProjects = false;\n this.showCourses = !this.showCourses;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showApplications\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = !this.showApplications;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showUsers\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = !this.showUsers;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showEnrollmentYear\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = !this.showEnrollmentYear;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showEnrollmentTerm\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = !this.showEnrollmentTerm;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showDate\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = !this.showDate;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showCreatedDate\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = !this.showCreatedDate;\n this.showUpdatedDate = false;\n } else if (val === \"showUpdatedDate\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = !this.showUpdatedDate;\n }\n }\n getProjectList() {\n this.reportService\n .getProjectList(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n let menulist;\n this.sharedService.displayMenu.subscribe((Data: any) => {\n if (Data) {\n menulist = Data;\n if (menulist && menulist.length > 0) {\n this.allProjectLists = resp.projectLists.filter(x => {\n if (menulist.find(y => y.Name.toLowerCase() === 'campbellsville' && x.Name.toLowerCase() === 'campbellsville'))\n return x\n if (menulist.find(y => y.Name.toLowerCase() === 'sfc' && x.Name.toLowerCase() === 'sfc'))\n return x\n });\n this.projectLists = this.allProjectLists;\n console.log(\"this.allProjectLists\", this.projectLists)\n if (this.projectLists && this.projectLists.length) {\n this.currentProjectName = this.projectLists[0].Name;\n this.selectedIndexProject = this.projectLists[0].id;\n this.reportService.projectId.next(this.selectedIndexProject)\n this.projectId = this.projectLists[0].id;\n }\n // for (let i = 0; i < resp.projectLists.length; i++) {\n // if (resp.projectLists[i].Name == \"Campbellsville\") {\n // }\n // }\n this.getCourses()\n this.getAgentList()\n }\n }\n });\n })\n .catch((err) => { });\n }\n getCourses() {\n console.log(\"this.selectedIndexProject\", this.projectId)\n this.reportService\n .getCourses(this.userData.id, this.userData.token, this.projectId)\n .toPromise()\n .then((resp: any) => {\n this.coursesList = this.allcoursesList = resp.data;\n })\n .catch((err) => { });\n }\n getAgentsCRM() {\n this.reportService.gerAgentsCRM2({ platform: 'CRM', projectId: '2' }).subscribe((res: any) => {\n var agentList = res.data;\n agentList.forEach((y) => {\n y.ProfilePhoto = '';\n y.AgentColor =\n this.colors[\n this.numberFromText(y.agentInitial) % this.colors.length\n ][0];\n });\n this.agentsList = agentList;\n })\n }\n getAgentList() {\n this.reportService.gerAgentsCRM2({ platform: 'CRM', projectId: this.selectedIndexProject }).subscribe((res: any) => {\n\n var agentList = res.data;\n agentList.forEach((y) => {\n y.ProfilePhoto = '';\n y.AgentColor = this.colors[this.numberFromText(y.agentInitial) % this.colors.length][0];\n });\n this.agentsList = this.allAgentsList = agentList;\n })\n // this.reportService\n // .getAgents(this.userData.id, this.userData.token)\n // .toPromise()\n // .then((resp: any) => {\n // var agentList = resp.data;\n // agentList.forEach((y) => {\n // y.AgentColor =\n // this.colors[\n // this.numberFromText(y.agentInitial) % this.colors.length\n // ][0];\n // });\n // this.agentsList = agentList;\n // })\n // .catch((err) => {});\n }\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n getApplicationList() {\n var postData = {\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n };\n this.reportService\n .getApplication(postData)\n .toPromise()\n .then((resp: any) => {\n this.applicationsList = resp.applicationStatusLists;\n })\n .catch((err) => { });\n }\n getEnrollmentTerm() {\n this.reportService\n .getEnrollmentTerm(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n this.enrollmentTermList = resp.enrollmentTermList;\n })\n .catch((err) => { });\n }\n getEnrollmentYear() {\n this.reportService\n .getEnrollmentYear(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n this.enrollmentYearList = resp.enrollmentYearList;\n })\n .catch((err) => { });\n }\n shareCheckedList(item: any[]) {\n }\n shareIndividualCheckedList(item: any) {\n if (item.name === \"Users\" && item.checked === true) {\n this.toggleFilters(\"showUsers\");\n }\n if (item.name === \"Applications\" && item.checked === true) {\n this.toggleFilters(\"showApplications\");\n }\n if (item.name === \"Enrollment Year\" && item.checked === true) {\n this.toggleFilters(\"showEnrollmentYear\");\n }\n if (item.name === \"Enrollment Term\" && item.checked === true) {\n this.toggleFilters(\"showEnrollmentTerm\");\n }\n }\n dateSelection(event) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n this.filterValue = \"custom\";\n this.showDateCustom = true;\n this.selectedIndexDate = event.target.value;\n } else if (event.target.value == \"24hrs\") {\n this.showDateCustom = false;\n this.filterValue = \"24hrs\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n } else if (event.target.value == \"72hrs\") {\n this.showDateCustom = false;\n this.filterValue = \"72hrs\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n } else if (event.target.value == \"07days\") {\n this.showDateCustom = false;\n this.filterValue = \"07days\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n } else if (event.target.value == \"14days\") {\n this.showDateCustom = false;\n this.filterValue = \"14days\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n } else if (event.target.value == \"30days\") {\n this.showDateCustom = false;\n this.filterValue = \"30days\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n }\n\n\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDateCustom == false) {\n this.showDateCustom = true;\n }\n }\n filterData() {\n // this.startDate = this.momentService.dashboardDateFormat(\n // new Date(this.date2.value).getTime()\n // );\n // \n\n // this.endDate = this.momentService.dashboardDateFormat(\n // new Date(this.date1.value).getTime()\n // );\n // \n\n\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n // \n // this.startDate = this.momentService.dashboardDateFormat(\n // new Date(this.startDate).getTime\n // );\n // \n\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n // \n // this.endDate = this.momentService.dashboardDateFormat(\n // new Date(this.endDate).getTime\n // );\n // \n\n }\n // FILTER FUCNTIONS\n // PROJECT SINGLE SELECTION HANDLE\n projectSelection(event, id, name) {\n\n if (event.target.checked) {\n this.selectedIndexProject = id;\n this.currentProjectName = name;\n // this.reportService.projectId.next(this.selectedIndexProject)\n this.projectId = this.selectedIndexProject;\n this.getSetFilterData()\n this.getAgentList();\n this.getCourses();\n } else {\n this.selectedIndexProject = undefined;\n this.currentProjectName = \"\";\n }\n this.showProjects = false\n }\n\n // COURSE MULTI SELECT HANDLE\n courseSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.courseSelectionArray.push(s);\n } else {\n var index = this.courseSelectionArray.indexOf(s);\n if (index > -1) {\n this.courseSelectionArray.splice(index, 1);\n }\n }\n this.showCourses = false\n }\n\n checkAllcourse(ev) {\n this.courseSelectionArray = [];\n this.coursesList.forEach((x) => {\n if (ev.target.checked === true) {\n this.courseSelectionArray.push(x.course);\n }\n return (x.courseState = ev.target.checked);\n });\n this.showCourses = false\n\n }\n isAllCheckedcourse() {\n var rValue = this.coursesList.every((_) => _.courseState);\n return rValue;\n }\n // APPLICATION MULTI SELECT HANDLE\n applicationSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.applicationSelectionArray.push(s);\n } else {\n var index = this.applicationSelectionArray.indexOf(s);\n if (index > -1) {\n this.applicationSelectionArray.splice(index, 1);\n }\n }\n\n }\n\n checkAllapplication(ev) {\n this.applicationSelectionArray = [];\n this.applicationsList.forEach((x) => {\n if (ev.target.checked === true) {\n this.applicationSelectionArray.push(x.LeadDocStatus);\n }\n return (x.applicationState = ev.target.checked);\n });\n }\n isAllCheckedapplication() {\n var rValue = this.applicationsList.every((_) => _.applicationState);\n return rValue;\n }\n unCheckapplicationSelectionArray() {\n this.applicationSelectionArray = [];\n this.applicationsList.forEach((x) => {\n return (x.applicationState = false);\n });\n }\n // Enrollment Year SELECT HANDLE\n enrollmentYearSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.enrollmentYearSelectionArray.push(s);\n } else {\n var index = this.enrollmentYearSelectionArray.indexOf(s);\n if (index > -1) {\n this.enrollmentYearSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllenrollmentYear(ev) {\n this.enrollmentYearSelectionArray = [];\n this.enrollmentYearList.forEach((x) => {\n if (ev.target.checked === true) {\n this.enrollmentYearSelectionArray.push(x.EnrollmentYear);\n }\n return (x.enrollmentYearState = ev.target.checked);\n });\n }\n isAllCheckedenrollmentYear() {\n var rValue = this.enrollmentYearList.every((_) => _.enrollmentYearState);\n return rValue;\n }\n unCheckenrollmentYearSelectionArray() {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentYearList.forEach((x) => {\n return (x.enrollmentYearState = false);\n });\n }\n // Enrollment Term SELECT HANDLE\n enrollmentTermSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.enrollmentTermSelectionArray.push(s);\n } else {\n var index = this.enrollmentTermSelectionArray.indexOf(s);\n if (index > -1) {\n this.enrollmentTermSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllenrollmentTerm(ev) {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentTermList.forEach((x) => {\n if (ev.target.checked === true) {\n this.enrollmentTermSelectionArray.push(x.EnrollmentTerm);\n }\n return (x.enrollmentTermState = ev.target.checked);\n });\n }\n isAllCheckedenrollmentTerm() {\n var rValue = this.enrollmentTermList.every((_) => _.enrollmentTermState);\n return rValue;\n }\n unCheckenrollmentTermSelectionArray() {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentTermList.forEach((x) => {\n return (x.enrollmentTermState = false);\n });\n }\n // USERS MULTI SELECT HANDLE\n usersSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.usersSelectionArray.push(s);\n } else {\n var index = this.usersSelectionArray.indexOf(s);\n if (index > -1) {\n this.usersSelectionArray.splice(index, 1);\n }\n }\n this.showUsers = false\n }\n\n checkAllusers(ev) {\n this.usersSelectionArray = [];\n this.agentsList.forEach((x) => {\n if (ev.target.checked === true) {\n this.usersSelectionArray.push(x.Mailid);\n }\n return (x.usersState = ev.target.checked);\n });\n this.showUsers = false\n }\n isAllCheckedusers() {\n var rValue = this.agentsList.every((_) => _.usersState);\n return rValue;\n }\n unCheckusersSelectionArray() {\n this.usersSelectionArray = [];\n this.agentsList.forEach((x) => {\n return (x.usersState = false);\n });\n }\n\n // ===========================\n incomingVsCompletedData(filtersData) {\n this.ReportsService.getIncomingCompletedData(filtersData).subscribe((res: any) => {\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd, 'LeadsData');\n })\n }\n\n callsData(filtersData) {\n this.ReportsService.getCallsPerDayData(filtersData).subscribe((res: any) => {\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n\n const { id, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, CallSid, createdAt, updatedAt, WorkerSid, ConferenceSid, InitialCallSid, LeadId, Comments, Status, LeadType, FirstName, LastName } = x;\n return { id, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, CallSid, createdAt, updatedAt, WorkerSid, ConferenceSid, InitialCallSid, LeadId, Comments, Status, LeadType, FirstName, LastName };\n })\n\n this.downloadFile(fd, 'CallsData');\n })\n }\n\n downloadFile(filedata, name) {\n\n var json = filedata;\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = name + \"-\" + x.getFullYear() + \"-\" + x.getMonth() + \"-\" + x.getDay() + '.xlsx';\n a.download = link;\n a.click();\n }\n\n getSetFilterData() {\n var postData = {\n course:\n this.courseSelectionArray.length === this.allcoursesList.length\n ? \"All\"\n : this.courseSelectionArray.length > 0\n ? this.courseSelectionArray\n : \"\",\n agentEmail:\n this.usersSelectionArray.length === this.allAgentsList.length\n ? \"All\"\n : this.usersSelectionArray.length > 0\n ? this.usersSelectionArray\n : \"\",\n from: this.startDate,\n // from : this.startDate.setDate(this.startDate.getDate() - 1),\n to: this.endDate,\n // enrollmentYear:\n // this.enrollmentYearSelectionArray.length ===\n // this.enrollmentYearList.length\n // ? \"All\"\n // : this.enrollmentYearSelectionArray.length > 0\n // ? this.enrollmentYearSelectionArray\n // : \"\",\n // enrollmentTerm:\n // this.enrollmentTermSelectionArray.length ===\n // this.enrollmentTermList.length\n // ? \"All\"\n // : this.enrollmentTermSelectionArray.length > 0\n // ? this.enrollmentTermSelectionArray\n // : \"\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n // application:\n // this.applicationSelectionArray.length === this.applicationsList.length\n // ? \"All\"\n // : this.applicationSelectionArray.length > 0\n // ? this.applicationSelectionArray\n // : \"\",\n };\n // \n this.filtersData = postData\n console.log(\"postData : \", postData)\n this.reportService.filterData.next(postData);\n return postData\n }\n\n generateData() {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.generate.emit(this.getSetFilterData());\n }\n getAgentName(val) {\n var agentList = this.agentsList;\n var name = agentList.filter((x) => x.Mailid === val)[0];\n return name.agentname;\n }\n exportData() {\n var postData = {\n course:\n this.courseSelectionArray.length === this.allcoursesList.length\n ? \"All\"\n : this.courseSelectionArray.length > 0\n ? this.courseSelectionArray\n : \"\",\n agentEmail:\n this.usersSelectionArray.length === this.allAgentsList.length\n ? \"All\"\n : this.usersSelectionArray.length > 0\n ? this.usersSelectionArray\n : \"\",\n from: this.startDate,\n to: this.endDate,\n enrollmentYear:\n this.enrollmentYearSelectionArray.length ===\n this.enrollmentYearList.length\n ? \"All\"\n : this.enrollmentYearSelectionArray.length > 0\n ? this.enrollmentYearSelectionArray\n : \"\",\n enrollmentTerm:\n this.enrollmentTermSelectionArray.length ===\n this.enrollmentTermList.length\n ? \"All\"\n : this.enrollmentTermSelectionArray.length > 0\n ? this.enrollmentTermSelectionArray\n : \"\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n application:\n this.applicationSelectionArray.length === this.applicationsList.length\n ? \"All\"\n : this.applicationSelectionArray.length > 0\n ? this.applicationSelectionArray\n : \"\",\n };\n this.incomingVsCompletedData(postData);\n this.callsData(postData);\n this.export.emit();\n }\n resetFilters() {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n this.courseSelectionArray = [];\n this.usersSelectionArray = [];\n // this.unCheckusersSelectionArray();\n // this.unCheckapplicationSelectionArray();\n this.checkAllcourse({ target: { checked: false } })\n this.checkAllusers({ target: { checked: false } });\n this.filterValue = '';\n this.selectedIndexDate = '';\n this.generateData();\n\n }\n\n onSearch(value?: any, _from?: number) {\n if (_from == 1) {\n if (value) {\n this.projectLists = this.allProjectLists.filter(x => x.Name.toLowerCase().includes(value.toLowerCase()));\n }\n else\n this.projectLists = this.allProjectLists;\n }\n else if (_from == 2) {\n if (value) {\n this.coursesList = this.allcoursesList.filter(x => x.course.toLowerCase().includes(value.toLowerCase()));\n }\n else\n this.coursesList = this.allcoursesList;\n }\n else if (_from == 3) {\n if (value) {\n this.agentsList = this.allAgentsList.filter(x => x.agentname.toLowerCase().includes(value.toLowerCase()));\n }\n else\n this.agentsList = this.allAgentsList;\n }\n\n }\n}\n","
    \n \n
    \n
    \n \n\n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
      \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n \n \n \n\n \n \n \n \n \n \n
      \n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n \n \n \n \n\n
    \n
    ","import { Component, EventEmitter, Injectable, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport {NgbCalendar, NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';\nimport { CustomAdapter, CustomDateParserFormatter } from '../../reports.component';\n\n\n\n@Component({\n selector: 'app-updated-at',\n templateUrl: './updated-at.component.html',\n styleUrls: ['./updated-at.component.css'],\n providers: [\n {provide: NgbDateAdapter, useClass: CustomAdapter},\n {provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter}\n ]\n})\nexport class UpdatedAtComponent implements OnInit {\n showDropDown: boolean = true;\n tab: string = '';\n type: string;\n withForm: FormGroup;\n morethanForm: FormGroup;\n betweenFrom: FormGroup;\n @Output() shareCheckedListUpdated = new EventEmitter();\n constructor(private fb:FormBuilder,private ngbCalendar: NgbCalendar, private dateAdapter: NgbDateAdapter) { }\n\n ngOnInit() {\n this.type='';\n this.initwith();\n this.initmore();\n this.initbetween();\n }\n onClick(tab,type){\n this.type = type\n \n \n if(tab){\n this.tab = 'tab'+tab;\n \n \n } else {\n this.tab = ''\n }\n }\n save(){\n this.showDropDown = false; \n if(this.type === 'within_the_last'){\n \n this.shareCheckedListUpdated.emit(this.withForm.value);\n } else if(this.type === 'more_than'){\n \n this.shareCheckedListUpdated.emit(this.morethanForm.value);\n } else if(this.type === 'in_between'){\n \n this.shareCheckedListUpdated.emit(this.betweenFrom.value);\n }\n }\n cancel(){\n this.showDropDown = false; \n }\n initwith(){\n this.withForm = this.fb.group({\n inputVal: [''],\n selectVal: ['minutes']\n })\n }\n initmore(){\n this.morethanForm = this.fb.group({\n inputVal: [''],\n selectVal: ['minutes']\n })\n }\n initbetween(){\n this.betweenFrom = this.fb.group({\n inputVal1: [''],\n inputVal2: ['']\n })\n }\n get today() {\n return this.dateAdapter.toModel(this.ngbCalendar.getToday())!;\n }\n}\n","
    \n
    \n
    \n\n
    \n \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    and
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    ","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\n// import { MatDatepickerInputEvent } from '@angular/material';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { ReportsService } from '../reports.service';\nimport * as XLSX from 'xlsx';\nimport { DashboardReportsService } from '../../dashboard-reports/dashboard-reports.service';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\n@Component({\n selector: \"app-report-filter2\",\n templateUrl: \"./report-filter.component.html\",\n styleUrls: [\"./report-filter.component.css\"],\n})\nexport class ReportFilterComponent2 implements OnInit {\n userData: any;\n showProjects: boolean = false;\n showCourses: boolean = false;\n showApplications: boolean = false;\n showUsers: boolean = false;\n showEnrollmentYear: boolean = false;\n showEnrollmentTerm: boolean = false;\n showDate: boolean = false;\n showCreatedDate: boolean = false;\n showUpdatedDate: boolean = false;\n projectLists: any;\n coursesList: any;\n applicationsList: any;\n agentsList: any;\n enrollmentTermList: any;\n enrollmentYearList: any;\n list: any[] = [{ name: \"Users\", checked: false }];\n selectedIndexProject: number;\n currentProjectName: any;\n courseSelectionArray: any[] = [];\n applicationSelectionArray: any[] = [];\n usersSelectionArray: any[] = [];\n enrollmentYearSelectionArray: any[] = [];\n enrollmentTermSelectionArray: any[] = [];\n startDate: any;\n endDate: any;\n selectedIndexDate: string;\n showDateCustom: boolean = false;\n filterValue: string;\n date1: any;\n date2: any;\n filtersData: any;\n projectId: any;\n private colors = [\n [{ bg: \"#FAE2DF\", color: \"#A52A1E\" }],\n [{ bg: \"#C8EAF2\", color: \"#014C5C\" }],\n [{ bg: \"#CDEDDC\", color: \"#04745A\" }],\n [{ bg: \"#D1E2FF\", color: \"#013CA3\" }],\n [{ bg: \"#e7fadf\", color: \"#39a51e\" }],\n [{ bg: \"#dffaeb\", color: \"#1ea55b\" }],\n [{ bg: \"#dfe2fa\", color: \"#1e2ea5\" }],\n ];\n @Output() generate = new EventEmitter();\n @Output() export = new EventEmitter();\n constructor(\n private reportService: ReportsService,\n private momentService: MomentFormatService,\n private ReportsService: DashboardReportsService\n ) {}\n\n ngOnInit() {\n // \n\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n this.getProjectList();\n this.getCourses();\n this.getAgentList();\n this.getEnrollmentTerm();\n this.getEnrollmentYear();\n this.getApplicationList();\n this.getAgentsCRM();\n }\n toggleFilters(val) {\n if (val === \"showProjects\") {\n this.showProjects = !this.showProjects;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showCourses\") {\n this.showProjects = false;\n this.showCourses = !this.showCourses;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showApplications\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = !this.showApplications;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showUsers\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = !this.showUsers;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showEnrollmentYear\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = !this.showEnrollmentYear;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showEnrollmentTerm\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = !this.showEnrollmentTerm;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showDate\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = !this.showDate;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n } else if (val === \"showCreatedDate\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = !this.showCreatedDate;\n this.showUpdatedDate = false;\n } else if (val === \"showUpdatedDate\") {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = !this.showUpdatedDate;\n }\n }\n getProjectList() {\n this.reportService\n .getProjectList(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n this.projectLists = resp.projectLists;\n\n for (let i = 0; i < resp.projectLists.length; i++) {\n if (resp.projectLists[i].Name == \"Campbellsville\") {\n this.currentProjectName = resp.projectLists[i].Name;\n this.selectedIndexProject = resp.projectLists[i].id;\n this.reportService.projectId.next(this.selectedIndexProject)\n this.projectId = resp.projectLists[i].id;\n }\n }\n this.reportService.gerAgentsCRM2({platform:'CRM', projectId: this.selectedIndexProject}).subscribe((res:any)=>{\n\n var agentList = res.data;\n agentList.forEach((y) => {\n y.ProfilePhoto = '';\n y.AgentColor = this.colors[this.numberFromText(y.agentInitial) % this.colors.length][0];\n });\n this.agentsList = agentList;\n })\n })\n .catch((err) => {});\n }\n getCourses() {\n this.reportService\n .getCourses(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n this.coursesList = resp.data;\n })\n .catch((err) => {});\n }\n getAgentsCRM(){\n this.reportService.gerAgentsCRM2({platform:'CRM', projectId: '2'}).subscribe((res:any)=>{\n var agentList = res.data;\n agentList.forEach((y) => {\n y.ProfilePhoto = '';\n y.AgentColor =\n this.colors[\n this.numberFromText(y.agentInitial) % this.colors.length\n ][0];\n });\n this.agentsList = agentList;\n })\n }\n getAgentList() {\n // this.reportService\n // .getAgents(this.userData.id, this.userData.token)\n // .toPromise()\n // .then((resp: any) => {\n // var agentList = resp.data;\n // agentList.forEach((y) => {\n // y.AgentColor =\n // this.colors[\n // this.numberFromText(y.agentInitial) % this.colors.length\n // ][0];\n // });\n // this.agentsList = agentList;\n // })\n // .catch((err) => {});\n }\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n getApplicationList() {\n var postData = {\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n };\n this.reportService\n .getApplication(postData)\n .toPromise()\n .then((resp: any) => {\n this.applicationsList = resp.applicationStatusLists;\n })\n .catch((err) => {});\n }\n getEnrollmentTerm() {\n this.reportService\n .getEnrollmentTerm(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n this.enrollmentTermList = resp.enrollmentTermList;\n })\n .catch((err) => {});\n }\n getEnrollmentYear() {\n this.reportService\n .getEnrollmentYear(this.userData.id, this.userData.token)\n .toPromise()\n .then((resp: any) => {\n this.enrollmentYearList = resp.enrollmentYearList;\n })\n .catch((err) => {});\n }\n shareCheckedList(item: any[]) {\n }\n shareIndividualCheckedList(item: any) {\n if (item.name === \"Users\" && item.checked === true) {\n this.toggleFilters(\"showUsers\");\n }\n if (item.name === \"Applications\" && item.checked === true) {\n this.toggleFilters(\"showApplications\");\n }\n if (item.name === \"Enrollment Year\" && item.checked === true) {\n this.toggleFilters(\"showEnrollmentYear\");\n }\n if (item.name === \"Enrollment Term\" && item.checked === true) {\n this.toggleFilters(\"showEnrollmentTerm\");\n }\n }\n dateSelection(event) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n this.filterValue = \"custom\";\n this.showDateCustom = true;\n this.selectedIndexDate = event.target.value;\n } else if (event.target.value == \"24hrs\") {\n this.showDateCustom = false;\n this.filterValue = \"24hrs\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n } else if (event.target.value == \"72hrs\") {\n this.showDateCustom = false;\n this.filterValue = \"72hrs\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n } else if (event.target.value == \"07days\") {\n this.showDateCustom = false;\n this.filterValue = \"07days\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n } else if (event.target.value == \"14days\") {\n this.showDateCustom = false;\n this.filterValue = \"14days\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n } else if (event.target.value == \"30days\") {\n this.showDateCustom = false;\n this.filterValue = \"30days\";\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n }\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDateCustom == false) {\n this.showDateCustom = true;\n }\n }\n filterData() {\n // this.startDate = this.momentService.dashboardDateFormat(\n // new Date(this.date2.value).getTime()\n // );\n // \n\n // this.endDate = this.momentService.dashboardDateFormat(\n // new Date(this.date1.value).getTime()\n // );\n // \n\n\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n // \n // this.startDate = this.momentService.dashboardDateFormat(\n // new Date(this.startDate).getTime\n // );\n // \n\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n // \n // this.endDate = this.momentService.dashboardDateFormat(\n // new Date(this.endDate).getTime\n // );\n // \n\n }\n // FILTER FUCNTIONS\n // PROJECT SINGLE SELECTION HANDLE\n projectSelection(event, id, name) {\n if (event.target.checked) {\n this.selectedIndexProject = id;\n this.currentProjectName = name;\n } else {\n this.selectedIndexProject = undefined;\n this.currentProjectName = \"\";\n }\n }\n\n // COURSE MULTI SELECT HANDLE\n courseSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.courseSelectionArray.push(s);\n } else {\n var index = this.courseSelectionArray.indexOf(s);\n if (index > -1) {\n this.courseSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllcourse(ev) {\n this.courseSelectionArray = [];\n this.coursesList.forEach((x) => {\n if (ev.target.checked === true) {\n this.courseSelectionArray.push(x.course);\n }\n return (x.courseState = ev.target.checked);\n });\n }\n isAllCheckedcourse() {\n var rValue = this.coursesList.every((_) => _.courseState);\n return rValue;\n }\n // APPLICATION MULTI SELECT HANDLE\n applicationSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.applicationSelectionArray.push(s);\n } else {\n var index = this.applicationSelectionArray.indexOf(s);\n if (index > -1) {\n this.applicationSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllapplication(ev) {\n this.applicationSelectionArray = [];\n this.applicationsList.forEach((x) => {\n if (ev.target.checked === true) {\n this.applicationSelectionArray.push(x.LeadDocStatus);\n }\n return (x.applicationState = ev.target.checked);\n });\n }\n isAllCheckedapplication() {\n var rValue = this.applicationsList.every((_) => _.applicationState);\n return rValue;\n }\n unCheckapplicationSelectionArray() {\n this.applicationSelectionArray = [];\n this.applicationsList.forEach((x) => {\n return (x.applicationState = false);\n });\n }\n // Enrollment Year SELECT HANDLE\n enrollmentYearSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.enrollmentYearSelectionArray.push(s);\n } else {\n var index = this.enrollmentYearSelectionArray.indexOf(s);\n if (index > -1) {\n this.enrollmentYearSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllenrollmentYear(ev) {\n this.enrollmentYearSelectionArray = [];\n this.enrollmentYearList.forEach((x) => {\n if (ev.target.checked === true) {\n this.enrollmentYearSelectionArray.push(x.EnrollmentYear);\n }\n return (x.enrollmentYearState = ev.target.checked);\n });\n }\n isAllCheckedenrollmentYear() {\n var rValue = this.enrollmentYearList.every((_) => _.enrollmentYearState);\n return rValue;\n }\n unCheckenrollmentYearSelectionArray() {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentYearList.forEach((x) => {\n return (x.enrollmentYearState = false);\n });\n }\n // Enrollment Term SELECT HANDLE\n enrollmentTermSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.enrollmentTermSelectionArray.push(s);\n } else {\n var index = this.enrollmentTermSelectionArray.indexOf(s);\n if (index > -1) {\n this.enrollmentTermSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllenrollmentTerm(ev) {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentTermList.forEach((x) => {\n if (ev.target.checked === true) {\n this.enrollmentTermSelectionArray.push(x.EnrollmentTerm);\n }\n return (x.enrollmentTermState = ev.target.checked);\n });\n }\n isAllCheckedenrollmentTerm() {\n var rValue = this.enrollmentTermList.every((_) => _.enrollmentTermState);\n return rValue;\n }\n unCheckenrollmentTermSelectionArray() {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentTermList.forEach((x) => {\n return (x.enrollmentTermState = false);\n });\n }\n // USERS MULTI SELECT HANDLE\n usersSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.usersSelectionArray.push(s);\n } else {\n var index = this.usersSelectionArray.indexOf(s);\n if (index > -1) {\n this.usersSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllusers(ev) {\n this.usersSelectionArray = [];\n this.agentsList.forEach((x) => {\n if (ev.target.checked === true) {\n this.usersSelectionArray.push(x.Mailid);\n }\n return (x.usersState = ev.target.checked);\n });\n }\n isAllCheckedusers() {\n var rValue = this.agentsList.every((_) => _.usersState);\n return rValue;\n }\n unCheckusersSelectionArray() {\n this.usersSelectionArray = [];\n this.agentsList.forEach((x) => {\n return (x.usersState = false);\n });\n }\n\n // ===========================\n incomingVsCompletedData(filtersData) {\n this.ReportsService.getIncomingCompletedData(filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { GUID, FirstName, LastName, Program, EnrollmentYear, EnrollmentTerm,LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus } = x;\n return { GUID, FirstName, LastName, Program, Assignedto, EnrollmentYear, EnrollmentTerm, LeadDocStatus, ClosedDate, ClosedBy, createdAt, CallStatus };\n })\n\n this.downloadFile(fd,'LeadsData');\n })\n }\n\n callsData(filtersData){\n this.ReportsService.getCallsPerDayData(filtersData).subscribe((res: any)=>{\n // \n\n var fd = res.data.map(x => {\n var a = '';\n a = x?.Assignedto || 'Unassigned';\n var Assignedto = a;\n \n const { id, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType, FirstName, LastName} = x;\n return { id, CallerNumber, CallerCity, CallerCountry, CallerState, Direction, CalledNumber, CalledCity, CalledCountry, CalledState, RecordingDuration, RecordingURL, CallAnswered, createdAt, updatedAt, LeadId, Comments, Status, LeadType, FirstName, LastName};\n })\n\n this.downloadFile(fd,'CallsData');\n })\n }\n\n downloadFile(filedata,name){\n\n var json = filedata;\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = name+\"-\" + x.getFullYear() + \"-\" + x.getMonth() + \"-\" + x.getDay() + '.xlsx';\n a.download = link;\n a.click();\n }\n\n generateData() {\n var postData = {\n course:\n this.courseSelectionArray.length === this.coursesList.length\n ? \"All\"\n : this.courseSelectionArray.length > 0\n ? this.courseSelectionArray\n : \"\",\n agentEmail:\n this.usersSelectionArray.length === this.agentsList.length\n ? \"All\"\n : this.usersSelectionArray.length > 0\n ? this.usersSelectionArray\n : \"\",\n from: this.startDate,\n to: this.endDate,\n enrollmentYear:\n this.enrollmentYearSelectionArray.length ===\n this.enrollmentYearList.length\n ? \"All\"\n : this.enrollmentYearSelectionArray.length > 0\n ? this.enrollmentYearSelectionArray\n : \"\",\n enrollmentTerm:\n this.enrollmentTermSelectionArray.length ===\n this.enrollmentTermList.length\n ? \"All\"\n : this.enrollmentTermSelectionArray.length > 0\n ? this.enrollmentTermSelectionArray\n : \"\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n application:\n this.applicationSelectionArray.length === this.applicationsList.length\n ? \"All\"\n : this.applicationSelectionArray.length > 0\n ? this.applicationSelectionArray\n : \"\",\n };\n // \n this.filtersData = postData\n this.reportService.filterData.next(postData);\n \n this.generate.emit(postData);\n }\n getAgentName(val) {\n var agentList = this.agentsList;\n var name = agentList.filter((x) => x.Mailid === val)[0];\n return name.agentname;\n }\n exportData() {\n var postData = {\n course:\n this.courseSelectionArray.length === this.coursesList.length\n ? \"All\"\n : this.courseSelectionArray.length > 0\n ? this.courseSelectionArray\n : \"\",\n agentEmail:\n this.usersSelectionArray.length === this.agentsList.length\n ? \"All\"\n : this.usersSelectionArray.length > 0\n ? this.usersSelectionArray\n : \"\",\n from: this.startDate,\n to: this.endDate,\n enrollmentYear:\n this.enrollmentYearSelectionArray.length ===\n this.enrollmentYearList.length\n ? \"All\"\n : this.enrollmentYearSelectionArray.length > 0\n ? this.enrollmentYearSelectionArray\n : \"\",\n enrollmentTerm:\n this.enrollmentTermSelectionArray.length ===\n this.enrollmentTermList.length\n ? \"All\"\n : this.enrollmentTermSelectionArray.length > 0\n ? this.enrollmentTermSelectionArray\n : \"\",\n userId: this.userData.id,\n token: this.userData.token,\n platform: \"CRM\",\n ProjectId: this.projectId,\n application:\n this.applicationSelectionArray.length === this.applicationsList.length\n ? \"All\"\n : this.applicationSelectionArray.length > 0\n ? this.applicationSelectionArray\n : \"\",\n };\n this.incomingVsCompletedData(postData);\n this.callsData(postData);\n this.export.emit();\n }\n resetFilters(){\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n this.courseSelectionArray = [];\n this.usersSelectionArray = [];\n // this.unCheckusersSelectionArray();\n // this.unCheckapplicationSelectionArray();\n this.checkAllcourse({target:{checked:false}})\n this.checkAllusers({target:{checked:false}});\n this.filterValue = '';\n this.selectedIndexDate = '';\n this.generateData();\n\n }\n}\n","
    \n \n
    \n
    \n \n\n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
      \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n \n \n \n\n \n \n \n \n \n \n
      \n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n\n
    \n
    ","import { Component, Injectable, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport * as XLSX from 'xlsx';\nimport { NgbCalendar, NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { ReportsService } from './reports.service';\nimport { ErrorHandlerService } from 'src/app/error-handler.service';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\n\n\n/**\n * This Service handles how the date is represented in scripts i.e. ngModel.\n */\n@Injectable()\nexport class CustomAdapter extends NgbDateAdapter {\n\n readonly DELIMITER = '-';\n\n fromModel(value: string | null): NgbDateStruct | null {\n if (value) {\n const date = value.split(this.DELIMITER);\n return {\n day: parseInt(date[0], 10),\n month: parseInt(date[1], 10),\n year: parseInt(date[2], 10)\n };\n }\n return null;\n }\n\n toModel(date: NgbDateStruct | null): string | null {\n return date ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year : null;\n }\n}\n\n/**\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\n */\n@Injectable()\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\n\n readonly DELIMITER = '-';\n\n parse(value: string): NgbDateStruct | null {\n if (value) {\n const date = value.split(this.DELIMITER);\n return {\n day: parseInt(date[0], 10),\n month: parseInt(date[1], 10),\n year: parseInt(date[2], 10)\n };\n }\n return null;\n }\n\n format(date: NgbDateStruct | null): string {\n return date ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year : '';\n }\n}\n\n@Component({\n selector: 'app-reports',\n templateUrl: './reports.component.html',\n styleUrls: ['./reports.component.css']\n})\nexport class ReportsComponent implements OnInit {\n reportsForm: FormGroup;\n userData: any;\n projectId: any;\n // AGENT MULTI SELECT\n agentsList = [];\n agentsSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'Mailid',\n textField: 'agentname',\n selectAllText: 'Select All',\n unSelectAllText: 'Unselect All',\n itemsShowLimit: 1,\n allowSearchFilter: true\n };\n // project MULTI SELECT\n projectLists = [];\n projectSettings: IDropdownSettings = {\n singleSelection: true,\n idField: 'id',\n textField: 'Name',\n itemsShowLimit: 1,\n allowSearchFilter: true\n };\n // Courses MULTI SELECT\n coursesList = [];\n coursesSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'course',\n textField: 'course',\n selectAllText: 'Select All',\n unSelectAllText: 'Unselect All',\n itemsShowLimit: 1,\n allowSearchFilter: true\n };\n // Applications MULTI SELECT\n applicationsList = [\n { name: 'Total Applications', id: 'apllicationsData' },\n { name: 'Pending Applications', id: 'pendingData' },\n { name: 'Completed Applications', id: 'completedData' },\n { name: 'Denied Applications', id: 'deniedData' },\n { name: 'Assigned Applications', id: 'assignedToData' },\n { name: 'Un Assigned Applications', id: 'unAssignedData' },\n { name: 'Validated Applications', id: 'validatedData' },\n { name: 'Not Validated Applications', id: 'notValidatedData' }\n ];\n applicationsSettings: IDropdownSettings = {\n singleSelection: true,\n idField: 'id',\n textField: 'name',\n selectAllText: 'Select All',\n unSelectAllText: 'Unselect All',\n itemsShowLimit: 1,\n allowSearchFilter: true\n };\n // Enrollment Year MULTI SELECT\n enrollmentYearList = [];\n enrollmentYearSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'EnrollmentYear',\n textField: 'EnrollmentYear',\n selectAllText: 'Select All',\n unSelectAllText: 'Unselect All',\n itemsShowLimit: 1,\n allowSearchFilter: true\n };\n // Enrollment Term MULTI SELECT\n enrollmentTermList = [];\n enrollmentTermSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'EnrollmentTerm',\n textField: 'EnrollmentTerm',\n selectAllText: 'Select All',\n unSelectAllText: 'Unselect All',\n itemsShowLimit: 1,\n allowSearchFilter: true\n };\n\n options: any;\n baroption: any\n listData: any;\n public page: any = 1;\n public pageSize: any = 12;\n public search: string;\n validatedData: any;\n notValidatedData: any;\n assignedToData: any;\n deniedData: any;\n completedData: any;\n pendingData: any;\n unAssignedData: any;\n type: any;\n colorPalette = ['#FAD5D0', '#B9EAF5', '#BCEDD3', '#BBD3FD', '#E8C8FC', '#FAD0A7', '#CDFAC4', '#96E0E2'];\n private colors = [\n [{ 'bg': '#FAE2DF', 'color': '#A52A1E' }],\n [{ 'bg': '#C8EAF2', 'color': '#014C5C' }],\n [{ 'bg': '#CDEDDC', 'color': '#04745A' }],\n [{ 'bg': '#D1E2FF', 'color': '#013CA3' }],\n [{ 'bg': '#e7fadf', 'color': '#39a51e' }],\n [{ 'bg': '#dffaeb', 'color': '#1ea55b' }],\n [{ 'bg': '#dfe2fa', 'color': '#1e2ea5' }],\n ]\n\n\n constructor(\n private fb: FormBuilder,\n private sharedService: SharedService,\n private reportService: ReportsService,\n private momentFormatService: MomentFormatService,\n private ngbCalendar: NgbCalendar,\n private handleError: ErrorHandlerService,\n private dateAdapter: NgbDateAdapter\n ) {\n\n }\n\n ngOnInit(): void {\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || '{}');\n\n this.sharedService.projectId.subscribe((data) => {\n if (data) {\n this.getAgentList();\n this.projectId = data;\n var postData = {\n \"course\": 'All',\n \"agentEmail\": 'All',\n \"from\": this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n ),\n \"to\": this.momentFormatService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n ),\n \"enrollmentYear\": 'All',\n \"enrollmentTerm\": 'All',\n \"userId\": this.userData.id,\n \"token\": this.userData.token,\n \"platform\": \"CRM\",\n \"ProjectId\": this.projectId,\n \"application\": 'All'\n };\n this.getDefaultData(postData);\n }\n });\n }\n shareCheckedListCreated(item: any) {\n \n }\n exportList() {\n var fd = this.listData.map(x => {\n const { GUID, FirstName, LastName, Program, createdAt, updatedAt, Assignedto, LeadDocStatus } = x;\n return { GUID, FirstName, LastName, Program, createdAt, updatedAt, Assignedto, LeadDocStatus };\n })\n var json = fd;\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n var a = document.createElement(\"a\");\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n var blob = new Blob([excelBuffer], { type: EXCEL_TYPE });\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n var x: Date = new Date();\n var link: string = \"Reports_\" + x.getFullYear() + \"_\" + x.getMonth() + \"_\" + x.getDay() + '.xlsx';\n a.download = link;\n a.click();\n }\n\n getDefaultData(postData) {\n this.reportService.getReports(postData).toPromise()\n .then((resp: any) => {\n this.listData = resp.data.map((x, i) => {\n x.showid = i + 1\n return x\n });\n \n \n this.options = {\n title: {\n text: 'Line Graph'\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n show: false\n }\n },\n legend: {\n data: ['Count']\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n containLabel: true\n },\n xAxis: [\n {\n type: 'category',\n boundaryGap: false,\n data: ['Total',\n 'Pending',\n 'Completed',\n 'Denied',\n 'Assigned',\n 'Unassigned',\n 'Validated',\n 'Not Validated'],\n splitLine: {\n show: false\n },\n axisLabel: { interval: 0, rotate: 30 }\n }\n ],\n yAxis: [\n {\n type: 'value',\n splitLine: {\n show: false\n }\n }\n ],\n series: [\n {\n type: 'line',\n areaStyle: {},\n emphasis: {\n focus: 'series'\n },\n data: [resp.totalApllications,\n resp.pendingCount,\n resp.completedCount,\n resp.deniedCount,\n resp.assignedToCount,\n resp.unAssignedCount,\n resp.validated,\n resp.notValidated]\n },\n ]\n };\n this.baroption = {\n title: {\n text: 'Bar Graph'\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: ''\n }\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n containLabel: true\n },\n xAxis: [\n {\n type: 'category',\n data: ['Total',\n 'Pending',\n 'Completed',\n 'Denied',\n 'Assigned',\n 'Unassigned',\n 'Validated',\n 'Not Validated'],\n axisLabel: { interval: 0, rotate: 30 }\n }\n ],\n yAxis: [\n {\n type: 'value',\n splitLine: {\n show: false\n }\n },\n\n ],\n series: [\n {\n type: 'bar',\n barWidth: '20%',\n data: [\n resp.totalApllications,\n resp.pendingCount,\n resp.completedCount,\n resp.deniedCount,\n resp.assignedToCount,\n resp.unAssignedCount,\n resp.validated,\n resp.notValidated\n ]\n }\n ],\n color: '#ACDDDE'\n };\n })\n .catch(err => {\n this.handleError.handleError(err)\n\n })\n }\n showRevalidatedOnly(val: string) {\n if (val.includes('revalidate')) {\n return 'revalidated'\n } else {\n return val;\n }\n }\n get today() {\n return this.dateAdapter.toModel(this.ngbCalendar.getToday())!;\n }\n generate(items: any) {\n this.reportService.getReports(items).toPromise()\n .then((resp: any) => {\n this.listData = resp.data.map((x, i) => {\n x.showid = i + 1\n return x\n });\n \n \n this.options = {\n title: {\n text: 'Line Graph'\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n show: false\n }\n },\n legend: {\n data: ['Count']\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n containLabel: true\n },\n xAxis: [\n {\n type: 'category',\n boundaryGap: false,\n data: ['Total',\n 'Pending',\n 'Completed',\n 'Denied',\n 'Assigned',\n 'Unassigned',\n 'Validated',\n 'Not Validated'],\n splitLine: {\n show: false\n },\n axisLabel: { interval: 0, rotate: 30 }\n }\n ],\n yAxis: [\n {\n type: 'value',\n splitLine: {\n show: false\n }\n }\n ],\n series: [\n {\n type: 'line',\n areaStyle: {},\n emphasis: {\n focus: 'series'\n },\n data: [resp.totalApllications,\n resp.pendingCount,\n resp.completedCount,\n resp.deniedCount,\n resp.assignedToCount,\n resp.unAssignedCount,\n resp.validated,\n resp.notValidated]\n },\n ]\n };\n this.baroption = {\n title: {\n text: 'Bar Graph'\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: ''\n }\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '3%',\n containLabel: true\n },\n xAxis: [\n {\n type: 'category',\n data: ['Total',\n 'Pending',\n 'Completed',\n 'Denied',\n 'Assigned',\n 'Unassigned',\n 'Validated',\n 'Not Validated'],\n axisLabel: { interval: 0, rotate: 30 }\n }\n ],\n yAxis: [\n {\n type: 'value',\n splitLine: {\n show: false\n }\n },\n\n ],\n series: [\n {\n type: 'bar',\n barWidth: '20%',\n data: [\n resp.totalApllications,\n resp.pendingCount,\n resp.completedCount,\n resp.deniedCount,\n resp.assignedToCount,\n resp.unAssignedCount,\n resp.validated,\n resp.notValidated\n ]\n }\n ],\n color: '#ACDDDE'\n };\n })\n .catch(err => {\n this.handleError.handleError(err)\n\n })\n }\n getAgentList() {\n this.reportService.getAgents(this.userData.id, this.userData.token).toPromise()\n .then((resp: any) => {\n var agentList = resp.data;\n agentList.forEach(y => {\n y.AgentColor = this.colors[this.numberFromText(y.agentInitial) % this.colors.length][0]\n })\n this.agentsList = agentList;\n })\n .catch(err => {\n this.handleError.handleError(err)\n\n })\n }\n numberFromText(text) {\n const charCodes = text\n .split('') // => [\"A\", \"A\"]\n .map(char => char.charCodeAt(0)) // => [65, 65]\n .join(''); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n}\n","
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    Statistics
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    S NoGUIDNameProgrammeCreated AtUpdated AtAssigned ToLead Status
    {{item.showid}}\n
    \n
    \n {{(item?.GUID).split('-')[0]}}\n
    \n {{item?.GUID || '-'}}\n
    \n
    \n
    {{item?.Name || '-' | titlecase}}
    \n 10\">{{item?.Name | titlecase}}\n
    {{item?.Program}}{{item?.createdAt | date: 'dd MMMM yyyy'}}{{item?.updatedAt | date: 'dd MMMM yyyy'}}{{item?.AssignedTo || '-'}}\n
    \n \n Not Submitted\n \n \n {{showRevalidatedOnly(item?.LeadDocStatus) | titlecase}}\n \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { map } from \"rxjs/operators\";\nimport { HttpClientService } from \"../../httpclient.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReportsService {\n baseApiUrl2: any = environment.baseApiUrl2;\n\n filterData = new BehaviorSubject(null);\n projectId = new BehaviorSubject(null);\n\n\n constructor(private http: HttpClientService) { }\n\n\n getProjectList(id, token) {\n return this.http.post(`${this.baseApiUrl2}reports/projectsList`,{\n userId: id,\n token: token\n })\n }\n getCourses(id, token,projectId?:any) {\n return this.http.get(`${this.baseApiUrl2}campbellsville/getListOfPrograms/${id}/${token}/${projectId}`)\n }\n\n getAgents(id, token) {\n return this.http.get(`${this.baseApiUrl2}campbellsville/getListOfAgents/${id}/${token}/CRM`)\n }\n getEnrollmentTerm(id,token){\n \n return this.http.post(`${this.baseApiUrl2}reports/enrollmentTermList`,{\n userId: id,\n token: token,\n platform: \"CRM\"\n })\n }\n\n getEnrollmentYear(id,token){ \n return this.http.post(`${this.baseApiUrl2}reports/enrollmentYearList`,{\n userId: id,\n token: token,\n platform: \"CRM\"\n })\n }\n\n getReports(obj){\n return this.http.post(`${this.baseApiUrl2}reports`,obj)\n }\n getReportsByApplicationType(obj,type){\n return this.http.post(`${this.baseApiUrl2}reports/${type}`,obj)\n }\n getApplication(obj){\n return this.http.post(`${this.baseApiUrl2}reports/applicationslist`,obj)\n }\n\n gerAgentsCRM(body){\n return this.http.post(`${this.baseApiUrl2}reports/agentListCRM`,body)\n }\n gerAgentsCRM2(body){\n return this.http.post(`${this.baseApiUrl2}campbellsville/getListOfAgentsNew`,body)\n }\n\n\n}\n","import { ManagementService } from \"../management.service\";\nimport { NgForm } from \"@angular/forms\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Role } from \"../create-agent/models/role.model\";\nimport { RoleService } from \"./role.service\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n@Component({\n selector: \"app-role-management\",\n templateUrl: \"./role-management.component.html\",\n styleUrls: [\"./role-management.component.less\"],\n})\nexport class RoleManagementComponent implements OnInit {\n public roles: Role[] = [];\n public page: any = 1;\n public pageSize: any = 10;\n public isError: boolean = false;\n public closeResult: string = \"\";\n public error: string = \"\";\n public search: string = \"\";\n public isUpdate: boolean = false;\n public name: string = \"\";\n public description: string = \"\";\n public id: number;\n public activestatus: any = \"\";\n public menus: any[];\n public displayMenus: any[] = [1, 2, 3, 4];\n public menuId: any;\n public selectedIndex: number = 0;\n public admin: Boolean;\n // public twilioNumber: any;\n // public supportMail: any;\n public active = 1;\n public company: any;\n public roleSettings: IDropdownSettings;\n public editRoleName: boolean = false;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n\n constructor(\n private modalService: NgbModal,\n private roleService: RoleService,\n private SharedService: SharedService,\n private managementService: ManagementService,\n private authService: AuthService,\n private handleError: ErrorHandlerService,\n private route: ActivatedRoute\n ) {}\n\n getRoles() {\n this.roleSettings = {\n singleSelection: true,\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n textField: \"Name\",\n };\n \n this.roleService.fetchRoles(this.company.projectId).subscribe((data) => {\n this.roles = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n ngOnInit() {\n this.route.params.subscribe((data) => {\n this.company = {\n id: data[\"id\"],\n Name: data[\"name\"],\n projectId: data[\"projectId\"],\n };\n \n // \n this.getRoles();\n });\n\n this.authService.admin.subscribe((data) => {\n this.admin = data;\n \n });\n this.SharedService.pageEvent.emit({\n pageName: \"Role and Group Management\",\n });\n // this.roleService.getCompanies().subscribe(data => {\n // this.companies = data;\n // })\n this.managementService.getMenus().subscribe((data) => {\n this.menus = data;\n \n }, (error) => {\n this.handleError.handleError(error)\n }); }\n\n open(content) {\n this.isError = false;\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n\n private getDismissReason(reason: any): string {\n \n this.getRoles();\n this.name = \"\";\n this.description = \"\";\n this.isUpdate = false;\n this.isError = false;\n this.id = null;\n this.selectedIndex = 0;\n this.editRoleName = false;\n\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n public submit(form: NgForm) {\n if (!this.isUpdate) {\n this.name = form.value[\"name\"];\n this.description = form.value[\"description\"];\n this.activestatus = form.value[\"ActiveStatus\"];\n this.selectedIndex += 1;\n \n } else {\n this.roleService\n .updateRole({\n id: this.id,\n name: this.name,\n Description: this.description,\n activestatus: this.activestatus === \"active\",\n companyName: this.company[\"Name\"],\n companyId: this.company[\"id\"],\n })\n .subscribe(\n (data) => {\n if (data[\"status\"] === \"successfully updated Role\") {\n this.selectedIndex += 1;\n } else {\n this.isError = true;\n this.error = \"please try again \";\n }\n },\n (err) => {\n this.isError = true;\n this.error = err.error.status;\n this.handleError.handleError(err)\n\n }\n );\n }\n }\n\n public updateRole(id: number, form: any, content) {\n let selectedRole = this.roles[id];\n \n \n this.isUpdate = true;\n this.roleService.getRoleById(id).subscribe((data) => {\n this.name = data[\"Name\"];\n this.description = data[\"Description\"];\n this.activestatus = data[\"ActiveStatus\"] ? \"active\" : \"inactive\";\n this.editRoleName = data[\"DefaultRole\"];\n // this.company = [{ id: data['CompanyId'], Name: data['CompanyName'] }]\n // this.twilioNumber = data['TwilioNumber'];\n // this.supportMail = data['SupportMail']\n this.id = data[\"id\"];\n \n this.managementService.getRoleByName(this.id).subscribe((data) => {\n this.menuId = data[\"id\"];\n this.displayMenus = data[\"DisplayMenus\"];\n this.open(content);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n menuCheckedValues(value) {\n this.checkingParentMenu(this.menus);\n if (this.isUpdate) {\n this.managementService\n .updateMenu({ id: this.menuId, displayMenus: this.displayMenus })\n .subscribe((data) => {}, (error) => {\n this.handleError.handleError(error)\n });\n return this.modalService.dismissAll();\n } else {\n this.roleService\n .createRole({\n name: this.name,\n description: this.description,\n companyName: this.company[\"Name\"],\n companyId: this.company[\"id\"],\n projectId: this.company[\"projectId\"],\n })\n .subscribe(\n (data) => {\n this.id = data[\"id\"];\n this.name = data[\"Name\"];\n this.managementService\n .createRoleMenu({\n roleId: this.id,\n displayMenus: this.displayMenus,\n })\n .subscribe(\n (data) => {},\n (err) => {\n this.isError = true;\n this.error = err.error.status;\n setTimeout(() => {\n this.isError = false;\n }, 10000);\n }\n );\n this.modalService.dismissAll();\n },\n (err) => {\n this.isError = true;\n this.error = err.error.status;\n setTimeout(() => {\n this.isError = false;\n }, 10000);\n this.handleError.handleError(err)\n\n }\n );\n }\n }\n\n parentMenuCheckbox(value, id, menuId) {\n if (value.option._selected) {\n this.displayMenus.push(value.source._value[0]);\n if (!this.displayMenus.includes(id)) {\n this.displayMenus.push(id);\n }\n } else {\n this.displayMenus = this.displayMenus.filter((val) => val !== menuId);\n }\n }\n\n childMenuCheckBox(value, menuId) {\n if (value.option._selected) {\n this.displayMenus.push(value.source._value[0]);\n } else {\n this.displayMenus = this.displayMenus.filter((val) => val !== menuId);\n }\n }\n\n checkBox(item): boolean {\n return this.displayMenus.includes(parseInt(item));\n }\n\n checkingParentMenu(items) {\n for (let item of items) {\n if (item[\"child\"].length !== 0) {\n const newArr = item[\"child\"].find((val) =>\n this.displayMenus.includes(val[\"id\"])\n );\n if (!newArr && this.displayMenus.includes(item[\"parent\"][\"id\"])) {\n this.displayMenus = this.displayMenus.filter(\n (val) => val !== item[\"parent\"][\"id\"]\n );\n \n }\n }\n }\n }\n\n selectedRole(id) {\n \n this.roleService.selectedRole.next(id);\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n}\n","
    \n
    \n \n \"\"\n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ item[\"Name\"] | titlecase }}\n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n Role Name\n \n \n \n \n Role Description\n \n \n \n \n Status\n \n \n \n \n Created Date\n \n \n \n \n Updated Date\n \n \n Groups
    {{ item[\"Description\"] | titlecase }}\n
    \n {{ item[\"ActiveStatus\"] ? \"Active\" : \"In Active\" }}\n
    \n
    \n {{ item[\"createdAt\"] | date: \"medium\" }}\n \n {{ item[\"updatedAt\"] | date: \"medium\" }}\n \n \n
    \n
    \n
    \n
    \n\n\n
    \n

    \n {{ isUpdate ? \"Update\" : \"Create\" }} Role\n

    \n \n ×\n \n
    \n
    \n {{\n error\n }}\n \n \n
    \n
    \n \n \n
    \n \n \n please enter valid name\n
    \n
    \n \n \n \n
    \n please enter valid description\n
    \n
    \n
    \n \n \n \n \n \n \n please select value\n
    \n \n
    \n
    \n \n Next\n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {{ item[\"parent\"][\"name\"] | titlecase }}\n
    \n
    \n \n \n {{ items[\"name\"] | titlecase }}\n \n \n
    \n
    \n
    \n \n \n \n {{ item[\"parent\"][\"name\"] | titlecase }}\n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n\n","import { BehaviorSubject, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n// import { HttpClientService } from '@angular/common/http';\nimport { environment } from \"src/environments/environment\";\nimport { Role } from \"../create-agent/models/role.model\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { ProjectService } from \"../project-management/project.service\";\n\ninterface CreateRole {\n name: string;\n description: string;\n companyName: string;\n companyId: number;\n projectId: any;\n}\n\ninterface UpdateCompany {\n name: string;\n id: number;\n // twilioNumber: string;\n supportMail: string;\n ActiveStatus: boolean;\n // incomingMailGroup: number;\n forwardMail: string;\n}\ninterface CompanyCreation {\n name: string;\n twilioNumber: string;\n supportMail: string;\n forwardMail: string;\n}\ninterface UpdateRole {\n id: number;\n name: string;\n Description: String;\n activestatus: boolean;\n companyName: string;\n companyId: number;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class RoleService {\n baseApiUrl2: any = environment.baseApiUrl2;\n public selectedRole = new BehaviorSubject({ id: 1 });\n\n constructor(\n private http: HttpClientService,\n private projectService: ProjectService\n ) {}\n\n fetchRoles(id) {\n return this.http.get(`${this.baseApiUrl2}Role/company/${id}`).pipe(\n map((roles) => {\n return roles;\n })\n );\n }\n\n createRole(data: CreateRole) {\n return this.http.post(`${this.baseApiUrl2}createRole`, data);\n }\n\n updateRole(data: UpdateRole) {\n return this.http.put(`${this.baseApiUrl2}Role/${data.id}`, {\n name: data.name,\n Description: data.Description,\n activestatus: data.activestatus,\n companyName: data.companyName,\n companyId: data.companyId,\n });\n }\n\n getRoleById(id: any) {\n \n return this.http.get(`${this.baseApiUrl2}Role/${id}`);\n }\n\n //company realted apis\n\n createCompany(data: CompanyCreation) {\n return this.http.post(`${this.baseApiUrl2}createCompany`, data);\n }\n\n getCompanies() {\n return this.http.get(`${this.baseApiUrl2}getCompanies`);\n }\n\n getCompanyById(id) {\n return this.http.get(`${this.baseApiUrl2}getCompanyById/${id}`);\n }\n\n updateCompany(data: UpdateCompany) {\n return this.http.post(`${this.baseApiUrl2}updateCompany`, data);\n }\n\n getAllCompanies(companyId) {\n return this.http.get(\n `${this.baseApiUrl2}getRoleCompanies/${companyId}`\n );\n }\n\n updateMailGroup(companyId, group) {\n return this.http.post(`${this.baseApiUrl2}updateMailGroup`, {\n companyId,\n group,\n });\n }\n\n projectAdmin(companyId): Observable {\n let admin: boolean = false;\n let projects;\n let userData = JSON.parse(localStorage.getItem(\"userData\"));\n // \n if (userData[\"companyId\"] === 0) {\n \n admin = true;\n return this.projectService.dashboardProjects({\n admin: admin,\n companyId: companyId,\n userId: userData[\"companyId\"],\n });\n } else {\n admin = false;\n return this.projectService.dashboardProjects({\n admin: admin,\n companyId: userData[\"companyId\"],\n userId: userData[\"id\"],\n });\n }\n }\n\n getRoleAgents(body: { name: string; projectId: any }) {\n return this.http.post(`${this.baseApiUrl2}getRoleAgents`, body);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n HostListener,\n ElementRef,\n Inject,\n} from '@angular/core';\nimport { UhLeadsService } from '../uhleads.service';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { DashboardService } from '../dashboard/dashboard.service';\nimport { LayoutService } from 'src/app/layout/layout.service';\nimport { TitleCasePipe, formatDate } from '@angular/common';\nimport { MarketingService } from '../marketing/marketing.service';\nimport * as xlsx from 'xlsx';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { AbstractControl, Validators } from '@angular/forms';\nimport * as moment from 'moment';\nimport { Exceldata2 } from '../marketing/smsmarketing/models/ExecelData.model2';\nimport { start } from 'repl';\nimport { AuthService } from 'src/app/account/auth/auth.service';\nimport { Router } from '@angular/router';\nimport { forEach, now, round } from 'lodash';\nimport { CreateAgent } from '../create-agent/create-agent.service';\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from 'ngx-timer';\nimport { DOCUMENT } from '@angular/common';\nimport { environment } from 'src/environments/environment';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { NotificationsService } from 'src/app/notification.service';\nimport * as _ from 'lodash';\n\nimport { fromEvent } from 'rxjs';\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from 'rxjs/operators';\nimport { RoleService } from '../role-management/role.service';\nimport { ErrorHandlerService } from 'src/app/error-handler.service';\nvar sortJsonArray = require('node_modules/sort-json-array');\nconst countryCodes = require('../../../assets/allcountryDetails.json');\n\n@Component({\n selector: 'app-sfc-leads',\n templateUrl: './sfc-leads.component.html',\n styleUrls: ['./sfc-leads.component.css'],\n})\nexport class SfcLeadsComponent implements OnInit {\n public fileSource = environment.fileServer;\n public userData: any;\n public filterValue = 'all';\n nav_position: string = 'end';\n public statusValue = 'pending';\n public page: any = 1;\n public pageSize: any = 12;\n public search: string;\n totalApplications: number;\n completedApplications: number;\n completedApplications2: number;\n incompleteapplications: number;\n documentspending: number;\n documentssubmitted: number;\n callback: number;\n activityData: any;\n activityData2: any;\n\n activityTable: any = [];\n activityTable2: any;\n\n startDate: any;\n endDate: any;\n leadsbody: any;\n companyId: any;\n companyAdmin: Boolean = false;\n rotating: boolean = false;\n projectId: any;\n downloadLink: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public leadType: string = 'all';\n public errorMessage: string = '';\n public submitted: boolean = false;\n public edited: boolean = false;\n admin: boolean = false;\n public counselling: boolean = false;\n isCallcomming: boolean = false;\n connection: any = null;\n // audio: any;\n audio = new Audio();\n audioStatus: boolean = false;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n documentsList: any;\n documentsList2: any;\n selectedCallerId: any;\n selectedLead: any;\n commentText: string = '';\n newStatus: any;\n newStatusCheck = true;\n docUrl: any;\n currentLeadId: any;\n currentGuid: any;\n documentComments: string;\n validationStatus: boolean = false;\n currentItem: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n @ViewChild('uploadFile') uploadFile;\n @ViewChild('closeButton') closeButton;\n @ViewChild('closeButton2') closeButton2;\n @ViewChild('closeButton3', { static: true }) closeButton3;\n @ViewChild('sideNav', { static: true }) sideNav;\n @ViewChild('inputString', { static: true }) input: ElementRef;\n @ViewChild('totalRecords', { static: true }) totalRecords: ElementRef;\n\n leadIds = [];\n selectedAll: boolean = false;\n agentList: any;\n GBPagentList: any;\n defaultAgent = 'default';\n selectedAgent: any;\n\n testConfig: any;\n // callStarted: boolean = false;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public clearTime: any;\n dialerScreen1 = 'dialer';\n phoneNumber: any = '';\n agentCall: String = '';\n isShownMarketing: boolean = false;\n dailerScreen: any = 'nocall';\n isCallingProgress: boolean = false;\n isOutgoing: boolean = false;\n isIncoming: boolean = false;\n disabled: any;\n callStatus: string = 'Calling..';\n tab: any;\n showDate: boolean = false;\n\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: '',\n status: '',\n name: '',\n email: '',\n phoneNumber: '',\n module: '',\n city: '',\n nextCaller: null,\n lead: {},\n };\n\n totalAgents: any;\n agentName: any;\n\n public callData: any[] = [];\n public startIndex: number = 0;\n\n date1: any;\n date2: any;\n serializedDate = new FormControl(new Date().toISOString());\n documentsDenied: number;\n CallsPending: number;\n revalidate: any;\n minItems = 5;\n unassigned: any;\n assigned: any;\n private colors = [\n [{ bg: 'blueviolet', color: 'white' }],\n [{ bg: 'AntiqueWhite', color: 'white' }],\n [{ bg: 'Coral', color: 'white' }],\n [{ bg: 'Crimson', color: 'white' }],\n [{ bg: 'DarkOrange', color: 'white' }],\n [{ bg: 'DeepPink', color: 'white' }],\n [{ bg: '#c5924e', color: 'white' }],\n ];\n assignedtome: any;\n file: File[] = [];\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = 'Select files to upload.';\n customFileList: File[] = [];\n customDocLeadId: any;\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n DOB: Date;\n EnrollmentYear: string;\n EnrollmentTerm: string;\n Address: string;\n City: string;\n State: string;\n Zip: string;\n Country: string;\n LeadComment: string;\n CallStatus: string;\n AgentMail: string;\n DIyear?: string;\n DIterms?: string;\n studentapplicationtype?: string;\n };\n editComment: string;\n editStatus: string;\n allRecords: any;\n isLoading: boolean = true;\n noRecords: boolean = false;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n activityfilterString: string = '';\n uploadSuccess: string = 'none';\n topBarCounts = {\n validatedDocs: '0',\n completedDocs: '0',\n studentDenied: '0',\n reopen: '0',\n total: '0',\n revalidatedDocs: '0',\n pendingDocs: '0',\n documentsSubmitted: '0',\n unassigned: '0',\n assigned: '0',\n assignedtoMe: '0',\n uncontactable: '0',\n graduate: '0',\n graduate_transfer: '0',\n freshman: '0',\n transfer: '0',\n graduate_visiting_student: '0',\n non_degree: '0',\n };\n isTopBarBind: Boolean = false;\n cardLeadType: string = 'all';\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n currentCard: string = 'total';\n sortColumn = 'updatedAt';\n sortOrder = 'des';\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n smsText: string;\n\n DIyear: any;\n DIterms: any;\n callSid: any;\n countries: any[] = [];\n selectedCountryCode = 1;\n selectedCountryName = 'United States of America';\n docName: any;\n allMajors: any = [];\n majors: any = [];\n terms: any[] = [];\n listMajors: any;\n listTerms: any[] = [];\n selectedProgram: any;\n selectedTerm: any;\n\n constructor(\n public uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n public dashBoardService: DashboardService,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n private readonly loginService: AuthService,\n private readonly modalService: NgbModal,\n private authService: AuthService,\n private router: Router,\n private agentService: CreateAgent,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private NotificationService: NotificationsService,\n private companyService: RoleService,\n private handleError: ErrorHandlerService,\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = 'test_Timer_class';\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = ':'; //default - hh\n this.testConfig.timerTexts.minuteText = ':'; //default - mm\n this.testConfig.timerTexts.secondsText = ' ';\n }\n\n ngOnInit(): void {\n this.getInitValues();\n var x = document.getElementsByClassName(\n 'sideDataViewer'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = 'none';\n }\n this.getAgentNames();\n this.fetchCountries();\n this.sharedService.pageEvent.emit({\n pageName: 'Leads Dashboard',\n });\n this.userData = JSON.parse(localStorage.getItem('userData'));\n //\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == '24hrs';\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == environment.Sfcleads\n )[0].id;\n if (this.projectId != null) {\n this.sharedService.getProjectAdmin(this.projectId).subscribe(\n (data) => {\n this.admin = data;\n this.getTopBarCRM();\n this.getAllData(\n this.userData,\n 'all',\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.showTotalApplications(); //Shohw only pending records on page load\n this.onClick(1); //Activating pending card by default\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n ////\n\n this.getDownloadLink();\n this.uhleadsservice.startTimersfc.subscribe((res) => {\n this.callStatus = 'inProgress';\n this.startTimer();\n });\n\n this.uhleadsservice.viewReceivedLeadsfc.subscribe((res: any) => {\n if (res) {\n this.viewLead(res);\n }\n });\n\n this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n this.pageNumber = pageNo;\n if (this.leadType != 'filter') {\n // this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n } else if (this.leadType == 'filter') {\n // this.searchLeads(this.search, this.pageNumber)\n\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: '2021-08-02 09:40:25+00',\n end: '2022-08-03 09:40:25+00',\n page: this.pageNumber,\n leadType: 'All',\n mail: 'All',\n callStatus: 'All',\n course: 'All',\n enrollmentYear: 'All',\n enrollmentTerm: 'All',\n export: false,\n search: this.search,\n };\n if (this.search.length > 0) {\n this.uhleadsservice\n .GetSearchDashboardLeads(payload)\n .subscribe(\n (res: any) => {\n this.activityTable = res.data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n // this.totalRecords.nativeElement.click();\n this.leadType = 'all';\n }\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.admin = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // server-side search\n fromEvent(this.input.nativeElement, 'keyup')\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n //\n //\n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n //incoming sms check\n this.uhleadsservice.incomingSmssfc.subscribe((from: any) => {\n if (from.from) {\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => { });\n }\n });\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n this.uhleadsservice.callStatussfc.subscribe((status) => {\n this.callStatus = status;\n });\n this.uhleadsservice.getCallSidsfc.subscribe((sid) => {\n this.callSid = sid;\n });\n\n const studentAppTypeControl = this.uhleadsservice.createLead;\n studentAppTypeControl.get('studentapplicationtype').setValidators([Validators.required]);\n studentAppTypeControl.get('studentapplicationtype').updateValueAndValidity();\n }\n getInitValues() {\n this.fetchCountries();\n this.uhleadsservice.getAllMajors().subscribe((data: any) => {\n this.majors = data;\n this.allMajors = this.majors;\n });\n this.uhleadsservice.getAllTerms().subscribe((data: any) => {\n // this.terms = data;\n // data.map((item, index) => {\n // this.terms.push({\n // id: index + 1,\n // year: moment().year(),\n // term: item.name,\n // value: item.name + moment().year(),\n // name: _.capitalize(item.name) + \" \" + moment().year()\n // })\n // })\n // Define the dates for removing Fall terms\n const fall1Date = moment('2024-11-07');\n const fall2Date = moment('2024-11-14');\n // Check the current date\n const currentDate = moment();\n const currentMonth = moment().month(); // get the current month (0-11)\n const currentYear = moment().year(); // get the current year\n const monthsRemaining = 12 - currentMonth; // calculate the months remaining in the current year\n\n if (monthsRemaining <= 4) {\n // if there are 3 months or less remaining, add the next year\n const nextYear = currentYear + 1;\n data.map((item, index) => {\n if (\n !item.name.includes('Summer') &&\n !item.name.includes('Spring') &&\n item.name != 'Fall'\n ) {\n this.terms.push({\n id: index + 1,\n year: currentYear,\n term: item.name,\n value: item.name + currentYear,\n name: _.capitalize(item.name) + ' ' + currentYear,\n });\n }\n });\n data.map((item, index) => {\n this.terms.push({\n id: index + 1 + data.length,\n year: nextYear,\n term: item.name,\n value: item.name + nextYear,\n name: _.capitalize(item.name) + ' ' + nextYear,\n });\n });\n } else {\n // otherwise, only add the current year\n data.map((item, index) => {\n this.terms.push({\n id: index + 1,\n year: currentYear,\n term: item.name,\n value: item.name + currentYear,\n name: _.capitalize(item.name) + ' ' + currentYear,\n });\n });\n }\n // Remove `Fall-1 2024` if today's date is November 7, 2024\n if (currentDate.isSameOrAfter(fall1Date, 'day')) {\n this.terms = this.terms.filter((term) => term.name !== 'Fall-1 2024');\n }\n\n // Remove `Fall-2 2024` if today's date is November 14, 2024\n if (currentDate.isSameOrAfter(fall2Date, 'day')) {\n this.terms = this.terms.filter((term) => term.name !== 'Fall-2 2024');\n }\n });\n }\n startTimer() {\n this.stopTimer();\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n stopTimer() {\n this.countupTimerService.stopTimer();\n }\n\n onClick(check) {\n this.uhleadsservice.pageNumber.next(1);\n if (check == 1) {\n this.tab = 'tab1';\n } else if (check == 2) {\n this.tab = 'tab2';\n } else if (check == 3) {\n this.tab = 'tab3';\n } else if (check == 4) {\n this.tab = 'tab4';\n } else if (check == 5) {\n this.tab = 'tab5';\n } else if (check == 6) {\n this.tab = 'tab6';\n } else if (check == 7) {\n this.tab = 'tab7';\n } else if (check == 8) {\n this.tab = 'tab8';\n } else if (check == 9) {\n this.tab = 'tab9';\n } else if (check == 10) {\n this.tab = 'tab10';\n } else if (check == 11) {\n this.tab = 'tab11';\n } else if (check == 12) {\n this.tab = 'tab12';\n } else if (check == 13) {\n this.tab = 'tab13';\n } else if (check == 14) {\n this.tab = 'tab14';\n } else if (check == 15) {\n this.tab = 'tab15';\n } else if (check == 16) {\n this.tab = 'tab16';\n } else if (check == 17) {\n this.tab = 'tab17';\n } else if (check == 18) {\n this.tab = 'tab18';\n } else if (check == 19) {\n this.tab = 'tab19';\n } else {\n this.tab = null;\n }\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.activityTable.length; i++) {\n this.leadIds.push(this.activityTable[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n assignAgentModal() {\n this.defaultAgent = 'default';\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning('Select leads to be assigned', 'Alert!');\n return;\n }\n if (this.selectedAgent) {\n this.uhleadsservice\n .assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe(\n (res) => {\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: this.selectedAgent,\n GUID: '',\n LeadId: this.leadIds,\n Platform: 'CRM',\n StudentDocId: 0,\n Title: 'Assigned',\n description:\n 'New leads are assigned to you by ' +\n this.getAgentName(this.userData.mail),\n notificationType: 'AssignedToAgent',\n token: this.userData.token,\n };\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.uhleadsservice.showSuccess(\n 'Successfully assigned the agents',\n 'Success'\n );\n // this.getDashboardLeads();\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n 'total',\n this.startDate,\n this.endDate\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById('closeAssignButton').click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning('Please select an agent', 'Alert!');\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n setLeadType() {\n this.leadType = '';\n }\n\n showTotalApplications() {\n this.statusValue = 'all';\n this.leadType = 'all';\n this.currentCard = 'total';\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'all',\n start: this.startDate,\n end: this.endDate,\n },\n 'all'\n );\n }\n //Shows date if the filter value is custom\n hideDate() {\n // this.filterValuev\n if (this.filterValue == 'custom' && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n showCompletedApplications() {\n this.statusValue = 'all';\n this.leadType = 'validatedDocs';\n this.currentCard = 'validated';\n\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"validatedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'validatedDocs',\n start: this.startDate,\n end: this.endDate,\n },\n 'validatedDocs'\n );\n }\n showUncontactable() {\n this.statusValue = 'all';\n this.leadType = 'uncontactable';\n this.currentCard = 'uncontactable';\n\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'uncontactable',\n start: this.startDate,\n end: this.endDate,\n },\n 'uncontactable'\n );\n }\n showCompletedApplications2() {\n this.statusValue = 'all';\n this.leadType = 'completedDocs';\n this.currentCard = 'completed';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"completedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'completedDocs',\n start: this.startDate,\n end: this.endDate,\n },\n 'completedDocs'\n );\n }\n\n showIncompleteApplications() {\n this.statusValue = 'all';\n this.leadType = 'pendingDocs';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"ValidationPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'pendingDocs',\n start: this.startDate,\n end: this.endDate,\n },\n 'pendingDocs'\n );\n }\n showDocumentsPending() {\n this.statusValue = 'all';\n this.leadType = 'pendingDocs';\n this.currentCard = 'updated';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'pendingDocs',\n start: this.startDate,\n end: this.endDate,\n },\n 'pendingDocs'\n );\n }\n showDocumentsSubmitted() {\n this.statusValue = 'all';\n this.leadType = 'documentsSubmitted';\n this.currentCard = 'updated';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsSubmitted\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'documentsSubmitted',\n start: this.startDate,\n end: this.endDate,\n },\n 'documentsSubmitted'\n );\n }\n showCallback() {\n this.statusValue = 'all';\n this.leadType = 'callback';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"callback\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'callback',\n start: this.startDate,\n end: this.endDate,\n },\n 'callback'\n );\n }\n showCallsPending() {\n this.statusValue = 'all';\n this.leadType = 'pending';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"pendingCalls\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'pending',\n start: this.startDate,\n end: this.endDate,\n },\n 'pending'\n );\n }\n\n showRevalidate() {\n this.statusValue = 'all';\n this.leadType = 'revalidatedDocs';\n this.currentCard = 'revalidate';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"revalidate\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'revalidatedDocs',\n start: this.startDate,\n end: this.endDate,\n },\n 'revalidatedDocs'\n );\n }\n\n showApplicationsDenied() {\n this.statusValue = 'all';\n this.leadType = 'studentDenied';\n this.currentCard = 'denied';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"denied\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'studentDenied',\n start: this.startDate,\n end: this.endDate,\n },\n 'studentDenied'\n );\n }\n\n showUnassigned() {\n this.statusValue = 'all';\n this.leadType = 'unassigned';\n this.currentCard = 'total';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"unassigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'unassigned',\n start: this.startDate,\n end: this.endDate,\n },\n 'unassigned'\n );\n }\n\n showAssigned() {\n this.statusValue = 'all';\n this.leadType = 'assigned';\n this.currentCard = 'assigned';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'assigned',\n start: this.startDate,\n end: this.endDate,\n },\n 'assigned'\n );\n }\n\n showAssignedtoMe() {\n this.statusValue = 'all';\n this.leadType = 'assignedtoMe';\n this.currentCard = 'assigned';\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assignedtome\"\n // );\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: 'assignedtoMe',\n start: this.startDate,\n end: this.endDate,\n };\n this.getTopBarCRM();\n this.getCardCount(obj, 'assignedtoMe');\n }\n showCardDetails(lead?: any) {\n this.statusValue = 'all';\n this.leadType = lead;\n this.currentCard = lead;\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: lead,\n start: this.startDate,\n end: this.endDate,\n };\n this.getTopBarCRM();\n this.getCardCount(obj, lead);\n }\n\n public onInput(event: any) {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: '2021-08-02 09:40:25+00',\n end: '2022-08-03 09:40:25+00',\n page: 1,\n leadType: 'All',\n mail: 'All',\n callStatus: 'All',\n course: 'All',\n enrollmentYear: 'All',\n enrollmentTerm: 'All',\n export: false,\n search: this.search,\n };\n if (this.search != '') {\n // this.uhleadsservice\n // .GetSearchDashboardLeads(payload)\n // .subscribe((res: any) => {\n // //\n // this.activityTable = res.data;\n // });\n // this.activityTable = this.allRecords;\n } else if (this.search == '') {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.totalRecords.nativeElement.click();\n // this.getTopBarCRM();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n searchLeads(value, page) {\n this.leadType = 'all';\n this.currentCard = 'total';\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: '2020-08-02 09:40:25+00',\n end: '2025-08-03 09:40:25+00',\n page: page,\n leadType: 'All',\n mail: 'All',\n callStatus: 'All',\n course: 'All',\n enrollmentYear: 'All',\n enrollmentTerm: 'All',\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = 'filter';\n this.uhleadsservice.GetSearchDashboardLeads(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n this.activityTable = res.data;\n\n for (let i = 0; i < this.activityTable.length; i++) {\n if (this.activityTable[i].PhoneNumber == '0000000000') {\n this.activityTable[i].PhoneNumber = '-';\n this.activityTable[i].CountryCode = '-';\n }\n this.activityTable[i].AssignedtoName = this.getAgentName(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoColor = this.getAgentColor(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable[i].Assignedto\n );\n if (\n this.activityTable[i].LeadDocStatus == 'CRM-Revalidate' ||\n this.activityTable[i].LeadDocStatus == 'Admin-Revalidate' ||\n this.activityTable[i].LeadDocStatus == 'Admin-revalidate' ||\n this.activityTable[i].LeadDocStatus == 'CRM-revalidate'\n ) {\n this.activityTable[i].LeadDocStatus = 'Revalidate';\n }\n }\n if (this.activityTable.length <= 0) {\n this.noRecords = true;\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = 'all';\n this.getTopBarCRM();\n this.getCardData(this.userData, 'total', this.startDate, this.endDate);\n }\n }\n\n //Table Filter\n dropdownSelect(event) {\n this.uhleadsservice.pageNumber.next(1);\n this.onClick(null);\n this.leadType = 'dropdown';\n this.cardLeadType = event;\n this.getTopBarCRM();\n // this.getCardData(this.userData, event, this.startDate, this.endDate);\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != 'custom') {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == 'custom') {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == 'all') {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == '24hrs') {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == '72hrs') {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == '7days') {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == '14days') {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == '30days') {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, 'total', this.startDate, this.endDate);\n }\n\n updateActivity() {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, 'total', this.startDate, this.endDate);\n this.totalApplications = this.activityTable.length;\n this.completedApplications = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == 'validated' || el.LeadDocStatus == 'Validated';\n }).length;\n this.completedApplications2 = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == 'completed' || el.LeadDocStatus == 'complete';\n }).length;\n this.incompleteapplications = this.activityTable.filter(function (el) {\n return el.APPStatus == 'Incomplete';\n }).length;\n this.documentspending = this.activityTable.filter(function (el) {\n return el.Phase == 'pending';\n }).length;\n this.documentssubmitted = this.activityTable.filter(function (el) {\n return el.Phase == 'complete' || el.APPStatus == 'complete';\n }).length;\n this.callback = this.activityTable.filter(function (el) {\n return el.Phase == 'callback' || el.Phase == 'Callback';\n }).length;\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n getDownloadLink() {\n this.marketingService\n .getExcelLink(\n this.fileSource + '/TemplateDocuments/' + environment.Sfconucsvfile\n )\n .subscribe(\n (data) => {\n this.downloadLink = data['url'];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n redirectToUpload() {\n this.router.navigate(['./upload/' + this.projectId]);\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0]['name'].toString();\n let reader = new FileReader();\n\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: 'array' });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === 'GUID' && sheet_data.length !== 0) {\n this.fileData = this.uhleadsservice.convert2dArraytoObject(sheet_data);\n\n this.uhleadsservice\n .postCallData({\n data: this.fileData,\n createdBy: this.userData['mail'],\n ProjectId: this.projectId,\n addType: 'Excel',\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data['count'];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = '';\n }, 5000);\n // this.getDashboardLeads(this.leadType);\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n 'total',\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = 'Please Upload a Valid File';\n }\n };\n this.uploadFile.nativeElement.value = '';\n }\n\n get createLeads() {\n return this.uhleadsservice.createLead.controls;\n }\n get editLeads() {\n return this.uhleadsservice.editLead.controls;\n }\n transformToTitleCase(value: string): string {\n const titleCasePipe = new TitleCasePipe();\n return titleCasePipe.transform(value);\n }\n createLead() {\n this.uhleadsservice.createLead.controls['form_name'].setValue('none');\n this.uhleadsservice.createLead.controls['channel'].setValue('none');\n this.submitted = true;\n if (this.uhleadsservice.createLead.invalid) {\n return;\n }\n let fileData: Exceldata2[] = [\n new Exceldata2(\n this.uhleadsservice.createLeadValue['GUID'],\n this.uhleadsservice.createLeadValue['firstName'],\n this.uhleadsservice.createLeadValue['lastName'],\n this.uhleadsservice.createLeadValue['countryCode'],\n this.uhleadsservice.createLeadValue['phoneNumber'],\n this.uhleadsservice.createLeadValue['email'],\n '',\n this.uhleadsservice.createLeadValue['program'],\n 'Y',\n this.uhleadsservice.createLeadValue['CreatedDate'],\n this.uhleadsservice.createLeadValue['comments'],\n this.transformToTitleCase(\n this.uhleadsservice.createLeadValue['studentapplicationtype']\n ),\n this.uhleadsservice.createLeadValue['EnrollmentTerm'],\n this.uhleadsservice.createLeadValue['EnrollmentYear'],\n true\n ),\n ];\n this.uhleadsservice\n .postCallData({\n data: fileData,\n createdBy: this.userData['mail'],\n ProjectId: this.projectId,\n addType: 'Manual',\n })\n .subscribe(\n (data) => {\n this.uhleadsservice.showSuccess('Lead Added', 'Success');\n this.selectedProgram = '';\n this.selectedTerm = '';\n this.uhleadsservice.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.leadType = 'all';\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n 'total',\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getDashboardLeads(leadType) {\n if (!this.projectId) {\n return;\n }\n // this.statusValue = \"pending\";\n this.leadType = leadType;\n return this.marketingService\n .getDashboardLeads({\n admin: this.admin,\n // admin: true,\n mail: this.userData['mail'],\n ProjectId: this.projectId,\n leadType: this.leadType,\n counselling: this.counselling,\n })\n .subscribe(\n (data) => {\n this.callData = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n 'End date cannot be less than Start date!',\n 'Wrong Date!'\n );\n return;\n } else {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, 'total', this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.showDate = false;\n }\n }\n getCounts(userData: any, leadtype, startDate, endDate, filter) {\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = '';\n // this.activityTable = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == environment.Sfcleads\n )[0].id;\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityData2 = res;\n\n // this.callData = this.activityTable;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n });\n\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == '0000000000') {\n this.activityData2[i].PhoneNumber = '-';\n this.activityData2[i].CountryCode = '-';\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == 'CRM-Revalidate' ||\n this.activityData2[i].LeadDocStatus == 'Admin-Revalidate' ||\n this.activityData2[i].LeadDocStatus == 'Admin-revalidate' ||\n this.activityData2[i].LeadDocStatus == 'CRM-revalidate'\n ) {\n this.activityData2[i].LeadDocStatus = 'Revalidate';\n }\n }\n\n this.activityData = this.activityData2;\n this.totalApplications = this.activityData.length;\n this.completedApplications = this.activityData.filter(function (\n el\n ) {\n return el.LeadDocStatus == 'validated';\n }).length;\n this.completedApplications2 = this.activityData.filter(function (\n el\n ) {\n return (\n el.LeadDocStatus == 'completed' ||\n el.LeadDocStatus == 'Completed'\n );\n }).length;\n this.incompleteapplications = this.activityData.filter(function (\n el\n ) {\n // return el.LeadDocStatus != \"validated\";\n return (\n el.LeadDocStatus == 'pending' ||\n el.LeadDocStatus == 'Admin-revalidate' ||\n el.LeadDocStatus == 'revalidate' ||\n el.LeadDocStatus == 'CRM-revalidate' ||\n el.LeadDocStatus == 'Revalidate' ||\n el.LeadDocStatus == 'reopen' ||\n el.LeadDocStatus == 'denied'\n );\n }).length;\n var count = 0;\n\n this.documentspending = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n count = count + 1;\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n count = count + 1;\n } else {\n }\n }\n return el.Phase == 'pending';\n }).length;\n this.documentspending = count;\n this.documentsDenied = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == 'denied' || el.LeadDocStatus == 'Denied'\n );\n }).length;\n this.CallsPending = this.activityData.filter(function (el) {\n return el.Phase == 'pending' || el.Phase == 'Pending';\n }).length;\n this.revalidate = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == 'revalidate' ||\n el.LeadDocStatus == 'Revalidate' ||\n el.LeadDocStatus == 'CRM-revalidate' ||\n el.LeadDocStatus == 'GBP-revalidate'\n );\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == '' || el.Assignedto == '-';\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.assignedtome = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == '' || el.Assignedto == '-';\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.documentssubmitted =\n this.totalApplications - this.documentspending;\n\n this.callback = this.activityData.filter(function (el) {\n return el.Phase == 'callback' || el.Phase == 'Callback';\n }).length;\n\n var DocPendingList = [];\n var DocSubmittedList = [];\n\n if (filter == 'all') {\n this.activityTable = this.activityData;\n } else if (filter == 'validatedDocuments') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == 'validated';\n });\n } else if (filter == 'completedDocuments') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == 'completed';\n });\n } else if (filter == 'ValidationPending') {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == 'pending' ||\n el.LeadDocStatus == 'Admin-revalidate' ||\n el.LeadDocStatus == 'revalidate' ||\n el.LeadDocStatus == 'CRM-revalidate' ||\n el.LeadDocStatus == 'Revalidate' ||\n el.LeadDocStatus == 'reopen' ||\n el.LeadDocStatus == 'denied'\n );\n });\n } else if (filter == 'completedApplications') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == 'complete' || el.APPStatus == 'complete';\n });\n } else if (filter == 'incompleteApplications') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == 'Incomplete';\n });\n } else if (filter == 'documentsPending') {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n DocPendingList.push(el);\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n DocPendingList.push(el);\n }\n }\n return el.Phase == 'pending';\n });\n this.activityTable = DocPendingList;\n } else if (filter == 'documentsSubmitted') {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length != 0) {\n var docCheck = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n docCheck = false;\n }\n }\n if (docCheck == true) {\n DocSubmittedList.push(el);\n }\n }\n return el.Phase == 'complete' || el.APPStatus == 'complete';\n });\n this.activityTable = DocSubmittedList;\n } else if (filter == 'callback') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == 'callback' || el.Phase == 'Callback';\n });\n } else if (filter == 'denied') {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == 'Denied' || el.LeadDocStatus == 'denied'\n );\n });\n } else if (filter == 'pendingCalls') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == 'pending' || el.Phase == 'Pending';\n });\n } else if (filter == 'revalidate') {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == 'revalidate' ||\n el.LeadDocStatus == 'Revalidate' ||\n el.LeadDocStatus == 'CRM-revalidate' ||\n el.LeadDocStatus == 'GBP-revalidate'\n );\n });\n } else if (filter == 'assigned') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != '-';\n });\n } else if (filter == 'assignedtome') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n });\n } else if (filter == 'unassigned') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == '-' || el.Assignedto == '';\n });\n } else if (filter == 'assigned') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != '-';\n });\n } else if (filter == 'unassigned') {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == '-' || el.Assignedto == '';\n });\n }\n\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.getAllData(\n this.userData,\n 'all',\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n }\n\n getData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = '';\n this.onClick(null);\n this.activityTable = [];\n\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityTable2 = res;\n\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n });\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == '0000000000') {\n this.activityTable2[i].CountryCode = '-';\n this.activityTable2[i].PhoneNumber = '-';\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == 'CRM-Revalidate' ||\n this.activityTable2[i].LeadDocStatus == 'Admin-Revalidate' ||\n this.activityTable2[i].LeadDocStatus == 'Admin-revalidate' ||\n this.activityTable2[i].LeadDocStatus == 'CRM-revalidate'\n ) {\n this.activityTable2[i].LeadDocStatus = 'Revalidate';\n }\n }\n\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n 'all',\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n // this.getAgentName()\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAllData(userData: any, leadtype, startDate, endDate) { }\n\n getCallData() { }\n\n startCallListener() {\n this.uhleadsservice.startCallsfc.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n }\n\n startCallListener2(data, index) {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n\n this.dialerScreen1 = 'outgoing1';\n this.callStatus = 'Calling..';\n $('input[name=option1]').prop('checked', false);\n\n this.newStatusCheck = true;\n\n this.callData[0] = data;\n this.selectedLead = data;\n\n this.uhleadsservice.getDocumentDetails(data.GUID).subscribe(\n (res) => {\n this.documentsList = res;\n this.documentsList = this.documentsList.uploadDocsStatus;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.marketingId = {\n id: data?.id,\n status: data?.CallStatus,\n name: data?.FirstName,\n email: data?.Email,\n phoneNumber: '+' + data?.CountryCode + data?.PhoneNumber,\n // phoneNumber: \"+919848311098\",\n module: data?.Module,\n city: data?.City,\n nextCaller: this.activityTable.length > 1 ? 1 : 0,\n lead: 0,\n };\n\n if (this.activityTable.length > 1) {\n var nextFirstname = this.activityTable[index + 1]?.FirstName\n ? this.activityTable[index + 1]?.FirstName\n : '';\n var nextLastname = this.activityTable[index + 1]?.LastName\n ? this.activityTable[index + 1]?.LastName\n : '';\n var nextCallerCity = this.activityTable[index + 1]?.City\n ? this.activityTable[index + 1]?.City\n : '';\n var nextCallerCountryCode = this.activityTable[index + 1]?.CountryCode\n ? this.activityTable[index + 1]?.CountryCode.replace('+', '')\n : '';\n var nextCallerPhoneNumber = this.activityTable[index + 1]?.PhoneNumber\n ? this.activityTable[index + 1]?.PhoneNumber\n : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode\n ? '+' + nextCallerCountryCode + nextCallerPhoneNumber\n : '';\n this.startIndex = index + 1;\n }\n this.uhleadsservice.startCallsfc.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n //Start Call timer\n\n // conferenceCall(from) {}\n\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCallsfc.next({ value });\n }\n\n conferenceCall2(value: any) {\n if (value.phone_number) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: value.phone_number,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n if (value.manager[0]) {\n if (value.manager[0].Name) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: 'client:' + value.manager[0].value,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n updateComments() {\n if (this.newStatusCheck) {\n } else {\n // this.uhleadsservice.getCallSidsfc.subscribe(\n // (data) => {\n this.uhleadsservice\n .updateComments2({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n diyear: this.DIyear,\n diterms: this.DIterms,\n CallSid: this.callSid,\n })\n .subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n 'total',\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.commentText = '';\n this.closeButton2.nativeElement.click();\n }\n }\n\n resetCallingScreen() {\n this.commentText = '';\n this.newStatus = null;\n this.newStatusCheck = false;\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n onStatusChange(data) {\n this.newStatus = data;\n this.newStatusCheck = false;\n if (this.newStatus == 'deferredintake') {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = '';\n this.companyService\n .projectAdmin(environment.companyId)\n .subscribe((res: any) => {\n this.projectLists = res;\n\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == environment.Sfcleads) {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: '+' + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendSms(payload, this.projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo('Message successfully sent.', 'Sent');\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n if (smsList.SMSDetails) {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value =\n '';\n }\n });\n });\n });\n }\n\n sideNavData(data) {\n this.activityfilterString = '';\n this.file = null;\n this.customDocName = '';\n this.minItems = 5;\n this.sideViewerData = [];\n var x = document.getElementsByClassName(\n 'sideDataViewer'\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = '';\n }\n this.uhleadsservice.getStudentActivity(data.id).subscribe(\n (res: any) => {\n this.uhleadsservice.getSms(data.id).subscribe((smsList: any) => {\n if (smsList?.SMSDetails) {\n this.smsList = smsList?.SMSDetails;\n }\n });\n let wpObj = {\n phone: '+' + res?.CountryCode.replace('+', '') + res?.PhoneNumber,\n };\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n if (res.APPStatus == 'complete') {\n res.APPStatus = 'Completed';\n }\n this.sideViewerData = res;\n\n this.currentLeadId = this.sideViewerData.id;\n if (this.customDocLeadId != this.currentLeadId) {\n this.customFileList = [];\n this.customDocLeadId = this.currentLeadId;\n } else {\n this.customDocLeadId = this.currentLeadId;\n }\n this.currentGuid = this.sideViewerData.GUID;\n this.replaceNull(this.sideViewerData);\n this.documentValidation(data.id);\n function replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n }\n this.sideViewerData.uploadlistofdocuments.forEach((x) => {\n x.DocComments.forEach((y) => {\n y.AgentColor = this.getAgentColor(y.AgentMail);\n });\n });\n for (\n let i = 0;\n i < this.sideViewerData.uploadlistofdocuments.length;\n i++\n ) {\n this.sideViewerData.LeadComments[i].AgentColor = this.getAgentColor(\n this.sideViewerData.LeadComments[i].AgentMail\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n }\n\n documentValidation(id) {\n this.uhleadsservice.getDocumentComments(id).subscribe(\n (res) => {\n this.documentsList2 = res;\n this.documentsList2 = this.documentsList2.uploadlistofdocuments;\n\n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n });\n this.checkValidation();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n let name = '';\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + ' ' + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = '';\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = '';\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0]['bg'];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = '';\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split('') // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(''); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n changeValidation(value, docId) {\n this.uhleadsservice\n .updateValidationStatus({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: 'CRM',\n MailId: this.userData.mail,\n })\n .subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n 'Document Status updated!',\n 'Success!'\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: '',\n GUID: '',\n LeadId: 0,\n Platform: 'CRM',\n StudentDocId: docId,\n Title: 'Document Validation',\n description:\n 'Document status changed to ' +\n value +\n ' by ' +\n this.getAgentName(this.userData.mail),\n notificationType: 'Validation',\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.documentsList2.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.documentsList2.length; i++) {\n if (\n this.documentsList2[i].AgentValidation == 'revalidate' ||\n this.documentsList2[i].AgentValidation == '-'\n ) {\n this.validationStatus = false;\n return;\n } else if (this.documentsList2[i].AgentValidation == 'validated') {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n if (this.validationStatus == true) {\n // Send Notification\n\n let payload = {\n AgentMail: 'ramana@universityhub.com',\n GBPAssignedTo: '',\n GUID: '12356yyu98',\n LeadId: 0,\n Platform: 'CRM',\n StudentDocId: 0,\n Title: 'Documents Validated',\n description: 'All the docuiments have been validated',\n notificationType: 'alldocuments',\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: 'ramana@universityhub.com',\n GBPAssignedTo: '',\n GUID: '12356yyu98',\n LeadId: 0,\n Platform: 'CRMGBP',\n StudentDocId: 0,\n Title: 'Documents Validated',\n description: 'All the docuiments have been validated',\n notificationType: 'alldocuments',\n token: this.userData.token,\n };\n\n // this.NotificationService.sendNotifications(payload).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // this.uhleadsservice.showSuccess(\n // \"All Documents Validated\",\n // \"Validation Complete\"\n // );\n // this.NotificationService.success(\"Validation\", \"Notification sent\");\n // }\n // }\n // );\n // this.NotificationService.sendNotifications(payload2).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // // this.uhleadsservice.showSuccess(\"All Documents Validated\", \"Validation Complete\");\n // this.NotificationService.success(\n // \"Validation\",\n // \"Notification sent to GBP\"\n // );\n // }\n // }\n // );\n }\n }\n\n postComments(item, HTMLid, sideViewerData?: any) {\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentGuid,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n // Admin: false,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: 'CRM',\n };\n\n if (HTMLid == 'leadComments') {\n body.StudentDocId = null;\n }\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData(sideViewerData ? sideViewerData : item);\n this.uhleadsservice.showSuccess('Comment Posted!', 'Success!');\n (document.getElementById(HTMLid)).value = '';\n\n let payload = {\n LeadId: 0,\n GBPAssignedTo: '',\n Platform: 'CRM',\n GUID: this.currentGuid,\n StudentDocId: 0,\n notificationType: 'LeadComments',\n description: this.getAgentName(this.userData.mail) + ' has commented',\n AgentMail: this.userData.mail,\n Title: 'Comment',\n token: this.userData.token,\n };\n\n if (HTMLid == 'leadComments') {\n payload.StudentDocId = 0;\n } else if (\n HTMLid == 'documentComments' ||\n HTMLid == 'callingComments'\n ) {\n payload.StudentDocId = item.StudentdocId;\n }\n try {\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n // this.toastr.showSuccess('Successfully send notification', 'Notification')\n // this.NotificationService.success('success', 'loading component');\n } else if (res.status == 500) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } catch (err) { }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n callFromDocs(data, item) {\n this.startCallListener2(data, 0);\n this.currentItem = item;\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append('studentdocid', item.StudentdocId);\n formData.append('document', file, file.name);\n formData.append('Platform', 'CRM');\n formData.append('MailId', this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess('File upload successful!', 'Success');\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n uploadCustomDocument(e) {\n // let fileList: FileList = event.target.files;\n // this.file = fileList[0];\n // event.target.value = '';\n // if (fileList.length > 0) {\n // if (!this.validateFile(this.file.type)) {\n // this.uhleadsservice.showError(\"Invalid file format!\", \"Error\");\n // return;\n // }\n // }\n\n for (var i = 0; i < e.target.files.length; i++) {\n // this.file.push(e.target.files[i]);\n this.customFileList.push(e.target.files[i]);\n }\n if (this.customFileList.length > 0) {\n this.docUploadError = 'Click on add to start uploading your files';\n console.log(this.customFileList);\n var x = document.getElementsByClassName(\n 'docUploadError'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = 'green';\n }\n }\n e.target.value = '';\n }\n\n addCustomDocument() {\n let check = true;\n this.customFileList.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError =\n 'One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.';\n check = false;\n var x = document.getElementsByClassName(\n 'docUploadError'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = 'red';\n }\n }\n });\n if (check == true) {\n this.docUploadError =\n 'Please be patient while the document is uploaded...';\n if (this.customDocName == '') {\n this.docUploadError = 'Document name cannot be empty!';\n return;\n } else {\n let formData: FormData = new FormData();\n formData.append('GUID', this.currentGuid);\n formData.append('docName', this.customDocName);\n formData.append('Platform', 'CRM');\n formData.append('MailId', this.userData.mail);\n\n Array.from(this.customFileList).forEach((file) =>\n formData.append('document', file, file.name)\n );\n this.docUploadStatus = true;\n this.uhleadsservice.uploadCustomDocument(formData).subscribe(\n (res: any) => {\n let response = res.status;\n this.docUploadStatus = false;\n if (response == 200) {\n this.docUploadError = 'Custom document added';\n this.uhleadsservice.showSuccess(\n 'Custom document added!',\n 'Success'\n );\n } else if (response == 201) {\n this.docUploadError = 'Uploaded a custom document';\n this.uhleadsservice.showSuccess(\n 'Uploaded a custom document!',\n 'Success'\n );\n } else if (response == 202) {\n this.docUploadError = 'Document with given name already exists!';\n this.uhleadsservice.showError(\n 'Document with given name already exists!',\n 'Error'\n );\n return;\n }\n this.sideNavData({ id: this.currentLeadId });\n this.closeButton.nativeElement.click();\n this.file = null;\n this.customDocName = '';\n },\n (err) => {\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.docUploadError = `The file ${err.error.file} is corrupted. Please upload valid files .`;\n } else if (err.error.status == 500) {\n this.docUploadError = err.error.message;\n } else {\n this.docUploadError =\n 'Files not uploaded. Please check document extensions, upload supported documents.';\n }\n this.uhleadsservice.showError(this.docUploadError, 'Error');\n this.handleError.handleError(err);\n }\n );\n }\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.uhleadsservice\n .deleteCustomDocument({\n StudentdocId: docId,\n docName: docName,\n Platform: 'CRM',\n MailId: this.userData.mail,\n })\n .subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.uhleadsservice.showSuccess(\n 'Custom document deleted successfully.',\n 'Deleted Successfully!'\n );\n } else {\n this.uhleadsservice.showError('Something went wrong!', 'Error!');\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.sideNavData({ id: this.currentLeadId });\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement('a');\n link.setAttribute('target', '_blank');\n link.setAttribute('type', 'hidden');\n link.setAttribute('href', url);\n link.setAttribute('download', name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf('.') + 1);\n if (ext.toLowerCase() == 'image/jpeg') {\n return true;\n } else if (ext.toLowerCase() == 'document') {\n return true;\n } else if (ext.toLowerCase() == 'image/png') {\n return true;\n } else if (ext.toLowerCase() == 'application/msword') {\n return true;\n } else if (\n ext.toLowerCase() ==\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n ) {\n return true;\n } else if (ext.toLowerCase() == 'application/pdf') {\n return true;\n } else {\n this.uhleadsservice.showError('Please upload a valid file!', 'Error!');\n return false;\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: 'modal-basic-title',\n windowClass: 'myCustomModalClass',\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n contentLoaded() {\n document.getElementById('progressBar').style.display = 'none';\n }\n\n playAudio(data) {\n // let audio = new Audio();\n if (this.audioStatus == false) {\n this.audio.src = data.RecordingURL;\n this.audio.pause();\n this.audio.currentTime = 0;\n // this.audio.load();\n this.audio.play();\n this.audioStatus = true;\n } else if (this.audioStatus == true) {\n this.audio.pause();\n this.audio.currentTime = 0;\n this.audioStatus = false;\n }\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName('audio');\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n pauseAudio(data) {\n // audio.stop();\n }\n\n callNext() { }\n\n stopCurrentCall() {\n this.uhleadsservice.startCallsfc.next(null);\n this.uhleadsservice.stopCallsfc.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = 'Call Ended';\n }\n\n stopCallListener() {\n this.uhleadsservice.startCallsfc.next(null);\n this.uhleadsservice.stopCallsfc.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== 'pending') {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data['id'],\n number: '+' + data['CountryCode'] + data['PhoneNumber'],\n name: data['FirstName'],\n email: data['Email'],\n comments: data['Comments'],\n module: data['Module'],\n city: data['city'],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n openCreateLead(content) {\n // gtag('event', 'add_new_lead', {\n // page_path: window.location.href,\n // page_title:'Leads Dashboard'\n // })\n this.modalService.open(content, { size: 'md' });\n let country = countryCodes.find((x) => x.callingCodes[0] == 1);\n this.selectCountry(country);\n }\n openEditLead(content, lead) {\n if (lead.DOB == '-') {\n lead.DOB = '';\n } else {\n lead.DOB = moment(lead.DOB).format('YYYY-MM-DD');\n }\n\n this.editStatus = lead.CallStatus;\n this.DIterms = lead.DIterms;\n this.DIyear = parseInt(lead.DIyear);\n if (this.editStatus == 'deferredintake') {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n this.leadtoEdit = {\n LeadId: lead.id,\n FirstName: lead.FirstName,\n LastName: lead.LastName,\n CountryCode: lead.CountryCode,\n PhoneNumber: lead.PhoneNumber,\n Email: lead.Email,\n DOB: lead.DOB,\n // DOB: this.startDate,\n EnrollmentYear: lead.EnrollmentYear,\n EnrollmentTerm: lead.EnrollmentTerm,\n Address: lead.Address,\n City: lead.City,\n State: lead.State,\n Zip: lead.Zip,\n Country: lead.Country,\n LeadComment: this.editComment,\n CallStatus: this.editStatus,\n AgentMail: this.userData.mail,\n studentapplicationtype: lead.applicationtype ? lead.applicationtype : '',\n };\n\n this.modalService.open(content, { size: 'lg' });\n\n this.uhleadsservice.editLead.markAllAsTouched();\n if (lead.Country != '-') {\n let country = countryCodes.find(\n (x) => x.alpha2Code == lead.Country || x.name == lead.Country\n );\n this.selectCountryEditName(country);\n }\n if (lead.CountryCode != '-') {\n let country1 = countryCodes.find(\n (x) => x.callingCodes[0] == lead.CountryCode\n );\n this.selectCountryEdit(country1);\n }\n }\n\n replaceAll(string, search, replace) {\n return string.split(search).join(replace);\n }\n validateEmailId(value) {\n this.uhleadsservice.emailIdValidator({ email: value }).subscribe(\n (data: any) => {\n console.log(\n '🚀 ~ file: registration.component.ts:143 ~ RegistrationComponent ~ this.registrationService.emailIdValidator ~ data',\n data\n );\n },\n (error) => {\n this.createLeads['email'].markAsTouched();\n this.uhleadsservice.showError('Email Already Exist!', '');\n }\n );\n }\n updateLead() {\n if (this.leadtoEdit.EnrollmentTerm === '-') {\n this.leadtoEdit.EnrollmentTerm = null;\n this.uhleadsservice.editLead.controls['EnrollmentTerm'].setValue(null);\n }\n if (this.leadtoEdit.EnrollmentYear === '-') {\n this.leadtoEdit.EnrollmentYear = null;\n this.uhleadsservice.editLead.controls['EnrollmentYear'].setValue(null);\n }\n this.edited = true;\n if (this.uhleadsservice.editLead.invalid) {\n this.uhleadsservice.editLead.markAllAsTouched();\n return;\n }\n\n // this.leadtoEdit.CountryCode = this.leadtoEdit.CountryCode.replace(\"+\", \"\");\n this.leadtoEdit.CountryCode = this.replaceAll(\n this.leadtoEdit.CountryCode,\n '+',\n ''\n );\n this.leadtoEdit.DIterms = this.DIterms;\n this.leadtoEdit.DIyear = this.DIyear;\n if (this.leadtoEdit.CountryCode == '-') {\n this.leadtoEdit.CountryCode = '00';\n }\n if (this.leadtoEdit.PhoneNumber == '-') {\n this.leadtoEdit.PhoneNumber = '0000000000';\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === '-' ||\n this.leadtoEdit[a] === '' ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.uhleadsservice.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.uhleadsservice.showSuccess('Student details updated', 'Success!');\n this.edited = false;\n\n document.getElementById('closeButton3').click();\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n page: 1,\n },\n this.cardLeadType\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n // Clear file and document name in custom document upload modal\n clearData() {\n this.file = null;\n this.customDocName = '';\n this.customFileList = [];\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append('fileUpload', this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = 'Click on upload to start uploading your files';\n\n var x = document.getElementsByClassName(\n 'docUploadError'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = 'green';\n }\n }\n e.target.value = '';\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n 'One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.';\n check = false;\n var x = document.getElementsByClassName(\n 'docUploadError'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = 'red';\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n 'docUploadError'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = 'green';\n }\n this.docUploadError2 =\n 'Compressing your documents. Please wait for the process to finish';\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append('studentdocid', this.docUploadID);\n formData.append('docName', this.docName);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append('document', file, file.name)\n );\n formData.append('Platform', 'CRM');\n formData.append('MailId', this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, this.docUploadID).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.cancelUpload();\n this.uploadSuccess = 'success';\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n 'File upload successful!',\n 'Success'\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.docUploadStatus = false;\n\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = 'failure';\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n ''\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(err.error.message, '');\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n ''\n );\n }\n }\n }\n },\n (err) => {\n this.handleError.handleError(err);\n this.uploadSuccess = 'failure';\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n ''\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(err.error.message, '');\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n ''\n );\n }\n }\n );\n }\n }\n cancelUpload() {\n document.getElementById('closeButton4').click();\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n\n this.getDocNameByDocId(this.docUploadID);\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = 'Select files to upload.';\n this.uploadSuccess = 'none';\n\n var x = document.getElementsByClassName(\n 'docUploadError'\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = 'green';\n }\n }\n\n open() {\n let payload = {\n LeadId: 0,\n GBPAssignedTo: '',\n Platform: 'CRM',\n // GUID: \"f083dc22-9ed2-4204-b46c-d4e2958b6de0\",\n GUID: '12356yyu98',\n StudentDocId: 0,\n notificationType: 'LeadComments',\n description: 'Test Comment',\n AgentMail: 'ramana@universityhub.com',\n Title: 'Test',\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: 'ramana@universityhub.com',\n GBPAssignedTo: '',\n GUID: '12356yyu98',\n LeadId: 0,\n Platform: 'CRM',\n StudentDocId: 0,\n Title: 'Comment',\n description: '12356yyu98',\n notificationType: 'LeadComments',\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.NotificationService.sendNotifications(payload2).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n viewLead(id) {\n this.sideNav.toggle();\n this.sideNavData({ id: id });\n }\n\n onInputActivity(event: any) {\n if (this.activityfilterString != '') {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n getTopBarCRM() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.isTopBarBind = false;\n this.uhleadsservice\n .getTopBarCRM(postData)\n .toPromise()\n .then((resp: any) => {\n this.totalPages = 1;\n if (this.leadType == 'all') {\n this.totalPages = resp.TopBarCount.total;\n } else if (this.leadType == 'assigned') {\n this.totalPages = resp.TopBarCount.assigned;\n } else if (this.leadType == 'assignedtoMe') {\n this.totalPages = resp.TopBarCount.assignedtoMe;\n } else if (this.leadType == 'completedDocs') {\n this.totalPages = resp.TopBarCount.completedDocs;\n } else if (this.leadType == 'documentsSubmitted') {\n this.totalPages = resp.TopBarCount.documentsSubmitted;\n } else if (this.leadType == 'pendingDocs') {\n this.totalPages = resp.TopBarCount.pendingDocs;\n } else if (this.leadType == 'reopen') {\n this.totalPages = resp.TopBarCount.reopen;\n } else if (this.leadType == 'revalidatedDocs') {\n this.totalPages = resp.TopBarCount.revalidatedDocs;\n } else if (this.leadType == 'studentDenied') {\n this.totalPages = resp.TopBarCount.studentDenied;\n } else if (this.leadType == 'unassigned') {\n this.totalPages = resp.TopBarCount.unassigned;\n } else if (this.leadType == 'uncontactable') {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == 'validatedDocs') {\n this.totalPages = resp.TopBarCount.validatedDocs;\n } else if (this.leadType == 'pending') {\n this.totalPages = resp.TopBarCount.pending;\n } else if (this.leadType == 'called') {\n this.totalPages = resp.TopBarCount.called;\n } else if (this.leadType == 'callback') {\n this.totalPages = resp.TopBarCount.callback;\n } else if (this.leadType == 'informed') {\n this.totalPages = resp.TopBarCount.informed;\n } else if (this.leadType == 'wrongnumber') {\n this.totalPages = resp.TopBarCount.wrongnumber;\n } else if (this.leadType == 'notanswered') {\n this.totalPages = resp.TopBarCount.notanswered;\n } else if (this.leadType == 'deferredintake') {\n this.totalPages = resp.TopBarCount.deferredintake;\n } else if (this.leadType == 'uncontactable') {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == 'graduate') {\n this.totalPages = resp.TopBarCount.graduate;\n } else if (this.leadType == 'graduate_transfer') {\n this.totalPages = resp.TopBarCount.graduate_transfer;\n } else if (this.leadType == 'freshman') {\n this.totalPages = resp.TopBarCount.freshman;\n } else if (this.leadType == 'graduate_visiting_student') {\n this.totalPages = resp.TopBarCount.graduate_visiting_student;\n } else if (this.leadType == 'non_degree') {\n this.totalPages = resp.TopBarCount.non_degree;\n } else if (this.leadType == 'transfer') {\n this.totalPages = resp.TopBarCount.transfer;\n } else if (this.leadType == 'dropdown') {\n this.uhleadsservice\n .getCountByCallStatus({\n status: this.cardLeadType,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n })\n .subscribe((count: any) => {\n this.totalPages = count.count;\n this.totalPages = Math.ceil(Number(this.totalPages) / 12);\n\n this.uhleadsservice.totalPages.next(this.totalPages);\n });\n }\n // this.totalPages = ~~(Number(this.totalPages) / 12) == 0 ? ~~(Number(this.totalPages) / 12) + 1 : ~~(Number(this.totalPages) / 12);\n this.totalPages = Math.ceil(Number(this.totalPages) / 12);\n this.uhleadsservice.totalPages.next(this.totalPages);\n\n this.topBarCounts = resp.TopBarCount;\n this.isTopBarBind = true;\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n\n sortData(arr, value) {\n return arr.sort((a, b) => {\n return a[value] - b[value];\n //return a[value] < b[value] ? -1 : a[value] > b[value] ? 1: 0\n });\n }\n toggleSort(column, order) {\n if (this.sortOrder == 'asc') {\n this.sortOrder = 'des';\n } else {\n this.sortOrder = 'asc';\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n if (column == 'createdAt') {\n if (this.currentCard == 'total') {\n column = 'createdAt';\n } else if (this.currentCard == 'validated') {\n column = 'ValidatedDate';\n } else if (this.currentCard == 'uncontactable') {\n column = 'createdAt';\n } else if (this.currentCard == 'completed') {\n column = 'CompletedDate';\n } else if (this.currentCard == 'updated') {\n column = 'createdAt';\n } else if (this.currentCard == 'revalidate') {\n column = 'RevalidateDate';\n } else if (this.currentCard == 'denied') {\n column = 'DeniedDate';\n } else if (this.currentCard == 'assigned') {\n column = 'createdAt';\n }\n }\n this.sortColumn = column;\n this.activityTable = sortJsonArray(\n this.activityTable,\n column,\n this.sortOrder\n );\n\n // if (this.sortOrder == 'asc'){\n // this.sortOrder ='des'\n // }else{\n // this.sortOrder = 'asc';\n // }\n }\n\n getCardCount(obj, type) {\n this.cardLeadType = type;\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = '';\n this.activityData2 = [];\n this.activityData = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n delete obj.ProjectId;\n obj.ProjectId = projects.filter(\n (x) => x.Name == environment.Sfcleads\n )[0].id;\n // obj.ProjectId = data;\n obj.page = this.pageNumber;\n obj.leadType = this.cardLeadType;\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n this.activityData2 = resp;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n });\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == '0000000000') {\n this.activityData2[i].PhoneNumber = '-';\n this.activityData2[i].CountryCode = '-';\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == 'CRM-Revalidate' ||\n this.activityData2[i].LeadDocStatus == 'Admin-Revalidate' ||\n this.activityData2[i].LeadDocStatus == 'Admin-revalidate' ||\n this.activityData2[i].LeadDocStatus == 'CRM-revalidate'\n ) {\n this.activityData2[i].LeadDocStatus = 'Revalidate';\n }\n }\n this.activityData = this.activityData2;\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.activityTable = this.activityData;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getCardData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = '';\n this.onClick(null);\n this.activityTable = [];\n let obj = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n page: this.pageNumber,\n };\n\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n //\n this.activityTable2 = resp;\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = '-') : a[key];\n });\n });\n //\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == '0000000000') {\n this.activityTable2[i].CountryCode = '-';\n this.activityTable2[i].PhoneNumber = '-';\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == 'CRM-Revalidate' ||\n this.activityTable2[i].LeadDocStatus == 'Admin-Revalidate' ||\n this.activityTable2[i].LeadDocStatus == 'Admin-revalidate' ||\n this.activityTable2[i].LeadDocStatus == 'CRM-revalidate'\n ) {\n this.activityTable2[i].LeadDocStatus = 'Revalidate';\n }\n }\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n 'total',\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n checkThresHold(content, item, id) {\n this.thresItem = item;\n this.thresId = id;\n if (item.TotalCalls > 12) {\n this.thresModal = this.modalService.open(content, {\n ariaLabelledBy: 'modal-basic-title',\n windowClass: 'myCustomModalClass',\n });\n } else {\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById('openModalButton').click();\n }\n }\n thresHold() {\n this.thresModal.close();\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById('openModalButton').click();\n }\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n onDIYearChange(data) {\n this.DIyear = data;\n }\n getLeadDocStatusName(value) {\n switch (value) {\n case 'notsubmitted':\n return 'Not Submitted';\n break;\n case 'previousintake':\n return 'Previous Intake';\n break;\n\n default:\n return value;\n break;\n }\n }\n sendSmsWp(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: '+' + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo('Message successfully sent.', 'Sent');\n let wpObj = {\n phone: '+' + item.CountryCode.replace('+', '') + item.PhoneNumber,\n };\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = '';\n }\n });\n });\n }\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.createLead\n .get('countryCode')\n .patchValue(this.selectedCountryCode);\n }\n selectCountryEdit(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.editLead\n .get('CountryCode')\n .patchValue(this.selectedCountryCode);\n this.leadtoEdit.CountryCode = this.selectedCountryCode.toString();\n }\n selectCountryEditName(country) {\n this.selectedCountryName = country.name;\n this.leadtoEdit.Country = this.selectedCountryName;\n this.uhleadsservice.editLead.get('Country').patchValue(country?.alpha2Code);\n }\n fetchCountries() {\n this.countries = countryCodes;\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n // onInputProgram(Event: any) {\n // let search = Event.target.value;\n // console.log(search)\n // if (search) {\n // this.majors = this.allMajors.filter((x) => {\n // return x.name.toLowerCase().includes(search.toLowerCase());\n // });\n // } else {\n // this.majors = this.allMajors;\n // }\n // }\n onInputProgram(Event: any) {\n let search = Event.target.value;\n if (search) {\n if (\n this.createLeads.studentapplicationtype.value == 'freshman' ||\n this.createLeads.studentapplicationtype.value == 'transfer' ||\n this.createLeads.studentapplicationtype.value ==\n 'non_degree'\n ) {\n this.listTerms = [];\n this.listTerms = this.terms.filter(\n (x) => x.term === 'Fall' || x.term === 'Spring'\n );\n this.majors = this.allMajors.filter((x) => {\n if (\n x.studentType == 'undergraduate' &&\n (x.name.toLowerCase().includes(search.toLowerCase()) ||\n x.value.toLowerCase().includes(search.toLowerCase()))\n ) {\n // if (\n // this.createLeads.studentapplicationtype.value == 'freshman' ||\n // this.createLeads.studentapplicationtype.value ==\n // 'non_degree'\n // )\n // return x.value != 'BS_NUR';\n if (\n this.createLeads.studentapplicationtype.value == 'freshman'\n ) {\n return x.value != 'BS_NUR' && !x.value.includes('ND_')\n } else if(this.createLeads.studentapplicationtype.value == 'transfer') {\n return !x.value.includes('ND_')\n } else if (\n this.createLeads.studentapplicationtype.value ==\n 'non_degree') {\n return x.value.includes('ND_');\n }\n else return x;\n\n }\n });\n } else {\n this.listTerms = this.terms.filter(\n (x) => x.term !== 'Fall' && x.term !== 'Spring'\n );\n this.majors = this.allMajors.filter(\n (x) =>\n x.studentType == 'graduate' &&\n (x.name.toLowerCase().includes(search.toLowerCase()) ||\n x.value.toLowerCase().includes(search.toLowerCase()))\n );\n }\n } else {\n if (\n this.createLeads.studentapplicationtype.value == 'freshman' ||\n this.createLeads.studentapplicationtype.value == 'transfer' ||\n this.createLeads.studentapplicationtype.value ==\n 'non_degree'\n ) {\n this.listTerms = [];\n this.listTerms = this.terms.filter(\n (x) => x.term === 'Fall' || x.term === 'Spring'\n );\n\n this.majors = this.allMajors.filter((x) => {\n if (x.studentType == 'undergraduate') {\n // if (\n // this.createLeads.studentapplicationtype.value == 'freshman' ||\n // this.createLeads.studentapplicationtype.value ==\n // 'non_degree'\n // )\n // return x.value != 'BS_NUR';\n if (\n this.createLeads.studentapplicationtype.value == 'freshman'\n ) {\n return x.value != 'BS_NUR' && !x.value.includes('ND_')\n } else if (this.createLeads.studentapplicationtype.value == 'transfer') {\n return !x.value.includes('ND_')\n } else if (\n this.createLeads.studentapplicationtype.value ==\n 'non_degree') {\n return x.value.includes('ND_');\n }\n else return x;\n }\n });\n } else {\n this.listTerms = this.terms.filter(\n (x) => x.term !== 'Fall' && x.term !== 'Spring'\n );\n this.majors = this.allMajors.filter((x) => x.studentType == 'graduate');\n }\n }\n }\n\n onSelectProgram(programValue: any) {\n this.selectedProgram = programValue.name;\n this.uhleadsservice.createLead.controls['program'].setValue(\n programValue.value\n );\n }\n onSelectTerms(termsValue: any) {\n this.selectedTerm = termsValue.name;\n this.uhleadsservice.createLead.controls['EnrollmentTerm'].setValue(\n termsValue.term\n );\n this.uhleadsservice.createLead.controls['EnrollmentYear'].setValue(\n termsValue.year\n );\n }\n\n getDocNameByDocId(id) {\n let obj = {\n docId: id,\n };\n this.uhleadsservice.getDocNameByDocId(obj).subscribe(\n (data: any) => {\n if (data.data && data.data.ProgramDoc) {\n this.docName =\n new Date().getTime() +\n Math.floor(100000 + Math.random() * 900000).toString() +\n '_' +\n data.data.ProgramDoc;\n } else {\n this.docName =\n new Date().getTime() + Math.floor(100000 + Math.random() * 900000);\n }\n },\n (err) => { }\n );\n }\n onstudentTypeChange(event: any) {\n this.uhleadsservice.editLead.controls['studentapplicationtype'].setValue(\n event\n );\n this.leadtoEdit.studentapplicationtype = event;\n }\n\n onApplicationType(item) {\n this.selectedTerm = '';\n this.selectedProgram = '';\n if (\n item === 'freshman' ||\n item === 'transfer' ||\n item == 'non_degree'\n ) {\n this.listTerms = [];\n\n this.listTerms = this.terms.filter(\n (x) => x.term === 'Fall' || x.term === 'Spring'\n );\n this.majors = this.allMajors.filter((x) => {\n if (x.studentType == 'undergraduate') {\n // if (item == 'freshman' || item == 'non_degree')\n // return x.value != 'BS_NUR';\n\n if (\n item == 'freshman'\n ) {\n return x.value != 'BS_NUR' && !x.value.includes('ND_')\n } else if (item == 'transfer') {\n return !x.value.includes('ND_')\n } else if (\n item ==\n 'non_degree') {\n return x.value.includes('ND_');\n }\n\n else return x;\n }\n });\n } else {\n this.listTerms = this.terms.filter(\n (x) => x.term !== 'Fall' && x.term !== 'Spring'\n );\n this.majors = this.allMajors.filter((x) => x.studentType == 'graduate');\n }\n }\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date : \"medium\" }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    DirectionInComing CallOutGoing Call
    Call Recording\n \n
    Comments{{ i.Comments }}
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    GUID{{ sideViewerData.GUID }}
    Name\n {{\n sideViewerData.FirstName + \" \" + sideViewerData.LastName\n | titlecase\n }}\n
    DOB{{ sideViewerData.DOB | date: \"dd MMM, yyyy\"}}
    Student Type{{ sideViewerData.applicationtype | titlecase}}
    Submitted Date{{ sideViewerData.createdAt | date : \"medium\" }}
    APP Status{{ sideViewerData.APPStatus | titlecase }}
    Enrollment Year{{ sideViewerData.EnrollmentYear || \"NA\" }}
    Program{{ sideViewerData.Program }}
    Phone Number\n {{\n \"+\" + sideViewerData.CountryCode + sideViewerData.PhoneNumber\n }}\n
    Email{{ sideViewerData.Email }}
    Address\n {{\n sideViewerData.Address +\n \" \" +\n sideViewerData.City +\n \" \" +\n sideViewerData.State +\n \" \" +\n sideViewerData.Zip +\n \" \" +\n sideViewerData.Country || \"NA\" | titlecase\n }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item.ProgramDoc | titlecase }}\n
    \n \n
    \n\n
    \n {{ item.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n\n \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    {{ i.AgentName }}
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.total }}\n
    \n\n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.assignedtoMe || 0 }}\n
    \n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.completedDocs || 0 }}\n
    \n
    \n
    \n
    Completed Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.validatedDocs || 0 }}\n
    \n
    \n
    \n
    Validated Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.documentsSubmitted || 0 }}\n
    \n
    \n
    \n
    Documents Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.pendingDocs || 0 }}\n
    \n
    \n
    \n
    Documents Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.studentDenied || 0 }}\n
    \n
    \n
    \n
    Students Denied
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.revalidatedDocs || 0 }}\n
    \n
    \n
    \n
    Revalidate Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.uncontactable || 0 }}\n
    \n
    \n
    \n
    Uncontactable
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.unassigned || 0 }}\n
    \n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assigned || 0 }}\n
    \n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.graduate || 0 }}\n
    \n
    \n
    \n
    Graduate
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.graduate_transfer || 0 }}\n
    \n
    \n
    \n
    Graduate Transfer
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.freshman || 0 }}\n
    \n
    \n
    \n
    Freshman
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.transfer || 0 }}\n
    \n
    \n
    \n
    Undergraduate Transfer
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCounts?.non_degree || 0 }}\n
    \n
    \n
    \n
    Non Degree student
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    Total Applications
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n\n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Add New Document\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Upload Documents\n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n \n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded\n successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document\n extensions, upload supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    Actions\n
    \n
    Created
    \n
    \n Validation\n
    \n
    \n Uncontactable\n
    \n
    \n Completed\n
    \n
    \n Revalidation\n
    \n
    Denied
    \n
    \n Assigned\n
    \n \n
    \n
    \n Updated\n \n \n Student Type\n \n \n Name\n \n \n Email\n \n \n Assigned To\n \n \n Phone\n \n \n Term\n \n \n Year\n \n \n Programme\n \n \n Doc_status\n \n \n Call_status\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.ValidatedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.CompletedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.DeniedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.RevalidateDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n
    \n
    \n
    \n
    \n {{ item.updatedAt | date : \"dd MMM, yyyy\" }}\n
    \n
    \n
    \n
    \n \n {{ item?.applicationtype == 'graduate_transfer'?'Graduate Transfer': item?.applicationtype == 'non_degree'?'Non Degree Student': item?.applicationtype == ' graduate_visiting_student'?'Graduate Visiting Student':item?.applicationtype || '-' | titlecase }}\n \n
    \n 10\">{{item?.applicationtype == 'graduate_transfer'?'Graduate Transfer':item?.applicationtype == 'non_degree'?'Non Degree Student': item?.applicationtype == 'graduate_visiting_student'?'Graduate Visiting Student':item?.applicationtype | titlecase}}\n
    \n\n
    \n \n \n \n
    \n
    \n \n {{ item.Email | lowercase }}\n \n
    \n {{ item.Email | lowercase }}\n
    \n \n
    \n
    \n
    \n \n\n

    \n {{ item.AssignedtoInitial }}\n

    \n
    \n
    \n
    \n \n {{ item.AssignedtoName || '-' | titlecase }}\n \n
    \n {{ item.AssignedtoName | titlecase }}\n
    \n \n
    \n
    \n {{ item.PhoneNumber }}\n \n {{ item.EnrollmentTerm }}\n \n {{ item.EnrollmentYear }}\n \n {{ item.Program | uppercase }}\n \n
    \n
    \n \n Not Submitted\n \n
    \n Not Submitted\n
    \n
    \n
    \n \n {{ getLeadDocStatusName(item?.LeadDocStatus) | titlecase }}\n \n
    \n {{ getLeadDocStatusName(item?.LeadDocStatus) | titlecase }}\n
    \n \n
    \n Pending\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred\n Intake\n Not Answered\n Deferred Intake\n Un Contactable\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Calling Screens\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    \n {{ callStatus }}\n
    \n

    \n \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Student details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{\n callData[0]?.FirstName +\n \" \" +\n callData[0].LastName\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.GUID }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.APPStatus }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0].DOB | date: \"dd MMM, yyyy\"}}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.EnrollmentYear }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Program }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.PhoneNumber }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0]?.Email }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Address }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Document details
    \n
    \n
    \n
    \n
    \n \n {{\n documentsList[i].DocumentName }}\n
    \n
    \n \n {{ documentsList[i + 1].DocumentName }}\n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{\n sideViewerData.FirstName +\n \" \" +\n sideViewerData.LastName\n }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n
    \n {{ callStatus }}\n
    \n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n \n \n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    LastName is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n \n
    \n
    \n\n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Please use valid country code .
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    Please use valid phone number .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n \n
    Student type is required
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
      \n
    • \n {{ item.name }}\n
    • \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n {{ item.name }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n\n \n
    \n \n
    \n \n \n
    \n\n \n \n
    \n

    \n Update Lead Details\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    Last Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid Email
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0]\n }})\n \n
    • \n
    \n
    \n\n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n\n
    \n
    Phone Number is required
    \n
    Only numbers are allowed
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n
    \n
    Student type is required
    \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    Enrollment Year is required
    \n
    Only numbers are allowed
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    Enrollment Term is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }}\n \n
    • \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    Call

    \n \n
    \n
    \n
    \n
    \n You have reached the calling limit.
    Are you sure you want\n to continue?\n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { catchError } from \"rxjs/operators\";\nimport { FormArray, FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { SharedService } from \"./../../shared/shared.service\";\nimport { MarketingService } from \"./../marketing/marketing.service\";\nimport { InputModule } from \"../companymodules/models/companymodule.model\";\n// import { Component, Input, OnInit } from '@angular/core';\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-smsmodules\",\n templateUrl: \"./smsmodules.component.html\",\n styleUrls: [\"./smsmodules.component.css\"],\n})\nexport class SmsmodulesComponent implements OnInit {\n public companyId: any;\n public updateModules: any[] = [];\n public userData: any;\n @Input() update: boolean = false;\n public order: boolean = false;\n public orderFeild: string = \"UpdatedDate\";\n public orderString: boolean | \"asc\" | \"desc\" = \"desc\";\n public search: string;\n public page: any = 1;\n public pageSize: any = 6;\n closeResult: string;\n @Input() submitted: boolean;\n public isError: boolean = false;\n public Module: string = \"\";\n @Input() public feedBackId: string;\n @Input() public smsUpdate: boolean = false;\n\n @Input() smsForm;\n\n constructor(\n private readonly marketingService: MarketingService,\n private readonly sharedService: SharedService,\n private readonly modalService: NgbModal,\n private handleError: ErrorHandlerService,\n private readonly fb: FormBuilder\n ) {}\n\n ngOnInit() {\n if (!this.smsUpdate) {\n this.addNewNumber();\n this.smsForm.patchValue({\n time: { hour: 0o0, minute: 15, second: 30 },\n });\n }\n // this.getCompanyId();\n }\n\n getCompanyInfoData() {\n this.marketingService\n .getAllSmsByCompany(this.companyId)\n .subscribe((data) => {\n this.updateModules = data;\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n sortOrder(feildName) {\n this.orderFeild = feildName;\n this.order = !this.order;\n if (this.order) {\n this.orderString = \"asc\";\n } else {\n this.orderString = \"desc\";\n }\n }\n\n open(content) {\n if (!this.update) {\n this.addNewNumber();\n this.smsForm.patchValue({\n time: { hour: 0o0, minute: 15, second: 30 },\n });\n }\n if (this.modalService.hasOpenModals) {\n this.modalService.open(content, { size: \"md\" }).result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n }\n }\n\n private getDismissReason(reason: any): string {\n this.resetForm();\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n resetForm() {\n this.smsForm.reset();\n this.removeAllControls();\n \n // this.smsForm.controls.Module.enable()\n this.update = false;\n this.submitted = false;\n // this.Module = '';\n this.feedBackId = null;\n }\n\n updateModule(content, id) {\n this.update = true;\n }\n\n updateFeedBackValues(data) {\n let beforeArray = data[\"BeforeSMSTime\"].split(\":\");\n let time = {\n hour: +beforeArray[0],\n minute: +beforeArray[1],\n second: +beforeArray[2],\n };\n this.removeAllControls();\n if (data[\"SMSType\"] === \"Feedback\") {\n this.marketingService\n .getSmsConfig({ id: data[\"id\"], moduleName: data[\"Module\"] })\n .subscribe((data1: any) => {\n if (data1) {\n \n this.feedBackId = data1[\"id\"];\n data1[\"SmsConfig\"].forEach((element) => {\n this.Ivr().push(\n this.fb.group({\n feedBackNumber: element[\"feedBackNumber\"],\n value: element[\"value\"],\n })\n );\n });\n\n this.smsForm.patchValue({\n smsTextHeader: data1[\"SmsTextHeader\"],\n smsTextFooter: data1[\"SmsTextFooter\"],\n // Module: data['Module'],\n time: time,\n // RedialThreshold: data['RedialThreshold'],\n SMSType: data[\"SMSType\"],\n });\n \n } else {\n // this.addNewNumber();\n this.smsForm.patchValue({\n smsTextHeader: data[\"SMSText\"],\n smsTextFooter: \"\",\n // Module: data['Module'],\n time: time,\n // RedialThreshold: data['RedialThreshold'],\n SMSType: data[\"SMSType\"],\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n get f() {\n return this.smsForm.controls;\n }\n\n Ivr(): FormArray {\n return this.smsForm.get(\"Ivr\") as FormArray;\n }\n\n newNumber(): FormGroup {\n return this.fb.group({\n feedBackNumber: this.Ivr().length != 0 ? this.Ivr().length - 1 + 1 : 0,\n value: \"\",\n });\n }\n\n addNewNumber() {\n this.Ivr().push(this.newNumber());\n }\n\n removeNumber(index: number) {\n this.Ivr().removeAt(index);\n }\n\n removeAllControls() {\n this.Ivr().clear();\n }\n}\n","
    \n \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    SMS Type is required
    \n
    \n
    \n
    \n \n \n \n \n
    \n SMS Text is required\n
    \n
    \n
    \n\n \n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n\n
    \n \n \n \n \n
    \n SMS Text Footer is required\n
    \n
    \n \n\n
    \n \n \n
    \n\n \n \n \n\n","import { EmailsettingsComponent } from \"./../emailsettings/emailsettings.component\";\nimport { Router } from \"@angular/router\";\nimport { Template } from \"./../create-agent/models/template.model\";\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { MailserviceService } from \"../mailservice.service\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\n@Component({\n selector: \"app-templates\",\n templateUrl: \"./templates.component.html\",\n styleUrls: [\"./templates.component.less\"],\n})\nexport class TemplatesComponent implements OnInit, OnDestroy {\n templates: Template[] = [];\n search: string;\n userData: any;\n projectId: any;\n currentTemplateHtml: any;\n project: Subscription;\n public page: any = 1;\n public pageSize: any = 8;\n\n constructor(\n private router: Router,\n private mailService: MailserviceService,\n private sharedService: SharedService,\n private handleError: ErrorHandlerService,\n private modalService: NgbModal, // private modalRef: NgbModalRef\n public projectchangeService: ProjectchangeService\n ) {}\n\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n ngOnInit() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // if (this.userData[\"companyId\"] !== 0) {\n // this.companyId = this.userData[\"companyId\"];\n // this.fetchTemplates(this.companyId);\n // }\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.fetchTemplates(data);\n // // this.sharedService.getProjectAdmin(this.projectId).subscribe(data=>{\n // // this.admin\n // // })\n // // this.companId = data;\n // }\n // });\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.fetchTemplates(this.projectId);\n },500)\n this.sharedService.pageEvent.emit({ pageName: \"Mail Templates\" });\n }\n\n updateTemplate(id) {\n \n this.router.navigate([\"/settings/email/\", id]);\n }\n\n fetchTemplates(companyId) {\n this.mailService.getAllTemplates(companyId).subscribe((data) => {\n \n this.templates = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n editModal(templateId) {\n \n let modal = this.modalService.open(EmailsettingsComponent, { size: \"xl\" });\n modal.componentInstance.templateId = templateId;\n modal.result.then(\n (data) => {\n this.fetchTemplates(this.projectId);\n },\n (err) => {\n this.fetchTemplates(this.projectId);\n }\n );\n }\n\n open(content, html) {\n this.currentTemplateHtml = html;\n this.modalService.open(content, { size: \"lg\" });\n }\n\n deleteTemplate(id) {\n this.mailService.deleteTemplate(id).subscribe((data) => {\n this.fetchTemplates(this.projectId);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n createTemplate() {\n let modal = this.modalService.open(EmailsettingsComponent, { size: \"xl\" });\n modal.result.then(\n (data) => {\n this.fetchTemplates(this.projectId);\n },\n (err) => {\n this.fetchTemplates(this.projectId);\n }\n );\n }\n projectChange(data) {\n this.projectId = data;\n this.fetchTemplates(data); \n }\n}\n","
    \n \n
    \n
    \n
    \n
    \n \n \"\"\n \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n \n\n \n
    \n\n
    \n \n
    \n
    \n
    IdTemplatesCreated ByCreated DateUpdated DateStatusActions
    \n {{ \"Template\" + item[\"id\"] }}\n {{ item[\"Name\"] | titlecase }}{{ item[\"Creator\"] | titlecase }}\n {{ item[\"createdAt\"] | date: \"medium\" }}\n \n {{ item[\"updatedAt\"] | date: \"medium\" }}\n \n
    \n {{ item[\"Status\"] ? \"Active\" : \"In Active\" }}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n

    View Template

    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n","import { MarketingService } from \"./../../marketing/marketing.service\";\nimport { GoogledirectionsComponent } from \"./../googledirections/googledirections.component\";\nimport { MapsComponent } from \"./../maps/maps.component\";\nimport { AuthService } from \"./../../../account/auth/auth.service\";\nimport { NgForm } from \"@angular/forms\";\nimport {\n Component,\n OnInit,\n ViewEncapsulation,\n AfterViewInit,\n ViewChild,\n NgZone,\n ElementRef,\n ContentChild,\n ViewChildren,\n OnDestroy,\n} from \"@angular/core\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { TicketsService } from \"../tickets.service\";\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\nimport { DatePipe } from \"@angular/common\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport * as moment from \"moment\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\n// import { TicketHistory } from './models/tickethistory.model';\nimport { MailserviceService } from \"../../mailservice.service\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\n// import { MatMenuTrigger } from \"@angular/material\";\nimport { GroupService } from \"../../group.service\";\nimport { Subscription } from \"rxjs\";\nimport { CreateAgent } from \"../../create-agent/create-agent.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { RoleService } from \"../../role-management/role.service\";\nimport { MapsAPILoader, MouseEvent } from \"@agm/core\";\nimport { ProjectService } from \"../../project-management/project.service\";\nimport { MatMenuTrigger } from \"@angular/material/menu\";\nimport { ProjectchangeService } from \"src/app/layout/project-change/projectchange.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\n\ndeclare let $: any;\n\n@Component({\n selector: \"app-add-update-view-tickets\",\n templateUrl: \"./add-update-view-tickets.component.html\",\n styleUrls: [\"./add-update-view-tickets.component.css\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AddUpdateViewTicketsComponent\n implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(\"f\", { static: true }) form: NgForm;\n @ViewChild(MatMenuTrigger, { static: true }) trigger: MatMenuTrigger;\n @ViewChildren(\"latest\") latestTags;\n\n tickethistory: any[] = [];\n isUpdate: boolean = false;\n assignedto: { name: string; id: string }[] = [];\n selectedassigned: any;\n dropdownSettings: IDropdownSettings = {};\n closeDropdownSelection = false;\n disabled = false;\n assignmentgroup: { name: string; id: string }[] = [];\n priority: any = [];\n urgency: any = [];\n selectedurgency: any = [];\n selectedpriority: any = [];\n selectedgroup: any[] = [];\n createdDate: any = \"\";\n updatedDate: any;\n followupdate: any;\n statusselected: any = [];\n status: any[] = [\"open\", \"inprogress\", \"hold\", \"closed\"];\n detial: any;\n desc: any;\n latestupdate: any;\n ReportedBy: any;\n urlid: any;\n ticketid: any;\n updatedby: any;\n template: any = \"\";\n emailView: any = \"\";\n isMail: boolean = false;\n ticketChannel: string = \"accessque\";\n customerTickets: any[] = [];\n smsMessage: any;\n userData: any;\n fromMail: string = \"support@accessque.com\";\n public agents: any[] = [];\n public ticketChat: any = null;\n public address: string = \"\";\n public latlng: any;\n public fromNumber: string;\n public loadMoreHistory: number = 5;\n\n public lastUpdate: string = \"\";\n\n customer: object = {\n id: \"\",\n mail: \"\",\n phoneNumber: \"\",\n preferedContact: \"mail\",\n lastContacted: \"\",\n profilePhoto: { downloadUrl: \"assets/img/user.svg\" },\n };\n\n public closeResult: string = \"\";\n public attachments: any[] = [];\n error = \"\";\n public lastStatus: any;\n public superAdmin: Boolean = false;\n public projectId: any;\n public adminSubscription: Subscription;\n public selectIndex: number = 0;\n public agentLocation: any = null;\n public project: Subscription;\n public currentProject: any = {};\n\n constructor(\n public sharedService: SharedService,\n public ticketsService: TicketsService,\n public datepipe: DatePipe,\n public router: Router,\n public route: ActivatedRoute,\n private mailService: MailserviceService,\n private modalService: NgbModal,\n private groupService: GroupService,\n private authService: AuthService,\n private agentService: CreateAgent,\n private readonly companyService: RoleService,\n private readonly marketingService: MarketingService,\n private readonly _snackBar: MatSnackBar,\n private readonly projectService: ProjectService,\n public projectchangeService: ProjectchangeService,\n private handleError: ErrorHandlerService,\n\n ) { }\n\n ngAfterViewInit() { }\n ngOnDestroy(): void {\n if (this.project) {\n this.project.unsubscribe();\n }\n }\n\n ngOnInit() {\n let value = JSON.parse(localStorage.getItem(\"userData\"));\n this.userData = value;\n this.sharedService.saveAddress.subscribe((data) => {\n if (data !== null) {\n if (data[\"types\"] === \"ticket\") {\n this.latlng = data[\"latlng\"];\n this.address =\n data[\"address\"] != null\n ? data[\"address\"].replace(/['\"]+/g, \"\")\n : \"\";\n }\n } else {\n }\n });\n\n // this.adminSubscription = this.authService.companyAdmin.subscribe((data) => {\n // if (this.userData[\"companyId\"] !== 0) {\n // this.superAdmin = data;\n // }\n // });\n\n this.agentService.getAgentNames().subscribe((data) => {\n this.agents = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n // this.project = this.sharedService.projectId.subscribe((data) => {\n // if (data) {\n // this.projectId = data;\n // this.getGroupsAndAgent();\n // this.projectService.getProject(this.projectId).subscribe((data) => {\n // this.fromMail = data[\"SupportMail\"];\n // this.fromNumber = data[\"TwilioNumber\"];\n // });\n // this.getTemplate(data);\n // this.sharedService.currentProject.subscribe((data) => {\n // if (data) {\n // this.currentProject = data;\n // }\n // });\n // }\n // });\n\n setTimeout(() => {\n this.projectId = this.projectchangeService._projectId;\n this.getGroupsAndAgent();\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.fromMail = data[\"SupportMail\"];\n this.fromNumber = data[\"TwilioNumber\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.getTemplate(this.projectId);\n this.sharedService.currentProject.subscribe((data) => {\n if (data) {\n this.currentProject = data;\n }\n });\n }, 500)\n\n this.route.params.subscribe((res) => {\n if (res[\"id\"]) {\n this.urlid = res[\"id\"];\n this.isUpdate = true;\n this.prefillfeild(res[\"id\"]);\n } else {\n if (res[\"phoneNumber\"]) {\n this.customer[\"phoneNumber\"] = res[\"phoneNumber\"];\n this.ticketChannel = \"call\";\n this.getCustomerByPhone(res[\"phoneNumber\"]);\n }\n if (res[\"email\"]) {\n this.customer[\"mail\"] = res[\"email\"];\n }\n if (res[\"name\"]) {\n this.ReportedBy = res[\"name\"];\n }\n }\n });\n\n if (!this.isUpdate) {\n this.ticketsService.getticketid().subscribe((res) => {\n this.ticketid = res[\"ticketnumber\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n this.updatedby = value[\"mail\"];\n\n if (!this.isUpdate) {\n this.selectedassigned = value[\"mail\"];\n this.groupService.getAgentGroups(value[\"id\"]).subscribe((data) => {\n \n if (data[0] && this.userData[\"companyId\"] !== 0) {\n this.form.form.patchValue({\n assignmentgroup: data[0][\"id\"],\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.selectedpriority.push(\"Priority 3\");\n this.selectedurgency.push(\"low\");\n this.statusselected.push(\"open\");\n this.lastStatus = \"open\";\n const now = moment();\n this.createdDate = this.datepipe.transform(Date.now(), \"medium\").toString();\n this.updatedDate = this.createdDate;\n // this.customer[\"lastContacted\"] = this.createdDate;\n }\n\n const now = moment().add(2, \"days\").toDate();\n\n this.followupdate = {\n year: now.getFullYear(),\n month: now.getMonth() + 1,\n day: now.getDate(),\n };\n\n this.sharedService.pageEvent.emit({\n pageName: \"Add ticket\",\n togglePage: true,\n });\n\n this.dropdownSettings = {\n singleSelection: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: true,\n closeDropDownOnSelection: true,\n };\n\n // let sub = this.sharedService.CompanyId.subscribe((data) => {\n // this.companyId = data;\n // if (value[\"companyId\"] === 0) {\n // }\n // });\n\n // if (!(value.companyId === 0)) {\n // this.companyId = value.companyId;\n // }\n\n // this.agentService.GetAllGroups(this.companyId).subscribe((res: any[]) => {\n // this.assignmentgroup = res.map((item) => {\n // return { name: item[\"Name\"], id: item[\"id\"] };\n // });\n // });\n\n // this.ticketsService.getUsersList(this.companyId).subscribe((res: any[]) => {\n // this.assignedto = res.map((item) => {\n // return { name: item[\"Mailid\"], id: item[\"id\"] };\n // });\n // });\n\n this.ticketsService.getpriorityList().subscribe((res: any[]) => {\n this.priority = res.map((item) => {\n return item[\"Name\"];\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.ticketsService.geturgencyList().subscribe((res: any[]) => {\n this.urgency = res.map((item) => {\n return item[\"Name\"];\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n open(content, type) {\n \n this.modalService\n .open(content, { size: type === \"phone\" ? \"md\" : \"lg\" })\n .result.then(\n (result) => {\n this.closeResult = `Closed with: ${result}`;\n },\n (reason) => {\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }\n );\n \n }\n\n mapContentOpen(type) {\n if (type === \"customer\") {\n this.modalService.open(MapsComponent);\n if (this.latlng) {\n this.sharedService.saveAddress.next({\n latlng: this.latlng,\n address: this.address.replace(/['\"]+/g, \"\"),\n types: \"ticket\",\n });\n } else {\n this.sharedService.saveAddress.next({\n latlng: null,\n types: \"ticket\",\n address: null,\n });\n }\n } else {\n this.sharedService.traceLocation.next({\n source: this.agentLocation,\n destination: this.latlng,\n });\n this.modalService.open(GoogledirectionsComponent);\n }\n }\n\n private getDismissReason(reason: any): string {\n if (reason === ModalDismissReasons.ESC) {\n return \"by pressing ESC\";\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return \"by clicking on a backdrop\";\n } else {\n return `with: ${reason}`;\n }\n }\n\n getGroupsAndAgent() {\n this.agentService.GetAllGroups(this.projectId).subscribe((res: any[]) => {\n this.assignmentgroup = res.map((item) => {\n return { name: item[\"Name\"], id: item[\"id\"] };\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.ticketsService.getUsersList(this.projectId).subscribe((res: any[]) => {\n this.assignedto = res.map((item) => {\n return { name: item[\"Mailid\"], id: item[\"id\"] };\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n prefillfeild(id) {\n return this.ticketsService.getTicketByID(id).subscribe((res) => {\n setTimeout(() => {\n this.form.form.patchValue({\n assignedto: res[\"Assignedto\"],\n assignmentgroup: res[\"AssignmentGroup\"],\n status: [res[\"RequestStatus\"]],\n priority: [res[\"Priority\"]],\n urgency: [res[\"Urgency\"]],\n });\n this.ticketsService\n .getAgentLocation(res[\"Assignedto\"])\n .subscribe((data) => {\n if (data[\"LatLng\"]) {\n this.agentLocation = data[\"LatLng\"];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.lastStatus = res[\"RequestStatus\"];\n let datecreate = res[\"CreatedDate\"];\n let dateupdated = res[\"UpdatedDate\"];\n this.createdDate = this.datepipe\n .transform(datecreate, \"medium\")\n .toString();\n this.updatedDate = this.datepipe\n .transform(dateupdated, \"medium\")\n .toString();\n this.detial = res[\"RequestDetail\"];\n this.desc = res[\"RequestDescription\"]\n ? res[\"RequestDescription\"].replace(/^\\s*\\n/gm, \"\")\n : \"\";\n this.emailView =\n res[\"EmailDetails\"] === null ? \"\" : res[\"EmailDetails\"];\n \n this.lastUpdate = res[\"LatestUpdate\"].replace(/^\\s*\\n/gm, \"\");\n this.latestupdate = \"\";\n this.ReportedBy = res[\"ReportedBy\"];\n this.ticketid = res[\"RequestId\"];\n this.ticketsService.getWebChat(this.ticketid).subscribe((data) => {\n if (data) {\n this.ticketChat = data[\"Conversation\"];\n \n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.ticketChannel = res[\"TicketChannel\"];\n\n let attachments = res[\"Attachements\"]\n ? res[\"Attachements\"].map((val) => JSON.parse(val))\n : [];\n for (let attach of attachments) {\n this.agentService\n .getSignedUrl({ url: attach[\"url\"] })\n .subscribe((datas) => {\n this.attachments.push({\n name: attach[\"name\"],\n url: datas[\"url\"],\n downloadUrl: datas[\"url\"],\n });\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n this.ticketsService.gettickethistory(this.ticketid).subscribe((res) => {\n this.tickethistory = res;\n \n }, (error) => {\n this.handleError.handleError(error)\n });\n\n this.ticketsService\n .getCustomerByTicket(this.ticketid)\n .subscribe((data) => {\n this.customer[\"mail\"] = data[\"Mailid\"];\n this.customer[\"phoneNumber\"] = data[\"PhoneNumber\"];\n this.customer[\"lastContacted\"] = this.datepipe\n .transform(data[\"LastContacted\"], \"dd/MM/yy, hh:mm a\")\n .toString();\n this.customer[\"preferedContact\"] = data[\"PrefferedContact\"];\n if (data[\"ProfilePhoto\"]) {\n this.customer[\"profilePhoto\"][\"downloadUrl\"] =\n data[\"ProfilePhoto\"];\n }\n if (data[\"Address\"]) {\n this.address = data[\"Address\"].replace(/['\"]+/g, \"\");\n }\n this.latlng = data[\"LatLng\"];\n\n this.customer[\"id\"] = data[\"id\"];\n this.ticketsService\n .getCustomerTickets(data[\"id\"], this.projectId)\n .subscribe((data) => {\n if (data.length > 0) {\n this.customerTickets = data;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 3);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n toggleClass() {\n $(\"#chatDiv\").toggleClass(\"toggleChat\");\n $(\"#chatSideBar\").toggleClass(\"toggleSideBar\");\n this.sharedService.pageEvent.emit({ togglePage: true });\n }\n\n submit(value, valid, form) {\n \n if (this.isMail) {\n if (!this.customer[\"mail\"]) {\n this.selectIndex = 2;\n // setTimeout(() => {\n // this.isMail = false;\n // }, 5000)\n return;\n }\n }\n if (valid) {\n const ticket: Object = {\n ticketid: this.ticketid,\n reportedby: value.reportedby,\n assignedto: value.assignedto,\n priority: value.priority[0],\n group: value.assignmentgroup,\n urgency: value.urgency[0],\n detail: this.detial,\n desc: this.desc,\n latestupdate: value.latestupdate,\n status: value.status[0],\n updatedby: this.updatedby,\n mail: this.customer[\"mail\"],\n preferedContact: this.customer[\"preferedContact\"],\n phoneNumber: this.customer[\"phoneNumber\"],\n attachements: this.attachments,\n companyId: this.projectId,\n latlng: this.latlng,\n address: this.address.replace(/['\"]+/g, \"\"),\n profilePhoto: this.customer[\"profilePhoto\"],\n // ticketChannel:''\n };\n \n\n if (this.isMail || value.status[0] !== this.lastStatus) {\n let replacements = {\n ticketid: this.ticketid,\n activity: this.latestupdate,\n name: this.ReportedBy,\n };\n\n const result = this.template.replace(/{{([^{{]+)}}/g, (match, key) => {\n // If there's a replacement for the key, return that replacement with a `
    `. Otherwise, return a empty string.\n return replacements[key] !== undefined ? replacements[key] : \"\";\n });\n const details = `
    To: ${this.customer[\"mail\"]\n }
    \n
    From: support@accessque.com
    \n
    \n
    Subject: ${this.detial\n }: ${this.ticketid}
    \n
    Time Stamp: \n ${this.datepipe\n .transform(Date.now(), \"medium\")\n .toString()}
    \n `;\n const mailBody = this.emailView ? this.emailView : \"\";\n\n this.emailView =\n \"

    \" +\n details +\n \"

    \" +\n result +\n \"

    \" +\n this.emailView || \"\" + \"

    \";\n ticket[\"emailDetails\"] = this.emailView || details + result;\n\n this.mailService\n .sendmail(\n {\n To: this.customer[\"mail\"].trim(),\n From: {\n email: \"support@accessque.com\",\n name: this.currentProject[\"Name\"],\n },\n Subject: this.detial + ` : ${this.ticketid}`,\n Body: {\n html:\n result + \"

    \" + mailBody ||\n \"\" + \"

    \",\n },\n ReplyTo: this.fromMail,\n },\n this.projectId\n )\n .subscribe((data) => { }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n if (this.isUpdate) {\n this.ticketsService\n .updateCustomer(\n {\n mail: this.customer[\"mail\"],\n preferedContact: this.customer[\"preferedContact\"],\n customerName: this.ReportedBy,\n lastContacted: this.customer[\"lastContacted\"],\n phoneNumber: this.customer[\"phoneNumber\"],\n address: this.address.replace(/['\"]+/g, \"\"),\n latlng: this.latlng,\n profilePhoto: this.customer[\"profilePhoto\"],\n },\n this.customer[\"id\"]\n )\n .subscribe(\n (data) => {\n \n }, (error) => {\n this.error = \"something went wrong!! please try again\";\n setTimeout(() => {\n this.error = \"\";\n }, 5000);\n this.handleError.handleError(error)\n });\n if (ticket[\"status\"] === \"open\") {\n ticket[\"status\"] = \"inprogress\";\n }\n\n return this.ticketsService.updateTicket(ticket, this.urlid).subscribe(\n (res) => {\n this.router.navigate([\"/dashboard/dashboard-view\"]);\n this._snackBar.open(\"Ticket Updated Successfully\", \"Close\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n });\n }, (error) => {\n this.error = \"something went wrong!! please try again\";\n setTimeout(() => {\n this.error = \"\";\n }, 5000);\n this.handleError.handleError(error)\n });\n }\n\n ticket[\"ticketChannel\"] = this.ticketChannel;\n\n this.ticketsService.createTicket(ticket).subscribe(\n (res) => {\n this.router.navigate([\"/dashboard/dashboard-view\"]);\n this._snackBar.open(\"Ticket Created Successfully\", \"Close\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n });\n }, (error) => {\n this.error = \"something went wrong!! please try again\";\n setTimeout(() => {\n this.error = \"\";\n }, 5000);\n this.handleError.handleError(error)\n });\n } else {\n this.selectIndex = 0;\n }\n }\n\n toggleCloseDropdownSelection() {\n this.closeDropdownSelection = !this.closeDropdownSelection;\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, {\n closeDropDownOnSelection: this.closeDropdownSelection,\n });\n }\n\n onuserselect(event) {\n if (event) {\n this.ticketsService.getgroupsusers(event).subscribe((res) => {\n this.assignmentgroup = res.map((group) => ({\n name: group[\"Name\"],\n id: group[\"id\"],\n }));\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.ticketsService.getAgentLocation(event).subscribe((res) => {\n if (res[\"LatLng\"]) {\n this.agentLocation = res[\"LatLng\"];\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.statusselected =\n this.statusselected[0] === \"unassigned\"\n ? [\"open\"]\n : this.statusselected;\n }\n }\n\n ongroupselect(event) {\n this.ticketsService.getusersgroups(event).subscribe((res) => {\n this.assignedto = res.map((user) => ({\n name: user[\"Mailid\"],\n id: user[\"id\"],\n }));\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n customerSearch(value) {\n if (value) {\n this.ticketsService.getCustomerByMail(value).subscribe((data) => {\n if (!data[\"status\"]) {\n this.ReportedBy = data[\"Name\"];\n this.customer[\"phoneNumber\"] = data[\"PhoneNumber\"];\n this.customer[\"preferedContact\"] = data[\"PrefferedContact\"];\n this.customer[\"lastContacted\"] = data[\"LastContacted\"];\n \n this.customer[\"id\"] = data[\"id\"];\n this.latlng = data[\"LatLng\"];\n this.customer[\"mail\"] = data[\"Mailid\"];\n if (data[\"Address\"]) {\n this.address = data[\"Address\"].replace(/['\"]+/g, \"\");\n }\n this.ticketsService\n .getCustomerTickets(data[\"id\"], this.projectId)\n .subscribe((data) => {\n if (data.length > 0) {\n this.customerTickets = data;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n\n uploadFile(file: HTMLInputElement) {\n file.click();\n }\n\n getCustomerByPhone(value) {\n this.ticketsService.getCustomerByPhone(value).subscribe((data) => {\n if (!data[\"status\"]) {\n this.ReportedBy = data[\"Name\"];\n this.customer[\"phoneNumber\"] = data[\"PhoneNumber\"];\n this.customer[\"preferedContact\"] = data[\"PrefferedContact\"];\n this.customer[\"lastContacted\"] = data[\"LastContacted\"];\n this.customer[\"mail\"] = data[\"Mailid\"];\n \n this.customer[\"id\"] = data[\"id\"];\n this.latlng = data[\"LatLng\"];\n if (data[\"Address\"]) {\n this.address = data[\"Address\"].replace(/['\"]+/g, \"\");\n }\n this.ticketsService\n .getCustomerTickets(data[\"id\"], this.projectId)\n .subscribe((data) => {\n if (data.length > 0) {\n this.customerTickets = data;\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n uploadFiletoServer(value, type) {\n let reader = new FileReader();\n reader.readAsDataURL(value.target.files[0]);\n \n const body = new FormData();\n body.append(\"image\", value.target.files[0]);\n this.mailService.uploadFile(body).subscribe((data) => {\n this.agentService\n .getSignedUrl({ url: data[\"url\"] })\n .subscribe((datas) => {\n if (type === \"attachments\") {\n this.attachments.push({\n name: data[\"name\"],\n url: data[\"url\"],\n downloadUrl: datas[\"url\"],\n });\n } else if (type === \"profile\") {\n this.customer[\"profilePhoto\"] = {\n name: data[\"name\"],\n url: data[\"url\"],\n downloadUrl: datas[\"url\"],\n };\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n\n changeTab() {\n this.selectIndex = 0;\n }\n\n sendSms() {\n this.marketingService\n .sendSms(\n {\n from: this.fromNumber,\n to: this.customer[\"phoneNumber\"],\n text: this.smsMessage,\n },\n this.projectId\n )\n .subscribe(\n (data) => {\n this.modalService.dismissAll();\n this.smsMessage = \"\";\n }, (error) => {\n this.modalService.dismissAll();\n this.handleError.handleError(error)\n });\n }\n\n increaseText(tag: number, value) {\n let text = this.latestTags.toArray()[tag];\n \n \n if (text.nativeElement.getAttribute(\"content\") === \"more\") {\n text.nativeElement.innerText = value;\n text.nativeElement.setAttribute(\"content\", \"less\");\n } else {\n text.nativeElement.innerText = value.slice(0, 100);\n text.nativeElement.setAttribute(\"content\", \"more\");\n }\n }\n\n getTemplate(projectId: any) {\n this.mailService\n .getTemplateCompany(\"ticket\", projectId)\n .subscribe((data) => {\n this.template = data[\"Html\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n projectChange(data) {\n this.projectId = data;\n this.getGroupsAndAgent();\n this.projectService.getProject(this.projectId).subscribe((data) => {\n this.fromMail = data[\"SupportMail\"];\n this.fromNumber = data[\"TwilioNumber\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.getTemplate(data);\n this.sharedService.currentProject.subscribe((data) => {\n if (data) {\n this.currentProject = data;\n }\n });\n }\n}\n","{{\n error\n}}\n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n

    {{ ticketid }}

    \n
    \n
    \n \n {{ statusselected | requeststatus }}\n \n
    \n
    \n
    \n \n \n
    \n\n \n\n \n \n \n
    \n
    \n
    \n
    \n
    \n

    Details

    \n
    \n \n \n \n please select valid value\n
    \n\n
    \n
    \n
    \n \n {{ item[\"name\"] }}\n \n \n please select valid value\n
    \n \n \n \n {{ option | requeststatus }}\n \n \n \n \n \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n Please Enter Valid Summary\n
    \n
    \n
    \n\n
    \n \n \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n
    \n \n \n

    \n\n \n Please Enter Valid description\n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n ({{\n item[\"timestamp\"] | date: \"medium\"\n }}) :\n \n {{\n item[\"author\"] | titlecase | nameformatting\n }}\n : {{ item[\"body\"] }}\n
    \n
    \n
    \n \n\n \n
    \n \n
    \n
    \n \n
    \n \n \n\n
    \n \n
    \n \n
    \n
    \n
    \n \n \n Please Enter Valid Latest Activity\n
    \n \n \n
    \n \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n No Attachments\n
    \n \n \n \n
    \n \n \n {{\n item[\"name\"].length > 15\n ? item[\"name\"].slice(0, 15)\n : item[\"name\"]\n }}\n \n \n \n \n
    \n
    \n \n \n {{ isUpdate ? \"Send By Mail\" : \"Submit By Mail \" }}\n \n \n \n {{ isUpdate ? \"Update\" : \"Submit\" }}\n \n
    \n \n \n \n \n
    \n \n
    \n\n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n\n
    \n {{ item[\"RequestStatus\"] | requeststatus }}\n \n {{\n item[\"UpdatedBY\"]\n | updatedbyName: agents:customer:ReportedBy\n | titlecase\n }}
    \n \n {{ item[\"UpdatedDate\"] | date: \"medium\" }}\n \n\n
    \n \n {{ item[\"LatestUpdate\"].slice(0, 100) }}\n \n 100\">\n ...\n {{ latest.getAttribute(\"content\") }}\n \n \n \n
    \n
    \n
    \n \n 5 &&\n loadMoreHistory < tickethistory.length\n \"\n class=\"btn btn-primary btn-sm\"\n type=\"button\"\n (click)=\"loadMoreHistory = loadMoreHistory + 5\"\n >\n Load More\n \n
    \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Upload\n
    \n
    \n Last Contacted
    \n \n {{\n customer[\"lastContacted\"]\n ? customer[\"lastContacted\"]\n : \"\"\n }}\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n\n \n \n \n \n\n \n \n \n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n location_on\n
    \n \n
    \n\n \n
    \n \n
    \n \n \n \n \n\n \n\n
    \n
    \n

    Mail View

    \n \n ×\n \n
    \n
    \n
    \n
    \n\n
    \n

    Send SMS

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { SharedService } from 'src/app/shared/shared.service';\nimport { Component, OnInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-googledirections',\n templateUrl: './googledirections.component.html',\n styleUrls: ['./googledirections.component.css']\n})\nexport class GoogledirectionsComponent implements OnInit {\n public lat = 15.619630;\n public lng = 77.271347;\n\n public origin: any;\n public destination: any;\n public renderOptions = {\n suppressMarkers: true,\n }\n\n public markerOptions = {\n origin: {\n\n // infoWindow: 'This is origin.',\n icon: {\n url: 'assets/googlemaps/destination_custom_pin.svg', scaledSize: {\n height: 40,\n width: 40\n },\n },\n },\n destination: {\n icon: {\n url: 'assets/googlemaps/destination_custom_pin.svg', scaledSize: {\n height: 40,\n width: 40\n },\n },\n },\n\n }\n\n constructor(private readonly modalService: NgbModal, private sharedService: SharedService) { }\n\n ngOnInit() {\n this.getDirection();\n this.sharedService.traceLocation.subscribe(data => {\n if (data) {\n \n this.origin = data.source;\n this.destination = data.destination;\n }\n })\n }\n dismiss() {\n this.modalService.dismissAll()\n }\n getDirection() {\n this.origin = { lat: 15.619630, lng: 77.271347 };\n this.destination = { lat: 13.184570, lng: 77.479279 };\n }\n}\n","
    \n\t
    \n\t\t

    Map View

    \n\t\t\n\t
    \n\t
    \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
    \n
    \n","import { MapsAPILoader } from '@agm/core';\nimport { Component, ContentChild, ElementRef, NgZone, OnInit, ViewChild, AfterViewInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { GooglePlaceDirective } from 'ngx-google-places-autocomplete';\nimport { SharedService } from 'src/app/shared/shared.service';\n\n@Component({\n selector: 'app-maps',\n templateUrl: './maps.component.html',\n styleUrls: ['./maps.component.css']\n})\nexport class MapsComponent implements OnInit, AfterViewInit {\n public lat = 28.7041;\n public lng = 77.1025;\n public zoom: number = 15;\n public type: string;\n @ViewChild('search', { static: true }) search: HTMLInputElement;\n @ViewChild(\"placesRef\") placesRef: GooglePlaceDirective;\n public address: string;\n private geoCoder;\n\n ngAfterViewInit() {\n\n }\n\n constructor(private mapsAPILoader: MapsAPILoader,\n private ngZone: NgZone, private ngbModal: NgbModal,\n private sharedService: SharedService\n ) { }\n\n ngOnInit() {\n this.lat = 28.7041;\n this.lng = 77.1025;\n this.geoCoder = new google.maps.Geocoder();\n \n this.sharedService.saveAddress.subscribe(data => {\n if (data && data['latlng'] != null) {\n this.lng = data['latlng']['lng'];\n this.lat = data['latlng']['lat'];\n this.type = data['types'];\n this.address = data['address']\n } else {\n this.type = data['types'];\n }\n })\n\n }\n dismiss() {\n this.ngbModal.dismissAll();\n }\n\n getAddress(latitude, longitude) {\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\n \n \n if (status === 'OK') {\n if (results[0]) {\n // this.zoom = 12;\n \n this.address = results[0].formatted_address;\n } else {\n window.alert('No results found');\n }\n } else {\n window.alert('Geocoder failed due to: ' + status);\n }\n\n });\n }\n\n public setCurrentLocation() {\n if ('geolocation' in navigator) {\n navigator.geolocation.getCurrentPosition((position) => {\n this.lat = position.coords.latitude;\n this.lng = position.coords.longitude;\n this.zoom = 15;\n });\n }\n }\n\n changeLocation(event) {\n this.lat = event.coords.lat;\n this.lng = event.coords.lng;\n \n this.getAddress(this.lat, this.lng);\n }\n\n autocompleteFocus(search) {\n this.mapsAPILoader.load().then(() => {\n this.geoCoder = new google.maps.Geocoder;\n\n const autocomplete = new google.maps.places.Autocomplete(search, { types: ['geocode'] });\n autocomplete.addListener(\"place_changed\", () => {\n this.ngZone.run(() => {\n //get the place result\n const place: google.maps.places.PlaceResult = autocomplete.getPlace();\n\n //verify result\n if (place.geometry === undefined || place.geometry === null) {\n return;\n }\n\n //set latitude, longitude and zoom\n this.lat = place.geometry.location.lat();\n this.lng = place.geometry.location.lng();\n this.zoom = 12;\n });\n });\n });\n }\n\n handleAddressChange(address) {\n this.lat = address.geometry.location.lat();\n this.lng = address.geometry.location.lng();\n this.address = address.formatted_address;\n }\n\n saveAddress() {\n \n if (this.type === 'ticket') {\n this.sharedService.saveAddress.next({ latlng: { lat: this.lat, lng: this.lng }, address: this.address, types: this.type });\n \n }\n // if (this.type === 'agent') {\n // this.sharedService.saveAddress.next({ latlng: { lat: this.lat, lng: this.lng }, address: this.address, types: this.type });\n // }\n this.ngbModal.dismissAll();\n }\n\n\n}\n","
    \n\t
    \n\t\t

    Map View

    \n\t\t\n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\n\t\t\n\t\t\t\n\t\t\t\tagent1\n\t\t\t\n\t\t\n\t
    \n\t
    \n\t\t\n\t
    \n
    \n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nameformatting'\n})\nexport class NameformattingPipe implements PipeTransform {\n\n transform(value: string,): any {\n if(value.toLowerCase().includes(\"whatsapp:\")){\n return value.toLowerCase().replace(\"whatsapp:\",'');\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Pipe({ name: \"safeHtml\" })\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n if (html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n } else {\n return;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'attachments'\n})\nexport class AttachmentsPipe implements PipeTransform {\n\n transform(value: string, ...args: any[]): any {\n const attachments=value.split(\".\");\n switch(attachments[attachments.length-1]){\n case \"pdf\":\n return \"pdf\";\n case \"docx\":\n return \"word\";\n case \"zip\":\n return \"zip\"\n case \"xlsx\":\n return \"excel\"\n case \"png\":\n return \"image\"\n case \"jpeg\":\n return \"image\"\n default:\n return \"word\"\n }\n return null;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'profilePhoto'\n})\nexport class ProfilePhotoPipe implements PipeTransform {\n\n transform(value: any, agents:any[],customer): any {\n let profilePhoto='assets/img/user.svg';\n if(agents.find(agent=>value===agent['Mailid'])){\n let profile=agents.find(agent=>value===agent['Mailid']);\n \n return profile['ProfilePhoto']||profilePhoto\n }\n if(value===customer['mail']){\n return customer['profilePhoto']['downloadUrl'];\n }\n return profilePhoto;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'requeststatus'\n})\nexport class RequeststatusPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n if(value.includes('inprogress')){\n return 'In Progress';\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'updatedbyName'\n})\nexport class UpdatedbyNamePipe implements PipeTransform {\n\n transform(value: any, agents:any[],customer:any,reportedBY): any {\n if(agents.find(agent=>agent['Mailid']===value)){\n let agent=agents.find(agent=>agent['Mailid']===value);\n return agent['FirstName']+' '+agent['LastName'];\n }\n if(value===customer['mail']){\n return reportedBY\n }\n \n return value;\n }\n\n}\n","import { AuthGuard } from 'src/app/core/guards/auth.guard';\nimport { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AddUpdateViewTicketsComponent } from './add-update-view-tickets/add-update-view-tickets.component';\n\nconst routes: Routes = [\n { path: 'tickets/ticket-view', component: AddUpdateViewTicketsComponent, canActivate: [AuthGuard] },\n { path: 'tickets/ticket-view/:id', component: AddUpdateViewTicketsComponent, canActivate: [AuthGuard] },\n { path: 'tickets/ticket-views/:phoneNumber', component: AddUpdateViewTicketsComponent, canActivate: [AuthGuard] },\n { path: 'tickets/ticket-views/:phoneNumber/:email/:name', component: AddUpdateViewTicketsComponent, canActivate: [AuthGuard] }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class TicketsRoutingModule { }\n","import { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TicketsRoutingModule } from \"./tickets-routing.module\";\nimport { AddUpdateViewTicketsComponent } from \"./add-update-view-tickets/add-update-view-tickets.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { AutocompleteLibModule } from \"angular-ng-autocomplete\";\nimport { NgMultiSelectDropDownModule } from \"ng-multiselect-dropdown\";\nimport { DatePipe } from \"@angular/common\";\n// import {\n// MatBadgeModule,\n// MatIconModule,\n// MatMenuModule,\n// MatSnackBarModule,\n// MatTooltipModule,\n// } from \"@angular/material\";\nimport { SafeHtmlPipe } from \"./safe-html.pipe\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { AgmCoreModule } from \"@agm/core\";\nimport { MapsComponent } from \"./maps/maps.component\";\nimport { AgmDirectionModule } from \"agm-direction\";\nimport { GooglePlaceModule } from \"ngx-google-places-autocomplete\";\nimport { GoogledirectionsComponent } from \"./googledirections/googledirections.component\";\nimport { NameformattingPipe } from \"./nameformatting.pipe\";\nimport { AttachmentsPipe } from \"./ticketpipes/attachments.pipe\";\nimport { RequeststatusPipe } from \"./ticketpipes/requeststatus.pipe\";\nimport { ProfilePhotoPipe } from \"./ticketpipes/profile-photo.pipe\";\nimport { UpdatedbyNamePipe } from \"./ticketpipes/updatedby-name.pipe\";\nimport { LayoutModule } from \"src/app/layout/layout.module\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatBadgeModule } from \"@angular/material/badge\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\n// import { LayoutModule } from \"@angular/cdk/layout\";\n\n@NgModule({\n declarations: [\n AddUpdateViewTicketsComponent,\n SafeHtmlPipe,\n MapsComponent,\n GoogledirectionsComponent,\n NameformattingPipe,\n AttachmentsPipe,\n RequeststatusPipe,\n ProfilePhotoPipe,\n UpdatedbyNamePipe,\n ],\n imports: [\n LayoutModule,\n CommonModule,\n TicketsRoutingModule,\n AutocompleteLibModule,\n FormsModule,\n NgMultiSelectDropDownModule.forRoot(),\n NgbModule,\n MatIconModule,\n MatMenuModule,\n MatBadgeModule,\n MatButtonModule,\n MatTooltipModule,\n NgSelectModule,\n MatTabsModule,\n MatSnackBarModule,\n AgmCoreModule,\n GooglePlaceModule,\n AgmDirectionModule,\n ],\n providers: [DatePipe],\n exports: [MapsComponent, SafeHtmlPipe, RequeststatusPipe]\n})\nexport class TicketsModule {}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n// import { HttpClientService } from '@angular/common/http';\nimport { TicketHistory } from './add-update-view-tickets/models/tickethistory.model';\nimport { map } from 'rxjs/internal/operators/map';\nimport { Ticket } from '../dashboard/models/ticket.model';\nimport { HttpClientService } from 'src/app/httpclient.service';\n\n\ninterface createCustomer {\n mail: string,\n customerName: string,\n phoneNumber: string,\n preferedContact: string,\n lastContacted: Date | string,\n requestId: string\n}\ninterface updateCustomer {\n mail: string,\n customerName: string,\n phoneNumber: string,\n preferedContact: string,\n lastContacted: Date | string,\n address: string,\n latlng: any,\n profilePhoto:any\n}\n\ninterface getCustomTickets {\n status: string,\n agentMail: string,\n admin: Boolean,\n companyId: number,\n offsetNumber: number,\n from: Date,\n to: Date,\n mail: string,\n\n\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TicketsService {\n baseApiUrl: any = environment.baseApiUrl;\n baseApiUrl2: any = environment.baseApiUrl2;\n\n constructor(private http: HttpClientService) { }\n\n getUsersList(companyId) {\n return this.http.get(`${this.baseApiUrl2}getActiveAgents/${companyId}`)\n }\n\n getpriorityList() {\n return this.http.get(`${this.baseApiUrl2}prority`)\n }\n\n geturgencyList() {\n return this.http.get(`${this.baseApiUrl2}urgency`)\n }\n\n getallgroups() {\n return this.http.get(`${this.baseApiUrl2}Group`)\n }\n\n createTicket(body: Object) {\n return this.http.post(`${this.baseApiUrl2}createticket`, body)\n }\n\n getTicketByID(id) {\n return this.http.get(`${this.baseApiUrl2}ticket/${id}`)\n }\n\n updateTicket(object, id) {\n return this.http.put(`${this.baseApiUrl2}updateticket/${id}`, object)\n }\n\n getticketid() {\n return this.http.get(`${this.baseApiUrl2}ticketid`)\n }\n\n gettickethistory(id) {\n return this.http.get(`${this.baseApiUrl2}tickethistories/${id}`)\n }\n\n getgroupsusers(mailid) {\n return this.http.post>(`${this.baseApiUrl2}getagentgroups`, { \"mailid\": mailid });\n }\n\n getusersgroups(name) {\n return this.http.post>(`${this.baseApiUrl2}agentgroups`, { name: name })\n }\n createCustomer(body: createCustomer) {\n return this.http.post(`${this.baseApiUrl2}createCustomer`, body);\n }\n updateCustomer(body: updateCustomer, id) {\n return this.http.put(`${this.baseApiUrl2}updateCustomer/${id}`, body);\n }\n getCustomerByTicket(ticketNumber: string) {\n return this.http.get(`${this.baseApiUrl2}customerByticket/${ticketNumber}`)\n }\n getCustomerByMail(mail: string) {\n return this.http.get(`${this.baseApiUrl2}customerByMail/${mail}`)\n }\n getCustomerTickets(id, companyId) {\n return this.http.get(`${this.baseApiUrl2}customerTickets/${id}/${companyId}`);\n }\n\n getCustomerByPhone(phoneNumber: string) {\n return this.http.get(`${this.baseApiUrl2}customerByPhoneNumber/${phoneNumber}`)\n }\n\n getCustomTickets(body: getCustomTickets) {\n return this.http.post(`${this.baseApiUrl2}getCustomTickets`, body).pipe(map(res => {\n let myTickets: Ticket[] = [];\n for (let item of res) {\n let Assignedto = item['Assignedto'];\n let CreatedDate = item['CreatedDate'];\n let ReportedBy = item['ReportedBy'];\n let RequestId = item['RequestId'];\n let RequestStatus = item['RequestStatus'];\n let UpdatedDate = item['UpdatedDate'];\n let group = item['AssignmentGroup'];\n let id = item['id'];\n let summary = item['RequestDetail'];\n let TicketRead = item['TicketUnRead']\n myTickets.push(new Ticket(id, summary, ReportedBy, UpdatedDate, Assignedto, group, CreatedDate, RequestId, RequestStatus, TicketRead, item['TicketChannel'], item['TotalCount']));\n }\n // \n return myTickets;\n }))\n }\n\n getWebChat(ticketNumber: string) {\n return this.http.post(`${this.baseApiUrl2}getWebChatByTicket`, { ticketId: ticketNumber });\n }\n getAgentLocation(mail: string) {\n return this.http.get(`${this.baseApiUrl2}agentLocation/${mail}`);\n }\n\n}\n","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { TransfersService } from '../transfers.service';\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { DOCUMENT } from '@angular/common';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { UhLeadsService } from '../../uhleads.service';\nimport { CreateAgent } from '../../create-agent/create-agent.service';\nimport { now } from 'lodash';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { MarketingService } from '../../marketing/marketing.service';\nimport { environment } from 'src/environments/environment';\nimport { RoleService } from '../../role-management/role.service';\nimport * as xlsx from \"xlsx\";\nimport { Exceldata2 } from '../../marketing/smsmarketing/models/ExecelData.model2';\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { ErrorHandlerService } from 'src/app/error-handler.service';\n\nvar sortJsonArray = require('node_modules/sort-json-array')\n\nexport enum REGEX {\n EMAIL = '[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\\\.[a-z]{2,4}',\n PHONE = '[0-9]{10}$',\n PASSWORD = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$',\n ZIP = '^[a-zA-Z0-9,\\'-]*$',\n NUMBER = '^[0-9]*$',\n URL = '^(http:\\/\\/www\\.|https:\\/\\/www\\.|www\\.|http:\\/\\/|https:\\/\\/)[a-zA-Z0-9\\.\\-]+\\\\.[a-zA-Z]{2,5}[\\.]{0,1}',\n CHARACTER = \"^[a-zA-Z /'.-]*$\",\n SPECIAL_PHONE = '^[+|0-9]+[0-9]{1,}$',\n ADDRESS = '^[a-zA-Z0-9\\s,\\'-]*$',\n}\n\n@Component({\n selector: 'app-agents',\n templateUrl: './agents.component.html',\n styleUrls: ['../students/students.component.css']\n})\nexport class AgentsComponent implements OnInit {\n\n public fileSource = environment.fileServer;\n public page: any = 1;\n public pageSize: any = 12;\n totalCount: any;\n studentsList: any[] = [];\n leadsLoading: boolean = true;\n noLeadsFound: boolean = false;\n sidenavLoading: boolean = false;\n selectedAll: boolean = false;\n admin: boolean = true;\n startCall: boolean = false;\n validationStatus: boolean = false;\n showDate: boolean = false;\n public edited: boolean = false;\n // CALLING THINGS\n applicationStatus: any = \"\";\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n public callData: any[] = [];\n selectedLead: any;\n public marketingId: {\n id: string;\n phoneNumber: string;\n email: string;\n name: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n nextCaller: null,\n lead: {},\n };\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n public startIndex: number = 0;\n testConfig: any;\n agentCall: String = \"\";\n sideViewerData: any;\n activityfilterString: string = \"\";\n file: File;\n customDocName: string;\n minItems = 5;\n docUrl: any;\n topBarCounts = {\n validatedDocs: \"0\",\n completedDocs: \"0\",\n studentDenied: \"0\",\n reopen: \"0\",\n total: \"0\",\n revalidatedDocs: \"0\",\n pendingDocs: \"0\",\n documentsSubmitted: \"0\",\n unassigned: \"0\",\n assigned: \"0\",\n assignedtoMe: \"0\",\n uncontactable: \"0\",\n };\n userData: any;\n documentComments: string;\n leadIds = [];\n defaultAgent = \"default\";\n selectedAgent: any;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"uploadFile\") uploadFile;\n agentList: any;\n projectId: any;\n totalAgents: any;\n GBPagentList: any;\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ]\n activitiesList: any;\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n selectedUniversity: string;\n commentText: string = \"\";\n startDate: any;\n endDate: any;\n date1: any;\n date2: any;\n public filterValue: string = \"all\";\n public leadType: string = \"all\";\n search: string = '';\n tab: any;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeAssignModel\") closeAssignModel;\n public statusValue = \"pending\";\n studentsList1: any;\n totalCount1: number;\n editStatus: string;\n leadtoEdit: {\n id: string;\n firstName: string;\n lastName: string;\n phoneCountryCode: string;\n phoneWithoutCode: string;\n emailId: string;\n dateOfBirth: Date;\n address: string;\n cityOrTown: string;\n state: string;\n zip: string;\n country: string;\n Comments: string;\n CallStatus: string;\n AgentMail: string;\n };\n editComment: string;\n editLead = this.formBuilder.group({\n firstName: [\"\", [Validators.required]],\n lastName: [\"\", [Validators.required]],\n phoneCountryCode: [\"\", [Validators.required]],\n phoneWithoutCode: [\"\", [Validators.required]],\n emailId: [\"\", Validators.required],\n dateOfBirth: [\"\"],\n address: [\"\"],\n cityOrTown: [\"\"],\n state: [\"\"],\n zip: [\"\"],\n country: [\"\"],\n Comments: [\"\"],\n CallStatus: [\"\"],\n });\n downloadLink: any;\n companyId: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public errorMessage: string = \"\";\n public submitted: boolean = false;\n pageNumber: Number = 1;\n isSearch: boolean = false;\n createLead: FormGroup;\n\n // CREATE LEAD\n public university: string = 'HUB';\n public requiredfieldApplyAs: boolean;\n public requiredfieldApplyFor: boolean;\n public ifFromUs: any;\n public applyAsStudent = ['High School Graduate Student', 'Undergraduate Student', 'Graduate Student', 'Others'];\n public fromUsYesApplyFor = ['Undergrad Transfer Program', 'Graduate Transfer Program', 'Second Masters', 'Others'];\n public fromUsNoApplyFor = ['International Program', 'Others'];\n\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n docUploadID: any;\n docUploadStatus: boolean = false;\n uploadSuccess: string = \"none\";\n selectedFiles: File[] = [];\n docUploadError2: string = \"Select files to upload.\";\n currentLeadId: any;\n currentItem: any;\n sortColumn = \"updatedAt\";\n sortOrder = \"asc\";\n callSid: any;\n\n constructor(\n private transferService: TransfersService,\n public countupTimerService: CountupTimerService,\n private SharedService: SharedService,\n @Inject(DOCUMENT) private domService: HTMLDocument,\n private readonly modalService: NgbModal,\n private uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n private agentService: CreateAgent,\n private momentService: MomentFormatService,\n private readonly formBuilder: FormBuilder,\n public marketingService: MarketingService,\n private handleError: ErrorHandlerService,\n private companyService: RoleService,\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit(): void {\n\n this.SharedService.pageEvent.emit({\n pageName: \"Transfer Agents\",\n });\n\n this.getAgentNames();\n this.initCreateLead();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == \"24hrs\";\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n this.companyId = this.userData[\"companyId\"];\n setTimeout(() => {\n\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Transfer'))[0].id;\n\n this.getDownloadLink();\n this.transferService.startTimer.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe((data: any) => {\n this.agentList = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.fetchStudents();\n this.getTopBarCounts();\n this.transferService.pageNumber.subscribe((resp: any) => {\n if (resp) {\n this.page = resp;\n \n if (this.isSearch === true) {\n this.transferSearch1();\n } else {\n this.fetchStudents();\n this.getTopBarCounts();\n }\n\n }\n });\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n // \n // \n // this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n this.transferSearch(this.input.nativeElement.value, this.page)\n })\n )\n .subscribe();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 3000);\n \n this.transferService.getCallSid.subscribe((data) => {\n this.callSid = data;\n });\n }\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n fetchStudents() {\n this.studentsList = []\n this.leadsLoading = true;\n this.noLeadsFound = false;\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadType,\n start: this.startDate,\n end: this.endDate,\n page: this.page\n }\n this.transferService.fetchStudentsRecruiter(obj).toPromise()\n .then((resp: any) => {\n this.leadsLoading = false;\n this.totalCount = parseInt(resp.count[0].count);\n this.totalCount1 = parseInt(resp.count[0].count);\n this.transferService.totalPages.next(~~(Number(this.totalCount) / 12));\n if (resp.count[0].count <= 0) {\n this.noLeadsFound = true;\n }\n this.studentsList = resp.rows;\n this.studentsList1 = resp.rows;\n for (let i = 0; i < this.studentsList.length; i++) {\n\n if (this.studentsList[i].PhoneNumber == \"0000000000\") {\n this.studentsList[i].CountryCode = \"-\";\n this.studentsList[i].PhoneNumber = \"-\";\n }\n this.studentsList[i].AssignedtoName = this.getAgentName(\n this.studentsList[i].Assignedto\n );\n\n this.studentsList[i].AssignedtoInitial = this.getAgentInitial(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoColor = this.getAgentColor(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoImageURL = this.getAgentphoto(\n this.studentsList[i].Assignedto\n );\n if (\n this.studentsList[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.studentsList[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n })\n .catch(err => {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n })\n }\n // loadPage(ev) {\n // \n // this.page = ev;\n // if (this.search.length > 0) {\n // this.isSearch = true;\n // this.transferSearch();\n // } else {\n // this.isSearch = false;\n // this.fetchStudents();\n // }\n // }\n startCallListener2(data, index) {\n\n this.applicationStatus = \"\";\n\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatus = false;\n\n this.callData[0] = data;\n this.selectedLead = data;\n this.selectedUniversity = data.university;\n this.marketingId = {\n id: data.id,\n name: data.firstName,\n email: data.emailId,\n phoneNumber: \"+\" + data.phoneCountryCode + data.phoneWithoutCode,\n nextCaller: 1,\n lead: 0,\n };\n\n\n // this.nextCallerName = this.studentsList[index + 1].firstName;\n // this.nextCallerNumber = \"+\" + this.studentsList[index + 1].phoneCountryCode + this.studentsList[index + 1].phoneWithoutCode;\n // this.startIndex = index + 1;\n\n this.transferService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n stopCurrentCall() {\n \n this.transferService.startCall.next(null);\n this.transferService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n sideNavData(id) {\n this.sidenavLoading = true;\n this.sideViewerData = [];\n this.activitiesList = [];\n this.activityfilterString = \"\";\n this.file = null;\n this.customDocName = \"\";\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.transferService.getLeadByIdRecruiter(id).toPromise()\n .then((resp: any) => {\n this.sideViewerData = resp;\n this.currentLeadId = this.sideViewerData.id;\n this.replaceNull(this.sideViewerData);\n this.sidenavLoading = false;\n this.checkValidation();\n this.activitiesList = resp.Activities;\n })\n .catch(err => {\n\n })\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n pauseAudio(data) {\n // audio.stop();\n }\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null || a[key] === undefined ? (a[key] = \"-\") : a[key];\n });\n }\n changeValidation(id, value, docId) {\n this.transferService.updateValidationStatusRecruiter({\n StudentdocId: docId,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).toPromise()\n .then((resp: any) => {\n this.sideNavData(id);\n })\n .catch(err => {\n\n })\n }\n postComments(sideViewerData, item, HTMLid) {\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n var body = {\n ProjectId: 8,\n salesforceId: sideViewerData.salesforceId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: false,\n // Admin: false,\n LeadId: sideViewerData.id,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.transferService.updateCommentsRecruiter(body).toPromise()\n .then((resp: any) => {\n this.sideNavData(sideViewerData.id);\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n })\n }\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n checkValidation() {\n if (this.sideViewerData.uploadlistofdocuments.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.sideViewerData.uploadlistofdocuments.length; i++) {\n if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"revalidate\" ||\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"validated\") {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n }\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.studentsList.length; i++) {\n this.leadIds.push(this.studentsList[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.transferService\n .assignTransferLeadRecruiter({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe((res) => {\n this.getTopBarCounts();\n this.fetchStudents();\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n getAgentName(email) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n onInputActivity(event: any) {\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n applicationstatus(data) {\n this.applicationStatus = data;\n if (this.applicationStatus == \"Yes\") {\n }\n }\n onStatusChange(data) {\n this.newStatus = data;\n }\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.applicationStatus = '';\n }\n updateComments() {\n if (!this.newStatus) {\n } else {\n if (this.applicationStatus == \"yes\") {\n this.transferService.updateCallCommentRecruiter({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n this.getTopBarCounts();\n this.fetchStudents();\n this.closeButton2.nativeElement.click();\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.selectedUniversity = \"\";\n\n this.transferService.updateCallCommentRecruiter({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n this.getTopBarCounts();\n this.fetchStudents();\n this.closeButton2.nativeElement.click();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n }\n getTopBarCounts() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.transferService.getTopBarCountRecruiter(postData).toPromise()\n .then((resp: any) => {\n this.topBarCounts = resp.TopBarCount;\n })\n .catch(err => {\n this.handleError.handleError(err)\n\n })\n }\n onClick(check) {\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else {\n this.tab = null;\n }\n }\n getCardData(leadType) {\n this.leadType = leadType;\n this.fetchStudents();\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n this.getTopBarCounts();\n this.fetchStudents();\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.showDate = false;\n this.getTopBarCounts();\n this.fetchStudents();\n }\n }\n dropdownSelect(event) {\n this.onClick(null);\n this.leadType = event;\n this.getTopBarCounts();\n this.fetchStudents();\n }\n transferSearch(search, page) {\n let obj = {\n page: page,\n search: search,\n ProjectId: this.projectId\n }\n this.transferService.transferSearchRecruiter(obj).toPromise()\n .then((resp: any) => {\n this.studentsList = resp.data;\n this.totalCount = parseInt(resp.totalResults);\n this.transferService.totalPages.next(~~(Number(this.totalCount) / 12) + 1);\n for (let i = 0; i < this.studentsList.length; i++) {\n\n if (this.studentsList[i].PhoneNumber == \"0000000000\") {\n this.studentsList[i].CountryCode = \"-\";\n this.studentsList[i].PhoneNumber = \"-\";\n }\n this.studentsList[i].AssignedtoName = this.getAgentName(\n this.studentsList[i].Assignedto\n );\n\n this.studentsList[i].AssignedtoInitial = this.getAgentInitial(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoColor = this.getAgentColor(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoImageURL = this.getAgentphoto(\n this.studentsList[i].Assignedto\n );\n if (\n this.studentsList[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.studentsList[i].LeadDocStatus = \"Revalidate\";\n }\n }\n })\n .catch(err => {\n\n })\n }\n onInput(ev) {\n if (this.search.length > 0) {\n this.isSearch = true;\n // this.transferSearch();\n } else {\n this.isSearch = false;\n this.studentsList = this.studentsList1;\n this.totalCount = this.totalCount1;\n this.page = 1;\n }\n }\n openEditLead(content, lead) {\n if (lead.DOB == \"-\") {\n lead.DOB = \"\";\n }\n\n this.editStatus = lead.CallStatus;\n this.leadtoEdit = {\n id: lead.id,\n firstName: lead.firstName,\n lastName: lead.lastName,\n phoneCountryCode: lead.phoneCountryCode,\n phoneWithoutCode: lead.phoneWithoutCode,\n emailId: lead.emailId,\n dateOfBirth: lead.dateOfBirth,\n address: lead.address,\n cityOrTown: lead.cityOrTown,\n state: lead.state,\n zip: lead.zip,\n country: lead.country,\n Comments: this.editComment,\n CallStatus: this.editStatus,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"lg\" });\n }\n updateLead() {\n this.edited = true;\n console\n if (this.editLead.invalid) {\n return;\n }\n\n this.leadtoEdit.phoneCountryCode = this.leadtoEdit.phoneCountryCode.replace(\"+\", \"\");\n if (this.leadtoEdit.phoneCountryCode == \"-\") {\n this.leadtoEdit.phoneCountryCode = \"00\";\n }\n if (this.leadtoEdit.phoneWithoutCode == \"-\") {\n this.leadtoEdit.phoneWithoutCode = \"0000000000\";\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.transferService.updateLeadRecruiter(this.leadtoEdit).subscribe((res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n\n document.getElementById(\"closeButton3\").click();\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCounts();\n this.fetchStudents();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n getDownloadLink() {\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/transfer.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"GUID\" && sheet_data.length !== 0) {\n this.fileData = this.uhleadsservice.convert2dArraytoObjectTransfer(sheet_data);\n this.transferService\n .postCallDataRecruiter({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n this.getTopBarCounts();\n this.fetchStudents();\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n getFirstLetter(str) {\n if (str) {\n return str.split(' ').map(function (item) { return item[0] }).join('')\n } else {\n return '-'\n }\n }\n currPage(ev) {\n\n }\n openCreateLead(content) {\n // gtag('event', 'add_new_lead', {\n // page_path: window.location.href,\n // page_title:'Leads Dashboard'\n // })\n this.modalService.open(content, { size: \"md\" });\n }\n initCreateLead() {\n this.createLead = this.formBuilder.group({\n emailId: [null, Validators.compose([\n Validators.required,\n Validators.pattern(REGEX.EMAIL),\n ])],\n firstName: new FormControl('', [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n lastName: new FormControl('', [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n fromUS: new FormControl(true),\n ApplyingAs: new FormControl('', Validators.required),\n othersApplyingAs: new FormControl('', Validators.required),\n ApplyingFor: new FormControl('', Validators.required),\n othersApplyingFor: new FormControl('', Validators.required),\n phoneCountryCode: new FormControl('', [Validators.required]),\n phoneWithoutCode: new FormControl('', [Validators.required, Validators.pattern(REGEX.NUMBER)]),\n });\n }\n get f() {\n return this.createLead.controls;\n }\n onCreateLead() {\n if (this.createLead.invalid) {\n return;\n }\n let u = Date.now().toString(16) + Math.random().toString(16) + '0'.repeat(16);\n let guid = [u.substr(0, 8), u.substr(8, 4), '4000-8' + u.substr(13, 3), u.substr(16, 12)].join('-');\n var postData = this.createLead.value;\n postData.uniqueId = guid;\n postData.university = this.university;\n this.transferService.createLeadCRMRecruiter(postData).toPromise()\n .then((resp: any) => {\n this.getTopBarCounts();\n this.fetchStudents();\n })\n .catch(err => {\n\n })\n }\n public onSelectionChange() {\n \n const applyAs = this.createLead.controls.ApplyingAs.value;\n const applyFor = this.createLead.controls.ApplyingFor.value;\n \n\n if (applyAs === 'Others') {\n this.requiredfieldApplyAs = true;\n this.createLead.controls.othersApplyingAs.setValidators([Validators.required]);\n } else {\n this.requiredfieldApplyAs = false;\n this.createLead.controls.othersApplyingAs.clearValidators();\n this.createLead.controls.othersApplyingAs.reset();\n }\n\n if (applyFor === 'Others') {\n this.requiredfieldApplyFor = true;\n this.createLead.controls.othersApplyingFor.setValidators([Validators.required]);\n } else {\n this.requiredfieldApplyFor = false;\n this.createLead.controls.othersApplyingFor.clearValidators();\n this.createLead.controls.othersApplyingFor.reset();\n }\n }\n // fromUs selection changes\n onfromUsSelectionChange() {\n this.createLead.controls.ApplyingFor.reset();\n }\n\n public onChangeFromUs() {\n this.ifFromUs = this.createLead.controls.fromUS.value;\n }\n transferSearch1() {\n let obj = {\n page: this.page,\n search: this.search,\n ProjectId: this.projectId\n }\n this.transferService.transferSearchRecruiter(obj).toPromise()\n .then((resp: any) => {\n this.studentsList = resp.data;\n this.totalCount = parseInt(resp.totalResults);\n this.transferService.totalPages.next(~~(Number(this.totalCount) / 12) + 1);\n for (let i = 0; i < this.studentsList.length; i++) {\n\n if (this.studentsList[i].PhoneNumber == \"0000000000\") {\n this.studentsList[i].CountryCode = \"-\";\n this.studentsList[i].PhoneNumber = \"-\";\n }\n this.studentsList[i].AssignedtoName = this.getAgentName(\n this.studentsList[i].Assignedto\n );\n\n this.studentsList[i].AssignedtoInitial = this.getAgentInitial(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoColor = this.getAgentColor(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoImageURL = this.getAgentphoto(\n this.studentsList[i].Assignedto\n );\n if (\n this.studentsList[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.studentsList[i].LeadDocStatus = \"Revalidate\";\n }\n }\n })\n .catch(err => {\n\n })\n }\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.transferService\n .uploadDocument(formData, this.docUploadID)\n .subscribe((res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.uploadSuccess = \"success\";\n this.sideNavData(this.currentLeadId);\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.docUploadStatus = false;\n\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n }\n }\n }, (err) => { \n this.docUploadStatus = false;\n this.handleError.handleError(err);\n this.uploadSuccess = \"failure\";\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n });\n }\n }\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.id);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.transferService\n .uploadDocument(formData, item.id)\n .subscribe((res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData(item.id);\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n callFromDocs(data, item) {\n this.startCallListener2(data, 0);\n this.currentItem = item;\n }\n sortTableData(column, order) {\n this.studentsList = sortJsonArray(this.studentsList, column, this.sortOrder);\n\n if (this.sortOrder == 'asc'){\n this.sortOrder ='des'\n }else{\n this.sortOrder = 'asc';\n }\n }\n}\n\n\n","\n
    \n
    \n
    ×
    \n
    Overview
    \n
    \n
    \n \n \n
    \n
    \n {{ sideViewerData?.CallDetails?.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i?.AgentName || '' }}
    Date & Time{{ i?.DateTime | date: 'dd MMM yyyy' }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    Call Recording\n
    Comments{{ i?.Comments }}
    \n
    \n
    \n
    \n
    \n
    \n 0 Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by\n \n
    Date & Time\n \n
    Status\n \n
    Call Recording\n \n
    Comments\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Id{{ sideViewerData?.salesforceId || '-' }}
    Name\n {{\n sideViewerData?.firstName || '-' | titlecase }} {{sideViewerData?.lastName || '-'\n | titlecase\n }}\n
    DOB{{ sideViewerData?.dateOfBirth || '-' | date: 'dd MMM yyyy'}}
    Submitted Date{{ sideViewerData?.createdAt || '-' | date: 'dd MMM yyyy'}}
    Document Status{{ sideViewerData?.LeadDocStatus || '-' | titlecase }}
    Phone Number\n {{sideViewerData?.phoneCountryCode?'+'+sideViewerData?.phoneCountryCode : '-'}}\n {{sideViewerData?.phoneWithoutCode\n ||\n '-'}}\n
    Email{{ sideViewerData?.emailId || '-' }}
    Address\n {{\n sideViewerData?.address +\n \" \" +\n sideViewerData?.cityOrTown +\n \" \" +\n sideViewerData?.state +\n \" \" +\n sideViewerData?.zip +\n \" \" +\n sideViewerData?.country || \"NA\" | titlecase\n }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Id\n \n
    Name\n \n
    DOB\n \n
    Submitted Date\n \n
    Document Status\n \n
    Phone Number\n \n
    Email\n \n
    Address\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    {{ item?.courseName |titlecase }}
    \n
    \n\n
    \n {{ item?.uploadedDate | date: \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n\n \n \n \n \n \n \n
    \n\n \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date: 'dd MMM yyyy' }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    {{ i.AgentName }}
    \n
    \n {{ i.DateTime | date: \"dd MMM yyyy\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n Comments\n {{\n \"(\" + (sideViewerData?.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n {{ j.DateTime | date: 'dd MMM yyyy' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ activitiesList?.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i?.Description }}\n {{\n i?.DateTime | date: 'dd MMM yyyy'\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n\n \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.total}}\n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.validatedDocs || 0}}\n
    \n
    \n
    Validated Documents
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.documentsSubmitted || 0}}\n
    \n
    \n
    Documents Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.pendingDocs || 0}}\n
    \n\n
    \n
    Documents Pending
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n {{topBarCounts?.revalidatedDocs || 0}}\n
    \n
    \n
    Revalidate Documents
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.unassigned || 0}}\n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.assigned || 0}}\n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.assignedtoMe || 0}}\n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n Total Applications\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    Created Date
    \n \n
    \n
    \n Updated Date\n \n \n Student Name\n \n \n Student Email\n \n \n Assigned To\n \n \n Phone Number\n \n \n Applying As\n \n \n Applying For\n \n \n Document Status\n \n \n Call Status\n \n Actions
    \n
    \n
    \n \n
    \n
    \n {{item?.createdAt | date: 'dd MMM yyyy'}}\n
    \n
    \n
    \n
    {{ item.updatedAt | date: 'dd MMM yyyy' }}
    \n
    \n
    \n \n\n
    \n\n
    \n
    {{ item.emailId | lowercase }}
    \n
    \n
    \n
    \n \n\n\n

    \n {{ item.AssignedtoInitial }}\n

    \n\n\n
    \n
    \n {{ item.AssignedtoName | titlecase }}\n
    \n
    \n
    \n {{item?.phoneCountryCode?'+'+item?.phoneCountryCode : '-'}} {{item?.phoneWithoutCode\n ||\n '-'}}\n \n
    \n {{getFirstLetter(item.ApplyingAs)}}\n
    \n
    \n {{getFirstLetter(item.otherApplyingAs)}}\n
    \n
    \n
    \n {{getFirstLetter(item.ApplyingFor)}}\n
    \n
    \n {{getFirstLetter(item.otherApplyingFor)}}\n
    \n\n
    \n \n Not Submitted\n \n \n {{item?.LeadDocStatus | titlecase}}\n \n \n Pending\n Not\n Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred\n Intake\n Not Answered\n Deferred Intake\n Un Contactable\n \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    Loading Data
    Please wait while we fetch the data for you
    \n
    \n
    \n
    \n \n
    No records found.
    Please select a different date range.
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n

    \n\n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    {{ nextCallerName }}
    \n
    {{ nextCallerNumber }}
    \n
    \n\n
    \n \n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    Transfer Details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{callData[0].firstName+\" \"+callData[0].lastName}}\n
    \n
    \n
    \n
    \n
    \n \n
    {{callData[0].emailId}}
    \n
    \n
    \n
    \n
    \n \n
    {{callData[0]?.phoneCountryCode?'+'+callData[0]?.phoneCountryCode :\n '-'}} {{callData[0]?.phoneWithoutCode ||\n '-'}}
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n \n
    \n {{callData[0].createdAt | date: 'dd MMM yyyy' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{callData[0].university || ''}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Application status
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n \n \n
    \n \n
    \n \n \n
    \n\n\n \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n
    \n
    \n \n \n\n
    \n\n
    \n \n
    \n
    \n \n\n
    \n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n\n
    \n \n\n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    First Name is required
    \n
    \n
    \n \n
    \n \n \n
    \n
    LastName is required
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    Country Code is required
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    Email is required
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    Applying as is required
    \n
    \n \n
    \n \n
    \n
    \n\n\n \n
    \n \n \n \n
    \n
    Applying for is required
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n Upload Documents\n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n Selected Files: {{selectedFiles.length}}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n \n
    0\">\n
    \n
    \n
    \n \n
    {{ i.name }}
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n Upload Success
    \n
    Total {{selectedFiles.length}} files\n uploaded successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n Upload Failed
    \n
    Files not uploaded. Please check\n document extensions,\n upload supported documents
    \n
    \n
    \n \n\n\n
    \n
    \n \n
    \n
    \n {{docUploadError2}}\n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{\n sideViewerData?.firstName || '-' | titlecase }} {{sideViewerData?.lastName || '-'\n | titlecase\n }}\n

    \n
    \n {{sideViewerData?.phoneCountryCode?'+'+sideViewerData?.phoneCountryCode : '-'}}\n {{sideViewerData?.phoneWithoutCode\n ||\n '-'}}\n
    \n
    \n \"\"\n
    \n\n
    {{ callStatus }}
    \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    ","import {\n Directive,\n OnChanges,\n OnInit,\n SimpleChanges,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n Renderer2,\n HostBinding,\n HostListener\n} from \"@angular/core\";\n\n@Directive({\n selector: \"[appPaginationCustom]\",\n exportAs: \"appPaginationCustom\"\n})\nexport class PaginationCustomDirective implements OnChanges, OnInit {\n @Input() pageNo = 1;\n @Input() totalPages = 1;\n\n @Output() pageChange = new EventEmitter();\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n // In case no value is passed\n this.setValue(this.pageNo);\n }\n\n ngOnChanges({ pageNo, totalPages }: SimpleChanges) {\n // Needs to be checked before pageNo\n if (totalPages) {\n this.onTotalPagesInput();\n }\n\n if (pageNo) {\n this.onPageNoInput();\n }\n }\n\n @HostListener(\"input\", [\"$event.target.value\"]) onInput(val) {\n this.setValue(this.getParsedValue(val));\n }\n\n @HostListener(\"change\", [\"$event.target.value\"]) onChange(val) {\n if (val === \"\") {\n this.setValue(1);\n }\n\n if (this.isOutOfRange(val)) {\n this.setValue(this.totalPages);\n }\n\n this.pageNo = Number(this.el.nativeElement.value);\n this.pageChange.emit(this.pageNo);\n }\n\n get isFirst(): boolean {\n return this.pageNo === 1;\n }\n\n get isLast(): boolean {\n return this.pageNo === this.totalPages;\n }\n\n first() {\n this.setPage(1);\n }\n\n prev() {\n this.setPage(Math.max(1, this.pageNo - 1));\n }\n\n next() {\n this.setPage(Math.min(this.totalPages, this.pageNo + 1));\n }\n\n last() {\n this.setPage(this.totalPages);\n }\n\n private setValue(val: string | number) {\n this.renderer.setProperty(this.el.nativeElement, \"value\", String(val));\n }\n\n private setPage(val: number) {\n this.pageNo = val;\n this.setValue(this.pageNo);\n this.pageChange.emit(this.pageNo);\n }\n\n private getParsedValue(val: string): string {\n return val.replace(/(^0)|([^0-9]+$)/, \"\");\n }\n\n private isOutOfRange(val: string): boolean {\n return Number(val) > this.totalPages;\n }\n\n private onTotalPagesInput() {\n if (typeof this.totalPages !== \"number\") {\n this.totalPages = 1;\n }\n }\n\n private onPageNoInput() {\n if (\n typeof this.pageNo !== \"number\" ||\n this.pageNo < 1 ||\n this.pageNo > this.totalPages\n ) {\n this.pageNo = 1;\n }\n\n this.setValue(this.pageNo);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TransfersService } from '../transfers.service';\n\n@Component({\n selector: 'app-pagination-custom',\n templateUrl: './pagination-custom.component.html',\n styleUrls: ['./pagination-custom.component.css']\n})\nexport class PaginationCustomComponent implements OnInit {\n pageNo: Number = 1;\n @Input() totalCount: any;\n totalPages: Number;\n @Output() currPage = new EventEmitter();\n onPageChange(pageNo: number) {\n this.pageNo = pageNo;\n // this.currPage.next(this.pageNo);\n this.transferService.pageNumber.next(this.pageNo);\n }\n\n constructor(private transferService: TransfersService) { }\n\n ngOnInit(): void {\n this.transferService.totalPages.subscribe((resp: any)=>{\n this.totalPages = resp\n })\n this.onPageChange(1);\n document.getElementById(\"firstPage\").click();\n }\n\n}\n","\n\n\n / {{ pagination.totalPages }}\n\n\n\n","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { TransfersService } from '../transfers.service';\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { DOCUMENT } from '@angular/common';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { UhLeadsService } from '../../uhleads.service';\nimport { CreateAgent } from '../../create-agent/create-agent.service';\nimport { now } from 'lodash';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { MarketingService } from '../../marketing/marketing.service';\nimport { environment } from 'src/environments/environment';\nimport { RoleService } from '../../role-management/role.service';\nimport * as xlsx from \"xlsx\";\nimport { Exceldata2 } from '../../marketing/smsmarketing/models/ExecelData.model2';\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { ErrorHandlerService } from 'src/app/error-handler.service';\nvar sortJsonArray = require('node_modules/sort-json-array')\n\nexport enum REGEX {\n EMAIL = '[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\\\.[a-z]{2,4}',\n PHONE = '[0-9]{10}$',\n PASSWORD = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$',\n ZIP = '^[a-zA-Z0-9,\\'-]*$',\n NUMBER = '^[0-9]*$',\n URL = '^(http:\\/\\/www\\.|https:\\/\\/www\\.|www\\.|http:\\/\\/|https:\\/\\/)[a-zA-Z0-9\\.\\-]+\\\\.[a-zA-Z]{2,5}[\\.]{0,1}',\n CHARACTER = \"^[a-zA-Z /'.-]*$\",\n SPECIAL_PHONE = '^[+|0-9]+[0-9]{1,}$',\n ADDRESS = '^[a-zA-Z0-9\\s,\\'-]*$',\n}\n\n@Component({\n selector: 'app-students',\n templateUrl: './students.component.html',\n styleUrls: ['./students.component.css']\n})\nexport class StudentsComponent implements OnInit {\n\n public fileSource = environment.fileServer;\n public page: any = 1;\n public pageSize: any = 12;\n totalCount: any;\n studentsList: any[] = [];\n leadsLoading: boolean = true;\n noLeadsFound: boolean = false;\n sidenavLoading: boolean = false;\n selectedAll: boolean = false;\n admin: boolean = true;\n startCall: boolean = false;\n validationStatus: boolean = false;\n showDate: boolean = false;\n public edited: boolean = false;\n // CALLING THINGS\n applicationStatus: any = \"\";\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n public callData: any[] = [];\n selectedLead: any;\n public marketingId: {\n id: string;\n phoneNumber: string;\n email: string;\n name: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n nextCaller: null,\n lead: {},\n };\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n public startIndex: number = 0;\n testConfig: any;\n agentCall: String = \"\";\n sideViewerData: any;\n activityfilterString: string = \"\";\n file: File;\n customDocName: string;\n minItems = 5;\n docUrl: any;\n topBarCounts = {\n validatedDocs: \"0\",\n completedDocs: \"0\",\n studentDenied: \"0\",\n reopen: \"0\",\n total: \"0\",\n revalidatedDocs: \"0\",\n pendingDocs: \"0\",\n documentsSubmitted: \"0\",\n unassigned: \"0\",\n assigned: \"0\",\n assignedtoMe: \"0\",\n uncontactable: \"0\",\n };\n userData: any;\n documentComments: string;\n leadIds = [];\n defaultAgent = \"default\";\n selectedAgent: any;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"uploadFile\") uploadFile;\n agentList: any;\n projectId: any;\n totalAgents: any;\n GBPagentList: any;\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ]\n activitiesList: any;\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n selectedUniversity: string;\n commentText: string = \"\";\n startDate: any;\n endDate: any;\n date1: any;\n date2: any;\n public filterValue: string = \"all\";\n public leadType: string = \"all\";\n search: string = '';\n tab: any;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeAssignModel\") closeAssignModel;\n public statusValue = \"pending\";\n studentsList1: any;\n totalCount1: number;\n editStatus: string;\n leadtoEdit: {\n id: string;\n firstName: string;\n lastName: string;\n phoneCountryCode: string;\n phoneWithoutCode: string;\n emailId: string;\n dateOfBirth: Date;\n address: string;\n cityOrTown: string;\n state: string;\n zip: string;\n country: string;\n Comments: string;\n CallStatus: string;\n AgentMail: string;\n };\n editComment: string;\n editLead = this.formBuilder.group({\n firstName: [\"\", [Validators.required]],\n lastName: [\"\", [Validators.required]],\n phoneCountryCode: [\"\", [Validators.required]],\n phoneWithoutCode: [\"\", [Validators.required]],\n emailId: [\"\", Validators.required],\n dateOfBirth: [\"\"],\n address: [\"\"],\n cityOrTown: [\"\"],\n state: [\"\"],\n zip: [\"\"],\n country: [\"\"],\n Comments: [\"\"],\n CallStatus: [\"\"],\n });\n downloadLink: any;\n companyId: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public errorMessage: string = \"\";\n public submitted: boolean = false;\n pageNumber: Number = 1;\n isSearch: boolean = false;\n createLead: FormGroup;\n\n // CREATE LEAD\n public university: string = 'HUB';\n public requiredfieldApplyAs: boolean;\n public requiredfieldApplyFor: boolean;\n public ifFromUs: any;\n public applyAsStudent = ['High School Graduate Student', 'Undergraduate Student', 'Graduate Student', 'Others'];\n public fromUsYesApplyFor = ['Undergrad Transfer Program', 'Graduate Transfer Program', 'Second Masters', 'Others'];\n public fromUsNoApplyFor = ['International Program', 'Others'];\n\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n docUploadID: any;\n docUploadStatus: boolean = false;\n uploadSuccess: string = \"none\";\n selectedFiles: File[] = [];\n docUploadError2: string = \"Select files to upload.\";\n currentLeadId: any;\n currentItem: any;\n sortColumn = \"updatedAt\";\n sortOrder = \"asc\";\n callSid: any;\n\n constructor(\n private transferService: TransfersService,\n public countupTimerService: CountupTimerService,\n private SharedService: SharedService,\n @Inject(DOCUMENT) private domService: HTMLDocument,\n private readonly modalService: NgbModal,\n private uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n private agentService: CreateAgent,\n private momentService: MomentFormatService,\n private readonly formBuilder: FormBuilder,\n public marketingService: MarketingService,\n private companyService: RoleService,\n private handleError: ErrorHandlerService,\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit(): void {\n\n this.SharedService.pageEvent.emit({\n pageName: \"Transfer Students\",\n });\n\n this.getAgentNames();\n this.initCreateLead();\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == \"24hrs\";\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n this.companyId = this.userData[\"companyId\"];\n setTimeout(() => {\n\n this.companyService.projectAdmin(this.companyId).subscribe((projects) => {\n this.projectId = projects.filter(x => x.Name.includes('Transfer'))[0].id;\n\n this.getDownloadLink();\n this.transferService.startTimer.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe((data: any) => {\n this.agentList = data;\n }, (error) => {\n this.handleError.handleError(error)\n });\n this.fetchStudents();\n this.getTopBarCounts();\n this.transferService.pageNumber.subscribe((resp: any) => {\n if (resp) {\n this.page = resp;\n \n if (this.isSearch === true) {\n this.transferSearch1();\n } else {\n this.fetchStudents();\n this.getTopBarCounts();\n }\n\n }\n });\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n // \n // \n // this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n this.transferSearch(this.input.nativeElement.value, this.page)\n })\n )\n .subscribe();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, 3000);\n \n this.transferService.getCallSid.subscribe((data) => {\n this.callSid = data;\n })\n }\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n fetchStudents() {\n this.studentsList = []\n this.leadsLoading = true;\n this.noLeadsFound = false;\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.leadType,\n start: this.startDate,\n end: this.endDate,\n page: this.page\n }\n this.transferService.fetchStudents(obj).toPromise()\n .then((resp: any) => {\n this.leadsLoading = false;\n this.totalCount = parseInt(resp.count[0].count);\n this.totalCount1 = parseInt(resp.count[0].count);\n \n this.transferService.totalPages.next(this.isFloat(Number(this.totalCount) / 12));\n if (resp.count[0].count <= 0) {\n this.noLeadsFound = true;\n }\n this.studentsList = resp.rows;\n this.studentsList1 = resp.rows;\n for (let i = 0; i < this.studentsList.length; i++) {\n\n if (this.studentsList[i].PhoneNumber == \"0000000000\") {\n this.studentsList[i].CountryCode = \"-\";\n this.studentsList[i].PhoneNumber = \"-\";\n }\n this.studentsList[i].AssignedtoName = this.getAgentName(\n this.studentsList[i].Assignedto\n );\n\n this.studentsList[i].AssignedtoInitial = this.getAgentInitial(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoColor = this.getAgentColor(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoImageURL = this.getAgentphoto(\n this.studentsList[i].Assignedto\n );\n if (\n this.studentsList[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.studentsList[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n })\n .catch(err => {\n this.leadsLoading = false;\n this.noLeadsFound = true;\n })\n }\n // loadPage(ev) {\n // \n // this.page = ev;\n // if (this.search.length > 0) {\n // this.isSearch = true;\n // this.transferSearch();\n // } else {\n // this.isSearch = false;\n // this.fetchStudents();\n // }\n // }\n startCallListener2(data, index) {\n\n this.applicationStatus = \"\";\n\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatus = false;\n\n this.callData[0] = data;\n this.selectedLead = data;\n this.selectedUniversity = data.university;\n this.marketingId = {\n id: data.id,\n name: data.firstName,\n email: data.emailId,\n phoneNumber: \"+\" + data.phoneCountryCode + data.phoneWithoutCode,\n nextCaller: 1,\n lead: 0,\n };\n\n\n // this.nextCallerName = this.studentsList[index + 1].firstName;\n // this.nextCallerNumber = \"+\" + this.studentsList[index + 1].phoneCountryCode + this.studentsList[index + 1].phoneWithoutCode;\n // this.startIndex = index + 1;\n\n this.transferService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n stopCurrentCall() {\n \n this.transferService.startCall.next(null);\n this.transferService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n sideNavData(id) {\n this.sidenavLoading = true;\n this.sideViewerData = [];\n this.activitiesList = [];\n this.activityfilterString = \"\";\n this.file = null;\n this.customDocName = \"\";\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.transferService.getLeadById(id).toPromise()\n .then((resp: any) => {\n this.sideViewerData = resp;\n this.currentLeadId = this.sideViewerData.id;\n this.replaceNull(this.sideViewerData);\n \n this.sidenavLoading = false;\n this.checkValidation();\n this.activitiesList = resp.Activities;\n })\n .catch(err => {\n\n })\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n pauseAudio(data) {\n // audio.stop();\n }\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null || a[key] === undefined ? (a[key] = \"-\") : a[key];\n });\n }\n changeValidation(id, value, docId) {\n this.transferService.updateValidationStatus({\n StudentdocId: docId,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).toPromise()\n .then((resp: any) => {\n this.sideNavData(id);\n })\n .catch(err => {\n\n })\n }\n postComments(sideViewerData, item, HTMLid) {\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n var body = {\n ProjectId: 8,\n salesforceId: sideViewerData.salesforceId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: false,\n // Admin: false,\n LeadId: sideViewerData.id,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.transferService.updateComments(body).toPromise()\n .then((resp: any) => {\n this.sideNavData(sideViewerData.id);\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n })\n }\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n checkValidation() {\n if (this.sideViewerData.uploadlistofdocuments.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.sideViewerData.uploadlistofdocuments.length; i++) {\n if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"revalidate\" ||\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"validated\") {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n }\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.studentsList.length; i++) {\n this.leadIds.push(this.studentsList[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.transferService\n .assignTransferLead({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe((res) => {\n this.getTopBarCounts();\n this.fetchStudents();\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n getAgentName(email) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe((data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe((res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n }, (error) => {\n this.handleError.handleError(error)\n });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n onInputActivity(event: any) {\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n applicationstatus(data) {\n this.applicationStatus = data;\n if (this.applicationStatus == \"Yes\") {\n }\n }\n onStatusChange(data) {\n this.newStatus = data;\n }\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.applicationStatus = '';\n }\n updateComments() {\n if (!this.newStatus) {\n } else {\n if (this.applicationStatus == \"yes\") {\n this.transferService.updateCallComment({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n this.getTopBarCounts();\n this.fetchStudents();\n this.closeButton2.nativeElement.click();\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.selectedUniversity = \"\";\n\n this.transferService.updateCallComment({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n CallSid: this.callSid,\n followupDate: new Date(now()),\n ApplicationStatus: this.applicationStatus,\n University: this.selectedUniversity,\n }).subscribe((res) => {\n this.commentText = \"\";\n this.getTopBarCounts();\n this.fetchStudents();\n this.closeButton2.nativeElement.click();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n }\n getTopBarCounts() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.transferService.getTopBarCount(postData).toPromise()\n .then((resp: any) => {\n this.topBarCounts = resp.TopBarCount;\n })\n .catch(err => {\n this.handleError.handleError(err)\n\n })\n }\n onClick(check) {\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else {\n this.tab = null;\n }\n }\n getCardData(leadType) {\n this.leadType = leadType;\n this.fetchStudents();\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n this.getTopBarCounts();\n this.fetchStudents();\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.showDate = false;\n this.getTopBarCounts();\n this.fetchStudents();\n }\n }\n dropdownSelect(event) {\n this.onClick(null);\n this.leadType = event;\n this.getTopBarCounts();\n this.fetchStudents();\n }\n transferSearch(search, page) {\n let obj = {\n page: page,\n search: search,\n ProjectId: this.projectId\n }\n this.transferService.transferSearch(obj).toPromise()\n .then((resp: any) => {\n this.studentsList = resp.data;\n this.totalCount = parseInt(resp.totalResults);\n this.transferService.totalPages.next(~~(Number(this.totalCount) / 12) + 1);\n for (let i = 0; i < this.studentsList.length; i++) {\n\n if (this.studentsList[i].PhoneNumber == \"0000000000\") {\n this.studentsList[i].CountryCode = \"-\";\n this.studentsList[i].PhoneNumber = \"-\";\n }\n this.studentsList[i].AssignedtoName = this.getAgentName(\n this.studentsList[i].Assignedto\n );\n\n this.studentsList[i].AssignedtoInitial = this.getAgentInitial(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoColor = this.getAgentColor(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoImageURL = this.getAgentphoto(\n this.studentsList[i].Assignedto\n );\n if (\n this.studentsList[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.studentsList[i].LeadDocStatus = \"Revalidate\";\n }\n }\n })\n .catch(err => {\n this.handleError.handleError(err)\n\n })\n }\n onInput(ev) {\n if (this.search.length > 0) {\n this.isSearch = true;\n // this.transferSearch();\n } else {\n this.isSearch = false;\n this.studentsList = this.studentsList1;\n this.totalCount = this.totalCount1;\n this.page = 1;\n }\n }\n openEditLead(content, lead) {\n if (lead.DOB == \"-\") {\n lead.DOB = \"\";\n }\n\n this.editStatus = lead.CallStatus;\n this.leadtoEdit = {\n id: lead.id,\n firstName: lead.firstName,\n lastName: lead.lastName,\n phoneCountryCode: lead.phoneCountryCode,\n phoneWithoutCode: lead.phoneWithoutCode,\n emailId: lead.emailId,\n dateOfBirth: lead.dateOfBirth,\n address: lead.address,\n cityOrTown: lead.cityOrTown,\n state: lead.state,\n zip: lead.zip,\n country: lead.country,\n Comments: this.editComment,\n CallStatus: this.editStatus,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"lg\" });\n }\n updateLead() {\n this.edited = true;\n if (this.editLead.invalid) {\n return;\n }\n\n this.leadtoEdit.phoneCountryCode = this.leadtoEdit.phoneCountryCode.replace(\"+\", \"\");\n if (this.leadtoEdit.phoneCountryCode == \"-\") {\n this.leadtoEdit.phoneCountryCode = \"00\";\n }\n if (this.leadtoEdit.phoneWithoutCode == \"-\") {\n this.leadtoEdit.phoneWithoutCode = \"0000000000\";\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.transferService.updateLead(this.leadtoEdit).subscribe((res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n\n document.getElementById(\"closeButton3\").click();\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCounts();\n this.fetchStudents();\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n getDownloadLink() {\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/transfer.xlsx\")\n .subscribe((data) => {\n this.downloadLink = data[\"url\"];\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"GUID\" && sheet_data.length !== 0) {\n this.fileData = this.uhleadsservice.convert2dArraytoObjectTransfer(sheet_data);\n this.transferService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n this.getTopBarCounts();\n this.fetchStudents();\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n getFirstLetter(str) {\n if (str) {\n return str.split(' ').map(function (item) { return item[0] }).join('')\n } else {\n return '-'\n }\n }\n currPage(ev) {\n\n }\n openCreateLead(content) {\n // gtag('event', 'add_new_lead', {\n // page_path: window.location.href,\n // page_title:'Leads Dashboard'\n // })\n this.modalService.open(content, { size: \"md\" });\n }\n initCreateLead() {\n this.createLead = this.formBuilder.group({\n emailId: [null, Validators.compose([\n Validators.required,\n Validators.pattern(REGEX.EMAIL),\n ])],\n firstName: new FormControl('', [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n lastName: new FormControl('', [Validators.required, Validators.pattern(REGEX.CHARACTER)]),\n fromUS: new FormControl(true),\n ApplyingAs: new FormControl('', Validators.required),\n othersApplyingAs: new FormControl('', Validators.required),\n ApplyingFor: new FormControl('', Validators.required),\n othersApplyingFor: new FormControl('', Validators.required),\n phoneCountryCode: new FormControl('', [Validators.required]),\n phoneWithoutCode: new FormControl('', [Validators.required, Validators.pattern(REGEX.NUMBER)]),\n });\n }\n get f() {\n return this.createLead.controls;\n }\n onCreateLead() {\n if (this.createLead.invalid) {\n return;\n }\n let u = Date.now().toString(16) + Math.random().toString(16) + '0'.repeat(16);\n let guid = [u.substr(0, 8), u.substr(8, 4), '4000-8' + u.substr(13, 3), u.substr(16, 12)].join('-');\n var postData = this.createLead.value;\n postData.uniqueId = guid;\n postData.university = this.university;\n this.transferService.createLeadCRM(postData).toPromise()\n .then((resp: any) => {\n this.getTopBarCounts();\n this.fetchStudents();\n })\n .catch(err => {\n\n })\n }\n public onSelectionChange() {\n \n const applyAs = this.createLead.controls.ApplyingAs.value;\n const applyFor = this.createLead.controls.ApplyingFor.value;\n \n\n if (applyAs === 'Others') {\n this.requiredfieldApplyAs = true;\n this.createLead.controls.othersApplyingAs.setValidators([Validators.required]);\n } else {\n this.requiredfieldApplyAs = false;\n this.createLead.controls.othersApplyingAs.clearValidators();\n this.createLead.controls.othersApplyingAs.reset();\n }\n\n if (applyFor === 'Others') {\n this.requiredfieldApplyFor = true;\n this.createLead.controls.othersApplyingFor.setValidators([Validators.required]);\n } else {\n this.requiredfieldApplyFor = false;\n this.createLead.controls.othersApplyingFor.clearValidators();\n this.createLead.controls.othersApplyingFor.reset();\n }\n }\n // fromUs selection changes\n onfromUsSelectionChange() {\n this.createLead.controls.ApplyingFor.reset();\n }\n\n public onChangeFromUs() {\n this.ifFromUs = this.createLead.controls.fromUS.value;\n }\n transferSearch1() {\n let obj = {\n page: this.page,\n search: this.search,\n ProjectId: this.projectId\n }\n this.transferService.transferSearch(obj).toPromise()\n .then((resp: any) => {\n this.studentsList = resp.data;\n this.totalCount = parseInt(resp.totalResults);\n this.transferService.totalPages.next(~~(Number(this.totalCount) / 12) + 1);\n for (let i = 0; i < this.studentsList.length; i++) {\n\n if (this.studentsList[i].PhoneNumber == \"0000000000\") {\n this.studentsList[i].CountryCode = \"-\";\n this.studentsList[i].PhoneNumber = \"-\";\n }\n this.studentsList[i].AssignedtoName = this.getAgentName(\n this.studentsList[i].Assignedto\n );\n\n this.studentsList[i].AssignedtoInitial = this.getAgentInitial(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoColor = this.getAgentColor(\n this.studentsList[i].Assignedto\n );\n this.studentsList[i].AssignedtoImageURL = this.getAgentphoto(\n this.studentsList[i].Assignedto\n );\n if (\n this.studentsList[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.studentsList[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.studentsList[i].LeadDocStatus = \"Revalidate\";\n }\n }\n })\n .catch(err => {\n\n })\n }\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n uploadAttachments() {\n \n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.transferService\n .uploadDocument(formData, this.docUploadID)\n .subscribe((res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n \n this.uploadSuccess = \"success\";\n this.sideNavData(this.currentLeadId);\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.docUploadStatus = false;\n\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n }\n }\n }, (err) => {\n this.handleError.handleError(err);\n this.uploadSuccess = \"failure\";\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n });\n }\n }\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n fileUpload(event, item) {\n \n\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.id);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.transferService\n .uploadDocument(formData, item.id)\n .subscribe((res) => {\n \n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n }, (error) => {\n this.handleError.handleError(error)\n });\n }\n }\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n callFromDocs(data, item) {\n this.startCallListener2(data, 0);\n this.currentItem = item;\n }\n sortTableData(column, order) {\n this.studentsList = sortJsonArray(this.studentsList, column, this.sortOrder);\n\n if (this.sortOrder == 'asc') {\n this.sortOrder = 'des'\n } else {\n this.sortOrder = 'asc';\n }\n }\n isFloat(value) {\n if (\n typeof value === 'number' &&\n !Number.isNaN(value) &&\n !Number.isInteger(value)\n ) {\n return ~~value + 1;\n }\n\n return value;\n }\n}","\n
    \n
    \n
    ×
    \n
    Overview
    \n
    \n
    \n \n \n
    \n
    \n {{ sideViewerData?.CallDetails?.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i?.AgentName || '' }}
    Date & Time{{ i?.DateTime | date: 'dd MMM yyyy' }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    Call Recording\n
    Comments{{ i?.Comments }}
    \n
    \n
    \n
    \n
    \n
    \n 0 Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by\n \n
    Date & Time\n \n
    Status\n \n
    Call Recording\n \n
    Comments\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Id{{ sideViewerData?.salesforceId || '-' }}
    Name\n {{\n sideViewerData?.firstName || '-' | titlecase }} {{sideViewerData?.lastName || '-'\n | titlecase\n }}\n
    DOB{{ sideViewerData?.dateOfBirth || '-' | date: \"dd MMM, yyyy\"}}
    Submitted Date{{ sideViewerData?.createdAt || '-' | date: 'dd MMM yyyy'}}
    Document Status{{ sideViewerData?.LeadDocStatus || '-' | titlecase }}
    Phone Number\n {{sideViewerData?.phoneCountryCode?'+'+sideViewerData?.phoneCountryCode : '-'}}\n {{sideViewerData?.phoneWithoutCode\n ||\n '-'}}\n
    Email{{ sideViewerData?.emailId || '-' }}
    Address\n {{\n sideViewerData?.address +\n \" \" +\n sideViewerData?.cityOrTown +\n \" \" +\n sideViewerData?.state +\n \" \" +\n sideViewerData?.zip +\n \" \" +\n sideViewerData?.country || \"NA\" | titlecase\n }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Id\n \n
    Name\n \n
    DOB\n \n
    Submitted Date\n \n
    Document Status\n \n
    Phone Number\n \n
    Email\n \n
    Address\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    {{ item?.courseName |titlecase }}
    \n
    \n\n
    \n {{ item?.uploadedDate | date: \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n\n \n \n \n \n \n \n
    \n\n \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date: 'dd MMM yyyy' }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    {{ i.AgentName }}
    \n
    \n {{ i.DateTime | date: \"dd MMM yyyy\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n Comments\n {{\n \"(\" + (sideViewerData?.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n {{ j.DateTime | date: 'dd MMM yyyy' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ activitiesList?.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i?.Description }}\n {{\n i?.DateTime | date: 'dd MMM yyyy'\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n\n \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.total}}\n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.validatedDocs || 0}}\n
    \n
    \n
    Validated Documents
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.documentsSubmitted || 0}}\n
    \n
    \n
    Documents Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.pendingDocs || 0}}\n
    \n\n
    \n
    Documents Pending
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n {{topBarCounts?.revalidatedDocs || 0}}\n
    \n
    \n
    Revalidate Documents
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.unassigned || 0}}\n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.assigned || 0}}\n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{topBarCounts?.assignedtoMe || 0}}\n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n Total Applications\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    Created Date
    \n \n
    \n
    \n Updated Date\n \n \n Student Name\n \n \n Student Email\n \n \n Assigned To\n \n \n Phone Number\n \n \n Applying As\n \n \n Applying For\n \n \n Document Status\n \n \n Call Status\n \n Actions
    \n
    \n
    \n \n
    \n
    \n {{item?.createdAt | date: 'dd MMM yyyy'}}\n
    \n
    \n
    \n
    {{ item.updatedAt | date: 'dd MMM yyyy' }}
    \n
    \n
    \n \n\n
    \n\n
    \n
    {{ item.emailId | lowercase }}
    \n
    \n
    \n
    \n \n\n\n

    \n {{ item.AssignedtoInitial }}\n

    \n\n\n
    \n
    \n {{ item.AssignedtoName | titlecase }}\n
    \n
    \n
    \n {{item?.phoneCountryCode?'+'+item?.phoneCountryCode : '-'}} {{item?.phoneWithoutCode\n ||\n '-'}}\n \n
    \n {{getFirstLetter(item.ApplyingAs)}}\n
    \n
    \n {{getFirstLetter(item.otherApplyingAs)}}\n
    \n
    \n
    \n {{getFirstLetter(item.ApplyingFor)}}\n
    \n
    \n {{getFirstLetter(item.otherApplyingFor)}}\n
    \n\n
    \n \n Not Submitted\n \n \n {{item?.LeadDocStatus | titlecase}}\n \n \n Pending\n Not\n Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred\n Intake\n Not Answered\n Deferred Intake\n Un Contactable\n \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    Loading Data
    Please wait while we fetch the data for you
    \n
    \n
    \n
    \n \n
    No records found.
    Please select a different date range.
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n

    \n\n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    {{ nextCallerName }}
    \n
    {{ nextCallerNumber }}
    \n
    \n\n
    \n \n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    Transfer Details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{callData[0].firstName+\" \"+callData[0].lastName}}\n
    \n
    \n
    \n
    \n
    \n \n
    {{callData[0].emailId}}
    \n
    \n
    \n
    \n
    \n \n
    {{callData[0]?.phoneCountryCode?'+'+callData[0]?.phoneCountryCode :\n '-'}} {{callData[0]?.phoneWithoutCode ||\n '-'}}
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n \n
    \n {{callData[0].createdAt | date: 'dd MMM yyyy' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{callData[0].university || ''}}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Application status
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n \n \n
    \n \n
    \n \n \n
    \n\n\n \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n
    \n
    \n \n \n\n
    \n\n
    \n \n
    \n
    \n \n\n
    \n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n
    \n\n
    \n \n \n\n
    \n\n
    \n\n\n
    \n \n\n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    First Name is required
    \n
    \n
    \n \n
    \n \n \n
    \n
    LastName is required
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    Country Code is required
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    Email is required
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    Applying as is required
    \n
    \n \n
    \n \n
    \n
    \n\n\n \n
    \n \n \n \n
    \n
    Applying for is required
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n Upload Documents\n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n Selected Files: {{selectedFiles.length}}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n \n
    0\">\n
    \n
    \n
    \n \n
    {{ i.name }}
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n Upload Success
    \n
    Total {{selectedFiles.length}} files\n uploaded successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n Upload Failed
    \n
    Files not uploaded. Please check\n document extensions,\n upload supported documents
    \n
    \n
    \n \n\n\n
    \n
    \n \n
    \n
    \n {{docUploadError2}}\n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{\n sideViewerData?.firstName || '-' | titlecase }} {{sideViewerData?.lastName || '-'\n | titlecase\n }}\n

    \n
    \n {{sideViewerData?.phoneCountryCode?'+'+sideViewerData?.phoneCountryCode : '-'}}\n {{sideViewerData?.phoneWithoutCode\n ||\n '-'}}\n
    \n
    \n \"\"\n
    \n\n
    {{ callStatus }}
    \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    ","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { HttpClientService } from 'src/app/httpclient.service';\nimport { environment } from 'src/environments/environment';\nimport { Exceldata2 } from '../marketing/smsmarketing/models/ExecelData.model2';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TransfersService {\n baseApiUrl2: any = environment.baseApiUrl2;\n baseApiUrl = environment.SMSapiurl;\n startCall = new BehaviorSubject(null);\n startCallv2 = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n pageNumber = new BehaviorSubject(null);\n totalPages = new BehaviorSubject(null);\n callStatus = new BehaviorSubject(null);\n \n constructor(private http: HttpClientService) { }\n\n\n fetchStudents(obj){\n return this.http.post(`${this.baseApiUrl2}wp/university/fetchStudents`,obj)\n }\n updateCallStatus(data) {\n return this.http.post(\n `${this.baseApiUrl2}wp/university/updateCallStatus`,\n data\n );\n }\n updateCallSid(data) {\n return this.http.post(`${this.baseApiUrl2}wp/university/updateCallSid`, data);\n }\n getLeadById(id){\n return this.http.get(`${this.baseApiUrl2}wp/university/getTrasnferLeadById/${id}`)\n }\n updateValidationStatus(data) {\n return this.http.post(\n `${this.baseApiUrl2}wp/university/documentValidationTransfer`,\n data\n );\n }\n updateComments(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/addComments`,\n data\n )\n }\n assignTransferLead(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/AssignTransferLead`,\n data\n );\n }\n updateCallComment(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/updateCallComments`,\n data\n )\n }\n getTopBarCount(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/getTopBarAdmin`,\n data\n )\n }\n transferSearch(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/transferSearch`,\n data\n )\n }\n updateLead(data) {\n return this.http.post(`${this.baseApiUrl2}wp/university/updateLead`, data);\n }\n postCallData(data: {\n data: Exceldata2[];\n createdBy: string;\n ProjectId: number;\n addType: string;\n }) {\n return this.http.post(`${this.baseApiUrl2}wp/university/addCallData`, data);\n }\n createLeadCRM(data){\n return this.http.post(`${this.baseApiUrl2}wp/university/createLeadCRM`, data)\n }\n\n // AGENT SERVICES\n fetchStudentsRecruiter(obj){\n return this.http.post(`${this.baseApiUrl2}wp/university/recruiter/fetchAgents`,obj)\n }\n updateCallStatusRecruiter(data) {\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/updateCallStatus`,\n data\n );\n }\n updateCallSidRecruiter(data) {\n return this.http.post(`${this.baseApiUrl2}wp/university/recruiter/updateCallSid`, data);\n }\n getLeadByIdRecruiter(id){\n return this.http.get(`${this.baseApiUrl2}wp/university/recruiter/getTrasnferLeadById/${id}`)\n }\n updateValidationStatusRecruiter(data) {\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/documentValidationTransfer`,\n data\n );\n }\n updateCommentsRecruiter(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/addComments`,\n data\n )\n }\n assignTransferLeadRecruiter(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/AssignTransferLead`,\n data\n );\n }\n updateCallCommentRecruiter(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/updateCallComments`,\n data\n )\n }\n getTopBarCountRecruiter(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/getTopBarAdmin`,\n data\n )\n }\n transferSearchRecruiter(data){\n return this.http.post(\n `${this.baseApiUrl2}wp/university/recruiter/transferSearch`,\n data\n )\n }\n updateLeadRecruiter(data) {\n return this.http.post(`${this.baseApiUrl2}wp/university/recruiter/updateLead`, data);\n }\n postCallDataRecruiter(data: {\n data: Exceldata2[];\n createdBy: string;\n ProjectId: number;\n addType: string;\n }) {\n return this.http.post(`${this.baseApiUrl2}wp/university/recruiter/addCallData`, data);\n }\n createLeadCRMRecruiter(data){\n return this.http.post(`${this.baseApiUrl2}wp/university/recruiter/createLeadCRM`, data)\n }\n uploadDocument(data, docId) {\n return this.http.post(`${this.baseApiUrl2}wp/university/UploadDocument`, data);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AgentsComponent } from './agents/agents.component';\nimport { StudentsComponent } from './students/students.component';\n\nconst routes: Routes = [\n {\n path: 'students',\n component: StudentsComponent\n },\n {\n path: 'agents',\n component: AgentsComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class TrasnfersRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TrasnfersRoutingModule } from './trasnfers-routing.module';\nimport { StudentsComponent } from './students/students.component';\nimport { AgentsComponent } from './agents/agents.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { DemoMaterialModule } from '../uhleads/material.module';\nimport { NgxTimerModule } from 'ngx-timer';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport { TransferSearchPipe } from '../../shared/transfer-search.pipe';\nimport { IvyCarouselModule } from 'angular-responsive-carousel';\nimport { PaginationCustomDirective } from './pagination-custom.directive';\nimport { PaginationCustomComponent } from './pagination-custom/pagination-custom.component';\n\n@NgModule({\n declarations: [\n StudentsComponent,\n AgentsComponent,\n TransferSearchPipe,\n PaginationCustomDirective,\n PaginationCustomComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n TrasnfersRoutingModule,\n NgbModule,\n DemoMaterialModule,\n NgxTimerModule,\n ReactiveFormsModule,\n NgxDocViewerModule,\n NgxSkeletonLoaderModule,\n IvyCarouselModule\n ],\n exports: [TransferSearchPipe,PaginationCustomDirective]\n})\nexport class TrasnfersModule { }\n","import { HttpClientService } from \"../httpclient.service\";\nimport { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Exceldata } from \"./marketing/smsmarketing/models/ExecelData.model\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\nimport { Exceldata2 } from \"./marketing/smsmarketing/models/ExecelData.model2\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { UhleadsComponent } from \"./uhleads/uhleads.component\";\nexport enum REGEX {\n EMAIL = '[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\\\.[a-z]{2,4}',\n PHONE = '[0-9]{10}$',\n PASSWORD = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$',\n ZIP = '^[a-zA-Z0-9,\\'-]*$',\n NUMBER = '^[0-9]*$',\n URL = '^(http:\\/\\/www\\.|https:\\/\\/www\\.|www\\.|http:\\/\\/|https:\\/\\/)[a-zA-Z0-9\\.\\-]+\\\\.[a-zA-Z]{2,5}[\\.]{0,1}',\n CHARACTER = \"^[a-zA-Z /'.-]*$\",\n SPECIAL_PHONE = '^[+|0-9]+[0-9]{1,}$',\n ADDRESS = '^[a-zA-Z0-9\\s,\\'-]*$',\n}\n@Injectable({\n providedIn: \"root\",\n})\nexport class UhLeadsService {\n baseApiUrl = environment.baseApiUrl2;\n baseApiUrl2 = environment.SMSapiurl;\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n twilioApiUrl: any = environment.twilioApiUrl;\n ActivityData: any;\n\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n conferenceCall = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n viewReceivedLead = new BehaviorSubject(null);\n unreadCountRec = new BehaviorSubject(null);\n pageNumber = new BehaviorSubject(null);\n totalPages = new BehaviorSubject(null);\n incomingSms = new BehaviorSubject(null);\n callStatus = new BehaviorSubject(null);\n\n // SFC\n startCallsfc = new BehaviorSubject(null);\n stopCallsfc = new BehaviorSubject(null);\n conferenceCallsfc = new BehaviorSubject(null);\n startTimersfc = new BehaviorSubject(null);\n getCallSidsfc = new BehaviorSubject(null);\n viewReceivedLeadsfc = new BehaviorSubject(null);\n pageNumbersfc = new BehaviorSubject(null);\n totalPagessfc = new BehaviorSubject(null);\n incomingSmssfc = new BehaviorSubject(null);\n callStatussfc = new BehaviorSubject(null);\n\n // FJSFC\n startCallFJsfc = new BehaviorSubject(null);\n stopCallFJsfc = new BehaviorSubject(null);\n conferenceCallFJsfc = new BehaviorSubject(null);\n startTimerFJsfc = new BehaviorSubject(null);\n getCallSidFJsfc = new BehaviorSubject(null);\n viewReceivedLeadFJsfc = new BehaviorSubject(null);\n pageNumberFJsfc = new BehaviorSubject(null);\n totalPagesFJsfc = new BehaviorSubject(null);\n incomingSmsFJsfc = new BehaviorSubject(null);\n callStatusFJsfc = new BehaviorSubject(null);\n\n // UWLA\n startCalluwla = new BehaviorSubject(null);\n stopCalluwla = new BehaviorSubject(null);\n conferenceCalluwla = new BehaviorSubject(null);\n startTimeruwla = new BehaviorSubject(null);\n getCallSiduwla = new BehaviorSubject(null);\n viewReceivedLeaduwla = new BehaviorSubject(null);\n pageNumberuwla = new BehaviorSubject(null);\n totalPagesuwla = new BehaviorSubject(null);\n incomingSmsuwla = new BehaviorSubject(null);\n callStatusuwla = new BehaviorSubject(null);\n // judson\n startCalljudson = new BehaviorSubject(null);\n stopCalljudson = new BehaviorSubject(null);\n conferenceCalljudson = new BehaviorSubject(null);\n startTimerjudson = new BehaviorSubject(null);\n getCallSidjudson = new BehaviorSubject(null);\n viewReceivedLeadjudson = new BehaviorSubject(null);\n pageNumberjudson = new BehaviorSubject(null);\n totalPagesjudson = new BehaviorSubject(null);\n incomingSmsjudson = new BehaviorSubject(null);\n callStatusjudson = new BehaviorSubject(null);\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required, Validators.pattern(REGEX.CHARACTER), Validators.minLength(2), Validators.maxLength(50)]],\n LastName: [\"\", [Validators.required, Validators.pattern(REGEX.CHARACTER), Validators.minLength(2), Validators.maxLength(50)]],\n CountryCode: [\"\", [Validators.required, Validators.pattern(REGEX.NUMBER)]],\n PhoneNumber: [\"\", [Validators.required, Validators.pattern(REGEX.NUMBER), Validators.minLength(7), Validators.maxLength(15)]],\n Email: [\"\", [Validators.required, Validators.pattern(REGEX.EMAIL)]],\n DOB: [\"\"],\n EnrollmentYear: [\"\", [Validators.required, Validators.pattern(REGEX.NUMBER)]],\n EnrollmentTerm: [\"\", [Validators.required]],\n Address: [\"\"],\n City: [\"\"],\n State: [\"\"],\n Zip: [\"\"],\n Country: [\"\"],\n LeadComment: [\"\"],\n CallStatus: [\"\"],\n studentapplicationtype: [\"\"]\n });\n\n createLead = this.formBuilder.group({\n firstName: [\"\", [Validators.required, Validators.pattern(REGEX.CHARACTER), Validators.minLength(2), Validators.maxLength(50)]],\n lastName: [\"\", [Validators.required, Validators.pattern(REGEX.CHARACTER), Validators.minLength(2), Validators.maxLength(50)]],\n countryCode: [\"\", [Validators.required, Validators.pattern(REGEX.NUMBER)]],\n form_name: [\"\"],\n phoneNumber: [\"\", [Validators.required, Validators.pattern(REGEX.NUMBER), Validators.minLength(7), Validators.maxLength(15)]],\n email: [\"\", [Validators.required, Validators.pattern(REGEX.EMAIL)]],\n channel: [\"\"],\n assignedTo: [this.userData ? this.userData[\"mail\"] : \"\"],\n module: [\"LeadsMarketing\"],\n Miscellaneous: [\"\"],\n program: [\"\", [Validators.required]],\n applicationType: 'N',\n studentapplicationtype: [\"\"],\n EnrollmentTerm:[''],\n EnrollmentYear:[''],\n });\n\n constructor(\n private http: HttpClientService,\n private http2: HttpClient,\n private readonly formBuilder: FormBuilder,\n private toastr: ToastrService\n ) { }\n\n resetCreateLead() {\n this.createLead.reset();\n this.createLead.patchValue({\n assignedTo: this.userData[\"mail\"],\n module: \"LeadsMarketing\",\n applicationType: 'N'\n });\n }\n\n get createLeadValue() {\n return this.createLead.value;\n }\n\n getActivityTable2(body) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/getDashboardLeads`,\n body\n );\n }\n\n getStudentActivity(id) {\n return this.http.get(`${this.baseApiUrl}campbellsville/getLead1/` + id);\n }\n\n getSms(id) {\n return this.http.get(`${this.baseApiUrl}communication/campbellsvilleSMS/` + id);\n }\n getSmsWp(data) {\n return this.http.post(`${this.baseApiUrl}communication/getWhatsAppMessages`, data);\n }\n\n sendSms(data, projectId) {\n return this.http.post(`${this.baseApiUrl2}` + projectId + `/messaging-adapter/sendSMS`, data);\n }\n\n sendWhatsapp(data, projectId) {\n return this.http.post(`${this.baseApiUrl2}` + projectId + `/messaging-adapter/sendWhatsapp`, data);\n }\n\n // getAgentList(){\n // return this.http.get(`${this.baseApiUrl}campbellsville/getGBPAgents`);\n // }\n getAgentList(projectId, agentId) {\n // return this.http.get(\n // `${this.baseApiUrl}contacts/` + projectId + \"/\" + agentId + \"/agent\"\n // );\n return this.http.get(\n `${this.baseApiUrl}CRMAgents/` + projectId\n );\n }\n\n getGBPAgentList() {\n return this.http.get(`${this.baseApiUrl}campbellsville/getGBPAgents`);\n }\n\n assignLeads(body) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/AssignCRMLead`,\n body\n );\n }\n\n bulkLeadsChange(body) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/updateMultipleStatus`,\n body\n );\n }\n\n getAudio(url) {\n return this.http.get(url);\n }\n\n postCallData(data: {\n data: Exceldata2[];\n createdBy: string;\n ProjectId: number;\n addType: string;\n }) {\n return this.http.post(`${this.baseApiUrl}campbellsville/addCallData`, data);\n }\n\n updateCallStatus(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/updateCallStatus`,\n data\n );\n }\n\n updateCallSid(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/updateCallSid`,\n data\n );\n }\n\n updateComments(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/updateCallComments`,\n data\n );\n }\n\n updateComments2(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/updateCallComments2`,\n data\n );\n }\n\n updateLead(data) {\n return this.http.post(`${this.baseApiUrl}campbellsville/updateLead`, data);\n }\n emailIdValidator(data) {\n return this.http.post(`${this.baseApiUrl}campbellsville/emailIdValidator`, data);\n }\n\n showSuccess(message, title) {\n this.toastr.success(message, title);\n }\n showError(msg: string, title: string) {\n this.toastr.error(msg, title);\n }\n showInfo(msg: string, title: string) {\n this.toastr.info(msg, title);\n }\n\n showWarning(message, title) {\n this.toastr.warning(message, title, {\n disableTimeOut: true,\n });\n }\n showLoading(msg: string, title: string) {\n this.toastr.info(msg, title, {\n disableTimeOut: true,\n });\n }\n\n uploadDocument(data, docId) {\n return this.http.post(`${this.baseApiUrl}UploadDocument`, data);\n }\n\n uploadCustomDocument(data) {\n return this.http.post(`${this.baseApiUrl}addCustomDocUpload`, data);\n }\n\n // deleteCustomDocument(data) {\n // return this.http.get(\n // `${this.baseApiUrl}deleteCustomDocName` +\n // \"/\" +\n // data.StudentdocId +\n // \"/\" +\n // data.docName\n // );\n // }\n\n deleteCustomDocument(data) {\n return this.http.post(\n `${this.baseApiUrl}deleteCustomDocName`, data\n );\n }\n\n clear() {\n this.toastr.clear();\n }\n\n getDocumentDetails(GUID) {\n return this.http.get(\n `${this.baseApiUrl}GetListOfDocumentsStatus/` + GUID\n );\n }\n\n getDocumentComments(leadId) {\n return this.http.get(\n `${this.baseApiUrl}campbellsville/getLead1/` + leadId\n );\n }\n\n updateValidationStatus(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/documentValidation2`,\n data\n );\n }\n\n postDocumentComment(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/addComments`,\n data\n );\n }\n\n convert2dArraytoObject(formatingData): Exceldata2[] {\n let excelData: Exceldata2[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n\n if (formatingData[inner][0]) {\n convertData[\"GUID\"] = formatingData[inner][0];\n convertData[\"firstName\"] = formatingData[inner][1];\n convertData[\"lastName\"] = formatingData[inner][2];\n convertData[\"countryCode\"] = formatingData[inner][3] || '';\n convertData[\"phoneNumber\"] = formatingData[inner][4];\n convertData[\"email\"] = formatingData[inner][5];\n convertData[\"AssignedTo\"] = formatingData[inner][6];\n // convertData[\"module\"] = formatingData[inner][7];\n // convertData[\"channel\"] = formatingData[inner][8];\n convertData[\"Program\"] = formatingData[inner][7];\n // convertData[\"appStatus\"] = formatingData[inner][10];\n\n // convertData[\"Miscellaneous\"] = {\n // form_id: \"\",\n // form_name: formatingData[inner][8],\n // \"Choose Batch\": \"\",\n // \"Training Mode\": \"\",\n // };\n convertData[\"ApplicationType\"] = formatingData[inner][8];\n convertData[\"CreatedDate\"] = formatingData[inner][9];\n convertData[\"Comments\"] = formatingData[inner][10];\n excelData.push(convertData);\n }\n }\n\n return excelData;\n }\n\n convert2dArraytoObjectSFC(formatingData): Exceldata2[] {\n let excelData: Exceldata2[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n\n if (formatingData[inner][0]) {\n convertData[\"GUID\"] = formatingData[inner][0];\n convertData[\"firstName\"] = formatingData[inner][1];\n convertData[\"lastName\"] = formatingData[inner][2];\n convertData[\"countryCode\"] = formatingData[inner][3] || '';\n convertData[\"phoneNumber\"] = formatingData[inner][4];\n convertData[\"email\"] = formatingData[inner][5];\n convertData[\"AssignedTo\"] = formatingData[inner][6];\n convertData[\"Program\"] = formatingData[inner][7];\n convertData[\"ApplicationType\"] = formatingData[inner][8];\n convertData[\"CreatedDate\"] = formatingData[inner][9];\n convertData[\"Comments\"] = formatingData[inner][10];\n convertData[\"studentapplicationtype\"] = formatingData[inner][11];\n convertData[\"EnrollmentTerm\"] = formatingData[inner][12];\n convertData[\"EnrollmentYear\"] = formatingData[inner][13];\n convertData[\"isManualLeadCRM\"] = true;\n excelData.push(convertData);\n }\n }\n\n return excelData;\n }\n\n convert2dArraytoObjectTransfer(formatingData): Exceldata2[] {\n let excelData: Exceldata2[] = [];\n for (let inner = 1; inner <= formatingData.length - 1; inner++) {\n let convertData: any = {};\n\n if (formatingData[inner][0]) {\n convertData[\"salesforceId\"] = formatingData[inner][0];\n convertData[\"firstName\"] = formatingData[inner][1];\n convertData[\"lastName\"] = formatingData[inner][2];\n convertData[\"phoneCountryCode\"] = formatingData[inner][3] || '';\n convertData[\"phoneWithoutCode\"] = formatingData[inner][4];\n convertData[\"emailId\"] = formatingData[inner][5];\n convertData[\"Assignedto\"] = formatingData[inner][6];\n convertData[\"ApplyingAs\"] = formatingData[inner][7];\n convertData[\"ApplyingFor\"] = formatingData[inner][8];\n convertData[\"CreatedDate\"] = formatingData[inner][9];\n convertData[\"Comments\"] = formatingData[inner][10];\n convertData[\"fromUS\"] = formatingData[inner][11];\n convertData[\"password\"] = formatingData[inner][12];\n excelData.push(convertData);\n }\n }\n\n return excelData;\n }\n\n uploadmultiple() {\n\n }\n getTopBarCRM(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/getTopBarCRM`,\n data\n );\n\n }\n\n GetSearchDashboardLeads(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/getSearchDashboardLeads`,\n data\n );\n }\n\n getCardLeadByType(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/getDashboardLeads2`,\n data\n );\n }\n // DASBOARD NEW API FOR REPORT LIKE FILTER\n getCardLeadByType1(data) {\n return this.http.post(\n `${this.baseApiUrl}campbellsville/getDashboardLeads3`,\n data\n );\n }\n getProjectList(id, token) {\n return this.http.post(`${this.baseApiUrl}reports/projectsList`, {\n userId: id,\n token: token\n })\n }\n getCourses(id, token) {\n return this.http.get(`${this.baseApiUrl}campbellsville/getListOfProgramsNew`)\n }\n\n getAgents(projectId) {\n var postData = {\n platform: 'CRM',\n projectId: projectId\n }\n return this.http.post(`${this.baseApiUrl}/campbellsville/getListOfAgentsNew`, postData)\n }\n\n getEnrollmentTerm(id, token) {\n\n return this.http.post(`${this.baseApiUrl}campbellsville/enrollmentTermListNew`, {\n userId: id,\n token: token,\n platform: \"CRM\"\n })\n }\n\n getEnrollmentYear(id, token) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/enrollmentYearListNew`, {\n userId: id,\n token: token,\n platform: \"CRM\"\n })\n }\n\n getReports(obj) {\n return this.http.post(`${this.baseApiUrl}reports`, obj)\n }\n getReportsByApplicationType(obj, type) {\n return this.http.post(`${this.baseApiUrl}reports/${type}`, obj)\n }\n getApplication(obj) {\n return this.http.post(`${this.baseApiUrl}campbellsville/applicationslist`, obj)\n }\n getRealTimeEentNameReport(obj?: any) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getRealTimeEentNameReport`, obj)\n }\n getRealTimeCountryReport(obj?: any) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getRealTimeCountryReport`, obj)\n }\n getRealTimeCityReport(obj?: any) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getRealTimeCityReport`, obj)\n }\n getRealTimeAudienceNameReport(obj?: any) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getRealTimeAudienceNameReport`, obj)\n }\n getRunReports(obj?: any) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getRunReports`, obj)\n }\n getRealTimeCountryReportChart(obj?: any) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getRealTimeCountryReportChart`, obj)\n }\n getCountByCallStatus(data) {\n return this.http.post(`${this.baseApiUrl}/campbellsville/getCountByCallStatus`, data);\n }\n getCustomDocList() {\n return this.http.get(`${this.baseApiUrl}customDocList/list`);\n }\n getCustomDocListNew(projectId) {\n return this.http.get(`${this.baseApiUrl}customDocList/listbyProject/${projectId}`);\n }\n getDocNameByDocId(data) {\n const url = `${this.baseApiUrl}/getDocNameByDocId`;\n return this.http.post(url, data);\n }\n getAllMajors(){\n let url = `${environment.url_v1}majors`;\n return this.http.get(url);\n }\n getAllTerms(){\n let url = `${environment.url_v1}terms`;\n \n return this.http.get(url);\n }\n}\n","import {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatBadgeModule} from '@angular/material/badge';\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatListModule} from '@angular/material/list';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatSortModule} from '@angular/material/sort';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatTreeModule} from '@angular/material/tree';\nimport { TableDataComponent } from './table-data/table-data.component';\n\n@NgModule({\n exports: [\n A11yModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n PortalModule,\n ScrollingModule,\n ],\n declarations: [\n TableDataComponent\n ]\n})\nexport class DemoMaterialModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { UhLeadsService } from '../../uhleads.service';\n\n@Component({\n selector: 'app-table-data',\n templateUrl: './table-data.component.html',\n styleUrls: ['./table-data.component.css']\n})\nexport class TableDataComponent implements OnInit {\n\n constructor(uhleadsService:UhLeadsService) { }\n\n ngOnInit(): void {\n \n }\n\n}\n","

    table-data works!

    \n","import {\n Component,\n OnInit,\n ViewChild,\n HostListener,\n ElementRef,\n Inject,\n} from \"@angular/core\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { DashboardService } from \"../dashboard/dashboard.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { formatDate } from \"@angular/common\";\nimport { MarketingService } from \"../marketing/marketing.service\";\nimport * as xlsx from \"xlsx\";\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport * as moment from \"moment\";\nimport { Exceldata2 } from \"../marketing/smsmarketing/models/ExecelData.model2\";\nimport { start } from \"repl\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { Router } from \"@angular/router\";\nimport { forEach, now, round } from \"lodash\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { environment } from \"src/environments/environment\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { NotificationsService } from \"src/app/notification.service\";\n\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nconst countryCodes = require('../../../assets/allcountryDetails.json');\n\n@Component({\n selector: \"app-uhleads\",\n templateUrl: \"./uhleads.component.html\",\n styleUrls: [\"./uhleads.component.css\"],\n})\nexport class UhleadsComponent implements OnInit {\n public fileSource = environment.fileServer;\n public userData: any;\n public filterValue = \"all\";\n nav_position: string = \"end\";\n public statusValue = \"pending\";\n public page: any = 1;\n public pageSize: any = 12;\n public search: string;\n totalApplications: number;\n completedApplications: number;\n completedApplications2: number;\n incompleteapplications: number;\n documentspending: number;\n documentssubmitted: number;\n callback: number;\n activityData: any;\n activityData2: any;\n\n activityTable: any = [];\n activityTable2: any;\n\n startDate: any;\n endDate: any;\n leadsbody: any;\n companyId: any;\n companyAdmin: Boolean = false;\n rotating: boolean = false;\n projectId: any;\n downloadLink: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public leadType: string = \"all\";\n public errorMessage: string = \"\";\n public submitted: boolean = false;\n public edited: boolean = false;\n admin: boolean = false;\n public counselling: boolean = false;\n isCallcomming: boolean = false;\n connection: any = null;\n // audio: any;\n audio = new Audio();\n audioStatus: boolean = false;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n documentsList: any;\n documentsList2: any;\n selectedCallerId: any;\n selectedLead: any;\n commentText: string = \"\";\n newStatus: any;\n newStatusCheck = true;\n docUrl: any;\n currentLeadId: any;\n currentGuid: any;\n documentComments: string;\n validationStatus: boolean = false;\n currentItem: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButton3\", { static: true }) closeButton3;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n\n leadIds = [];\n selectedAll: boolean = false;\n agentList: any;\n GBPagentList: any;\n defaultAgent = \"default\";\n selectedAgent: any;\n\n testConfig: any;\n // callStarted: boolean = false;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public clearTime: any;\n dialerScreen1 = \"dialer\";\n phoneNumber: any = \"\";\n agentCall: String = \"\";\n isShownMarketing: boolean = false;\n dailerScreen: any = \"nocall\";\n isCallingProgress: boolean = false;\n isOutgoing: boolean = false;\n isIncoming: boolean = false;\n disabled: any;\n callStatus: string = \"Calling..\";\n tab: any;\n showDate: boolean = false;\n\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n totalAgents: any;\n agentName: any;\n\n public callData: any[] = [];\n public startIndex: number = 0;\n\n date1: any;\n date2: any;\n serializedDate = new FormControl(new Date().toISOString());\n documentsDenied: number;\n CallsPending: number;\n revalidate: any;\n minItems = 5;\n unassigned: any;\n assigned: any;\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n assignedtome: any;\n file: File[] = [];\n customDocName: string = '';\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: File[] = [];\n customDocLeadId: any;\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n DOB: Date;\n EnrollmentYear: string;\n EnrollmentTerm: string;\n Address: string;\n City: string;\n State: string;\n Zip: string;\n Country: string;\n LeadComment: string;\n CallStatus: string;\n AgentMail: string;\n DIyear?: string;\n DIterms?: string;\n };\n editComment: string;\n editStatus: string;\n allRecords: any;\n isLoading: boolean = true;\n noRecords: boolean = false;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n activityfilterString: string = \"\";\n uploadSuccess: string = \"none\";\n topBarCounts = {\n validatedDocs: \"0\",\n completedDocs: \"0\",\n studentDenied: \"0\",\n reopen: \"0\",\n total: \"0\",\n revalidatedDocs: \"0\",\n pendingDocs: \"0\",\n documentsSubmitted: \"0\",\n unassigned: \"0\",\n assigned: \"0\",\n assignedtoMe: \"0\",\n uncontactable: \"0\",\n previousintake: \"0\"\n };\n cardLeadType: string = \"all\";\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n currentCard: string = \"total\";\n sortColumn = \"updatedAt\";\n sortOrder = \"des\";\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n smsText: string;\n\n DIyear: any;\n DIterms: any;\n bulkStatus: any;\n callSid: any;\n countries: any[] = [];\n selectedCountryCode = 1;\n selectedCountryName = \"United States of America\";\n customDocList: any;\n customDocNameCode: any;\n docName: any;\n isTopBarBind:Boolean = false;\n \n constructor(\n public uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n public dashBoardService: DashboardService,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n private readonly loginService: AuthService,\n private readonly modalService: NgbModal,\n private authService: AuthService,\n private router: Router,\n private agentService: CreateAgent,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private NotificationService: NotificationsService,\n private companyService: RoleService,\n private handleError: ErrorHandlerService,\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit() {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.fetchCountries();\n this.sharedService.pageEvent.emit({\n pageName: \"Leads Dashboard\",\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // \n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == \"24hrs\";\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"Campbellsville\"\n )[0].id;\n if (this.projectId != null) {\n this.sharedService.getProjectAdmin(this.projectId).subscribe(\n (data) => {\n this.admin = data;\n this.getTopBarCRM();\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.showTotalApplications(); //Shohw only pending records on page load\n this.onClick(1); //Activating pending card by default\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n ////\n\n this.getDownloadLink();\n this.uhleadsservice.startTimer.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n\n this.uhleadsservice.viewReceivedLead.subscribe((res: any) => {\n if (res) {\n this.viewLead(res);\n }\n });\n\n this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n // this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n } else if (this.leadType == \"filter\") {\n // this.searchLeads(this.search, this.pageNumber)\n\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search.length > 0) {\n this.uhleadsservice\n .GetSearchDashboardLeads(payload)\n .subscribe(\n (res: any) => {\n this.activityTable = res.data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n // this.totalRecords.nativeElement.click();\n this.leadType = \"all\";\n }\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.admin = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n // \n // \n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n //incoming sms check\n this.uhleadsservice.incomingSms.subscribe((from: any) => {\n\n if (from.from) {\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n\n });\n }\n });\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n this.uhleadsservice.callStatus.subscribe((status) => {\n this.callStatus = status;\n });\n\n this.uhleadsservice.getCallSid.subscribe((sid) => {\n this.callSid = sid;\n });\n\n const studentAppTypeControl = this.uhleadsservice.createLead.get('studentapplicationtype');\n studentAppTypeControl.clearValidators();\n studentAppTypeControl.updateValueAndValidity();\n }\n\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n this.countupTimerService.getTimerValue();\n }\n\n onClick(check) {\n this.uhleadsservice.pageNumber.next(1);\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else if (check == 14) {\n this.tab = \"tab14\";\n } else {\n this.tab = null;\n }\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.activityTable.length; i++) {\n this.leadIds.push(this.activityTable[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n bulkStatusSelected(selectStatus) {\n this.bulkStatus = selectStatus;\n }\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.uhleadsservice\n .assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe(\n (res) => {\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: this.selectedAgent,\n GUID: \"\",\n LeadId: this.leadIds,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Assigned\",\n description:\n \"New leads are assigned to you by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"AssignedToAgent\",\n token: this.userData.token,\n };\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n // this.getDashboardLeads();\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n bulkLeadsChange() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be update\", \"Alert!\");\n return;\n }\n if (this.bulkStatus) {\n this.uhleadsservice\n .bulkLeadsChange({\n Status: this.bulkStatus,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe(\n (res) => {\n this.leadIds = [];\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: this.selectedAgent,\n GUID: \"\",\n LeadId: this.leadIds,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Update\",\n description:\n \"Leads status updated by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"updateLead\",\n token: this.userData.token,\n };\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.uhleadsservice.showSuccess(\n \"The Status has been updated successfully.\",\n \"Success\"\n );\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an status\", \"Alert!\");\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n setLeadType() {\n this.leadType = \"\";\n }\n\n showTotalApplications() {\n this.statusValue = \"all\";\n this.leadType = \"all\";\n this.currentCard = \"total\";\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"all\",\n start: this.startDate,\n end: this.endDate,\n },\n \"all\"\n );\n }\n //Shows date if the filter value is custom\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n showCompletedApplications() {\n this.statusValue = \"all\";\n this.leadType = \"validatedDocs\";\n this.currentCard = \"validated\";\n\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"validatedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"validatedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"validatedDocs\"\n );\n }\n showUncontactable() {\n this.statusValue = \"all\";\n this.leadType = \"uncontactable\";\n this.currentCard = \"uncontactable\";\n\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"uncontactable\",\n start: this.startDate,\n end: this.endDate,\n },\n \"uncontactable\"\n );\n }\n showCompletedApplications2() {\n this.statusValue = \"all\";\n this.leadType = \"completedDocs\";\n this.currentCard = \"completed\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"completedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"completedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"completedDocs\"\n );\n }\n\n showIncompleteApplications() {\n this.statusValue = \"all\";\n this.leadType = \"pendingDocs\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"ValidationPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pendingDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pendingDocs\"\n );\n }\n showDocumentsPending() {\n this.statusValue = \"all\";\n this.leadType = \"pendingDocs\";\n this.currentCard = \"updated\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pendingDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pendingDocs\"\n );\n }\n showDocumentsSubmitted() {\n this.statusValue = \"all\";\n this.leadType = \"documentsSubmitted\";\n this.currentCard = \"updated\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsSubmitted\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"documentsSubmitted\",\n start: this.startDate,\n end: this.endDate,\n },\n \"documentsSubmitted\"\n );\n }\n showCallback() {\n this.statusValue = \"all\";\n this.leadType = \"callback\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"callback\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"callback\",\n start: this.startDate,\n end: this.endDate,\n },\n \"callback\"\n );\n }\n showCallsPending() {\n this.statusValue = \"all\";\n this.leadType = \"pending\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"pendingCalls\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pending\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pending\"\n );\n }\n\n showRevalidate() {\n this.statusValue = \"all\";\n this.leadType = \"revalidatedDocs\";\n this.currentCard = \"revalidate\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"revalidate\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"revalidatedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"revalidatedDocs\"\n );\n }\n\n showApplicationsDenied() {\n this.statusValue = \"all\";\n this.leadType = \"studentDenied\";\n this.currentCard = \"denied\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"denied\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"studentDenied\",\n start: this.startDate,\n end: this.endDate,\n },\n \"studentDenied\"\n );\n }\n\n showUnassigned() {\n this.statusValue = \"all\";\n this.leadType = \"unassigned\";\n this.currentCard = \"total\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"unassigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"unassigned\",\n start: this.startDate,\n end: this.endDate,\n },\n \"unassigned\"\n );\n }\n\n showAssigned() {\n this.statusValue = \"all\";\n this.leadType = \"assigned\";\n this.currentCard = \"assigned\";\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"assigned\",\n start: this.startDate,\n end: this.endDate,\n },\n \"assigned\"\n );\n }\n showPreviousIntake() {\n this.statusValue = \"all\";\n this.leadType = \"previousintake\";\n this.currentCard = \"previousintake\";\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"previousintake\",\n start: this.startDate,\n end: this.endDate,\n },\n \"previousintake\"\n );\n }\n\n showAssignedtoMe() {\n this.statusValue = \"all\";\n this.leadType = \"assignedtoMe\";\n this.currentCard = \"assigned\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assignedtome\"\n // );\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"assignedtoMe\",\n start: this.startDate,\n end: this.endDate,\n };\n this.getTopBarCRM();\n this.getCardCount(obj, \"assignedtoMe\");\n }\n\n public onInput(event: any) {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: 1,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search != \"\") {\n // this.uhleadsservice\n // .GetSearchDashboardLeads(payload)\n // .subscribe((res: any) => {\n // // \n // this.activityTable = res.data;\n // });\n // this.activityTable = this.allRecords;\n } else if (this.search == \"\") {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.totalRecords.nativeElement.click();\n // this.getTopBarCRM();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n searchLeads(value, page) {\n this.leadType = \"all\";\n this.currentCard = \"total\";\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.uhleadsservice.GetSearchDashboardLeads(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n // \n this.activityTable = res.data;\n for (let i = 0; i < this.activityTable.length; i++) {\n if (this.activityTable[i].PhoneNumber == \"0000000000\") {\n this.activityTable[i].PhoneNumber = \"-\";\n this.activityTable[i].CountryCode = \"-\";\n }\n\n this.activityTable[i].AssignedtoName = this.getAgentName(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoColor = this.getAgentColor(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable[i].Assignedto\n );\n if (\n this.activityTable[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable[i].LeadDocStatus = \"Revalidate\";\n }\n }\n if (this.activityTable.length <= 0) {\n this.noRecords = true\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n //Table Filter\n dropdownSelect(event) {\n this.uhleadsservice.pageNumber.next(1);\n this.onClick(null);\n this.leadType = \"dropdown\";\n this.cardLeadType = event;\n this.getTopBarCRM();\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n\n updateActivity() {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n this.totalApplications = this.activityTable.length;\n this.completedApplications = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"validated\" || el.LeadDocStatus == \"Validated\";\n }).length;\n this.completedApplications2 = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"completed\" || el.LeadDocStatus == \"complete\";\n }).length;\n this.incompleteapplications = this.activityTable.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n }).length;\n this.documentspending = this.activityTable.filter(function (el) {\n return el.Phase == \"pending\";\n }).length;\n this.documentssubmitted = this.activityTable.filter(function (el) {\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n }).length;\n this.callback = this.activityTable.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n getDownloadLink() {\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/campbellsville.xlsx\")\n .subscribe(\n (data) => {\n this.downloadLink = data[\"url\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n redirectToUpload() {\n\n this.router.navigate([\"./upload/\" + this.projectId]);\n }\n\n convertFile(e) {\n\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n\n\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"GUID\" && sheet_data.length !== 0) {\n this.fileData = this.uhleadsservice.convert2dArraytoObject(sheet_data);\n\n this.uhleadsservice\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n // this.getDashboardLeads(this.leadType);\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n get createLeads() {\n return this.uhleadsservice.createLead.controls;\n }\n get editLeads() {\n return this.uhleadsservice.editLead.controls;\n }\n\n createLead() {\n this.uhleadsservice.createLead.controls['form_name'].setValue('none');\n this.uhleadsservice.createLead.controls['channel'].setValue('none');\n this.submitted = true;\n if (this.uhleadsservice.createLead.invalid) {\n return;\n }\n let fileData: Exceldata2[] = [\n new Exceldata2(\n this.uhleadsservice.createLeadValue[\"GUID\"],\n this.uhleadsservice.createLeadValue[\"firstName\"],\n this.uhleadsservice.createLeadValue[\"lastName\"],\n this.uhleadsservice.createLeadValue[\"countryCode\"],\n this.uhleadsservice.createLeadValue[\"phoneNumber\"],\n this.uhleadsservice.createLeadValue[\"email\"],\n \"\",\n this.uhleadsservice.createLeadValue[\"program\"],\n this.uhleadsservice.createLeadValue[\"applicationType\"],\n this.uhleadsservice.createLeadValue[\"CreatedDate\"],\n this.uhleadsservice.createLeadValue[\"comments\"]\n ),\n ];\n this.uhleadsservice\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Manual'\n })\n .subscribe(\n (data) => {\n this.uhleadsservice.showSuccess(\"Lead Added\", \"Success\");\n this.uhleadsservice.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.leadType = \"all\";\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getDashboardLeads(leadType) {\n if (!this.projectId) {\n return;\n }\n // this.statusValue = \"pending\";\n this.leadType = leadType;\n return this.marketingService\n .getDashboardLeads({\n admin: this.admin,\n // admin: true,\n mail: this.userData[\"mail\"],\n ProjectId: this.projectId,\n leadType: this.leadType,\n counselling: this.counselling,\n })\n .subscribe(\n (data) => {\n this.callData = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.showDate = false;\n }\n }\n getCounts(userData: any, leadtype, startDate, endDate, filter) {\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n // this.activityTable = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"Campbellsville\"\n )[0].id;\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityData2 = res;\n\n // this.callData = this.activityTable;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n this.activityData2[i].PhoneNumber = \"-\";\n this.activityData2[i].CountryCode = \"-\";\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityData2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityData = this.activityData2;\n this.totalApplications = this.activityData.length;\n this.completedApplications = this.activityData.filter(function (\n el\n ) {\n return el.LeadDocStatus == \"validated\";\n }).length;\n this.completedApplications2 = this.activityData.filter(function (\n el\n ) {\n return (\n el.LeadDocStatus == \"completed\" ||\n el.LeadDocStatus == \"Completed\"\n );\n }).length;\n this.incompleteapplications = this.activityData.filter(function (\n el\n ) {\n // return el.LeadDocStatus != \"validated\";\n return (\n el.LeadDocStatus == \"pending\" ||\n el.LeadDocStatus == \"Admin-revalidate\" ||\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"reopen\" ||\n el.LeadDocStatus == \"denied\"\n );\n }).length;\n var count = 0;\n\n this.documentspending = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n count = count + 1;\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n count = count + 1;\n } else {\n }\n }\n return el.Phase == \"pending\";\n }).length;\n this.documentspending = count;\n this.documentsDenied = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"denied\" || el.LeadDocStatus == \"Denied\"\n );\n }).length;\n this.CallsPending = this.activityData.filter(function (el) {\n return el.Phase == \"pending\" || el.Phase == \"Pending\";\n }).length;\n this.revalidate = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"GBP-revalidate\"\n );\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == \"\" || el.Assignedto == \"-\";\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.assignedtome = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == \"\" || el.Assignedto == \"-\";\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.documentssubmitted =\n this.totalApplications - this.documentspending;\n\n this.callback = this.activityData.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n\n var DocPendingList = [];\n var DocSubmittedList = [];\n\n if (filter == \"all\") {\n this.activityTable = this.activityData;\n } else if (filter == \"validatedDocuments\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == \"validated\";\n });\n } else if (filter == \"completedDocuments\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == \"completed\";\n });\n } else if (filter == \"ValidationPending\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"pending\" ||\n el.LeadDocStatus == \"Admin-revalidate\" ||\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"reopen\" ||\n el.LeadDocStatus == \"denied\"\n );\n });\n } else if (filter == \"completedApplications\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == \"complete\" || el.APPStatus == \"complete\";\n });\n } else if (filter == \"incompleteApplications\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n });\n } else if (filter == \"documentsPending\") {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n DocPendingList.push(el);\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n DocPendingList.push(el);\n }\n }\n return el.Phase == \"pending\";\n });\n this.activityTable = DocPendingList;\n } else if (filter == \"documentsSubmitted\") {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length != 0) {\n var docCheck = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n docCheck = false;\n }\n }\n if (docCheck == true) {\n DocSubmittedList.push(el);\n }\n }\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n });\n this.activityTable = DocSubmittedList;\n } else if (filter == \"callback\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n });\n } else if (filter == \"denied\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"Denied\" || el.LeadDocStatus == \"denied\"\n );\n });\n } else if (filter == \"pendingCalls\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == \"pending\" || el.Phase == \"Pending\";\n });\n } else if (filter == \"revalidate\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"GBP-revalidate\"\n );\n });\n } else if (filter == \"assigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != \"-\";\n });\n } else if (filter == \"assignedtome\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n });\n } else if (filter == \"unassigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == \"-\" || el.Assignedto == \"\";\n });\n } else if (filter == \"assigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != \"-\";\n });\n } else if (filter == \"unassigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == \"-\" || el.Assignedto == \"\";\n });\n }\n\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n }\n\n getData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityTable2 = res;\n\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n // this.getAgentName()\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAllData(userData: any, leadtype, startDate, endDate) {\n\n }\n\n getCallData() { }\n\n startCallListener() {\n this.uhleadsservice.startCall.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n }\n\n startCallListener2(data, index) {\n\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatusCheck = true;\n\n this.callData[0] = data;\n this.selectedLead = data;\n\n this.uhleadsservice.getDocumentDetails(data.GUID).subscribe(\n (res) => {\n this.documentsList = res;\n this.documentsList = this.documentsList.uploadDocsStatus;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.marketingId = {\n id: data?.id,\n status: data?.CallStatus,\n name: data?.FirstName,\n email: data?.Email,\n phoneNumber: \"+\" + data?.CountryCode + data?.PhoneNumber,\n // phoneNumber: \"+919848311098\",\n module: data?.Module,\n city: data?.City,\n nextCaller: this.activityTable.length > 1 ? 1 : 0,\n lead: 0,\n };\n\n if (this.activityTable.length > 1) {\n var nextFirstname = this.activityTable[index + 1]?.FirstName ? this.activityTable[index + 1]?.FirstName : '';\n var nextLastname = this.activityTable[index + 1]?.LastName ? this.activityTable[index + 1]?.LastName : '';\n var nextCallerCity = this.activityTable[index + 1]?.City ? this.activityTable[index + 1]?.City : '';\n var nextCallerCountryCode = this.activityTable[index + 1]?.CountryCode ? this.activityTable[index + 1]?.CountryCode.replace(\"+\", \"\") : '';\n var nextCallerPhoneNumber = this.activityTable[index + 1]?.PhoneNumber ? this.activityTable[index + 1]?.PhoneNumber : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber : '';\n this.startIndex = index + 1;\n }\n this.uhleadsservice.startCall.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n //Start Call timer\n\n // conferenceCall(from) {}\n\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCall.next({ value });\n }\n\n conferenceCall2(value: any) {\n if (value.phone_number) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: value.phone_number,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n if (value.manager[0]) {\n if (value.manager[0].Name) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: \"client:\" + value.manager[0].value,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n updateComments() {\n if (this.newStatusCheck) {\n } else {\n this.uhleadsservice\n .updateComments2({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n diyear: this.DIyear,\n diterms: this.DIterms,\n CallSid: this.callSid,\n })\n .subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.commentText = \"\";\n this.closeButton2.nativeElement.click();\n }\n }\n\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.newStatusCheck = false;\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n onStatusChange(data) {\n this.newStatus = data;\n this.newStatusCheck = false;\n if (this.newStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"Campbellsville\") {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendSms(payload, this.projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n });\n });\n });\n }\n\n sendSmsWp(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n let wpObj = {\n phone: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n // this.uhleadsservice\n // .getSms(this.currentLeadId)\n // .subscribe((smsList: any) => {\n // this.smsList = smsList.SMSDetails;\n // (document.getElementById(HTMLid)).value = \"\";\n // });\n });\n }\n\n sideNavData(data) {\n this.activityfilterString = \"\";\n this.file = null;\n this.customDocName = \"\";\n this.minItems = 5;\n this.sideViewerData = [];\n this.getCustomDocList(data);\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.uhleadsservice.getStudentActivity(data.id).subscribe(\n (res: any) => {\n this.uhleadsservice.getSms(data.id).subscribe((smsList: any) => {\n\n this.smsList = smsList.SMSDetails;\n });\n let wpObj = {\n phone: \"+\" + res?.CountryCode.replace('+', '') + res?.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n if (res.APPStatus == 'complete') {\n res.APPStatus = 'Completed';\n }\n this.sideViewerData = res;\n\n this.currentLeadId = this.sideViewerData.id;\n if (this.customDocLeadId != this.currentLeadId) {\n this.customFileList = [];\n this.customDocLeadId = this.currentLeadId;\n } else {\n this.customDocLeadId = this.currentLeadId;\n }\n this.currentGuid = this.sideViewerData.GUID;\n this.replaceNull(this.sideViewerData);\n this.documentValidation(data.id);\n function replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n this.sideViewerData.uploadlistofdocuments.forEach((x) => {\n x.DocComments.forEach((y) => {\n y.AgentColor = this.getAgentColor(y.AgentMail);\n });\n });\n for (\n let i = 0;\n i < this.sideViewerData.uploadlistofdocuments.length;\n i++\n ) {\n this.sideViewerData.LeadComments[i].AgentColor = this.getAgentColor(\n this.sideViewerData.LeadComments[i].AgentMail\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n\n documentValidation(id) {\n this.uhleadsservice.getDocumentComments(id).subscribe(\n (res) => {\n this.documentsList2 = res;\n this.documentsList2 = this.documentsList2.uploadlistofdocuments;\n this.getCustomList();\n\n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n this.checkValidation();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n changeValidation(value, docId) {\n this.uhleadsservice\n .updateValidationStatus({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n })\n .subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n\n this.uhleadsservice.showSuccess(\n \"Document Status updated!\",\n \"Success!\"\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: \"\",\n GUID: \"\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: docId,\n Title: \"Document Validation\",\n description:\n \"Document status changed to \" +\n value +\n \" by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"Validation\",\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.documentsList2.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.documentsList2.length; i++) {\n if (\n this.documentsList2[i].AgentValidation == \"revalidate\" ||\n this.documentsList2[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (this.documentsList2[i].AgentValidation == \"validated\") {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n if (this.validationStatus == true) {\n // Send Notification\n\n let payload = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRMGBP\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n // this.NotificationService.sendNotifications(payload).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // this.uhleadsservice.showSuccess(\n // \"All Documents Validated\",\n // \"Validation Complete\"\n // );\n // this.NotificationService.success(\"Validation\", \"Notification sent\");\n // }\n // }\n // );\n // this.NotificationService.sendNotifications(payload2).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // // this.uhleadsservice.showSuccess(\"All Documents Validated\", \"Validation Complete\");\n // this.NotificationService.success(\n // \"Validation\",\n // \"Notification sent to GBP\"\n // );\n // }\n // }\n // );\n }\n }\n\n postComments(item, HTMLid,sideViewerData?:any) {\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentGuid,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n // Admin: false,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData(sideViewerData?sideViewerData:item);\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n\n let payload = {\n LeadId: 0,\n GBPAssignedTo: \"\",\n Platform: \"CRM\",\n GUID: this.currentGuid,\n StudentDocId: 0,\n notificationType: \"LeadComments\",\n description: this.getAgentName(this.userData.mail) + \" has commented\",\n AgentMail: this.userData.mail,\n Title: \"Comment\",\n token: this.userData.token,\n };\n\n if (HTMLid == \"leadComments\") {\n payload.StudentDocId = 0;\n } else if (\n HTMLid == \"documentComments\" ||\n HTMLid == \"callingComments\"\n ) {\n payload.StudentDocId = item.StudentdocId;\n }\n try {\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n // this.toastr.showSuccess('Successfully send notification', 'Notification')\n // this.NotificationService.success('success', 'loading component');\n } else if (res.status == 500) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } catch (err) {\n\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n callFromDocs(data, item) {\n this.startCallListener2(data, 0);\n this.currentItem = item;\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.StudentdocId);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n uploadCustomDocument(e) {\n\n for (var i = 0; i < e.target.files.length; i++) {\n this.file.push(e.target.files[i]);\n this.customFileList.push(e.target.files[i]);\n }\n if (this.file.length > 0) {\n this.docUploadError = \"Click on add to start uploading your files\";\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n addCustomDocument() {\n let check = true;\n this.customFileList.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n\n this.docUploadError = \"Please be patient while the document is uploaded...\";\n if (this.customDocName == \"\") {\n this.docUploadError = \"Document name cannot be empty!\";\n return;\n } else {\n let formData: FormData = new FormData();\n formData.append(\"GUID\", this.currentGuid);\n formData.append(\"docName\", this.customDocName);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n formData.append(\"doc_code\", this.customDocNameCode);\n Array.from(this.customFileList).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n this.docUploadStatus = true;\n this.uhleadsservice.uploadCustomDocument(formData).subscribe(\n (res: any) => {\n let response = res.status;\n this.docUploadStatus = false;\n if (response == 200) {\n this.docUploadError = \"Custom document added\";\n this.uhleadsservice.showSuccess(\n \"Custom document added!\",\n \"Success\"\n );\n } else if (response == 201) {\n this.docUploadError = \"Uploaded a custom document\";\n this.uhleadsservice.showSuccess(\n \"Uploaded a custom document!\",\n \"Success\"\n );\n } else if (response == 202) {\n this.docUploadError = \"Document with given name already exists!\";\n this.uhleadsservice.showError(\n \"Document with given name already exists!\",\n \"Error\"\n );\n return;\n }\n this.sideNavData({ id: this.currentLeadId });\n this.closeButton.nativeElement.click();\n this.file = null;\n this.customDocName = \"\";\n },\n (err) => {\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.docUploadError = `The file ${err.error.file} is corrupted. Please upload valid files .`\n } else if (err.error.status == 500) {\n this.docUploadError = err.error.message;\n }\n else {\n this.docUploadError = 'Files not uploaded. Please check document extensions, upload supported documents.'\n }\n this.uhleadsservice.showError(\n this.docUploadError,\n \"Error\"\n );\n this.handleError.handleError(err);\n }\n );\n }\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.uhleadsservice\n .deleteCustomDocument({\n StudentdocId: docId,\n docName: docName,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n })\n .subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.uhleadsservice.showSuccess(\n \"Custom document deleted successfully.\",\n \"Deleted Successfully!\"\n );\n } else {\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.sideNavData({ id: this.currentLeadId });\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n playAudio(data) {\n // let audio = new Audio();\n if (this.audioStatus == false) {\n this.audio.src = data.RecordingURL;\n this.audio.pause();\n this.audio.currentTime = 0;\n // this.audio.load();\n this.audio.play();\n this.audioStatus = true;\n } else if (this.audioStatus == true) {\n this.audio.pause();\n this.audio.currentTime = 0;\n this.audioStatus = false;\n }\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n pauseAudio(data) {\n // audio.stop();\n }\n\n callNext() { }\n\n stopCurrentCall() {\n\n this.uhleadsservice.startCall.next(null);\n this.uhleadsservice.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n\n stopCallListener() {\n\n this.uhleadsservice.startCall.next(null);\n this.uhleadsservice.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n openCreateLead(content) {\n // gtag('event', 'add_new_lead', {\n // page_path: window.location.href,\n // page_title:'Leads Dashboard'\n // })\n this.modalService.open(content, { size: \"md\" });\n let country = countryCodes.find(x => x.callingCodes[0] == 1);\n this.selectCountry(country);\n }\n openEditLead(content, lead) {\n if (lead.DOB == \"-\") {\n lead.DOB = \"\";\n }\n\n this.editStatus = lead.CallStatus;\n this.DIterms = lead.DIterms;\n this.DIyear = parseInt(lead.DIyear);\n if (this.editStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n this.leadtoEdit = {\n LeadId: lead.id,\n FirstName: lead.FirstName,\n LastName: lead.LastName,\n CountryCode: lead.CountryCode,\n PhoneNumber: lead.PhoneNumber,\n Email: lead.Email,\n DOB: lead.DOB,\n EnrollmentYear: lead.EnrollmentYear,\n EnrollmentTerm: lead.EnrollmentTerm,\n Address: lead.Address,\n City: lead.City,\n State: lead.State,\n Zip: lead.Zip,\n Country: lead.Country,\n LeadComment: this.editComment,\n CallStatus: this.editStatus,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"lg\" });\n this.uhleadsservice.editLead.markAllAsTouched();\n if (lead.Country != \"-\") {\n let country = countryCodes.find(x => ((x.alpha2Code == lead.Country) || (x.name == lead.Country)));\n this.selectCountryEditName(country);\n }\n if (lead.CountryCode != \"-\") {\n let country1 = countryCodes.find(x => x.callingCodes[0] == lead.CountryCode);\n this.selectCountryEdit(country1);\n }\n }\n\n replaceAll(string, search, replace) {\n return string.split(search).join(replace);\n }\n\n updateLead() {\n if (this.leadtoEdit.EnrollmentTerm === '-') {\n this.leadtoEdit.EnrollmentTerm = null;\n this.uhleadsservice.editLead.controls['EnrollmentTerm'].setValue(null);\n }\n if (this.leadtoEdit.EnrollmentYear === '-') {\n this.leadtoEdit.EnrollmentYear = null;\n this.uhleadsservice.editLead.controls['EnrollmentYear'].setValue(null);\n }\n this.edited = true;\n if (this.uhleadsservice.editLead.invalid) {\n this.uhleadsservice.editLead.markAllAsTouched();\n return;\n }\n\n // this.leadtoEdit.CountryCode = this.leadtoEdit.CountryCode.replace(\"+\", \"\");\n this.leadtoEdit.CountryCode = this.replaceAll(\n this.leadtoEdit.CountryCode,\n \"+\",\n \"\"\n );\n this.leadtoEdit.DIterms = this.DIterms;\n this.leadtoEdit.DIyear = this.DIyear;\n if (this.leadtoEdit.CountryCode == \"-\") {\n this.leadtoEdit.CountryCode = \"00\";\n }\n if (this.leadtoEdit.PhoneNumber == \"-\") {\n this.leadtoEdit.PhoneNumber = \"0000000000\";\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.uhleadsservice.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n document.getElementById(\"closeButton3\").click();\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n page: 1,\n },\n this.cardLeadType\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n // Clear file and document name in custom document upload modal\n clearData() {\n this.file = [];\n this.customDocName = \"\";\n this.customFileList = [];\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append(\"fileUpload\", this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n formData.append(\"docName\", this.docName);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, this.docUploadID).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.cancelUpload();\n this.uploadSuccess = \"success\";\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.docUploadStatus = false;\n }\n },\n (err) => {\n this.uploadSuccess = \"failure\";\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n );\n }\n }\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n \n this.getDocNameByDocId(this.docUploadID);\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n\n open() {\n let payload = {\n LeadId: 0,\n GBPAssignedTo: \"\",\n Platform: \"CRM\",\n // GUID: \"f083dc22-9ed2-4204-b46c-d4e2958b6de0\",\n GUID: \"12356yyu98\",\n StudentDocId: 0,\n notificationType: \"LeadComments\",\n description: \"Test Comment\",\n AgentMail: \"ramana@universityhub.com\",\n Title: \"Test\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Comment\",\n description: \"12356yyu98\",\n notificationType: \"LeadComments\",\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.NotificationService.sendNotifications(payload2).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.NotificationService.success(\"success\", \"loading component\");\n // this.NotificationService.error('error', 'loading component');\n // this.NotificationService.info('info', 'loading component');\n // this.NotificationService.alert('alert', 'loading component');\n // this.NotificationService.warn('warn', 'loading component');\n }\n\n viewLead(id) {\n this.sideNav.toggle();\n this.sideNavData({ id: id });\n }\n\n onInputActivity(event: any) {\n\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n getTopBarCRM() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.isTopBarBind=false;\n\n this.uhleadsservice\n .getTopBarCRM(postData)\n .toPromise()\n .then((resp: any) => {\n this.totalPages = 1;\n\n if (this.leadType == \"all\") {\n this.totalPages = resp.TopBarCount.total;\n } else if (this.leadType == \"assigned\") {\n this.totalPages = resp.TopBarCount.assigned;\n } else if (this.leadType == \"assignedtoMe\") {\n this.totalPages = resp.TopBarCount.assignedtoMe;\n } else if (this.leadType == \"completedDocs\") {\n this.totalPages = resp.TopBarCount.completedDocs;\n } else if (this.leadType == \"documentsSubmitted\") {\n this.totalPages = resp.TopBarCount.documentsSubmitted;\n } else if (this.leadType == \"pendingDocs\") {\n this.totalPages = resp.TopBarCount.pendingDocs;\n } else if (this.leadType == \"reopen\") {\n this.totalPages = resp.TopBarCount.reopen;\n } else if (this.leadType == \"revalidatedDocs\") {\n this.totalPages = resp.TopBarCount.revalidatedDocs;\n } else if (this.leadType == \"studentDenied\") {\n this.totalPages = resp.TopBarCount.studentDenied;\n } else if (this.leadType == \"unassigned\") {\n this.totalPages = resp.TopBarCount.unassigned;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"validatedDocs\") {\n this.totalPages = resp.TopBarCount.validatedDocs;\n } else if (this.leadType == \"pending\") {\n this.totalPages = resp.TopBarCount.pending;\n } else if (this.leadType == \"called\") {\n this.totalPages = resp.TopBarCount.called;\n } else if (this.leadType == \"callback\") {\n this.totalPages = resp.TopBarCount.callback;\n } else if (this.leadType == \"informed\") {\n this.totalPages = resp.TopBarCount.informed;\n } else if (this.leadType == \"wrongnumber\") {\n this.totalPages = resp.TopBarCount.wrongnumber;\n } else if (this.leadType == \"notanswered\") {\n this.totalPages = resp.TopBarCount.notanswered;\n } else if (this.leadType == \"deferredintake\") {\n this.totalPages = resp.TopBarCount.deferredintake;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"previousintake\") {\n this.totalPages = resp.TopBarCount.previousintake;\n } else if (this.leadType == \"dropdown\") {\n this.uhleadsservice.getCountByCallStatus({\n status: this.cardLeadType,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n }).subscribe((count: any) => {\n this.totalPages = count.count;\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n });\n }\n\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n\n this.topBarCounts = resp.TopBarCount;\n this.isTopBarBind=true;\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n\n sortData(arr, value) {\n\n return arr.sort((a, b) => {\n return a[value] - b[value];\n //return a[value] < b[value] ? -1 : a[value] > b[value] ? 1: 0\n });\n }\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n if (column == \"createdAt\") {\n if (this.currentCard == \"total\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"validated\") {\n column = \"ValidatedDate\";\n } else if (this.currentCard == \"uncontactable\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"completed\") {\n column = \"CompletedDate\";\n } else if (this.currentCard == \"updated\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"revalidate\") {\n column = \"RevalidateDate\";\n } else if (this.currentCard == \"denied\") {\n column = \"DeniedDate\";\n } else if (this.currentCard == \"assigned\") {\n column = \"createdAt\";\n }\n }\n this.sortColumn = column;\n this.activityTable = sortJsonArray(\n this.activityTable,\n column,\n this.sortOrder\n );\n\n // if (this.sortOrder == 'asc'){\n // this.sortOrder ='des'\n // }else{\n // this.sortOrder = 'asc';\n // }\n }\n\n getCardCount(obj, type) {\n\n this.cardLeadType = type;\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.activityData2 = [];\n this.activityData = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n\n delete obj.ProjectId;\n obj.ProjectId = projects.filter(\n (x) => x.Name == \"Campbellsville\"\n )[0].id;\n // obj.ProjectId = data;\n obj.page = this.pageNumber;\n obj.leadType = this.cardLeadType;\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n console.log(\"🚀 -----------------------------------------------------------------------------🚀\");\n console.log(\"🚀 ~ file: uhleads.component.ts:3125 ~ UhleadsComponent ~ .then ~ resp:\", resp);\n console.log(\"🚀 -----------------------------------------------------------------------------🚀\");\n this.activityData2 = resp;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n this.activityData2[i].PhoneNumber = \"-\";\n this.activityData2[i].CountryCode = \"-\";\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityData2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n this.activityData = this.activityData2;\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.activityTable = this.activityData;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getCardData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n let obj = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n page: this.pageNumber,\n };\n\n\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n this.activityTable2 = resp;\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"total\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n checkThresHold(content, item, id) {\n this.thresItem = item;\n this.thresId = id;\n if (item.TotalCalls > 12) {\n this.thresModal = this.modalService.open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n });\n } else {\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById(\"openModalButton\").click();\n }\n }\n thresHold() {\n this.thresModal.close();\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById(\"openModalButton\").click();\n }\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n onDIYearChange(data) {\n this.DIyear = data;\n }\n getLeadDocStatusName(value) {\n switch (value) {\n case 'notsubmitted':\n return 'Not Submitted';\n break;\n case 'previousintake':\n return 'Previous Intake';\n break;\n\n default:\n return value;\n break;\n }\n }\n fetchCountries() {\n this.countries = countryCodes;\n }\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.createLead.get(\"countryCode\").patchValue(this.selectedCountryCode);\n }\n selectCountryEdit(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.editLead.get(\"CountryCode\").patchValue(this.selectedCountryCode);\n this.leadtoEdit.CountryCode = this.selectedCountryCode.toString();\n }\n selectCountryEditName(country) {\n this.selectedCountryName = country.name;\n this.leadtoEdit.Country = country?.alpha2Code;\n this.uhleadsservice.editLead.get(\"Country\").patchValue(country?.alpha2Code)\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n getCustomDocList(sidenavdata) {\n this.uhleadsservice.getCustomDocList().subscribe((data: any) => {\n if (data) {\n this.customDocList = data.response;\n }\n }, (error) => {\n\n })\n }\n customDocNameChange(value) {\n const index = this.customDocList.findIndex(x => x.name.toLowerCase().trim() == value.toLowerCase().trim());\n this.customDocNameCode = this.customDocList[index].code;\n }\n getCustomList() {\n this.customDocList.forEach(element => {\n const index = this.documentsList2.findIndex(x => x.ProgramDoc == element.name);\n if (index > -1) {\n element.disabled = true;\n } else {\n element.disabled = false;\n }\n });\n this.customDocList.sort((x, y) => Number(x.disabled) - Number(y.disabled));\n }\n getDocNameByDocId(id){\n let obj = {\n docId: id\n };\n this.uhleadsservice.getDocNameByDocId(obj).subscribe((data: any) => {\n if(data.data && data.data.ProgramDoc){\n this.docName = new Date().getTime()+Math.floor(100000 + Math.random() * 900000).toString()+ \"_\" + data.data.ProgramDoc;\n } else {\n this.docName = new Date().getTime()+Math.floor(100000 + Math.random() * 900000);\n }\n },(err) => {\n\n });\n }\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date : \"medium\" }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    DirectionInComing CallOutGoing Call
    Call Recording\n \n
    Comments{{ i.Comments }}
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    GUID{{ sideViewerData.GUID }}
    App Id{{ sideViewerData.ApplicationId }}
    Name\n {{\n sideViewerData.FirstName + \" \" + sideViewerData.LastName\n | titlecase\n }}\n
    DOB{{ sideViewerData.DOB | date: \"dd MMM, yyyy\"}}
    Submitted Date{{ sideViewerData.createdAt | date : \"medium\" }}
    APP Status{{ sideViewerData.APPStatus | titlecase }}
    Enrollment Year{{ sideViewerData.EnrollmentYear || \"NA\" }}
    Program{{ sideViewerData.Program }}
    Phone Number\n {{\n \"+\" + sideViewerData.CountryCode + sideViewerData.PhoneNumber\n }}\n
    Email{{ sideViewerData.Email }}
    Address\n {{\n sideViewerData.Address +\n \" \" +\n sideViewerData.City +\n \" \" +\n sideViewerData.State +\n \" \" +\n sideViewerData.Zip +\n \" \" +\n sideViewerData.Country || \"NA\" | titlecase\n }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item.ProgramDoc | titlecase }}\n
    \n \n
    \n\n
    \n {{ item.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n\n \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    {{ i.AgentName }}
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.total }}\n
    \n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assignedtoMe || 0 }}\n
    \n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.completedDocs || 0 }}\n
    \n
    \n
    \n
    Completed Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.validatedDocs || 0 }}\n
    \n
    \n
    \n
    Validated Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.documentsSubmitted || 0 }}\n
    \n
    \n
    \n
    Documents Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.pendingDocs || 0 }}\n
    \n
    \n
    \n
    Documents Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.studentDenied || 0 }}\n
    \n
    \n
    \n
    Students Denied
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.revalidatedDocs || 0 }}\n
    \n
    \n
    \n
    Revalidate Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.uncontactable || 0 }}\n
    \n
    \n
    \n
    Uncontactable
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.unassigned || 0 }}\n
    \n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assigned || 0 }}\n
    \n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.previousintake || 0 }}\n
    \n
    \n
    \n
    Previous Intake
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    Total Applications
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n\n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Add New Document\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Upload Documents\n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n \n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded\n successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document\n extensions, upload supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Status Change\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected for\n update.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    Actions\n
    \n
    Created
    \n
    \n Validation\n
    \n
    \n Uncontactable\n
    \n
    \n Completed\n
    \n
    \n Revalidation\n
    \n
    Denied
    \n
    \n Assigned\n
    \n \n
    \n
    \n Updated\n \n \n Name\n \n \n Email\n \n \n Assigned To\n \n \n Phone\n \n \n Term\n \n \n Programme\n \n \n Doc_Status\n \n \n Call_Status\n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.ValidatedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.CompletedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.DeniedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.RevalidateDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n
    \n
    \n
    \n
    \n
    \n \n {{ item.updatedAt | date : \"dd MMM, yyyy\" }}\n \n
    \n {{ item.updatedAt | date : \"dd MMM, yyyy\" }}\n
    \n \n
    \n \n \n \n
    \n
    \n \n {{ item.Email | lowercase }}\n \n
    \n {{ item.Email | lowercase }}\n
    \n \n
    \n
    \n
    \n \n\n

    \n {{ item.AssignedtoInitial }}\n

    \n
    \n
    \n
    \n \n {{ item.AssignedtoName | titlecase }}\n \n
    \n {{ item.AssignedtoName | titlecase }}\n
    \n \n
    \n
    \n {{ item.PhoneNumber }}\n \n {{ item.EnrollmentTerm }}\n \n {{ item.Program | uppercase }}\n \n
    \n
    \n \n Not Submitted\n \n
    \n Not Submitted\n
    \n
    \n
    \n \n {{ getLeadDocStatusName(item?.LeadDocStatus) | titlecase }}\n \n
    \n {{ getLeadDocStatusName(item?.LeadDocStatus) | titlecase }}\n
    \n \n
    \n Pending\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred\n Intake\n Not Answered\n Deferred Intake\n Un Contactable\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Calling Screens\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    \n {{ callStatus }}\n
    \n

    \n \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Student details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{\n callData[0]?.FirstName +\n \" \" +\n callData[0].LastName\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.GUID }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.APPStatus }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0].DOB | date: \"dd MMM, yyyy\"}}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.EnrollmentYear }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Program }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.PhoneNumber }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0]?.Email }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Address }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Document details
    \n
    \n
    \n
    \n
    \n \n {{\n documentsList[i].DocumentName }}\n
    \n
    \n \n {{ documentsList[i + 1].DocumentName }}\n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{\n sideViewerData.FirstName +\n \" \" +\n sideViewerData.LastName\n }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n\n
    \n {{ callStatus }}\n
    \n\n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n \n \n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    LastName is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n \n
    \n
    \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Please use valid country code .
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    Please use valid phone number .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n \n \n
    \n
    Program is required
    \n
    Only characters are allowed .
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n \n \n
    \n\n \n \n
    \n

    \n Update Lead Details\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    Last Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid Email
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0]\n }})\n \n
    • \n
    \n
    \n\n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n\n
    \n
    Phone Number is required
    \n
    Only numbers are allowed
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    Enrollment Year is required
    \n
    Only numbers are allowed
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    Enrollment Term is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }}\n \n
    • \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    Call

    \n \n
    \n
    \n
    \n
    \n You have reached the calling limit.
    Are you sure you want\n to continue?\n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    ","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { MomentFormatService } from 'src/app/moment-format-service';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { UhLeadsService } from '../../uhleads.service';\n\n@Component({\n selector: 'app-uhleadsfilter',\n templateUrl: './uhleadsfilter.component.html',\n styleUrls: ['./uhleadsfilter.component.css']\n})\nexport class UhleadsfilterComponent implements OnInit {\n userData: any;\n showProjects: boolean = false;\n showCourses: boolean = false;\n showApplications: boolean = false;\n showApplicationsCall: boolean = false;\n showUsers: boolean = false;\n showEnrollmentYear: boolean = false;\n showEnrollmentTerm: boolean = false;\n showDate: boolean = false;\n showCreatedDate: boolean = false;\n showUpdatedDate: boolean = false;\n projectLists: any;\n coursesList: any;\n applicationsList: any;\n applicationsCallList: any\n agentsList: any;\n enrollmentTermList: any;\n enrollmentYearList: any;\n list: any[] = [\n { name: 'Users', checked: false },\n { name: 'Applications', checked: false },\n { name: 'Enrollment Year', checked: false },\n { name: 'Enrollment Term', checked: false },\n ];\n selectedIndexProject: number;\n currentProjectName: any;\n courseSelectionArray: any[] = [];\n applicationSelectionArray: any[] = [];\n applicationCallSelectionArray: any[] = [];\n usersSelectionArray: any[] = [];\n enrollmentYearSelectionArray: any[] = [];\n enrollmentTermSelectionArray: any[] = []\n startDate: any;\n endDate: any;\n selectedIndexDate: string;\n showDateCustom: boolean = false;\n filterValue: string;\n date1: any;\n date2: any;\n private colors = [\n [{ 'bg': '#FAE2DF', 'color': '#A52A1E' }],\n [{ 'bg': '#C8EAF2', 'color': '#014C5C' }],\n [{ 'bg': '#CDEDDC', 'color': '#04745A' }],\n [{ 'bg': '#D1E2FF', 'color': '#013CA3' }],\n [{ 'bg': '#e7fadf', 'color': '#39a51e' }],\n [{ 'bg': '#dffaeb', 'color': '#1ea55b' }],\n [{ 'bg': '#dfe2fa', 'color': '#1e2ea5' }],\n ]\n @Output() generate = new EventEmitter();\n @Output() export = new EventEmitter();\n projectId: any;\n @ViewChild('Program') Program: ElementRef;\n @ViewChild('Applications') Applications: ElementRef;\n @ViewChild('CallStatus') CallStatus: ElementRef;\n @ViewChild('Users') Users: ElementRef;\n @ViewChild('EnrollmentYear') EnrollmentYear: ElementRef;\n @ViewChild('EnrollmentTerm') EnrollmentTerm: ElementRef;\n @ViewChild('Date') Date: ElementRef;\n constructor(\n private services: UhLeadsService,\n private momentService: MomentFormatService,\n private sharedService: SharedService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || '{}');\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n // this.sharedService.projectId.subscribe((data) => {\n this.projectId = 2;\n this.getCourses();\n this.getAgentList();\n this.getEnrollmentTerm();\n this.getEnrollmentYear();\n this.getApplicationList();\n // })\n }\n toggleFilters(val) {\n\n if (val === 'showProjects') {\n this.showProjects = !this.showProjects;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showCourses') {\n this.showProjects = false;\n this.showCourses = !this.showCourses;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showApplications') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = !this.showApplications;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showApplicationsCall') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = !this.showApplicationsCall;\n } else if (val === 'showUsers') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = !this.showUsers;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showEnrollmentYear') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = !this.showEnrollmentYear;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showEnrollmentTerm') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = !this.showEnrollmentTerm;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showDate') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = !this.showDate;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showCreatedDate') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = !this.showCreatedDate;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n } else if (val === 'showUpdatedDate') {\n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = !this.showUpdatedDate;\n this.showApplicationsCall = false;\n }\n }\n getCourses() {\n this.services.getCourses(this.userData.id, this.userData.token).toPromise()\n .then((resp: any) => {\n this.coursesList = resp.data;\n this.checkAllcourse(true);\n this.isAllCheckedcourse()\n })\n .catch(err => {\n\n })\n }\n getAgentList() {\n this.services.getAgents(this.projectId).toPromise()\n .then((resp: any) => {\n var agentList = resp.data.sort((a,b)=> a.agentInitial === b.agentInitial ? 0 : a.agentInitial < b.agentInitial ? -1 : 1);\n \n agentList.forEach(y => {\n y.AgentColor = this.colors[this.numberFromText(y.agentInitial) % this.colors.length][0]\n })\n this.agentsList = agentList;\n this.checkAllusers(true);\n this.isAllCheckedusers();\n })\n .catch(err => {\n\n })\n }\n numberFromText(text) {\n const charCodes = text\n .split('') // => [\"A\", \"A\"]\n .map(char => char.charCodeAt(0)) // => [65, 65]\n .join(''); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n getApplicationList() {\n var postData = {\n \"userId\": this.userData.id,\n \"token\": this.userData.token,\n \"platform\": \"CRM\",\n \"project\": this.projectId\n }\n this.services.getApplication(postData).toPromise()\n .then((resp: any) => {\n \n this.applicationsList = resp.applicationStatusLists;\n this.applicationsCallList = resp.applicationCallStatus;\n this.checkAllapplication(true);\n this.checkAllCallapplication(true);\n this.isAllCheckedapplication();\n this.isAllCheckedapplicationCall();\n })\n .catch(err => {\n\n })\n }\n getEnrollmentTerm() {\n this.services.getEnrollmentTerm(this.userData.id, this.userData.token).toPromise()\n .then((resp: any) => {\n this.enrollmentTermList = resp.enrollmentTermList;\n this.checkAllenrollmentTerm(true);\n this.isAllCheckedenrollmentTerm();\n\n })\n .catch(err => {\n\n })\n }\n getEnrollmentYear() {\n this.services.getEnrollmentYear(this.userData.id, this.userData.token).toPromise()\n .then((resp: any) => {\n this.enrollmentYearList = resp.enrollmentYearList;\n this.checkAllenrollmentYear(true);\n this.isAllCheckedenrollmentYear();\n })\n .catch(err => {\n\n })\n }\n shareCheckedList(item: any[]) {\n }\n shareIndividualCheckedList(item: any) {\n if (item.name === 'Users' && item.checked === true) {\n this.toggleFilters('showUsers')\n }\n if (item.name === 'Applications' && item.checked === true) {\n this.toggleFilters('showApplications')\n }\n if (item.name === 'Enrollment Year' && item.checked === true) {\n this.toggleFilters('showEnrollmentYear')\n }\n if (item.name === 'Enrollment Term' && item.checked === true) {\n this.toggleFilters('showEnrollmentTerm')\n }\n }\n dateSelection(event) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n this.filterValue = 'custom';\n this.showDateCustom = true;\n this.selectedIndexDate = event.target.value;\n } else if (event.target.value == \"24hrs\") {\n this.showDateCustom = false;\n this.filterValue = '24hrs'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n } else if (event.target.value == \"72hrs\") {\n this.showDateCustom = false;\n this.filterValue = '72hrs'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n } else if (event.target.value == \"07days\") {\n this.showDateCustom = false;\n this.filterValue = '07days'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n } else if (event.target.value == \"14days\") {\n this.showDateCustom = false;\n this.filterValue = '14days'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n } else if (event.target.value == \"30days\") {\n this.showDateCustom = false;\n this.filterValue = '30days'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n }\n else if (event.target.value == \"yearly\") {\n this.showDateCustom = false;\n this.filterValue = 'yearly'\n this.selectedIndexDate = event.target.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n }\n }\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDateCustom == false) {\n this.showDateCustom = true;\n }\n }\n filterData() {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n }\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n // FILTER FUCNTIONS\n // PROJECT SINGLE SELECTION HANDLE\n projectSelection(event, id, name) {\n if (event.target.checked) {\n this.selectedIndexProject = id;\n this.currentProjectName = name\n } else {\n this.selectedIndexProject = undefined;\n this.currentProjectName = '';\n }\n }\n\n // COURSE MULTI SELECT HANDLE\n courseSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.courseSelectionArray.push(s);\n } else {\n var index = this.courseSelectionArray.indexOf(s);\n if (index > -1) {\n this.courseSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllcourse(ev) {\n this.courseSelectionArray = [];\n this.coursesList.forEach(x => {\n if (ev === true) {\n this.courseSelectionArray.push(x.course);\n }\n return x.courseState = ev\n });\n\n }\n isAllCheckedcourse() {\n var rValue = this.coursesList.every(_ => _.courseState);\n return rValue;\n }\n // APPLICATION MULTI SELECT HANDLE\n applicationSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.applicationSelectionArray.push(s);\n } else {\n var index = this.applicationSelectionArray.indexOf(s);\n if (index > -1) {\n this.applicationSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllapplication(ev) {\n this.applicationSelectionArray = [];\n this.applicationsList.forEach(x => {\n if (ev === true) {\n this.applicationSelectionArray.push(x.value);\n }\n return x.applicationState = ev\n });\n\n }\n isAllCheckedapplication() {\n var rValue = this.applicationsList.every(_ => _.applicationState);\n return rValue;\n }\n unCheckapplicationSelectionArray() {\n this.applicationSelectionArray = []\n this.applicationsList.forEach(x => {\n return x.applicationState = false\n })\n }\n // CALL APPLICATION MULTI SELECT HANDLE\n applicationCallSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.applicationCallSelectionArray.push(s);\n } else {\n var index = this.applicationCallSelectionArray.indexOf(s);\n if (index > -1) {\n this.applicationCallSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllCallapplication(ev) {\n this.applicationCallSelectionArray = [];\n this.applicationsCallList.forEach(x => {\n if (ev === true) {\n this.applicationCallSelectionArray.push(x.value);\n }\n return x.applicationStateCall = ev\n });\n\n }\n isAllCheckedapplicationCall() {\n var rValue = this.applicationsCallList.every(_ => _.applicationStateCall);\n return rValue;\n }\n // Enrollment Year SELECT HANDLE\n enrollmentYearSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.enrollmentYearSelectionArray.push(s);\n } else {\n var index = this.enrollmentYearSelectionArray.indexOf(s);\n if (index > -1) {\n this.enrollmentYearSelectionArray.splice(index, 1);\n }\n }\n\n }\n\n checkAllenrollmentYear(ev) {\n this.enrollmentYearSelectionArray = [];\n this.enrollmentYearList.forEach(x => {\n if (ev === true) {\n this.enrollmentYearSelectionArray.push(x.EnrollmentYear);\n }\n return x.enrollmentYearState = ev\n });\n\n }\n isAllCheckedenrollmentYear() {\n var rValue = this.enrollmentYearList.every(_ => _.enrollmentYearState);\n return rValue;\n }\n unCheckenrollmentYearSelectionArray() {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentYearList.forEach(x => {\n return x.enrollmentYearState = false\n })\n }\n // Enrollment Term SELECT HANDLE\n enrollmentTermSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n this.enrollmentTermSelectionArray.push(s);\n } else {\n var index = this.enrollmentTermSelectionArray.indexOf(s);\n if (index > -1) {\n this.enrollmentTermSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllenrollmentTerm(ev) {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentTermList.forEach(x => {\n if (ev === true) {\n this.enrollmentTermSelectionArray.push(x.EnrollmentTerm);\n }\n return x.enrollmentTermState = ev\n });\n\n }\n isAllCheckedenrollmentTerm() {\n var rValue = this.enrollmentTermList.every(_ => _.enrollmentTermState);\n return rValue;\n }\n unCheckenrollmentTermSelectionArray() {\n this.enrollmentTermSelectionArray = [];\n this.enrollmentTermList.forEach(x => {\n return x.enrollmentTermState = false\n })\n }\n // USERS MULTI SELECT HANDLE\n usersSelection(ev) {\n var s = ev.value;\n if (ev.checked) {\n\n this.usersSelectionArray.push(s);\n \n } else {\n var index = this.usersSelectionArray.indexOf(s);\n if (index > -1) {\n this.usersSelectionArray.splice(index, 1);\n }\n }\n }\n\n checkAllusers(ev) {\n this.usersSelectionArray = [];\n this.agentsList.forEach(x => {\n if (ev === true) {\n this.usersSelectionArray.push(x.Mailid);\n }\n return x.usersState = ev\n });\n\n }\n isAllCheckedusers() {\n var rValue = this.agentsList.every(_ => _.usersState);\n return rValue;\n }\n unCheckusersSelectionArray() {\n this.usersSelectionArray = [];\n this.agentsList.forEach(x => {\n return x.usersState = false\n })\n }\n\n // ===========================\n\n generateData() {\n \n this.showProjects = false;\n this.showCourses = false;\n this.showApplications = false;\n this.showUsers = false;\n this.showEnrollmentYear = false;\n this.showEnrollmentTerm = false;\n this.showDate = false;\n this.showCreatedDate = false;\n this.showUpdatedDate = false;\n this.showApplicationsCall = false;\n var postData = {\n \"course\": this.courseSelectionArray.length === this.coursesList.length ? 'All' : this.courseSelectionArray.length > 0 ? this.courseSelectionArray : 'All',\n \"agentEmail\": this.usersSelectionArray.length === this.agentsList.length ?\n 'All' : this.usersSelectionArray.length > 0 ?\n this.usersSelectionArray : 'All',\n \"from\": this.startDate,\n \"to\": this.endDate,\n \"callStatus\": \n this.applicationCallSelectionArray.length === this.applicationsCallList.length?\n 'All' : this.applicationCallSelectionArray.length >0 ? \n this.applicationCallSelectionArray : 'All',\n \"enrollmentYear\": this.enrollmentYearSelectionArray.length === this.enrollmentYearList.length ? 'All' : this.enrollmentYearSelectionArray.length > 0 ? this.enrollmentYearSelectionArray : 'All',\n \"enrollmentTerm\": this.enrollmentTermSelectionArray.length === this.enrollmentTermList.length ? 'All' : this.enrollmentTermSelectionArray.length > 0 ? this.enrollmentTermSelectionArray : 'All',\n \"application\": this.applicationSelectionArray.length === this.applicationsList.length ? 'All' : this.applicationSelectionArray.length > 0 ? this.applicationSelectionArray : 'All'\n }\n this.generate.emit(postData);\n }\n getAgentName(val) {\n var agentList = this.agentsList;\n var name = agentList.filter(x => x.Mailid === val)[0];\n return name.agentname\n }\n exportData() {\n this.export.emit();\n }\n getApplicationName(val){\n var applicationList = this.applicationsList;\n var name = applicationList.filter(x => x.value === val)[0];\n return name.LeadDocStatus\n }\n getApplicationCallName(val){\n var applicationList = this.applicationsCallList;\n var name = applicationList.filter(x => x.value === val)[0];\n return name.LeadCallStatus\n }\n}\n\n","
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
    • \n
    • \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    ","import {\n Component,\n OnInit,\n ViewChild,\n Inject,\n ElementRef,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { UhLeadsService } from \"../../uhleads.service\";\nimport * as xlsx from \"xlsx\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { MarketingService, InputSMSData } from \"../../marketing/marketing.service\";\nimport { RoleService } from \"../../role-management/role.service\";\nimport { CreateAgent } from \"../../create-agent/create-agent.service\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { ReferreeService } from \"../../referree/referree.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nimport { Exceldata } from \"../../marketing/smsmarketing/models/ExecelData.model\";\nimport { UhubDashboardService } from \"./../uhub-dashboard.service\";\nimport { environment } from \"src/environments/environment\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport * as moment from \"moment\";\nimport { NotificationsService } from \"src/app/notification.service\";\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nconst countryCodes = require(\"../../../../assets/allcountryDetails.json\");\nimport { TransfersService } from \"../../trasnfers/transfers.service\";\nimport { RecruiterleadsService } from \"./recruiterleads.service\";\nimport { SocketService } from \"src/app/socket.service\";\n\n@Component({\n selector: 'app-recruiterleads',\n templateUrl: './recruiterleads.component.html',\n styleUrls: ['./recruiterleads.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class RecruiterleadsComponent implements OnInit {\n userData: any;\n projectId: any;\n admin: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n endDate: any;\n startDate: any;\n date1: any;\n date2: any;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n currentLeadId: any;\n activityfilterString: string = \"\";\n minItems = 5;\n leadSearch: string = \"\";\n currentCard: string = \"total\";\n sortColumn = \"createdAt\";\n sortOrder = \"des\";\n smsText: string;\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n public filterValue = \"all\";\n showDate: boolean = false;\n filterString: string;\n LeadList: any[] = [];\n leadType: string = \"total\";\n cardleadType: string = \"total\";\n tab!: string;\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"sendUniversityDoc\") sendUniversityDoc;\n @ViewChild(\"leadNotAssigned\") leadNotAssigned;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButtonCustom\") closeButtonCustom;\n @ViewChild(\"closeButtonCustom5\") closeButtonCustom5;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n topBarCount: {\n total: number;\n facebook: number;\n web: number;\n followup: number;\n pending: number;\n followupDate: number;\n counsellingpending: number;\n counsellingcompleted: number;\n interested: number;\n duplicate: number;\n enrolled: number;\n assignedToMe: number;\n TransferStudent: number;\n InternationalStudent: number;\n } = {\n total: 0,\n facebook: 0,\n web: 0,\n followup: 0,\n pending: 0,\n followupDate: 0,\n counsellingpending: 0,\n counsellingcompleted: 0,\n interested: 0,\n duplicate: 0,\n enrolled: 0,\n assignedToMe: 0,\n TransferStudent: 0,\n InternationalStudent: 0,\n };\n isTopBarBind:Boolean=false;\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n University: string;\n CallStatus: string;\n AgentMail: string;\n };\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n\n DIyear: any;\n DIterms: any;\n DIyearArray: any = [];\n recruiterDetails: any;\n public intakeListArray: any = [];\n\n public filePath: any;\n public fileData: Exceldata[] = [];\n public uploaded: boolean = false;\n public insertCount: number = 0;\n public callData: any[] = [];\n public startCall: boolean = false;\n public stopCall: boolean = false;\n public startIndex: number = 0;\n public statusValue = \"all\";\n public clearTime: any;\n UhubList: any[] = [];\n UhubList1: any;\n allLeads: any;\n public fileSource = environment.fileServer;\n public downloadLink: string;\n public page: any = 1;\n public pageSize: any = 12;\n selectedAll: boolean = false;\n leadIds = [];\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n selectedLead: any;\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n leadsLoading: boolean = false;\n noLeadsFound: boolean = false;\n sidenavLoading: boolean = false;\n agentList: any;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n callStatusFilter: String = \"all\";\n public currentLead: any;\n public isUpdateLead: boolean = false;\n public submitted: boolean = false;\n defaultAgent = \"default\";\n selectedAgent: any;\n totalAgents: any;\n agentName: any;\n GBPagentList: any;\n\n public search: string;\n isLoading: boolean = true;\n noRecords: boolean = false;\n\n file: File[] = [];\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: File[] = [];\n customDocLeadId: any;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n uploadSuccess: string = \"none\";\n documentsList2: any;\n validationStatus: boolean = false;\n documentComments: string;\n currentStatus: any;\n docUrl: any;\n currentItem: any;\n countries = [];\n selectedCountryCode = 1;\n selectedCountry = \"\";\n testConfig: countUpTimerConfigModel;\n comments: any;\n\n followUpdate: Date = new Date();\n\n updateLeadComments1: boolean = false;\n UhubCallSid: any;\n uniList: any[] = [];\n currentGUIDCommentsAttachment: any[] = [];\n transferCustomUniversity: any;\n transferCustomUniversityProg: any;\n uni: any;\n customDocNameCode: any;\n currentLeaduuid: any;\n docName: any;\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.selectedCountry = country.alpha2Code;\n this.marketingService.createLead.get(\"countryCode\").patchValue(this.selectedCountryCode)\n }\n allUniversities: any[] = [];\n currentProject: any;\n selectIndex = 0;\n customDocList: any[] = []\n\n constructor(\n private SharedService: SharedService,\n private momentService: MomentFormatService,\n private companyService: RoleService,\n private uhleadsservice: UhLeadsService,\n private ReferreeService: ReferreeService,\n public marketingService: MarketingService,\n private readonly handleError: ErrorHandlerService,\n private router: Router,\n public layoutService: LayoutService,\n public UhubDashboardService: RecruiterleadsService,\n private readonly modalService: NgbModal,\n private readonly snackbarRef: MatSnackBar,\n private agentService: CreateAgent,\n private NotificationService: NotificationsService,\n private transferService: TransfersService,\n @Inject(DOCUMENT) private domService: HTMLDocument,\n public countupTimerService: CountupTimerService,\n private socketService: SocketService,\n\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit(): void {\n this.followUpdate.setDate(this.followUpdate.getDate() + 2);\n this.fetchCountries();\n this.SharedService.pageEvent.emit({\n pageName: \"Recruiter Leads Dashboard\",\n });\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.getListofUniversities();\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = (this.momentService.dashboardDateFormat(new Date(new Date(Date.now() - 864e5 * 365)).getTime()));\n this.endDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() + 864e5))\n )));\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n this.companyService.projectAdmin(this.userData[\"companyId\"]).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"University Hub\"\n )[0].id;\n // this.projectId = data;\n if (this.projectId) {\n this.SharedService.getProjectAdmin(this.projectId).subscribe(\n (data: any) => {\n this.admin = data;\n setTimeout(() => {\n if (this.projectId) {\n this.getTopBarCount();\n this.getLeadsByCards(this.cardleadType);\n this.onClick(1);\n this.getUniversalRecords();\n }\n }, 500);\n\n // this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n // this.pageNumber = pageNo;\n // if (this.leadType != \"filter\") {\n // } else if (this.leadType == \"filter\") {\n // let payload = {\n // admin: this.admin,\n // ProjectId: this.projectId,\n // start: \"2020-08-02 09:40:25+00\",\n // end: \"2025-08-03 09:40:25+00\",\n // page: this.pageNumber,\n // leadType: \"All\",\n // mail: \"All\",\n // callStatus: \"All\",\n // course: \"All\",\n // enrollmentYear: \"All\",\n // enrollmentTerm: \"All\",\n // export: false,\n // search: this.search,\n // };\n // this.searchLeads1(payload);\n // }\n // });\n this.layoutService.postComments.subscribe((data) => {\n if (data) {\n this.postComments1(data.item, data.value);\n }\n });\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/accessque.xlsx\")\n .subscribe(\n (data) => {\n this.downloadLink = data[\"url\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n\n // server-side search\n\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n let stopCallsSub = this.layoutService.stopCalls.subscribe((data) => {\n if (data) {\n this.stopCallListener();\n this.startCall = false;\n }\n });\n this.UhubDashboardService.startTimerRecruiter.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n this.layoutService.getCallSid.subscribe((sid: any) => {\n this.UhubCallSid = sid;\n });\n let redial = this.layoutService.redialContact.subscribe((data) => {\n if (data) {\n clearTimeout(this.clearTime);\n }\n });\n let callEndSub = this.layoutService.callEnd.subscribe((data) => {\n if (this.statusValue === \"interested\") {\n this.stopCall = true;\n this.startCall = false;\n return;\n }\n if (this.startCall && this.callData.length !== 0) {\n } else {\n this.startCall = false;\n }\n });\n this.layoutService.currentStatus.subscribe((data) => {\n this.currentStatus = data;\n });\n this.UhubDashboardService.callStatusRecruiter.subscribe((status) => {\n this.callStatus = status;\n });\n\n this.UhubDashboardService.unreadCountRecObservable.subscribe((data) => {\n if (data) {\n this.LeadList.forEach(element => {\n if (Number(element.id) === Number(data.id)) {\n element.unreadCount = data.count;\n }\n });\n }\n });\n this.UhubDashboardService.viewReceivedLeadObservable.subscribe((data) => {\n if (data) {\n this.selectIndex = 0;\n setTimeout(() => {\n this.selectIndex = 2;\n this.sideNav.open();\n this.sideNavData({ id: data });\n setTimeout(() => {\n this.markNotificationRead(data);\n }, 1000);\n }, 500);\n }\n });\n this.UhubDashboardService.addLeadObservable.subscribe(async (data) => {\n if (data) {\n await this.getTopBarCount();\n await this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n this.selectIndex = 2;\n await this.sideNavData({ id: data })\n }\n })\n\n this.socketService.recruiterLeadAdd.subscribe((data) => {\n if (data) {\n this.getTopBarCount();\n this.getLeadsByCards(this.cardleadType);\n }\n });\n }\n\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n onInputActivity(event: any) {\n if (this.leadSearch != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"University Hub\") {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n this.UhubDashboardService.sendSmsRecruiter(payload, this.projectId).subscribe(\n (res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.UhubDashboardService.getSmsRecruiter(this.currentLeadId).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n }\n );\n });\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = (this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()));\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n )));\n\n this.showDate = false;\n }\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n // write here\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n }\n\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n filterData() {\n // this.onClick(null);\n this.startDate = new Date(this.date2.value).setHours(0, 0, 0, 0);\n this.endDate = new Date(this.date1.value).setHours(23, 0, 0, 999);\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getTopBarCount();\n this.getLeadsByCards(this.cardleadType);\n this.getUniversalRecords();\n }\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = (this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime()));\n }\n\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = (this.momentService.dashboardDateFormat((\n new Date(this.endDate).getTime()\n )));\n }\n\n getLeadsByCards(cardValue) {\n this.search = '';\n this.filterString = \"\";\n this.LeadList = [];\n this.leadType = cardValue;\n this.statusValue = \"all\";\n this.callStatusFilter = \"all\";\n if (\n this.leadType == \"pending\" ||\n this.leadType == \"followup\" ||\n this.leadType == \"interested\"\n ) {\n this.callStatusFilter = this.leadType;\n this.statusValue = this.leadType;\n }\n console.log(this.leadType)\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n cardValue,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n }\n\n onClick(check: any) {\n // this.uhleadsservice.pageNumber.next(1);\n this.pageNumber = 1;\n if (check) {\n this.tab = \"tab\" + check;\n } else {\n this.tab = \"\";\n }\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"First Name\" && sheet_data.length !== 0) {\n this.fileData =\n this.marketingService.convert2dArraytoObject(sheet_data);\n this.marketingService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Excel\",\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n redirectToUpload() {\n this.router.navigate([\"./upload/\" + this.projectId + '/recruiter']);\n }\n\n startCallListener() {\n this.UhubDashboardService.startCallRecruiter.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n followUpCall1(data, item) {\n if (!this.startCall) {\n this.layoutService.marketingCallDocs.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n item: item,\n });\n this.startCall = true;\n }\n }\n\n startCallListener2(data, index) {\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n this.newStatus = false;\n this.callData[0] = data;\n this.selectedLead = data;\n this.marketingId = {\n id: data.id,\n status: data.CallStatus,\n name: data.FirstName,\n email: data.Email,\n phoneNumber: \"+\" + data.CountryCode + data.PhoneNumber,\n module: data.Module,\n city: \"\",\n nextCaller: this.LeadList.length > 1 ? 1 : 0,\n lead: 0,\n };\n if (this.LeadList.length > 1) {\n var nextFirstname = this.LeadList[index + 1]?.FirstName ? this.LeadList[index + 1]?.FirstName : '';\n var nextLastname = this.LeadList[index + 1]?.LastName ? this.LeadList[index + 1]?.LastName : '';\n var nextCallerCity = this.LeadList[index + 1]?.City ? this.LeadList[index + 1]?.City : '';\n var nextCallerCountryCode = this.LeadList[index + 1]?.CountryCode ? this.LeadList[index + 1]?.CountryCode.replace(\"+\", \"\") : '';\n var nextCallerPhoneNumber = this.LeadList[index + 1]?.PhoneNumber ? this.LeadList[index + 1]?.PhoneNumber : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber : '';\n this.startIndex = index + 1;\n }\n\n this.UhubDashboardService.startCallRecruiter.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n this.startCall = true;\n this.patchEditValues(data);\n }\n stopCalls() {\n this.UhubDashboardService.startCallRecruiter.next(null);\n this.UhubDashboardService.stopCallRecruiter.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n stopCallListener() {\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n public onInput(event: any) {\n if (this.search != \"\") {\n } else if (this.search == \"\") {\n this.totalRecords.nativeElement.click();\n }\n }\n\n searchLeads(value, page) {\n this.LeadList = [];\n this.noRecords = false;\n this.isLoading = true;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.UhubDashboardService.getUhubSearchDashboardLeadsRecruiter(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n if (res.totalResults <= 0) {\n this.noRecords = true;\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.totalPages = Number(newTotal);\n console.log(\"1\")\n // this.uhleadsservice.totalPages.next(Number(newTotal));\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n for (let i = 0; i <= this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].recruiterassignto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter';\n this.LeadList[i].FormName = 'Recruiter';\n } else {\n this.LeadList[i].FormName = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = '-';\n }\n if (this.LeadList[i].transferDetails.length > 0) {\n this.LeadList[i].UniversityCount = this.LeadList[i]?.transferDetails[0]?.universityInfo?.length || 0;\n } else {\n this.LeadList[i].UniversityCount = 0;\n }\n }\n\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.cardleadType = 'all';\n this.getTopBarCount();\n this.getLeadsByCards(\"total\");\n }\n }\n\n searchLeads1(payload) {\n this.LeadList = [];\n this.leadType = \"filter\";\n this.UhubDashboardService.getUhubSearchDashboardLeadsRecruiter(payload).subscribe(\n (res: any) => {\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n // this.uhleadsservice.totalPages.next(Number(newTotal));\n this.totalPages = Number(newTotal);\n console.log(\"2\")\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n for (let i = 0; i < this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].recruiterassignto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter'\n }\n // this.LeadList[i].FormName =\n // this.LeadList[i].Miscellaneous.form_name;\n }\n\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n dropdownSelect(event) {\n if (event == \"all\") {\n this.cardleadType = \"total\";\n } else {\n this.callStatusFilter = event;\n this.leadType = \"dropdown\";\n this.cardleadType = event;\n this.onClick(null);\n }\n // this.uhleadsservice.pageNumber.next(1);\n this.pageNumber = 1;\n this.pageChange(this.pageNumber);\n }\n\n getTopBarCount() {\n var postData = {\n AgentMail: this.userData.mail,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n this.isTopBarBind=false;\n\n this.UhubDashboardService.getTopBarCountRecruiter(postData).subscribe(\n (res: any) => {\n if (this.leadType == \"total\") {\n this.totalPages = res.total;\n console.log(\"3\")\n } else if (this.leadType == \"facebook\") {\n this.totalPages = res.facebook;\n console.log(\"4\")\n } else if (this.leadType == \"Website\") {\n this.totalPages = res.web;\n console.log(\"5\")\n } else if (this.leadType == \"callback\") {\n this.totalPages = res.followup;\n console.log(\"6\")\n } else if (this.leadType == \"pending\") {\n this.totalPages = res.pending;\n console.log(\"7\")\n } else if (this.leadType == \"pending\") {\n this.totalPages = res.pending;\n console.log(\"8\")\n } else if (this.leadType == \"interested\") {\n this.totalPages = res.interested;\n console.log(\"9\")\n } else if (this.leadType == \"counsellingpending\") {\n this.totalPages = res.counsellingpending;\n console.log(\"10\")\n } else if (this.leadType == \"counsellingcompleted\") {\n this.totalPages = res.counsellingcompleted;\n console.log(\"11\")\n } else if (this.leadType == \"QualifiedLead\") {\n this.totalPages = res.qualifiedLead;\n console.log(\"12\")\n } else if (this.leadType == \"QualifiedHotLead\") {\n this.totalPages = res.qualifiedHotLead;\n console.log(\"13\")\n } else if (this.leadType == \"assignedto\") {\n this.totalPages = res.assignedToMe;\n console.log(\"14\")\n } else if (this.leadType == \"InternationalStudent\") {\n this.totalPages = res.InternationalStudent;\n console.log(\"15\")\n } else if (this.leadType == \"duplicate\") {\n this.totalPages = res.duplicate;\n console.log(\"16\")\n } else if (this.leadType == \"enrolled\") {\n this.totalPages = res.enrolled;\n console.log(\"17\")\n } else if (this.leadType == \"TransferStudent\") {\n this.totalPages = res.TransferStudent;\n console.log(\"18\")\n }\n console.log(\"19\")\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n console.log(\"20\")\n // this.uhleadsservice.totalPages.next(this.totalPages);\n this.topBarCount = res;\n this.isTopBarBind=true;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getUniversalRecords() { }\n\n getLeads(admin, projectId, mail, leadType, start, end, page, callStatus) {\n this.isLoading = true;\n this.cardleadType = leadType;\n let payload = {\n admin: admin,\n mail: mail,\n ProjectId: projectId,\n leadType: leadType,\n start: start,\n end: end,\n page: page,\n callStatus: callStatus,\n };\n\n this.UhubDashboardService.getLeadsRecruiter(payload).subscribe(\n async (res: any) => {\n this.isLoading = false;\n var test1 = res.data;\n\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj.FirstName + \" \" + obj.LastName,\n }));\n this.LeadList = test2;\n this.callData = [...this.LeadList];\n if (this.leadType == \"callback\" ||\n this.leadType == \"called\" ||\n this.leadType == \"callfailed\" ||\n this.leadType == \"duplicate\" ||\n this.leadType == \"futurelead\" ||\n this.leadType == \"interested\" ||\n this.leadType == \"interestedpending\" ||\n this.leadType == \"notanswered\" ||\n this.leadType == \"notinterested\" ||\n this.leadType == \"pending\" ||\n this.leadType == \"informed\" ||\n this.leadType == \"deferredintake\" ||\n this.leadType == \"counsellingpending\" ||\n this.leadType == \"counsellingcompleted\" ||\n this.leadType == \"applicationsubmitted\" ||\n this.leadType == \"documentspending\" ||\n this.leadType == \"documentssubmitted\" ||\n this.leadType == \"paymentpending\" ||\n this.leadType == \"pendingi20\" ||\n this.leadType == \"pendingvisa\" ||\n this.leadType == \"visadeclined\" ||\n this.leadType == \"visaapproved\" ||\n this.leadType == \"pendingtravel\" ||\n this.leadType == \"travelcomplete\" ||\n this.leadType == \"enrolled\" ||\n this.leadType == \"prospect\") {\n setTimeout(() => {\n this.totalPages = ~~(Number(res.count) / 12) + 1;\n console.log(\"21\")\n }, 1500);\n }\n\n for (let i = 0; i <= this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].recruiterassignto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].recruiterassignto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter';\n this.LeadList[i].FormName = 'Recruiter';\n } else {\n this.LeadList[i].FormName = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = '-';\n }\n if (this.LeadList[i].transferDetails.length > 0) {\n this.LeadList[i].UniversityCount = this.LeadList[i]?.transferDetails[0]?.universityInfo?.length || 0;\n } else {\n this.LeadList[i].UniversityCount = 0;\n }\n }\n\n\n if (this.LeadList.length == 0) {\n this.noRecords = true;\n }\n this.callData = [...this.LeadList];\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.LeadList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.LeadList.length; i++) {\n this.leadIds.push(this.LeadList[i].universityinfo.uuid);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n var test1 = sortJsonArray(this.LeadList, this.sortColumn, this.sortOrder);\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.universityinfo.uuid);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.universityinfo.uuid);\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\n openEditLead(content, lead) { }\n\n updateLead() { }\n\n sideNavData(data) {\n this.sideViewerData = [];\n this.sidenavLoading = true;\n this.activityfilterString = \"\";\n this.getCustomDocList(data);\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.UhubDashboardService.getLeadRecruiter(data.id).subscribe(\n (res: any) => {\n let leadInfo = res.filter(x => x.universityinfo.uuid == this.currentLeaduuid)[0];\n res[0].recruiterassignto = leadInfo.recruiterassignto;\n this.UhubDashboardService.getSmsRecruiter(data.id).subscribe((smsList: any) => {\n this.smsList = smsList.SMSDetails;\n this.sideViewerData = res[0];\n this.getCustomList();\n if (this.sideViewerData.transferDetails.recruiterSalesforceId) {\n let paylaod = {\n recruiterSalesforceId:\n this.sideViewerData.transferDetails.recruiterSalesforceId,\n };\n this.UhubDashboardService.getRecruiterDetailsRecruiter(paylaod).subscribe(\n (Data: any) => {\n if (Data) {\n this.recruiterDetails = Data;\n }\n }\n );\n }\n\n this.replaceNull(this.sideViewerData);\n this.replaceNull(this.sideViewerData.transferDetails);\n this.documentValidation(this.sideViewerData.id);\n this.sidenavLoading = false;\n\n this.currentLeadId = this.sideViewerData.id;\n });\n let wpObj = {\n phone: \"+\" + this.sideViewerData?.CountryCode.replace('+', '') + this.sideViewerData?.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // }\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n }\n\n updateComments(modal, item) {\n if ((item.recruiterassignto == null || item.recruiterassignto == undefined || item.recruiterassignto == '-' || item.recruiterassignto == '') && item.transferDetails.length > 0) {\n this.notAssignedModel(item);\n } else {\n\n this.layoutService.commentsForm.get(\"interested\").clearValidators();\n this.layoutService.commentsForm.get(\"interested\").updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue == \"callback\") {\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue == \"counsellingpending\") {\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n dob: item[\"DOB\"] ? this.layoutService.dateFormatForAddUpdate1(item[\"DOB\"]) : null\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe(\n (data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe(\n (data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.modalService.open(modal, { size: \"xl\" });\n\n }\n }\n\n async submit() {\n if (this.isUpdateLead) {\n if (this.layoutService.commentsForm.invalid) {\n } else {\n this.layoutService\n .updateCommentsBasedOnId(this.currentLead[\"id\"])\n .subscribe(\n () => {\n this.updateLeadComments();\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n this.modalService.dismissAll();\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n if (this.layoutService.commentsForm.invalid) {\n } else {\n this.layoutService.updateComments(this.currentLead[\"id\"]).subscribe(\n () => {\n this.updateLeadComments();\n this.modalService.dismissAll();\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\")\n ) {\n await this.scheduleDemo();\n this.closeButton2.nativeElement.click();\n } else {\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n this.marketingService\n .updateLeadStatus({\n id: this.currentLead.id,\n phase: this.layoutService.commentsValue.interested,\n })\n .subscribe(\n () => {\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n this.UhubDashboardService.sendNotificationRecruiter({\n type: 'lead-status-changed-crm',\n data: {\n uhub_id: this.currentLead[\"id\"],\n status: this.layoutService.commentsValue.interested\n }\n }).subscribe((data: any) => {\n\n }, (err) => {\n\n })\n }\n\n updateLeadComments() {\n if (this.currentLead.phase !== \"demo\") {\n let callStatus = \"interested\";\n let futureLead = \"no\";\n if (this.layoutService.commentsValue.interested === \"futurelead\") {\n callStatus = \"interested\";\n futureLead = \"yes\";\n } else {\n callStatus = this.layoutService.commentsValue.interested;\n futureLead = \"no\";\n }\n this.layoutService\n .updateCallComments({\n id: this.currentLead[\"id\"],\n agentMail: this.userData.mail,\n comments: this.layoutService.commentsValue.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: futureLead,\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.currentLead[\"recruiterassignto\"],\n })\n .subscribe(\n (data) => {\n this.updateCallComments(\n this.layoutService.commentsValue.comments,\n this.currentLead[\"id\"],\n this.layoutService.commentsValue.interested\n );\n this.getTopBarCount();\n if (this.leadType != \"filter\") {\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n } else if (this.leadType == \"filter\") {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n this.searchLeads1(payload);\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n updateCallComments(comments, id, callstatus) {\n // this.layoutService.getCallSid.subscribe((sid: any) => {\n let payload = {\n sid: this.UhubCallSid,\n comments: comments,\n id: id,\n callstatus: callstatus,\n };\n this.layoutService\n .updateCallCommentsNew(payload)\n .subscribe((res: any) => { });\n // });\n }\n\n scheduleDemo() {\n let dt = this.layoutService.commentsValue.counsellingDate;\n dt =\n moment(dt).format(\"dddd D MMM YY\") + \" at \" + moment(dt).format(\"h:m a\");\n let template: string = this.currentLead[\"Miscellaneous\"][\"form_name\"]\n .toLowerCase()\n .includes(\"ielts\")\n ? \"ielts\"\n : \"usastudy\";\n\n let num = Math.floor(Math.random() * 90000) + 10000;\n let room = \"live-\" + num.toString();\n let smsId = null;\n let callId = null;\n let mailId = null;\n\n let demoScheduled = `${environment.BaseURL}/videocalling/mainscreen/${this.projectId}/${room}`;\n const smsMarketingBefore6hr: InputSMSData = {\n ProjectId: this.projectId,\n Module: this.currentLead[\"Module\"],\n RecipientNumber:\n \"+\" +\n this.currentLead[\"CountryCode\"] +\n this.currentLead[\"PhoneNumber\"].replace(/\\n/g, \"\"),\n ScheduledSMSTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Type: \"Information\",\n };\n this.marketingService.getAutoDialCompany(this.projectId).subscribe(\n async (data) => {\n if (data) {\n let apiKey = data[\"API_KEY\"];\n if (dt) {\n smsId = await this.marketingService.createAutoSmsScheduler(\n smsMarketingBefore6hr,\n apiKey\n );\n }\n }\n setTimeout(() => {\n this.marketingService\n .createDemo({\n ProjectId: this.projectId,\n Name: this.currentLead[\"FirstName\"],\n AutoEmailId: mailId ? mailId[\"mailId\"] : null,\n AutoCallId: callId ? callId[\"callId\"] : null,\n AutoSMSId: smsId ? smsId[\"smsId\"] : null,\n Comments: this.layoutService.commentsValue.comments,\n DateTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Presenter:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0][\"value\"]\n : this.currentLead[\"recruiterassignto\"],\n Feedback: this.layoutService.commentsValue.interested,\n Url: demoScheduled + \"/\" + this.userData.workerFriendlyName,\n ClientURL: demoScheduled + \"/\" + this.currentLead[\"FirstName\"],\n RoomName: room,\n LeadId: this.currentLead.id,\n agentEmail: this.userData.mail,\n })\n .subscribe(\n (demo) => {\n if (dt) {\n this.marketingService\n .updateDemo({\n demoId: demo[\"id\"],\n leadId: this.currentLead.id,\n })\n .subscribe(\n (data) => {\n if (dt) {\n this.layoutService.sendSmsForLead({\n date: dt,\n from: this.layoutService.twilioNumber,\n projectId: this.projectId,\n student_name: this.currentLead[\"FirstName\"],\n tosms: this.currentLead.PhoneNumber,\n });\n }\n if (dt) {\n this.marketingService.sendMailForDemo(\n {\n name: this.currentLead[\"FirstName\"],\n demoDate: moment(\n this.layoutService.commentsValue.counsellingDate\n ).format(\"MMMM Do YYYY, h:mm:ss a\"),\n url:\n demoScheduled +\n \"/\" +\n this.currentLead[\"FirstName\"],\n },\n this.currentLead.Email,\n this.projectId,\n template\n );\n this.updateLeadComments();\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }, 2000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n get f(): { [key: string]: AbstractControl } {\n return this.layoutService.commentsForm.controls;\n }\n\n get createLeads(): { [key: string]: AbstractControl } {\n return this.marketingService.createLead.controls;\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.UhubDashboardService.assignLeadsRecruiter({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n }).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n this.modalService.dismissAll();\n\n // Notify Recruiter\n this.leadIds.forEach(element => {\n // get studentInfo by uuid\n this.UhubDashboardService.getLeadInfoUsingUniversityId(element).subscribe((data: any) => {\n if (data) {\n let leadInfo = data.data[0];\n this.UhubDashboardService.sendNotificationRecruiter({\n type: 'lead-assigned-crm',\n data: {\n uhub_id: leadInfo.uhub_id,\n university_uuid: element\n }\n }).subscribe((data: any) => {\n\n }, (err) => {\n\n })\n }\n }, (err) => {\n\n });\n });\n\n this.leadIds = [];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n if (email !== null || email !== undefined) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n } else {\n return '-'\n }\n\n }\n\n createLead() {\n this.submitted = true;\n if (this.marketingService.createLead.invalid) {\n return;\n }\n let fileData: Exceldata[] = [\n new Exceldata(\n this.marketingService.createLeadValue[\"firstName\"],\n this.marketingService.createLeadValue[\"lastName\"],\n this.marketingService.createLeadValue[\"countryCode\"],\n this.marketingService.createLeadValue[\"phoneNumber\"],\n this.marketingService.createLeadValue[\"email\"],\n this.userData.mail,\n this.marketingService.createLeadValue[\"module\"],\n this.marketingService.createLeadValue[\"channel\"],\n {\n form_id: \"\",\n form_name: this.marketingService.createLeadValue[\"form_name\"],\n \"Choose Batch\": \"\",\n \"Training Mode\": \"\",\n },\n this.marketingService.createLeadValue[\"comments\"],\n this.marketingService.createLeadValue[\"createdAt\"]\n ),\n ];\n this.marketingService\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Manual\",\n })\n .subscribe(\n (data) => {\n this.marketingService.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.getTopBarCount();\n this.onClick(1);\n this.getLeadsByCards(this.cardleadType);\n this.getUniversalRecords();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n openCreateLead(content) {\n this.modalService.open(content, { size: \"md\" });\n }\n\n getAgentInitial(email) {\n if (email !== null || email !== undefined) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n } else {\n return '-'\n }\n }\n\n getAgentColor(email) {\n if (email !== null || email !== undefined) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n } else {\n return '-'\n }\n }\n\n getAgentphoto(email) {\n if (email !== null || email !== undefined) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n } else {\n return '-'\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n\n onDIYearChange(data) {\n this.DIyear = data;\n }\n // Clear file and document name in custom document upload modal\n clearData(uniName?: any, uniProg?: any) {\n this.transferCustomUniversity = uniName;\n this.transferCustomUniversityProg = uniProg;\n if (uniName) {\n const index = this.allUniversities.findIndex(x => x?.university?.toLowerCase() === uniName?.toLowerCase());\n if (index > -1) {\n this.currentProject = this.allUniversities[index].uniProjectId;\n }\n }\n this.file = [];\n this.customDocName = \"\";\n this.customFileList = [];\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append(\"fileUpload\", this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n async attachFileMainCommentGetDetails(e) {\n for await (const i of e.target.files) {\n this.currentGUIDCommentsAttachment.push(i);\n }\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.getDocNameByDocId(this.docUploadID);\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n\n uploadCustomDocument(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.file.push(e.target.files[i]);\n this.customFileList.push(e.target.files[i]);\n }\n if (this.customFileList.length > 0) {\n this.docUploadError = \"Click on add to start uploading your files\";\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n addCustomDocument(isTransfer?: boolean) {\n let check = true;\n this.customFileList.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n this.docUploadError = \"Please be patient while the document is uploaded...\";\n if (this.customDocName == \"\") {\n this.docUploadError = \"Document name cannot be empty!\";\n return;\n } else {\n this.docUploadStatus = true;\n let formData: FormData = new FormData();\n if (this.currentProject == 0) {\n const universityInfo = this.UhubDashboardService.universitiesList;\n const index = universityInfo.findIndex(x => x.name == this.uni.name);\n this.currentProject = universityInfo[index].id;\n }\n formData.append(\"GUID\", this.currentLeadId);\n formData.append(\"docName\", this.customDocName);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n formData.append('ProjectId', this.currentProject);\n Array.from(this.customFileList).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n this.UhubDashboardService.uploadDocumentRecruiter(formData).subscribe(\n (res: any) => {\n let response = res.status;\n this.docUploadStatus = false;\n if (response == 200) {\n this.docUploadError = \"Custom document added\";\n this.uhleadsservice.showSuccess(\n \"Custom document added!\",\n \"Success\"\n );\n } else if (response == 201) {\n this.docUploadError = \"Uploaded a custom document\";\n this.uhleadsservice.showSuccess(\n \"Uploaded a custom document!\",\n \"Success\"\n );\n } else if (response == 202) {\n this.docUploadError = \"Document with given name already exists!\";\n this.uhleadsservice.showError(\n \"Document with given name already exists!\",\n \"Error\"\n );\n return;\n }\n if (isTransfer) {\n this.updatetransferUniversityProg(res.StudentdocId);\n }\n this.sideNavData({ id: this.currentLeadId });\n this.file = [];\n this.customDocName = \"\";\n this.closeButtonCustom.nativeElement.click();\n this.closeButtonCustom5.nativeElement.click();\n\n },\n (error) => {\n this.docUploadStatus = false;\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.UhubDashboardService.deleteCustomDocumentRecruiter({\n StudentdocId: docId,\n docName: docName,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"Custom document deleted successfully.\",\n \"Deleted Successfully!\"\n );\n } else {\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.StudentdocId);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n callFromDocs(data, item) {\n this.currentItem = item;\n this.startCallListener2(data, 0);\n }\n\n changeValidation(value, docId) {\n this.UhubDashboardService.updateValidationStatusRecruiter({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Document Status updated!\", \"Success!\");\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.sideViewerData.uploadlistofdocuments.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.sideViewerData.uploadlistofdocuments.length; i++) {\n if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation ==\n \"revalidate\" ||\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation ==\n \"validated\"\n ) {\n this.validationStatus = true;\n // open modal to confirm if agent wants to send mail to student or not\n // this.modalService.open(this.sendUniversityDoc,{ size: \"md\" });\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n }\n\n postComments(item, HTMLid, attachmentId?: any) {\n let body;\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n if (this.documentComments.length > 0) {\n const isAttachmentFile = ((\n document.getElementById(attachmentId)\n ));\n if (isAttachmentFile) {\n let attachmentFile = isAttachmentFile.files;\n if (attachmentFile.length > 0) {\n let files = attachmentFile[0];\n let check = true;\n if (this.validateFile(files.type) == false) {\n this.uhleadsservice.showError(\"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\", '');\n check = false;\n return;\n }\n if (check == true) {\n let formData: FormData = new FormData();\n formData.append(\"document\", files, files.name)\n this.UhubDashboardService.uploadFileAndGetLinkRecruiter(formData).subscribe(async (data: any) => {\n let attachCommentObj = [];\n attachCommentObj.push(\n data.url\n )\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: attachCommentObj\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n })\n }\n } else {\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: []\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n }\n } else {\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: []\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n }\n } else {\n this.uhleadsservice.showInfo('Please write something in comment box.', '')\n }\n }\n\n addCommentsOnDoc(body, attachmentId, HTMLid) {\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n\n this.UhubDashboardService.sendNotificationRecruiter({\n type: 'crm-comment',\n data: {\n uhub_id: body.GUID\n }\n }).subscribe((data: any) => {\n\n }, (err) => { });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n documentValidation(id) {\n this.documentsList2 = this.sideViewerData.uploadlistofdocuments;\n\n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n this.checkValidation();\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n console.log(this.docName)\n formData.append(\"docName\", this.docName);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.UhubDashboardService.uploadDocument1Recruiter(\n formData,\n this.docUploadID\n ).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.docName = null;\n if (res.status == 200) {\n this.uploadSuccess = \"success\";\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.docUploadStatus = false;\n this.UhubDashboardService.sendNotificationRecruiter({\n type: 'doc-upload',\n data: {\n uhub_id: this.currentLeadId\n }\n }).subscribe((data: any) => {\n\n }, (err) => {\n });\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n }\n }\n },\n (err) => {\n this.docUploadStatus = false;\n this.uploadSuccess = \"failure\";\n this.handleError.handleError(err);\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n );\n }\n }\n\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n postComments1(item, value) {\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: value,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fetchCountries() {\n this.countries = countryCodes;\n }\n\n onInput1(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n patchEditValues(item) {\n this.layoutService.commentsForm.get(\"interested\").clearValidators();\n this.layoutService.commentsForm.get(\"interested\").updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue == \"callback\") {\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue == \"counsellingpending\") {\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n dob: this.layoutService.dateFormatForAddUpdate1(item[\"DOB\"])\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe(\n (data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe(\n (data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n async submitCallEdit() {\n this.comments = this.layoutService.commentsValue.comments;\n\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n } else {\n if (this.layoutService.commentsForm.invalid) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n\n if (\n this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\"\n ) {\n await this.scheduleDemo();\n }\n\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QulaifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QulaifiedHotLead\")\n ) {\n //await this.scheduleDemo();\n if (this.updateLeadComments1) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n // duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n if (this.updateLeadComments1) {\n this.updateCommentsCall();\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.updateCommentsCall();\n }\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n if (this.updateLeadComments1) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.updateCommentsCall();\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.updateCommentsCall();\n }\n }\n }\n }\n }\n updateCommentsCall() {\n this.layoutService\n .updateCallComments({\n id: this.marketingId[\"id\"],\n agentMail: this.userData.mail,\n comments: this.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: \"futureLead\",\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.marketingId.lead[\"recruiterassignto\"],\n })\n .subscribe(\n (data) => {\n let payload = {\n sid: this.UhubCallSid,\n comments: this.comments,\n id: this.marketingId[\"id\"],\n callstatus: this.layoutService.commentsValue.interested,\n };\n this.layoutService\n .updateCallCommentsNew(payload)\n .subscribe((res: any) => {\n this.layoutService.onReset();\n this.submitted = false;\n this.closeButton2.nativeElement.click();\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n sendUniMailPopUp() {\n this.modalService.open(this.sendUniversityDoc, { size: \"md\" });\n }\n sendUniMailConfirm() {\n this.currentLeadId\n let paylaod = {\n GUID: this.currentLeadId\n };\n this.UhubDashboardService.sendUniMailRecruiter(paylaod).subscribe(() => {\n this.uhleadsservice.showSuccess(\"Success\", \"Mail sent successfully!\")\n })\n }\n startCall1() {\n this.layoutService.startCalls.next(\"startcalls\");\n }\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCall.next({ value });\n }\n sendSmsWp(item, HTMLid) {\n\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n let wpObj = {\n phone: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n getUniList(i) {\n this.uniList = i.transferDetails[0].universityInfo;\n }\n downloadCommentAttachment(data) {\n if (data && data?.Attachment && data?.Attachment?.length > 0) {\n data?.Attachment.forEach(element => {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", element);\n document.body.appendChild(link);\n link.click();\n link.remove();\n });\n }\n }\n getListofUniversities() {\n this.UhubDashboardService.getAllUniversityRecruiter().subscribe((data: any) => {\n this.allUniversities = data.universities;\n });\n }\n notAssignedModel(item) {\n this.leadIds.push(item.id);\n this.modalService.open(this.leadNotAssigned, { size: \"md\" });\n // this.uhleadsservice.showInfo('Please assign the lead first .','The lead is not assigned.')\n }\n markNotificationRead(id) {\n this.NotificationService.markReadByGUID({\n \"ProjectId\": this.projectId,\n \"GUID\": id\n }).subscribe((data) => {\n this.UhubDashboardService.unreadCountRecBehaviorSubject.next(id);\n this.LeadList.forEach(element => {\n if (Number(element.id) === Number(id)) {\n element.unreadCount = 0;\n }\n });\n }, (err) => {\n\n })\n }\n updatetransferUniversityProg(docId) {\n if (this.transferCustomUniversity && this.transferCustomUniversityProg) {\n this.UhubDashboardService.updateTransferCustomDocRecruiter({\n studentdocid: docId,\n university: this.transferCustomUniversity,\n program: this.transferCustomUniversityProg\n }).subscribe((data: any) => {\n\n })\n }\n }\n setUniversity(uni) {\n this.uni = uni;\n }\n getCustomDocList(sidenavdata) {\n this.uhleadsservice.getCustomDocListNew(this.projectId).subscribe((data: any) => {\n if (data) {\n this.customDocList = data.response;\n }\n }, (error) => {\n\n })\n }\n customDocNameChange(value) {\n const index = this.customDocList.findIndex(x => x.name.toLowerCase().trim() == value.toLowerCase().trim());\n this.customDocNameCode = this.customDocList[index].code;\n }\n\n getCustomList() {\n this.customDocList.forEach(element => {\n const index = this.sideViewerData?.uploadlistofdocuments.findIndex(x => x.ProgramDoc == element.name);\n if (index > -1 && element.name !== 'Statement of Purpose') {\n element.disabled = true;\n } else {\n element.disabled = false;\n }\n });\n this.customDocList.sort((x, y) => Number(x.disabled) - Number(y.disabled));\n }\n pageChange(pageNo) {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n if (this.projectId != null && this.projectId) this.getLeadsByCards(this.cardleadType);\n } else if (this.leadType == \"filter\") {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n this.searchLeads1(payload);\n }\n }\n setCurrentLeaduuid(uuid) {\n this.currentLeaduuid = uuid;\n }\n getDocsByUniversity(docs, uni?: any) {\n const d1 = docs.filter(x => x.ProgramDoc !== 'Statement of Purpose');\n const d2 = docs.filter(x => {\n return x.ProgramDoc === 'Statement of Purpose' && x.TransferUniversity === this.uni.name\n });\n const d3 = [...d1, ...d2];\n return d3;\n }\n getCustomDocListView(docs) {\n docs.forEach(element => {\n if (element.name == 'Statement of Purpose') {\n this.sideViewerData.uploadlistofdocuments.forEach(x => {\n if (x.ProgramDoc == 'Statement of Purpose') {\n if (x.TransferUniversity == this.uni.name) {\n element.disabled = true;\n }\n }\n });\n }\n });\n docs.sort((x, y) => Number(x.disabled) - Number(y.disabled));\n return docs;\n }\n getDocNameByDocId(id) {\n let obj = {\n docId: id\n };\n this.UhubDashboardService.getDocNameByDocId(obj).subscribe((data: any) => {\n if (data.data && data.data.ProgramDoc) {\n this.docName = new Date().getTime() + Math.floor(100000 + Math.random() * 900000).toString() + \"_\" + data.data.ProgramDoc;\n } else {\n this.docName = new Date().getTime() + Math.floor(100000 + Math.random() * 900000);\n }\n }, (err) => {\n\n });\n }\n}\n\n","\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Name\n {{\n sideViewerData.FirstName !== \"-\" &&\n sideViewerData.LastName !== \"-\"\n ? sideViewerData.FirstName + \" \" + sideViewerData.LastName\n : sideViewerData.FirstName !== \"-\" &&\n sideViewerData.LastName === \"-\"\n ? sideViewerData.FirstName\n : \"\"\n }}\n
    Email{{ sideViewerData.Email }}
    Mobile\n {{\n sideViewerData.CountryCode + \" \" + sideViewerData.PhoneNumber\n }}\n
    Address\n {{\n sideViewerData?.transferDetails?.address ||\n \"--\" + \" \" + sideViewerData?.transferDetails.cityOrTown ||\n \"--\" + \" \" + sideViewerData?.transferDetails.state ||\n \"--\" + \" \" + sideViewerData?.transferDetails.zip ||\n \"--\" + \" \" + sideViewerData?.transferDetails.country ||\n \"NA\" | titlecase\n }}\n \n {{ sideViewerData?.transferDetails.currentUsaAddr || \"NA\" }}\n
    Universities\n
      \n
    • \n {{ (i+1) +\" . \"+ subCategory | titlecase }}\n
    • \n
    \n
    \n
      \n
    • \n {{ (i+1) +\" . \"+ subCategory.name | titlecase }} {{subCategory.program ? \"- \"+ subCategory.program :\n ''}}\n
    • \n
    \n
    Level of study\n {{\n sideViewerData?.transferDetails?.levelOfStudy\n }}\n
    Password\n {{\n sideViewerData?.transferDetails?.password\n }}\n
    Created Date\n {{ sideViewerData?.createdAt | date : \"medium\" }}\n
    Channel{{ sideViewerData.Channel }}
    Recruiter Name\n {{ recruiterDetails.firstName }} {{ recruiterDetails.lastName }}\n
    Recruiter EmailId{{ recruiterDetails.emailId }}
    Recruiter Phone Number{{ recruiterDetails.phone }}
    Recruiter Role\n {{\n recruiterDetails.category == \"ORGANIZATION\"\n ? \"RECRUITER\"\n : recruiterDetails.category\n }}\n
    Recruiter Company Name{{ recruiterDetails.companyName || \"--\" }}
    Recruiter Address\n {{\n recruiterDetails?.street ||\n \"--\" + \" \" + recruiterDetails?.city ||\n \"--\" + \" \" + recruiterDetails?.state ||\n \"--\" + \" \" + recruiterDetails?.zip ||\n \"--\" + \" \" + recruiterDetails?.country ||\n \"NA\" | titlecase\n }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.CalledBy || \"-\" }}
    Date & Time{{ i.createdAt | date : \"medium\" }}
    Status{{ i.Status | titlecase }}
    Call Recording\n \n
    Comments{{ i.Comments || \"-\" }}
    Direction{{ i.Direction | titlecase }}
    \n
    \n
    \n
    \n
    \n \n 0\">\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item?.ProgramDoc | titlecase }}\n
    \n\n \n
    \n\n
    \n {{ item?.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i?.AgentName }}\n
    \n
    \n {{ i?.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i?.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i?.AgentName }}\n
    \n
    \n {{ i?.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i?.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    0\">\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.createdAt | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.total || 0 }}\n
    \n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.assignedToMe || 0 }}\n
    \n
    \n
    \n
    Assigned to Me
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.TransferStudent || 0 }}\n
    \n
    \n
    \n
    Transfer Student
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.InternationalStudent || 0 }}\n
    \n
    \n
    \n
    International Student
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.followup || 0 }}\n
    \n
    \n
    \n
    Follow Up
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.pending || 0 }}\n
    \n
    \n
    \n
    Pending
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.counsellingpending || 0 }}\n
    \n
    \n
    \n
    Counselling Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.counsellingcompleted || 0 }}\n
    \n
    \n
    \n
    Counselling Completed
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.interested || 0 }}\n
    \n
    \n
    \n
    Interested
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.duplicate || 0 }}\n
    \n
    \n
    \n
    Duplicate Lead
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.enrolled || 0 }}\n
    \n
    \n
    \n
    Enrolled Lead
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    List of Students
    \n
    \n
    \n \n
    \n
    US Transfer
    \n\n
    \n \n
    \n
    International
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    Actions\n Created\n \n \n Name\n \n \n Email\n \n \n Assigned To\n \n \n Recruiter\n \n \n Universities\n \n \n Form\n \n \n Phone\n \n \n Channel\n \n \n Call Status\n \n
    \n
    \n \n
    \n
    0\n \">\n \n \n
    \n \n 0\">{{\n i?.unreadCount > 9 ? \"9+\" : i?.unreadCount\n }}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    {{ i?.createdAt | date : \"dd MMM, yyyy\" }}\n
    0 &&\n i.transferDetails[0].fromUS == 'true')\n \">\n \n \n
    \n
    0 &&\n i.transferDetails[0].fromUS == 'false')\n \">\n \n \n
    \n \n
    \n
    \n
    \n
    \n \n {{ i?.Email }}\n \n
    \n {{ i?.Email }}\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AssignedtoInitial }}\n

    \n
    \n
    \n
    \n
    \n {{ i?.AssignedtoName | titlecase }}\n
    \n {{ i?.AssignedtoName | titlecase }}\n
    \n
    \n
    \n
    --\n \n
    \n
    \n \n {{i?.RecruiterName || '-'}}\n \n
    \n {{i?.RecruiterName || '-'}}\n
    \n\n
    \n \n {{i?.universityinfo?.name || '-'}}\n \n
    \n
    \n \n {{ i?.FormName }}\n \n
    \n {{ i?.FormName }}\n
    \n
    {{ i?.PhoneNumber }}\n
    \n
    \n
    \n
    \n \n {{ i?.Channel }}\n \n
    \n {{ i?.Channel }}\n
    \n
    \n
    \n
    \n \n Pending\n Not Interested\n Completed\n Follow Up\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n\n Duplicate\n Future Lead\n Interested Pending\n Interested\n Counselling Pending\n Counselling Completed\n Application Submitted\n Documents Pending\n Documents Submitted\n Payment Pending\n Pending I20\n Pending VISA\n VISA Declined\n VISA Approved\n Pending Travel\n Travel Complete\n Enrolled\n Prospect\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n \n
    No records found for the selected filters.
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    name is required
    \n
    \n
    \n\n
    \n \n \n
    \n `\n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    Date of birth is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    State is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    IELETS is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    TOEFL is required
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    PTE is required
    \n
    \n
    \n
    \n \n \n\n
    \n
    Dulingo is required
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Counselling date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n callBack date is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n \n
    \n\n \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Assign to Agent
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    LastName is required .
    \n
    Please use valid name .
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required .
    \n
    Only Numbers are allowed .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n \n \n
    \n
    Form Name is required
    \n
    \n
    \n
    \n \n \n
    \n
    Channel is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add New Document
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add New Document
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n\n
    \n \n
    \n \n \n
    \n\n\n
    \n
    \n
    \n
    \n
    Upload Documents
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document extensions, upload\n supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n Current Caller\n
    \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n \n
    {{ callStatus }}
    \n

    \n \n

    \n
    \n \n
    \n
    \n
    \n \n\n
    \n
    \n Call Ended
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n\n \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n name is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Date of birth is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n State is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n IELETS is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n TOEFL is required\n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n PTE is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Dulingo is required\n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n Counselling Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Call Back Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{ sideViewerData.FirstName + \" \" + sideViewerData.LastName }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n\n
    \n {{ callStatus }}\n
    \n \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n

    Send Mail

    \n \n
    \n
    \n
    \n
    \n All the documents has been Validated for this lead.
    Do you want to send a mail regarding university\n application.\n
    \n \n \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Universities
    \n \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    University NameEnrollment TermProgram
    \n {{i.name||'-'}}\n \n {{i.term ||'-'}}\n \n {{i.program || '-'}}\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n

    Assign Lead

    \n \n
    \n
    \n
    \n
    The lead is not assigned.
    \n
    \n
    Please assign the lead first.
    \n
    \n
    \n

    Assign to Agent

    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\nimport { HttpParams } from \"@angular/common/http\";\n@Injectable({\n providedIn: 'root'\n})\nexport class RecruiterleadsService {\n\n baseApiUrl = environment.SMSapiurl;\n baseApiUrl2 = environment.baseApiUrl2;\n baseApiUrl3 = environment.baseApiUrl;\n webAppUrl = environment.webAppUrl;\n\n callStatusRecruiter = new BehaviorSubject(null);\n startCallRecruiter = new BehaviorSubject(null);\n stopCallRecruiter = new BehaviorSubject(null);\n startTimerRecruiter = new BehaviorSubject(null);\n getCallSidRecruiter = new BehaviorSubject(null);\n conferenceCallRecruiter = new BehaviorSubject(null);\n\n public unreadCountRecBehaviorSubject = new BehaviorSubject(null);\n public unreadCountRecObservable = this.unreadCountRecBehaviorSubject.asObservable();\n public viewReceivedLeadBehaviorSubject = new BehaviorSubject(null);\n public viewReceivedLeadObservable = this.viewReceivedLeadBehaviorSubject.asObservable();\n public addLeadBehaviorSubject = new BehaviorSubject(null);\n public addLeadObservable = this.addLeadBehaviorSubject.asObservable();\n\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n CallStatus: [\"\"],\n });\n\n addLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n });\n universitiesList = [\n {\n id: 1,\n name: 'University of West Los Angeles',\n terms: ['Spring', 'Spring-2', 'Summer', 'Fall']\n },\n {\n id: 2,\n name: 'St Francis College',\n terms: ['Spring', 'Summer', 'Fall', 'Spring-1', 'Spring-2', 'Summer-1', 'Summer-2', 'Fall-1', 'Fall-2'],\n },\n {\n id: 3,\n name: 'Campbellsville University',\n terms: ['Spring-1', 'Spring-2', 'Summer-1', 'Summer-2', 'Fall-1', 'Fall-2'],\n },\n {\n id: 5,\n name: 'Anderson University',\n terms: ['Spring', 'Summer', 'Fall'],\n },\n {\n id: 6,\n name: 'University of the Cumberlands',\n terms: ['Spring', 'Summer', 'Fall', 'Spring-1', 'Spring-2', 'Summer-1', 'Summer-2', 'Fall-1', 'Fall-2'],\n },\n {\n id: 7,\n name: 'Adelphi University',\n terms: ['Spring', 'Summer', 'Fall'],\n },\n {\n id: 8,\n name: 'Cumberland University',\n terms: ['Spring', 'Summer', 'Fall'],\n },\n {\n id: 9,\n name: 'Golden Gate University',\n terms: ['Spring', 'Summer', 'Fall'],\n },\n {\n id: 10,\n name: 'Faulkner University',\n terms: ['Spring', 'Summer', 'Fall', 'Spring-1', 'Spring-2', 'Summer-1', 'Summer-2', 'Fall-1', 'Fall-2'],\n },\n {\n id: 11,\n name: 'University of Toledo',\n terms: ['Spring', 'Summer', 'Fall', 'Spring-1', 'Spring-2', 'Summer-1', 'Summer-2', 'Fall-1', 'Fall-2'],\n },\n {\n id: 12,\n name: 'Marshall University',\n terms: ['Spring', 'Summer', 'Fall'],\n },\n {\n id: 13,\n name: 'University of Lousville',\n terms: ['Spring', 'Summer', 'Fall'],\n },\n ];\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) { }\n\n\n //new\n getLeadsRecruiter(data) {\n return this.http.post(`${this.baseApiUrl3}getUniversityDashboardLeadsRecruiter`, data);\n }\n\n getTopBarCountRecruiter(obj) {\n return this.http.post(`${this.baseApiUrl3}getUniversityTopBarCountsRecruiter`, obj);\n }\n\n getLeadRecruiter(id) {\n return this.http.post(`${this.baseApiUrl3}getUhubDashboardLeadRecruiter`, { id: id });\n }\n\n assignLeadsRecruiter(data) {\n return this.http.post(`${this.baseApiUrl3}assignUhubLeadRecruiter`, data);\n }\n\n getCountByCallStatusRecruiter(data) {\n return this.http.post(`${this.baseApiUrl3}getCountByCallStatus`, data);\n }\n getUhubSearchDashboardLeadsRecruiter(data) {\n return this.http.post(`${this.baseApiUrl3}getUhubSearchDashboardLeadsRecruiter`, data);\n }\n \n getSmsRecruiter(id) {\n return this.http.get(`${this.baseApiUrl2}communication/uHubSMS/` + id);\n }\n\n\n sendSmsRecruiter(data, projectId) {\n return this.http.post(`${this.baseApiUrl}` + projectId + `/messaging-adapter/sendSMS`, data);\n }\n uploadDocumentRecruiter(data) {\n return this.http.post(`${this.baseApiUrl2}addCustomDocUploadLeads`, data);\n }\n uploadDocument1Recruiter(data, docId) {\n return this.http.post(`${this.baseApiUrl2}UploadDocumentLeads`, data);\n }\n deleteCustomDocumentRecruiter(data) {\n return this.http.post(\n `${this.baseApiUrl2}deleteCustomDocNameLeads`, data\n );\n }\n updateValidationStatusRecruiter(data) {\n return this.http.post(\n `${this.baseApiUrl2}DocumentValidation2Leads`,\n data\n );\n }\n getRecruiterDetailsRecruiter(data) {\n return this.http.post(\n `${this.webAppUrl}recruiter/getRecruityerDetailsCRM`, data\n );\n }\n getWebappStudentDetailsRecruiter(data) {\n const url: string = this.webAppUrl + 'student/getStudentLoginDetail?contactId='+data;\n return this.http.get(url);\n }\n counsellingCompletedRecruiter(data) {\n // return this.http.post(\n // `${this.baseApiUrl2}wp/university/counsellingCompleted`,\n // data\n // );\n\n }\n sendUniMailRecruiter(data) {\n return this.http.post(\n `${this.baseApiUrl3}leadUniversityAttachment`, data\n );\n }\n uploadFileAndGetLinkRecruiter(data){\n const url = `${this.baseApiUrl2}UploadDocumentV2`;\n return this.http.post(url,data)\n }\n getAllUniversityRecruiter() {\n const url = `${this.baseApiUrl2}/universitryhub/listOfUniversities`;\n return this.http.get(url);\n }\n sendNotificationRecruiter(data) {\n const url = `${this.baseApiUrl2}/wp/university/recruiter/sendNotification`;\n return this.http.post(url, data);\n }\n updateTransferCustomDocRecruiter(data) {\n const url = `${this.baseApiUrl2}/uhub/updateTransferCustomDoc`;\n return this.http.post(url, data);\n }\n \n getLeadInfoUsingUniversityId(uuid){\n const url = `${this.baseApiUrl2}wp/university/getLeadDetailsByUniversityId`;\n return this.http.post(url, {\n uuid: uuid\n });\n }\n getDocNameByDocId(data) {\n const url = `${this.baseApiUrl2}/getDocNameByDocId`;\n return this.http.post(url, data);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Inject,\n ElementRef,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { UhLeadsService } from \"../../uhleads.service\";\nimport * as xlsx from \"xlsx\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { MarketingService, InputSMSData } from \"../../marketing/marketing.service\";\nimport { RoleService } from \"../../role-management/role.service\";\nimport { CreateAgent } from \"../../create-agent/create-agent.service\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { ReferreeService } from \"../../referree/referree.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nimport { Exceldata } from \"../../marketing/smsmarketing/models/ExecelData.model\";\nimport { environment } from \"src/environments/environment\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport * as moment from \"moment\";\nimport { NotificationsService } from \"src/app/notification.service\";\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nconst countryCodes = require(\"../../../../assets/allcountryDetails.json\");\nimport { TransfersService } from \"../../trasnfers/transfers.service\";\nimport { SocialmedialeadsService } from \"./socialmedialeads.service\";\nimport { SocketService } from \"src/app/socket.service\";\n\n@Component({\n selector: 'app-socialmedialeads',\n templateUrl: './socialmedialeads.component.html',\n styleUrls: ['./socialmedialeads.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class SocialmedialeadsComponent implements OnInit {\n userData: any;\n projectId: any;\n admin: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n endDate: any;\n startDate: any;\n date1: any;\n date2: any;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n currentLeadId: any;\n activityfilterString: string = \"\";\n minItems = 5;\n leadSearch: string = \"\";\n currentCard: string = \"total\";\n sortColumn = \"createdAt\";\n sortOrder = \"des\";\n smsText: string;\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n public filterValue = \"all\";\n showDate: boolean = false;\n filterString: string;\n LeadList: any[] = [];\n leadType: string = \"total\";\n cardleadType: string = \"total\";\n tab!: string;\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"sendUniversityDoc\") sendUniversityDoc;\n @ViewChild(\"leadNotAssigned\") leadNotAssigned;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButtonCustom\") closeButtonCustom;\n @ViewChild(\"closeButtonCustom5\") closeButtonCustom5;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n topBarCount: {\n total: number;\n facebook: number;\n web: number;\n followup: number;\n pending: number;\n followupDate: number;\n counsellingpending: number;\n counsellingcompleted: number;\n interested: number;\n duplicate: number;\n enrolled: number;\n assignedToMe: number;\n TransferStudent: number;\n InternationalStudent: number;\n } = {\n total: 0,\n facebook: 0,\n web: 0,\n followup: 0,\n pending: 0,\n followupDate: 0,\n counsellingpending: 0,\n counsellingcompleted: 0,\n interested: 0,\n duplicate: 0,\n enrolled: 0,\n assignedToMe: 0,\n TransferStudent: 0,\n InternationalStudent: 0,\n };\n\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n University: string;\n CallStatus: string;\n AgentMail: string;\n };\n\n public marketingId: {\n id: string;\n status: string;\n phoneCode?: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneCode: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n isTopBarBind:Boolean = false;\n\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n\n DIyear: any;\n DIterms: any;\n DIyearArray: any = [];\n recruiterDetails: any;\n public intakeListArray: any = [];\n\n public filePath: any;\n public fileData: Exceldata[] = [];\n public uploaded: boolean = false;\n public insertCount: number = 0;\n public callData: any[] = [];\n public startCall: boolean = false;\n public stopCall: boolean = false;\n public startIndex: number = 0;\n public statusValue = \"all\";\n public clearTime: any;\n UhubList: any[] = [];\n UhubList1: any;\n allLeads: any;\n public fileSource = environment.fileServer;\n public downloadLink: string;\n public page: any = 1;\n public pageSize: any = 12;\n selectedAll: boolean = false;\n leadIds = [];\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n selectedLead: any;\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n leadsLoading: boolean = false;\n noLeadsFound: boolean = false;\n sidenavLoading: boolean = false;\n agentList: any;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n callStatusFilter: String = \"all\";\n public currentLead: any;\n public isUpdateLead: boolean = false;\n public submitted: boolean = false;\n defaultAgent = \"default\";\n selectedAgent: any;\n totalAgents: any;\n agentName: any;\n GBPagentList: any;\n\n public search: string;\n isLoading: boolean = true;\n noRecords: boolean = false;\n\n file: File[] = [];\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: File[] = [];\n customDocLeadId: any;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n uploadSuccess: string = \"none\";\n documentsList2: any;\n validationStatus: boolean = false;\n documentComments: string;\n currentStatus: any;\n docUrl: any;\n currentItem: any;\n countries = [];\n selectedCountryCode = 1;\n selectedCountry = \"\";\n testConfig: countUpTimerConfigModel;\n comments: any;\n\n followUpdate: Date = new Date();\n\n updateLeadComments1: boolean = false;\n UhubCallSid: any;\n uniList: any[] = [];\n currentGUIDCommentsAttachment: any[] = [];\n transferCustomUniversity: any;\n transferCustomUniversityProg: any;\n uni: any;\n customDocNameCode: any;\n docName: any;\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.selectedCountry = country.alpha2Code;\n this.marketingService.createLead.get(\"countryCode\").patchValue(this.selectedCountryCode)\n }\n allUniversities: any[] = [];\n currentProject: any;\n selectIndex = 0;\n customDocList: any[] = []\n\n constructor(\n private SharedService: SharedService,\n private momentService: MomentFormatService,\n private companyService: RoleService,\n private uhleadsservice: UhLeadsService,\n private ReferreeService: ReferreeService,\n public marketingService: MarketingService,\n private readonly handleError: ErrorHandlerService,\n private router: Router,\n public layoutService: LayoutService,\n public UhubDashboardService: SocialmedialeadsService,\n private readonly modalService: NgbModal,\n private readonly snackbarRef: MatSnackBar,\n private agentService: CreateAgent,\n private NotificationService: NotificationsService,\n private transferService: TransfersService,\n private socketService: SocketService,\n\n @Inject(DOCUMENT) private domService: HTMLDocument,\n public countupTimerService: CountupTimerService\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit(): void {\n this.followUpdate.setDate(this.followUpdate.getDate() + 2);\n this.fetchCountries();\n this.SharedService.pageEvent.emit({\n pageName: \"Social Media Leads Dashboard\",\n });\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.getListofUniversities();\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = (this.momentService.dashboardDateFormat(new Date(new Date(Date.now() - 864e5 * 365)).getTime()));\n this.endDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() + 864e5))\n )));\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.companyService.projectAdmin(this.userData[\"companyId\"]).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"University Hub\"\n )[0].id;\n // this.projectId = data;\n if (this.projectId) {\n\n this.SharedService.getProjectAdmin(this.projectId).subscribe(\n (data: any) => {\n this.admin = data;\n setTimeout(() => {\n this.getTopBarCount();\n this.getLeadsByCards(this.cardleadType);\n this.onClick(1);\n // this.getLead();\n }, 500);\n\n // this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n // this.pageNumber = pageNo;\n // if (this.leadType != \"filter\") { \n // this.getLeadsByCards(this.cardleadType);\n // } else if (this.leadType == \"filter\") {\n // let payload = {\n // admin: this.admin,\n // ProjectId: this.projectId,\n // start: \"2020-08-02 09:40:25+00\",\n // end: \"2025-08-03 09:40:25+00\",\n // page: this.pageNumber,\n // leadType: \"All\",\n // mail: \"All\",\n // callStatus: \"All\",\n // course: \"All\",\n // enrollmentYear: \"All\",\n // enrollmentTerm: \"All\",\n // export: false,\n // search: this.search,\n // };\n // this.searchLeads1(payload);\n // }\n // });\n this.layoutService.postComments.subscribe((data) => {\n if (data) {\n this.postComments1(data.item, data.value);\n }\n });\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/accessque.xlsx\")\n .subscribe(\n (data) => {\n this.downloadLink = data[\"url\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n\n // server-side search\n\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n let stopCallsSub = this.layoutService.stopCalls.subscribe((data) => {\n if (data) {\n this.stopCallListener();\n this.startCall = false;\n }\n });\n this.UhubDashboardService.startTimerSocial.subscribe((res) => {\n if(res){\n this.callStatus = \"inProgress\";\n this.startTimer();\n }\n });\n this.layoutService.getCallSid.subscribe((sid: any) => {\n if(sid){\n this.UhubCallSid = sid;\n }\n });\n let redial = this.layoutService.redialContact.subscribe((data) => {\n if (data) {\n clearTimeout(this.clearTime);\n }\n });\n let callEndSub = this.layoutService.callEnd.subscribe((data) => {\n if (this.statusValue === \"interested\") {\n this.stopCall = true;\n this.startCall = false;\n return;\n }\n if (this.startCall && this.callData.length !== 0) {\n } else {\n this.startCall = false;\n }\n });\n this.layoutService.currentStatus.subscribe((data) => {\n if(data) this.currentStatus = data;\n });\n this.UhubDashboardService.callStatusSocial.subscribe((status) => {\n if(status) this.callStatus = status;\n });\n\n this.UhubDashboardService.unreadCountRecObservable.subscribe((data) => {\n if (data) {\n this.LeadList.forEach(element => {\n if (Number(element.id) === Number(data.id)) {\n element.unreadCount = data.count;\n }\n });\n }\n });\n\n this.UhubDashboardService.viewReceivedLeadObservable.subscribe((data) => {\n if (data) {\n this.selectIndex = 0;\n setTimeout(() => {\n this.selectIndex = 2;\n this.sideNav.open();\n this.sideNavData({ id: data });\n setTimeout(() => {\n this.markNotificationRead(data);\n }, 1000);\n }, 500);\n }\n });\n\n this.UhubDashboardService.addLeadObservable.subscribe(async (data) => {\n if (data) {\n await this.getTopBarCount();\n await this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n this.selectIndex = 2;\n await this.sideNavData({ id: data })\n }\n });\n\n let callEndFJSub = this.UhubDashboardService.stopCallFJSocial.subscribe((data) => {\n if (this.statusValue === \"interested\") {\n this.stopCall = true;\n this.startCall = false;\n return;\n }\n if (this.startCall && this.callData.length !== 0) {\n } else {\n this.startCall = false;\n }\n this.callStatus = \"Call Ended\";\n });\n this.UhubDashboardService.callStatusFJSocial.subscribe((status) => {\n this.callStatus = status;\n });\n\n this.socketService.connect(this.userData[\"id\"])\n\n }\n\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n onInputActivity(event: any) {\n if (this.leadSearch != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"University Hub\") {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n this.UhubDashboardService.sendSmsSocial(payload, this.projectId).subscribe(\n (res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.UhubDashboardService.getSmsSocial(this.currentLeadId).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n }\n );\n });\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = (this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n ));\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n )));\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = (this.momentService.dashboardDateFormat((\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n )));\n\n this.showDate = false;\n }\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n // write here\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n }\n\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n filterData() {\n // this.onClick(null);\n this.startDate = new Date(this.date2.value).setHours(0,0,0,0);\n this.endDate = new Date(this.date1.value).setHours(23,0,0,999);\n\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getTopBarCount();\n this.getLeadsByCards(this.cardleadType);\n this.getUniversalRecords();\n }\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat((\n new Date(this.startDate).getTime()\n ));\n }\n\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = (this.momentService.dashboardDateFormat((\n new Date(this.endDate).getTime()\n )));\n }\n\n getLeadsByCards(cardValue) {\n this.search = '';\n this.filterString = \"\";\n this.LeadList = [];\n this.leadType = cardValue;\n this.statusValue = \"all\";\n this.callStatusFilter = \"all\";\n if (\n this.leadType == \"pending\" ||\n this.leadType == \"followup\" ||\n this.leadType == \"interested\"\n ) {\n this.callStatusFilter = this.leadType;\n this.statusValue = this.leadType;\n }\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n cardValue,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n }\n\n onClick(check: any) {\n // this.uhleadsservice.pageNumber.next(1);\n this.pageNumber = 1;\n if (check) {\n this.tab = \"tab\" + check;\n } else {\n this.tab = \"\";\n }\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"First Name\" && sheet_data.length !== 0) {\n this.fileData =\n this.marketingService.convert2dArraytoObject(sheet_data);\n this.marketingService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Excel\",\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n redirectToUpload() {\n this.router.navigate([\"./upload/\" + this.projectId + '/social']);\n }\n\n startCallListener() {\n if (this.marketingId?.phoneCode == '91') {\n this.UhubDashboardService.startCallFJSocial.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n }\n else {\n this.UhubDashboardService.startCallSocial.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n }\n // this.UhubDashboardService.startCallSocial.next({\n // phoneNumber: this.marketingId.phoneNumber,\n // leadData: this.marketingId,\n // type: 'uhub'\n // });\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n followUpCall1(data, item) {\n if (!this.startCall) {\n this.layoutService.marketingCallDocs.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n item: item,\n });\n this.startCall = true;\n }\n }\n\n startCallListener2(data, index) {\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n this.newStatus = false;\n this.callData[0] = data;\n this.selectedLead = data;\n this.marketingId = {\n id: data.id,\n status: data.CallStatus,\n name: data.FirstName,\n email: data.Email,\n phoneCode: data?.CountryCode,\n phoneNumber: \"+\" + data.CountryCode + data.PhoneNumber,\n module: data.Module,\n city: \"\",\n nextCaller: this.LeadList.length > 1 ? 1 : 0,\n lead: 0,\n };\n if (this.LeadList.length > 1) {\n var nextFirstname = this.LeadList[index + 1]?.FirstName ? this.LeadList[index + 1]?.FirstName : '';\n var nextLastname = this.LeadList[index + 1]?.LastName ? this.LeadList[index + 1]?.LastName : '';\n var nextCallerCity = this.LeadList[index + 1]?.City ? this.LeadList[index + 1]?.City : '';\n var nextCallerCountryCode = this.LeadList[index + 1]?.CountryCode ? this.LeadList[index + 1]?.CountryCode.replace(\"+\", \"\") : '';\n var nextCallerPhoneNumber = this.LeadList[index + 1]?.PhoneNumber ? this.LeadList[index + 1]?.PhoneNumber : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber : '';\n this.startIndex = index + 1;\n }\n \n if (data?.CountryCode == '91') {\n this.UhubDashboardService.startCallFJSocial.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n }\n else {\n this.UhubDashboardService.startCallSocial.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n }\n this.startCall = true;\n this.patchEditValues(data);\n }\n stopCalls() {\n if (this.marketingId.phoneCode == '91') {\n this.UhubDashboardService.startCallFJSocial.next(null);\n this.UhubDashboardService.stopCallFJSocial.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n }\n else {\n this.UhubDashboardService.startCallSocial.next(null);\n this.UhubDashboardService.stopCallSocial.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n }\n this.callStatus = \"Call Ended\";\n }\n stopCallListener() {\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n public onInput(event: any) {\n if (this.search != \"\") {\n } else if (this.search == \"\") {\n this.totalRecords.nativeElement.click();\n }\n }\n\n searchLeads(value, page) {\n this.LeadList = [];\n this.noRecords = false;\n this.isLoading = true;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.UhubDashboardService.getUhubSearchDashboardLeadsSocial(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n if (res.totalResults <= 0) {\n this.noRecords = true;\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n // this.uhleadsservice.totalPages.next(Number(newTotal));\n this.totalPages = Number(newTotal);\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n for (let i = 0; i <= this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].Assignedto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter';\n this.LeadList[i].FormName = 'Recruiter';\n } else {\n this.LeadList[i].FormName = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = '-';\n }\n if (this.LeadList[i].transferDetails.length > 0) {\n this.LeadList[i].UniversityCount = this.LeadList[i]?.transferDetails[0]?.universityInfo?.length || 0;\n } else {\n this.LeadList[i].UniversityCount = 0;\n }\n }\n\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.cardleadType = 'all';\n this.getTopBarCount();\n this.getLeadsByCards(\"total\");\n }\n }\n\n searchLeads1(payload) {\n this.LeadList = [];\n this.leadType = \"filter\";\n this.UhubDashboardService.getUhubSearchDashboardLeadsSocial(payload).subscribe(\n (res: any) => {\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n // this.uhleadsservice.totalPages.next(Number(newTotal));\n this.totalPages = Number(newTotal);\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n for (let i = 0; i < this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].Assignedto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter'\n }\n // this.LeadList[i].FormName =\n // this.LeadList[i].Miscellaneous.form_name;\n }\n\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n dropdownSelect(event) {\n if (event == \"all\") {\n this.cardleadType = \"total\";\n } else {\n this.callStatusFilter = event;\n this.leadType = \"dropdown\";\n this.cardleadType = event;\n this.onClick(null);\n }\n this.pageNumber = 1;\n this.pageChange(this.pageNumber);\n // this.uhleadsservice.pageNumber.next(1);\n }\n\n getTopBarCount() {\n var postData = {\n AgentMail: this.userData.mail,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.isTopBarBind=false;\n\n this.UhubDashboardService.getTopBarCountSocial(postData).subscribe(\n (res: any) => {\n if (this.leadType == \"total\") {\n this.totalPages = res.total;\n } else if (this.leadType == \"facebook\") {\n this.totalPages = res.facebook;\n } else if (this.leadType == \"Website\") {\n this.totalPages = res.web;\n } else if (this.leadType == \"callback\") {\n this.totalPages = res.followup;\n } else if (this.leadType == \"pending\") {\n this.totalPages = res.pending;\n } else if (this.leadType == \"pending\") {\n this.totalPages = res.pending;\n } else if (this.leadType == \"interested\") {\n this.totalPages = res.interested;\n } else if (this.leadType == \"counsellingpending\") {\n this.totalPages = res.counsellingpending;\n } else if (this.leadType == \"counsellingcompleted\") {\n this.totalPages = res.counsellingcompleted;\n } else if (this.leadType == \"QualifiedLead\") {\n this.totalPages = res.qualifiedLead;\n } else if (this.leadType == \"QualifiedHotLead\") {\n this.totalPages = res.qualifiedHotLead;\n } else if (this.leadType == \"assignedto\") {\n this.totalPages = res.assignedToMe;\n } else if (this.leadType == \"InternationalStudent\") {\n this.totalPages = res.InternationalStudent;\n } else if (this.leadType == \"duplicate\") {\n this.totalPages = res.duplicate;\n } else if (this.leadType == \"enrolled\") {\n this.totalPages = res.enrolled;\n } else if (this.leadType == \"TransferStudent\") {\n this.totalPages = res.TransferStudent;\n }\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n // this.uhleadsservice.totalPages.next(this.totalPages);\n this.topBarCount = res;\n this.isTopBarBind=true;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getUniversalRecords() { }\n\n getLeads(admin, projectId, mail, leadType, start, end, page, callStatus) {\n this.isLoading = true;\n this.cardleadType = leadType;\n let payload = {\n admin: admin,\n mail: mail,\n ProjectId: projectId,\n leadType: leadType,\n start: start,\n end: end,\n page: page,\n callStatus: callStatus,\n };\n\n this.UhubDashboardService.getLeadsSocial(payload).subscribe(\n async (res: any) => {\n this.isLoading = false;\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj.FirstName + \" \" + obj.LastName,\n }));\n this.LeadList = test2;\n this.callData = [...this.LeadList];\n if(this.leadType == \"callback\" ||\n this.leadType == \"called\" ||\n this.leadType == \"callfailed\" ||\n this.leadType == \"duplicate\" ||\n this.leadType == \"futurelead\" ||\n this.leadType == \"interested\" ||\n this.leadType == \"interestedpending\" ||\n this.leadType == \"notanswered\" ||\n this.leadType == \"notinterested\" ||\n this.leadType == \"pending\" ||\n this.leadType == \"informed\" ||\n this.leadType == \"deferredintake\" ||\n this.leadType == \"counsellingpending\" ||\n this.leadType == \"counsellingcompleted\" ||\n this.leadType == \"applicationsubmitted\" ||\n this.leadType == \"documentspending\" ||\n this.leadType == \"documentssubmitted\" ||\n this.leadType == \"paymentpending\" ||\n this.leadType == \"pendingi20\" ||\n this.leadType == \"pendingvisa\" ||\n this.leadType == \"visadeclined\" ||\n this.leadType == \"visaapproved\" ||\n this.leadType == \"pendingtravel\" ||\n this.leadType == \"travelcomplete\" ||\n this.leadType == \"enrolled\" ||\n this.leadType == \"prospect\"){\n setTimeout(() => { \n this.totalPages = ~~(Number(res.count) / 12) + 1;\n console.log(\"21\")\n }, 1500);\n }\n for (let i = 0; i <= this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].Assignedto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter';\n this.LeadList[i].FormName = 'Recruiter';\n } else {\n this.LeadList[i].FormName = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = '-';\n }\n if (this.LeadList[i].transferDetails.length > 0) {\n this.LeadList[i].UniversityCount = this.LeadList[i]?.transferDetails[0]?.universityInfo?.length || 0;\n } else {\n this.LeadList[i].UniversityCount = 0;\n }\n }\n\n\n if (this.LeadList.length == 0) {\n this.noRecords = true;\n }\n this.callData = [...this.LeadList];\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.LeadList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.LeadList.length; i++) {\n this.leadIds.push(this.LeadList[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n var test1 = sortJsonArray(this.LeadList, this.sortColumn, this.sortOrder);\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\n openEditLead(content, lead) { }\n\n updateLead() { }\n\n sideNavData(data) {\n this.sideViewerData = [];\n this.sidenavLoading = true;\n this.activityfilterString = \"\";\n this.getCustomDocList(data);\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.UhubDashboardService.getLeadSocial(data.id).subscribe(\n (res: any) => {\n this.UhubDashboardService.getSmsSocial(data.id).subscribe((smsList: any) => {\n this.smsList = smsList.SMSDetails;\n this.sideViewerData = res[0];\n this.getCustomList();\n if (this.sideViewerData.transferDetails.recruiterSalesforceId) {\n let paylaod = {\n recruiterSalesforceId:\n this.sideViewerData.transferDetails.recruiterSalesforceId,\n };\n this.UhubDashboardService.getRecruiterDetailsSocial(paylaod).subscribe(\n (Data: any) => {\n if (Data) {\n this.recruiterDetails = Data;\n }\n }\n );\n }\n\n this.replaceNull(this.sideViewerData);\n this.replaceNull(this.sideViewerData.transferDetails);\n this.documentValidation(this.sideViewerData.id);\n this.sidenavLoading = false;\n\n this.currentLeadId = this.sideViewerData.id;\n });\n let wpObj = {\n phone: \"+\" + this.sideViewerData?.CountryCode.replace('+', '') + this.sideViewerData?.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // }\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n }\n\n updateComments(modal, item) {\n if ((item.Assignedto == null || item.Assignedto == undefined || item.Assignedto == '-' || item.Assignedto == '') && item.transferDetails.length > 0) {\n this.notAssignedModel(item);\n } else {\n\n this.layoutService.commentsForm.get(\"interested\").clearValidators();\n this.layoutService.commentsForm.get(\"interested\").updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue == \"callback\") {\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue == \"counsellingpending\") {\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n dob: item[\"DOB\"] ? this.layoutService.dateFormatForAddUpdate1(item[\"DOB\"]) : null\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe(\n (data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe(\n (data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.modalService.open(modal, { size: \"xl\" });\n\n }\n }\n\n async submit() {\n if (this.isUpdateLead) {\n if (this.layoutService.commentsForm.invalid) {\n } else {\n this.layoutService\n .updateCommentsBasedOnId(this.currentLead[\"id\"])\n .subscribe(\n () => {\n this.updateLeadComments();\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n this.modalService.dismissAll();\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n if (this.layoutService.commentsForm.invalid) {\n } else {\n this.layoutService.updateComments(this.currentLead[\"id\"]).subscribe(\n () => {\n this.updateLeadComments();\n this.modalService.dismissAll();\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\")\n ) {\n await this.scheduleDemo();\n this.closeButton2.nativeElement.click();\n } else {\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n this.marketingService\n .updateLeadStatus({\n id: this.currentLead.id,\n phase: this.layoutService.commentsValue.interested,\n })\n .subscribe(\n () => {\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n // this.UhubDashboardService.sendNotificationSocial({\n // type: 'lead-status-changed-crm',\n // data: {\n // uhub_id: this.currentLead[\"id\"],\n // status: this.layoutService.commentsValue.interested\n // }\n // }).subscribe((data: any) => {\n\n // }, (err) => {\n\n // })\n }\n\n updateLeadComments() {\n if (this.currentLead.phase !== \"demo\") {\n let callStatus = \"interested\";\n let futureLead = \"no\";\n if (this.layoutService.commentsValue.interested === \"futurelead\") {\n callStatus = \"interested\";\n futureLead = \"yes\";\n } else {\n callStatus = this.layoutService.commentsValue.interested;\n futureLead = \"no\";\n }\n this.layoutService\n .updateCallComments({\n id: this.currentLead[\"id\"],\n agentMail: this.userData.mail,\n comments: this.layoutService.commentsValue.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: futureLead,\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.currentLead[\"Assignedto\"],\n })\n .subscribe(\n (data) => {\n this.updateCallComments(\n this.layoutService.commentsValue.comments,\n this.currentLead[\"id\"],\n this.layoutService.commentsValue.interested\n );\n this.getTopBarCount();\n if (this.leadType != \"filter\") {\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n } else if (this.leadType == \"filter\") {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n this.searchLeads1(payload);\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n updateCallComments(comments, id, callstatus) {\n // this.layoutService.getCallSid.subscribe((sid: any) => {\n let payload = {\n sid: this.UhubCallSid,\n comments: comments,\n id: id,\n callstatus: callstatus,\n };\n this.layoutService\n .updateCallCommentsNew(payload)\n .subscribe((res: any) => { });\n // });\n }\n\n scheduleDemo() {\n let dt = this.layoutService.commentsValue.counsellingDate;\n dt =\n moment(dt).format(\"dddd D MMM YY\") + \" at \" + moment(dt).format(\"h:m a\");\n let template: string = this.currentLead[\"Miscellaneous\"][\"form_name\"]\n .toLowerCase()\n .includes(\"ielts\")\n ? \"ielts\"\n : \"usastudy\";\n\n let num = Math.floor(Math.random() * 90000) + 10000;\n let room = \"live-\" + num.toString();\n let smsId = null;\n let callId = null;\n let mailId = null;\n\n let demoScheduled = `${environment.BaseURL}/videocalling/mainscreen/${this.projectId}/${room}`;\n const smsMarketingBefore6hr: InputSMSData = {\n ProjectId: this.projectId,\n Module: this.currentLead[\"Module\"],\n RecipientNumber:\n \"+\" +\n this.currentLead[\"CountryCode\"] +\n this.currentLead[\"PhoneNumber\"].replace(/\\n/g, \"\"),\n ScheduledSMSTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Type: \"Information\",\n };\n this.marketingService.getAutoDialCompany(this.projectId).subscribe(\n async (data) => {\n if (data) {\n let apiKey = data[\"API_KEY\"];\n if (dt) {\n smsId = await this.marketingService.createAutoSmsScheduler(\n smsMarketingBefore6hr,\n apiKey\n );\n }\n }\n setTimeout(() => {\n this.marketingService\n .createDemo({\n ProjectId: this.projectId,\n Name: this.currentLead[\"FirstName\"],\n AutoEmailId: mailId ? mailId[\"mailId\"] : null,\n AutoCallId: callId ? callId[\"callId\"] : null,\n AutoSMSId: smsId ? smsId[\"smsId\"] : null,\n Comments: this.layoutService.commentsValue.comments,\n DateTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Presenter:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0][\"value\"]\n : this.currentLead[\"Assignedto\"],\n Feedback: this.layoutService.commentsValue.interested,\n Url: demoScheduled + \"/\" + this.userData.workerFriendlyName,\n ClientURL: demoScheduled + \"/\" + this.currentLead[\"FirstName\"],\n RoomName: room,\n LeadId: this.currentLead.id,\n agentEmail: this.userData.mail,\n })\n .subscribe(\n (demo) => {\n if (dt) {\n this.marketingService\n .updateDemo({\n demoId: demo[\"id\"],\n leadId: this.currentLead.id,\n })\n .subscribe(\n (data) => {\n if (dt) {\n this.layoutService.sendSmsForLead({\n date: dt,\n from: this.layoutService.twilioNumber,\n projectId: this.projectId,\n student_name: this.currentLead[\"FirstName\"],\n tosms: this.currentLead.PhoneNumber,\n });\n }\n if (dt) {\n this.marketingService.sendMailForDemo(\n {\n name: this.currentLead[\"FirstName\"],\n demoDate: moment(\n this.layoutService.commentsValue.counsellingDate\n ).format(\"MMMM Do YYYY, h:mm:ss a\"),\n url:\n demoScheduled +\n \"/\" +\n this.currentLead[\"FirstName\"],\n },\n this.currentLead.Email,\n this.projectId,\n template\n );\n this.updateLeadComments();\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }, 2000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n get f(): { [key: string]: AbstractControl } {\n return this.layoutService.commentsForm.controls;\n }\n\n get createLeads(): { [key: string]: AbstractControl } {\n return this.marketingService.createLead.controls;\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.UhubDashboardService.assignLeadsSocial({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n }).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n this.modalService.dismissAll();\n\n // Notify Recruiter\n // this.leadIds.forEach(element => {\n // this.UhubDashboardService.sendNotificationSocial({\n // type: 'lead-assigned-crm',\n // data: {\n // uhub_id: element\n // }\n // }).subscribe((data: any) => {\n\n // }, (err) => {\n\n // })\n // });\n\n this.leadIds = [];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n if (email !== null || email !== undefined) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n } else {\n return '-'\n }\n\n }\n\n createLead() {\n this.submitted = true;\n if (this.marketingService.createLead.invalid) {\n return;\n }\n let fileData: Exceldata[] = [\n new Exceldata(\n this.marketingService.createLeadValue[\"firstName\"],\n this.marketingService.createLeadValue[\"lastName\"],\n this.marketingService.createLeadValue[\"countryCode\"],\n this.marketingService.createLeadValue[\"phoneNumber\"],\n this.marketingService.createLeadValue[\"email\"],\n this.userData.mail,\n this.marketingService.createLeadValue[\"module\"],\n this.marketingService.createLeadValue[\"channel\"],\n {\n form_id: \"\",\n form_name: this.marketingService.createLeadValue[\"form_name\"],\n \"Choose Batch\": \"\",\n \"Training Mode\": \"\",\n },\n this.marketingService.createLeadValue[\"comments\"],\n this.marketingService.createLeadValue[\"createdAt\"]\n ),\n ];\n this.marketingService\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Manual\",\n })\n .subscribe(\n (data) => {\n this.marketingService.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.getTopBarCount();\n this.onClick(1);\n this.getLeadsByCards(this.cardleadType);\n this.getUniversalRecords();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n openCreateLead(content) {\n this.modalService.open(content, { size: \"md\" });\n }\n\n getAgentInitial(email) {\n if (email !== null || email !== undefined) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n } else {\n return '-'\n }\n }\n\n getAgentColor(email) {\n if (email !== null || email !== undefined) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n } else {\n return '-'\n }\n }\n\n getAgentphoto(email) {\n if (email !== null || email !== undefined) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n } else {\n return '-'\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n\n onDIYearChange(data) {\n this.DIyear = data;\n }\n // Clear file and document name in custom document upload modal\n clearData(uniName?: any, uniProg?: any) {\n this.transferCustomUniversity = uniName;\n this.transferCustomUniversityProg = uniProg;\n if (uniName) {\n const index = this.allUniversities.findIndex(x => x?.university?.toLowerCase() === uniName?.toLowerCase());\n if (index > -1) {\n this.currentProject = this.allUniversities[index].uniProjectId;\n }\n }\n this.file = [];\n this.customDocName = \"\";\n this.customFileList = [];\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append(\"fileUpload\", this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n async attachFileMainCommentGetDetails(e) {\n for await (const i of e.target.files) {\n this.currentGUIDCommentsAttachment.push(i);\n }\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.getDocNameByDocId(this.docUploadID);\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n uploadCustomDocument(e) {\n // let fileList: FileList = event.target.files;\n // this.file = fileList[0];\n // event.target.value = '';\n // if (fileList.length > 0) {\n // if (!this.validateFile(this.file.type)) {\n // this.uhleadsservice.showError(\"Invalid file format!\", \"Error\");\n // return;\n // }\n // }\n for (var i = 0; i < e.target.files.length; i++) {\n this.file.push(e.target.files[i]);\n this.customFileList.push(e.target.files[i]);\n }\n if (this.customFileList.length > 0) {\n this.docUploadError = \"Click on add to start uploading your files\";\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n addCustomDocument(isTransfer?: boolean) {\n let check = true;\n this.customFileList.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n this.docUploadError = \"Please be patient while the document is uploaded...\";\n if (this.customDocName == \"\") {\n this.docUploadError = \"Document name cannot be empty!\";\n return;\n } else {\n this.docUploadStatus = true;\n let formData: FormData = new FormData();\n formData.append(\"GUID\", this.currentLeadId);\n formData.append(\"docName\", this.customDocName);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n formData.append('ProjectId', this.currentProject);\n Array.from(this.customFileList).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n this.UhubDashboardService.uploadDocumentSocial(formData).subscribe(\n (res: any) => {\n let response = res.status;\n this.docUploadStatus = false;\n if (response == 200) {\n this.docUploadError = \"Custom document added\";\n this.uhleadsservice.showSuccess(\n \"Custom document added!\",\n \"Success\"\n );\n } else if (response == 201) {\n this.docUploadError = \"Uploaded a custom document\";\n this.uhleadsservice.showSuccess(\n \"Uploaded a custom document!\",\n \"Success\"\n );\n } else if (response == 202) {\n this.docUploadError = \"Document with given name already exists!\";\n this.uhleadsservice.showError(\n \"Document with given name already exists!\",\n \"Error\"\n );\n return;\n }\n if (isTransfer) {\n this.updatetransferUniversityProg(res.StudentdocId);\n }\n this.sideNavData({ id: this.currentLeadId });\n this.file = [];\n this.customDocName = \"\";\n this.closeButtonCustom.nativeElement.click();\n this.closeButtonCustom5.nativeElement.click();\n\n },\n (error) => {\n this.docUploadStatus = false;\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.UhubDashboardService.deleteCustomDocumentSocial({\n StudentdocId: docId,\n docName: docName,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"Custom document deleted successfully.\",\n \"Deleted Successfully!\"\n );\n } else {\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.StudentdocId);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n callFromDocs(data, item) {\n this.currentItem = item;\n this.startCallListener2(data, 0);\n }\n\n changeValidation(value, docId) {\n this.UhubDashboardService.updateValidationStatusSocial({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Document Status updated!\", \"Success!\");\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.sideViewerData.uploadlistofdocuments.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.sideViewerData.uploadlistofdocuments.length; i++) {\n if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation ==\n \"revalidate\" ||\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation ==\n \"validated\"\n ) {\n this.validationStatus = true;\n // open modal to confirm if agent wants to send mail to student or not\n // this.modalService.open(this.sendUniversityDoc,{ size: \"md\" });\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n }\n\n postComments(item, HTMLid, attachmentId?: any) {\n let body;\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n if (this.documentComments.length > 0) {\n const isAttachmentFile = ((\n document.getElementById(attachmentId)\n ));\n if (isAttachmentFile) {\n let attachmentFile = isAttachmentFile.files;\n if (attachmentFile.length > 0) {\n let files = attachmentFile[0];\n let check = true;\n if (this.validateFile(files.type) == false) {\n this.uhleadsservice.showError(\"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\", '');\n check = false;\n return;\n }\n if (check == true) {\n let formData: FormData = new FormData();\n formData.append(\"document\", files, files.name)\n this.UhubDashboardService.uploadFileAndGetLinkSocial(formData).subscribe(async (data: any) => {\n let attachCommentObj = [];\n attachCommentObj.push(\n data.url\n )\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: attachCommentObj\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n })\n }\n } else {\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: []\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n }\n } else {\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: []\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n }\n } else {\n this.uhleadsservice.showInfo('Please write something in comment box.', '')\n }\n }\n\n addCommentsOnDoc(body, attachmentId, HTMLid) {\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n\n // this.UhubDashboardService.sendNotificationSocial({\n // type: 'crm-comment',\n // data: {\n // uhub_id: body.GUID\n // }\n // }).subscribe((data: any) => {\n\n // }, (err) => { });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n documentValidation(id) {\n this.documentsList2 = this.sideViewerData.uploadlistofdocuments;\n\n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n this.checkValidation();\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n formData.append(\"docName\", this.docName);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.UhubDashboardService.uploadDocument1Social(\n formData,\n this.docUploadID\n ).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.uploadSuccess = \"success\";\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.docUploadStatus = false;\n // this.UhubDashboardService.sendNotificationSocial({\n // type: 'doc-upload',\n // data: {\n // uhub_id: this.currentLeadId\n // }\n // }).subscribe((data: any) => {\n\n // }, (err) => {\n // });\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n }\n }\n },\n (err) => {\n this.docUploadStatus = false;\n this.uploadSuccess = \"failure\";\n this.handleError.handleError(err);\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n );\n }\n }\n\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n postComments1(item, value) {\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: value,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fetchCountries() {\n this.countries = countryCodes;\n }\n\n onInput1(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n patchEditValues(item) {\n this.layoutService.commentsForm.get(\"interested\").clearValidators();\n this.layoutService.commentsForm.get(\"interested\").updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue == \"callback\") {\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue == \"counsellingpending\") {\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n dob: this.layoutService.dateFormatForAddUpdate1(item[\"DOB\"])\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe(\n (data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe(\n (data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n async submitCallEdit() {\n this.comments = this.layoutService.commentsValue.comments;\n\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n } else {\n if (this.layoutService.commentsForm.invalid) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n\n if (\n this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\"\n ) {\n await this.scheduleDemo();\n }\n\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QulaifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QulaifiedHotLead\")\n ) {\n //await this.scheduleDemo();\n if (this.updateLeadComments1) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n // duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n if (this.updateLeadComments1) {\n this.updateCommentsCall();\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.updateCommentsCall();\n }\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n if (this.updateLeadComments1) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.updateCommentsCall();\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.updateCommentsCall();\n }\n }\n }\n }\n }\n updateCommentsCall() {\n this.layoutService\n .updateCallComments({\n id: this.marketingId[\"id\"],\n agentMail: this.userData.mail,\n comments: this.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: \"futureLead\",\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.marketingId.lead[\"Assignedto\"],\n })\n .subscribe(\n (data) => {\n let payload = {\n sid: this.UhubCallSid,\n comments: this.comments,\n id: this.marketingId[\"id\"],\n callstatus: this.layoutService.commentsValue.interested,\n };\n this.layoutService\n .updateCallCommentsNew(payload)\n .subscribe((res: any) => {\n this.layoutService.onReset();\n this.submitted = false;\n this.closeButton2.nativeElement.click();\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n sendUniMailPopUp() {\n this.modalService.open(this.sendUniversityDoc, { size: \"md\" });\n }\n sendUniMailConfirm() {\n this.currentLeadId\n let paylaod = {\n GUID: this.currentLeadId\n };\n this.UhubDashboardService.sendUniMailSocial(paylaod).subscribe(() => {\n this.uhleadsservice.showSuccess(\"Success\", \"Mail sent successfully!\")\n })\n }\n startCall1() {\n this.layoutService.startCalls.next(\"startcalls\");\n }\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCall.next({ value });\n }\n sendSmsWp(item, HTMLid) {\n\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n let wpObj = {\n phone: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n getUniList(i) {\n this.uniList = i.transferDetails[0].universityInfo;\n }\n downloadCommentAttachment(data) {\n if (data && data?.Attachment && data?.Attachment?.length > 0) {\n data?.Attachment.forEach(element => {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", element);\n document.body.appendChild(link);\n link.click();\n link.remove();\n });\n }\n }\n getListofUniversities() {\n this.UhubDashboardService.getAllUniversitySocial().subscribe((data: any) => {\n this.allUniversities = data.universities;\n });\n }\n notAssignedModel(item) {\n this.leadIds.push(item.id);\n this.modalService.open(this.leadNotAssigned, { size: \"md\" });\n // this.uhleadsservice.showInfo('Please assign the lead first .','The lead is not assigned.')\n }\n markNotificationRead(id) {\n this.NotificationService.markReadByGUID({\n \"ProjectId\": this.projectId,\n \"GUID\": id\n }).subscribe((data) => {\n this.UhubDashboardService.unreadCountRecBehaviorSubject.next(id);\n this.LeadList.forEach(element => {\n if (Number(element.id) === Number(id)) {\n element.unreadCount = 0;\n }\n });\n }, (err) => {\n\n })\n }\n updatetransferUniversityProg(docId) {\n if (this.transferCustomUniversity && this.transferCustomUniversityProg) {\n this.UhubDashboardService.updateTransferCustomDocSocial({\n studentdocid: docId,\n university: this.transferCustomUniversity,\n program: this.transferCustomUniversityProg\n }).subscribe((data: any) => {\n\n })\n }\n }\n setUniversity(uni) {\n this.uni = uni;\n }\n getCustomDocList(sidenavdata) {\n this.uhleadsservice.getCustomDocListNew(this.projectId).subscribe((data: any) => {\n if (data) {\n this.customDocList = data.response;\n }\n }, (error) => {\n\n })\n }\n customDocNameChange(value) {\n const index = this.customDocList.findIndex(x => x.name.toLowerCase().trim() == value.toLowerCase().trim());\n this.customDocNameCode = this.customDocList[index].code;\n }\n\n getCustomList() {\n this.customDocList.forEach(element => {\n const index = this.sideViewerData?.uploadlistofdocuments.findIndex(x => x.ProgramDoc == element.name);\n if (index > -1) {\n element.disabled = true;\n } else {\n element.disabled = false;\n }\n });\n this.customDocList.sort((x, y) => Number(x.disabled) - Number(y.disabled));\n }\n pageChange(pageNo) {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n if(this.projectId != null && this.projectId){\n\n this.getLeadsByCards(this.cardleadType);\n }\n } else if (this.leadType == \"filter\") {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n this.searchLeads1(payload);\n }\n }\n getDocNameByDocId(id){\n let obj = {\n docId: id\n };\n this.UhubDashboardService.getDocNameByDocId(obj).subscribe((data: any) => {\n if(data.data && data.data.ProgramDoc){\n this.docName = new Date().getTime()+Math.floor(100000 + Math.random() * 900000).toString()+ \"_\" + data.data.ProgramDoc;\n } else {\n this.docName = new Date().getTime()+Math.floor(100000 + Math.random() * 900000);\n }\n },(err) => {\n\n });\n }\n validateEmailId(value) {\n this.uhleadsservice.emailIdValidator({ email: value }).subscribe((data: any) => {\n console.log(\"🚀 ~ file: registration.component.ts:143 ~ RegistrationComponent ~ this.registrationService.emailIdValidator ~ data\", data);\n }, (error) => {\n this.createLeads['email'].markAsTouched();\n this.uhleadsservice.showError('Email Already Exist!', '')\n })\n }\n}\n\n","\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Name\n {{\n sideViewerData.FirstName !== \"-\" &&\n sideViewerData.LastName !== \"-\"\n ? sideViewerData.FirstName + \" \" + sideViewerData.LastName\n : sideViewerData.FirstName !== \"-\" &&\n sideViewerData.LastName === \"-\"\n ? sideViewerData.FirstName\n : \"\"\n }}\n
    Email{{ sideViewerData.Email }}
    Mobile\n {{\n sideViewerData.CountryCode + \" \" + sideViewerData.PhoneNumber\n }}\n
    Address\n {{\n sideViewerData?.transferDetails?.address ||\n \"--\" + \" \" + sideViewerData?.transferDetails.cityOrTown ||\n \"--\" + \" \" + sideViewerData?.transferDetails.state ||\n \"--\" + \" \" + sideViewerData?.transferDetails.zip ||\n \"--\" + \" \" + sideViewerData?.transferDetails.country ||\n \"NA\" | titlecase\n }}\n \n {{ sideViewerData?.transferDetails.currentUsaAddr || \"NA\" }}\n
    Universities\n
      \n
    • \n {{ (i+1) +\" . \"+ subCategory | titlecase }}\n
    • \n
    \n
    \n
      \n
    • \n {{ (i+1) +\" . \"+ subCategory.name | titlecase }} {{subCategory.program ? \"- \"+ subCategory.program :\n ''}}\n
    • \n
    \n
    Level of study\n {{\n sideViewerData?.transferDetails?.levelOfStudy\n }}\n
    Password\n {{\n sideViewerData?.transferDetails?.password\n }}\n
    Created Date\n {{ sideViewerData?.createdAt | date : \"medium\" }}\n
    Channel{{ sideViewerData.Channel }}
    Recruiter Name\n {{ recruiterDetails.firstName }} {{ recruiterDetails.lastName }}\n
    Recruiter EmailId{{ recruiterDetails.emailId }}
    Recruiter Phone Number{{ recruiterDetails.phone }}
    Recruiter Role\n {{\n recruiterDetails.category == \"ORGANIZATION\"\n ? \"RECRUITER\"\n : recruiterDetails.category\n }}\n
    Recruiter Company Name{{ recruiterDetails.companyName || \"--\" }}
    Recruiter Address\n {{\n recruiterDetails?.street ||\n \"--\" + \" \" + recruiterDetails?.city ||\n \"--\" + \" \" + recruiterDetails?.state ||\n \"--\" + \" \" + recruiterDetails?.zip ||\n \"--\" + \" \" + recruiterDetails?.country ||\n \"NA\" | titlecase\n }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    Called by{{ i.CalledBy || \"-\" }}
    Date & Time{{ i.createdAt | date : \"medium\" }}
    Status{{ i.Status | titlecase }}
    Call Recording\n \n
    Comments{{ i.Comments || \"-\" }}
    Direction{{ i.Direction | titlecase }}
    \n
    \n
    \n
    \n
    \n \n 0; else regularStudent\">\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item.ProgramDoc | titlecase }}\n
    \n\n \n
    \n\n
    \n {{ item.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    0\">\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.createdAt | date : \"medium\"\n }}\n\n \n \n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.total || 0 }}\n
    \n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.assignedToMe || 0 }}\n
    \n
    \n
    \n
    Assigned to Me
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.facebook || 0 }}\n
    \n
    \n
    \n
    Facebook Leads
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.web || 0 }}\n
    \n
    \n
    \n
    Web Leads
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.followup || 0 }}\n
    \n
    \n
    \n
    Follow Up
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.pending || 0 }}\n
    \n
    \n
    \n
    Pending
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.counsellingpending || 0 }}\n
    \n
    \n
    \n
    Counselling Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.counsellingcompleted || 0 }}\n
    \n
    \n
    \n
    Counselling Completed
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.interested || 0 }}\n
    \n
    \n
    \n
    Interested
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.duplicate || 0 }}\n
    \n
    \n
    \n
    Duplicate Lead
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.enrolled || 0 }}\n
    \n
    \n
    \n
    Enrolled Lead
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    List of Students
    \n \n
    \n \n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    Actions\n Created\n \n \n Name\n \n \n Email\n \n \n Assigned To\n \n \n Recruiter\n \n \n Universities\n \n \n Form\n \n \n Phone\n \n \n Channel\n \n \n Call Status\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n 0\">\n {{i?.unreadCount > 9 ? \"9+\" : i?.unreadCount}}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    0\n \">\n \n \n
    \n \n 0\">{{\n i?.unreadCount > 9 ? \"9+\" : i?.unreadCount\n }}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    {{ i?.createdAt | date : \"dd MMM, yyyy\" }}\n
    0 &&\n i.transferDetails[0].fromUS == 'true')\n \">\n \n \n
    \n
    0 &&\n i.transferDetails[0].fromUS == 'false')\n \">\n \n \n
    \n \n
    \n
    \n
    \n
    \n \n {{ i?.Email }}\n \n
    \n {{ i?.Email }}\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AssignedtoInitial }}\n

    \n
    \n
    \n
    \n
    \n {{ i?.AssignedtoName | titlecase }}\n
    \n {{ i?.AssignedtoName | titlecase }}\n
    \n
    \n
    \n
    --\n \n
    \n
    \n \n {{i?.RecruiterName || '-'}}\n \n
    \n {{i?.RecruiterName || '-'}}\n
    \n\n
    \n \n {{i?.universityinfo?.name || '-'}}\n \n
    \n
    \n \n {{ i?.FormName }}\n \n
    \n {{ i?.FormName }}\n
    \n
    {{ i?.PhoneNumber }}\n
    \n
    \n
    \n
    \n \n {{ i?.Channel }}\n \n
    \n {{ i?.Channel }}\n
    \n
    \n
    \n
    \n \n Pending\n Not Interested\n Completed\n Follow Up\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n\n Duplicate\n Future Lead\n Interested Pending\n Interested\n Counselling Pending\n Counselling Completed\n Application Submitted\n Documents Pending\n Documents Submitted\n Payment Pending\n Pending I20\n Pending VISA\n VISA Declined\n VISA Approved\n Pending Travel\n Travel Complete\n Enrolled\n Prospect\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n \n
    No records found for the selected filters.
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    name is required
    \n
    \n
    \n\n
    \n \n \n
    \n `\n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    Date of birth is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    State is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    IELETS is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    TOEFL is required
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    PTE is required
    \n
    \n
    \n
    \n \n \n\n
    \n
    Dulingo is required
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Counselling date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n callBack date is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n \n
    \n\n \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Assign to Agent
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    LastName is required .
    \n
    Please use valid name .
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required .
    \n
    Only Numbers are allowed .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n \n \n
    \n
    Form Name is required
    \n
    \n
    \n
    \n \n \n
    \n
    Channel is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add New Document
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add New Document
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    \n\n\n
    \n
    \n
    \n
    \n
    Upload Documents
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document extensions, upload\n supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n Current Caller\n
    \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n \n
    {{ callStatus }}
    \n

    \n \n

    \n
    \n \n
    \n
    \n
    \n \n\n
    \n
    \n Call Ended
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n\n \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n name is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Date of birth is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n State is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n IELETS is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n TOEFL is required\n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n PTE is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Dulingo is required\n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n Counselling Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Call Back Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{ sideViewerData.FirstName + \" \" + sideViewerData.LastName }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n\n
    \n {{ callStatus }}\n
    \n \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    Send Mail

    \n \n
    \n
    \n
    \n
    \n All the documents has been Validated for this lead.
    Do you want to send a mail regarding university\n application.\n
    \n \n \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Universities
    \n \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    University NameEnrollment TermProgram
    \n {{i.name||'-'}}\n \n {{i.term ||'-'}}\n \n {{i.program || '-'}}\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n

    Assign Lead

    \n \n
    \n
    \n
    \n
    The lead is not assigned.
    \n
    \n
    Please assign the lead first.
    \n
    \n
    \n

    Assign to Agent

    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\nimport { HttpParams } from \"@angular/common/http\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SocialmedialeadsService {\n \n baseApiUrl = environment.SMSapiurl;\n baseApiUrl2 = environment.baseApiUrl2;\n baseApiUrl3 = environment.baseApiUrl;\n webAppUrl = environment.webAppUrl;\n\n callStatusSocial = new BehaviorSubject(null);\n startCallSocial = new BehaviorSubject(null);\n stopCallSocial = new BehaviorSubject(null);\n startTimerSocial = new BehaviorSubject(null);\n getCallSidSocial = new BehaviorSubject(null);\n conferenceCallSocial = new BehaviorSubject(null);\n\n // FreJun\n callStatusFJSocial = new BehaviorSubject(null);\n startCallFJSocial = new BehaviorSubject(null);\n stopCallFJSocial = new BehaviorSubject(null);\n startTimerFJSocial = new BehaviorSubject(null);\n getCallSidFJSocial = new BehaviorSubject(null);\n conferenceCallFJSocial = new BehaviorSubject(null);\n\n public unreadCountRecBehaviorSubject = new BehaviorSubject(null);\n public unreadCountRecObservable = this.unreadCountRecBehaviorSubject.asObservable();\n public viewReceivedLeadBehaviorSubject = new BehaviorSubject(null);\n public viewReceivedLeadObservable = this.viewReceivedLeadBehaviorSubject.asObservable();\n public addLeadBehaviorSubject = new BehaviorSubject(null);\n public addLeadObservable = this.addLeadBehaviorSubject.asObservable();\n\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n CallStatus: [\"\"],\n });\n\n addLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n });\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) { }\n\n getLeadsSocial(data) {\n return this.http.post(`${this.baseApiUrl3}getUniversityDashboardLeadsSocial`, data);\n }\n\n getTopBarCountSocial(obj) {\n return this.http.post(`${this.baseApiUrl3}getUniversityTopBarCountsSocial`, obj);\n }\n\n getLeadSocial(id) {\n return this.http.post(`${this.baseApiUrl3}getUhubDashboardLead`, { id: id });\n }\n\n assignLeadsSocial(data) {\n return this.http.post(`${this.baseApiUrl3}assignUhubLead`, data);\n }\n\n getCountByCallStatusSocial(data) {\n return this.http.post(`${this.baseApiUrl3}getCountByCallStatus`, data);\n }\n\n getUhubSearchDashboardLeadsSocial(data) {\n return this.http.post(`${this.baseApiUrl3}getUhubSearchDashboardLeadsSocial`, data);\n }\n\n getSmsSocial(id) {\n return this.http.get(`${this.baseApiUrl2}communication/uHubSMS/` + id);\n }\n\n\n sendSmsSocial(data, projectId) {\n return this.http.post(`${this.baseApiUrl}` + projectId + `/messaging-adapter/sendSMS`, data);\n }\n\n uploadDocumentSocial(data) {\n return this.http.post(`${this.baseApiUrl2}addCustomDocUploadLeads`, data);\n }\n\n uploadDocument1Social(data, docId) {\n return this.http.post(`${this.baseApiUrl2}UploadDocumentLeads`, data);\n }\n\n deleteCustomDocumentSocial(data) {\n return this.http.post(\n `${this.baseApiUrl2}deleteCustomDocNameLeads`, data\n );\n }\n\n updateValidationStatusSocial(data) {\n return this.http.post(\n `${this.baseApiUrl2}DocumentValidation2Leads`,\n data\n );\n }\n\n getRecruiterDetailsSocial(data) {\n return this.http.post(\n `${this.webAppUrl}recruiter/getRecruityerDetailsCRM`, data\n );\n }\n\n getWebappStudentDetailsSocial(data) {\n const url: string = this.webAppUrl + 'student/getStudentLoginDetail?contactId='+data;\n return this.http.get(url);\n }\n\n counsellingCompletedSocial(data) {\n // return this.http.post(\n // `${this.baseApiUrl2}wp/university/counsellingCompleted`,\n // data\n // );\n\n }\n\n sendUniMailSocial(data) {\n return this.http.post(\n `${this.baseApiUrl3}leadUniversityAttachment`, data\n );\n }\n\n uploadFileAndGetLinkSocial(data){\n const url = `${this.baseApiUrl2}UploadDocumentV2`;\n return this.http.post(url,data)\n }\n\n getAllUniversitySocial() {\n const url = `${this.baseApiUrl2}/universitryhub/listOfUniversities`;\n return this.http.get(url);\n }\n\n sendNotificationSocial(data) {\n const url = `${this.baseApiUrl2}/wp/university/recruiter/sendNotification`;\n return this.http.post(url, data);\n }\n\n updateTransferCustomDocSocial(data) {\n const url = `${this.baseApiUrl2}/uhub/updateTransferCustomDoc`;\n return this.http.post(url, data);\n }\n getDocNameByDocId(data) {\n const url = `${this.baseApiUrl2}/getDocNameByDocId`;\n return this.http.post(url, data);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Inject,\n OnDestroy,\n ViewChildren,\n ElementRef,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport * as xlsx from \"xlsx\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { post } from \"jquery\";\nimport { MarketingService, InputSMSData } from \"../marketing/marketing.service\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nimport { ReferreeService } from \"../referree/referree.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nimport { Exceldata } from \"../marketing/smsmarketing/models/ExecelData.model\";\nimport { UhubDashboardService } from \"./uhub-dashboard.service\";\nimport { environment } from \"src/environments/environment\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport * as moment from \"moment\";\n\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { Subscription } from \"rxjs\";\nimport { ProjectService } from \"../project-management/project.service\";\nimport { DemopageComponent } from \"../marketing/demopage/demopage.component\";\nimport { NotificationService } from \"@swimlane/ngx-ui\";\nimport { NotificationsService } from \"src/app/notification.service\";\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nconst countryCodes = require(\"../../../assets/allcountryDetails.json\");\nimport { id } from \"@swimlane/ngx-charts/utils/id\";\nimport { TransfersService } from \"../trasnfers/transfers.service\";\n\n@Component({\n selector: \"app-uhub-dashboard\",\n templateUrl: \"./uhub-dashboard.component.html\",\n styleUrls: [\"./uhub-dashboard.component.scss\"],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class UhubDashboardComponent implements OnInit {\n userData: any;\n projectId: any;\n admin: any;\n public error: boolean = false;\n public errorMessage: string = \"\";\n endDate: any;\n startDate: any;\n date1: any;\n date2: any;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n currentLeadId: any;\n activityfilterString: string = \"\";\n minItems = 5;\n leadSearch: string = \"\";\n currentCard: string = \"total\";\n sortColumn = \"createdAt\";\n sortOrder = \"des\";\n smsText: string;\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n public filterValue = \"all\";\n showDate: boolean = false;\n filterString: string;\n LeadList: any[] = [];\n leadType: string = \"total\";\n cardleadType: string = \"total\";\n tab!: string;\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"sendUniversityDoc\") sendUniversityDoc;\n @ViewChild(\"leadNotAssigned\") leadNotAssigned;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButtonCustom\") closeButtonCustom;\n @ViewChild(\"closeButtonCustom5\") closeButtonCustom5;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n topBarCount: {\n total: number;\n facebook: number;\n web: number;\n followup: number;\n pending: number;\n followupDate: number;\n counsellingpending: number;\n counsellingcompleted: number;\n interested: number;\n duplicate: number;\n enrolled: number;\n assignedToMe: number;\n TransferStudent: number;\n InternationalStudent: number;\n } = {\n total: 0,\n facebook: 0,\n web: 0,\n followup: 0,\n pending: 0,\n followupDate: 0,\n counsellingpending: 0,\n counsellingcompleted: 0,\n interested: 0,\n duplicate: 0,\n enrolled: 0,\n assignedToMe: 0,\n TransferStudent: 0,\n InternationalStudent: 0,\n };\n\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n University: string;\n CallStatus: string;\n AgentMail: string;\n };\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n\n DIyear: any;\n DIterms: any;\n DIyearArray: any = [];\n recruiterDetails: any;\n public intakeListArray: any = [];\n\n public filePath: any;\n public fileData: Exceldata[] = [];\n public uploaded: boolean = false;\n public insertCount: number = 0;\n public callData: any[] = [];\n public startCall: boolean = false;\n public stopCall: boolean = false;\n public startIndex: number = 0;\n public statusValue = \"all\";\n public clearTime: any;\n UhubList: any[] = [];\n UhubList1: any;\n allLeads: any;\n public fileSource = environment.fileServer;\n public downloadLink: string;\n public page: any = 1;\n public pageSize: any = 12;\n selectedAll: boolean = false;\n leadIds = [];\n dialerScreen1 = \"dialer\";\n callStatus: string = \"Calling..\";\n newStatus: any;\n selectedLead: any;\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n leadsLoading: boolean = false;\n noLeadsFound: boolean = false;\n sidenavLoading: boolean = false;\n agentList: any;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n callStatusFilter: String = \"all\";\n public currentLead: any;\n public isUpdateLead: boolean = false;\n public submitted: boolean = false;\n defaultAgent = \"default\";\n selectedAgent: any;\n totalAgents: any;\n agentName: any;\n GBPagentList: any;\n\n public search: string;\n isLoading: boolean = true;\n noRecords: boolean = false;\n\n file: File[] = [];\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: File[] = [];\n customDocLeadId: any;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n uploadSuccess: string = \"none\";\n documentsList2: any;\n validationStatus: boolean = false;\n documentComments: string;\n currentStatus: any;\n docUrl: any;\n currentItem: any;\n countries = [];\n selectedCountryCode = 1;\n selectedCountry = \"\";\n testConfig: countUpTimerConfigModel;\n comments: any;\n\n followUpdate: Date = new Date();\n\n updateLeadComments1: boolean = false;\n UhubCallSid: any;\n uniList: any[] = [];\n currentGUIDCommentsAttachment: any[] = [];\n transferCustomUniversity: any;\n transferCustomUniversityProg: any;\n uni: any;\n customDocNameCode: any;\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.selectedCountry = country.alpha2Code;\n this.marketingService.createLead.get(\"countryCode\").patchValue(this.selectedCountryCode)\n }\n allUniversities: any[] = [];\n currentProject: any;\n selectIndex = 0;\n customDocList: any[] = []\n\n constructor(\n private SharedService: SharedService,\n private momentService: MomentFormatService,\n private companyService: RoleService,\n private uhleadsservice: UhLeadsService,\n private ReferreeService: ReferreeService,\n public marketingService: MarketingService,\n private readonly handleError: ErrorHandlerService,\n private router: Router,\n public layoutService: LayoutService,\n public UhubDashboardService: UhubDashboardService,\n private readonly modalService: NgbModal,\n private readonly snackbarRef: MatSnackBar,\n private agentService: CreateAgent,\n private NotificationService: NotificationsService,\n private transferService: TransfersService,\n\n @Inject(DOCUMENT) private domService: HTMLDocument,\n public countupTimerService: CountupTimerService\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit(): void {\n this.followUpdate.setDate(this.followUpdate.getDate() + 2);\n this.fetchCountries();\n this.SharedService.pageEvent.emit({\n pageName: \"University Hub Dashboard\",\n });\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.getListofUniversities();\n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.startDate = this.momentService.dashboardDateFormat(moment(new Date(new Date(Date.now() - 864e5 * 365)).getTime()).startOf('day').toString());\n this.endDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() + 864e5))\n )).endOf('day').toString());\n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n this.companyService.projectAdmin(this.userData[\"companyId\"]).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == \"University Hub\"\n )[0].id;\n // this.projectId = data;\n if (this.projectId) {\n this.SharedService.getProjectAdmin(this.projectId).subscribe(\n (data: any) => {\n this.admin = data;\n setTimeout(() => {\n this.getTopBarCount();\n this.onClick(1);\n this.getUniversalRecords();\n // this.getLead();\n }, 500);\n\n this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n this.getLeadsByCards(this.cardleadType);\n } else if (this.leadType == \"filter\") {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n this.searchLeads1(payload);\n }\n });\n this.layoutService.postComments.subscribe((data) => {\n if (data) {\n this.postComments1(data.item, data.value);\n }\n });\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/accessque.xlsx\")\n .subscribe(\n (data) => {\n this.downloadLink = data[\"url\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n\n // server-side search\n\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n let stopCallsSub = this.layoutService.stopCalls.subscribe((data) => {\n if (data) {\n this.stopCallListener();\n this.startCall = false;\n }\n });\n this.UhubDashboardService.startTimer.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n this.layoutService.getCallSid.subscribe((sid: any) => {\n this.UhubCallSid = sid;\n });\n let redial = this.layoutService.redialContact.subscribe((data) => {\n if (data) {\n clearTimeout(this.clearTime);\n }\n });\n let callEndSub = this.layoutService.callEnd.subscribe((data) => {\n if (this.statusValue === \"interested\") {\n this.stopCall = true;\n this.startCall = false;\n return;\n }\n if (this.startCall && this.callData.length !== 0) {\n } else {\n this.startCall = false;\n }\n });\n this.layoutService.currentStatus.subscribe((data) => {\n this.currentStatus = data;\n });\n this.UhubDashboardService.callStatus.subscribe((status) => {\n this.callStatus = status;\n });\n\n this.UhubDashboardService.unreadCountRecObservable.subscribe((data) => {\n if (data) {\n this.LeadList.forEach(element => {\n if (Number(element.id) === Number(data.id)) {\n element.unreadCount = data.count;\n }\n });\n }\n });\n this.UhubDashboardService.viewReceivedLeadObservable.subscribe((data) => {\n if (data) {\n this.selectIndex = 0;\n setTimeout(() => {\n this.selectIndex = 2;\n this.sideNav.open();\n this.sideNavData({ id: data });\n setTimeout(() => {\n this.markNotificationRead(data);\n }, 1000);\n }, 500);\n }\n });\n this.UhubDashboardService.addLeadObservable.subscribe(async (data) => {\n if (data) {\n await this.getTopBarCount();\n await this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n this.selectIndex = 2;\n await this.sideNavData({ id: data })\n }\n })\n }\n\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n onInputActivity(event: any) {\n if (this.leadSearch != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == \"University Hub\") {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n this.UhubDashboardService.sendSms(payload, this.projectId).subscribe(\n (res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.UhubDashboardService.getSms(this.currentLeadId).subscribe(\n (smsList: any) => {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n );\n }\n );\n });\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(moment(\n new Date(new Date(Date.now())).getTime()\n ).endOf('day').toString());\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n )).startOf('day').toString());\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() - 864e5)).getTime()\n )).startOf('day').toString());\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n )).startOf('day').toString());\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n )).startOf('day').toString());\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n )).startOf('day').toString());\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n )).startOf('day').toString());\n\n this.showDate = false;\n }\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n // write here\n // this.getReferralList(\n // this.admin,\n // this.projectId,\n // this.userData.mail,\n // \"all\",\n // this.startDate,\n // this.endDate\n // );\n }\n\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n filterData() {\n // this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(this.date2.value).getTime()\n )).startOf('day').toString());\n this.endDate = this.momentService.dashboardDateFormat(moment((\n new Date(this.date1.value).getTime()\n )).endOf('day').toString());\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n this.getTopBarCount();\n this.getLeadsByCards(this.cardleadType);\n this.getUniversalRecords();\n }\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(moment((\n new Date(this.startDate).getTime()\n )).startOf('day').toString());\n }\n\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(moment((\n new Date(this.endDate).getTime()\n )).endOf('day').toString());\n }\n\n getLeadsByCards(cardValue) {\n this.search = '';\n this.filterString = \"\";\n this.LeadList = [];\n this.leadType = cardValue;\n this.statusValue = \"all\";\n this.callStatusFilter = \"all\";\n if (\n this.leadType == \"pending\" ||\n this.leadType == \"followup\" ||\n this.leadType == \"interested\"\n ) {\n this.callStatusFilter = this.leadType;\n this.statusValue = this.leadType;\n }\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n cardValue,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n }\n\n onClick(check: any) {\n this.uhleadsservice.pageNumber.next(1);\n if (check) {\n this.tab = \"tab\" + check;\n } else {\n this.tab = \"\";\n }\n }\n\n convertFile(e) {\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"First Name\" && sheet_data.length !== 0) {\n this.fileData =\n this.marketingService.convert2dArraytoObject(sheet_data);\n this.marketingService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Excel\",\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n redirectToUpload() {\n this.router.navigate([\"./upload/\" + this.projectId]);\n }\n\n startCallListener() {\n this.UhubDashboardService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n followUpCall1(data, item) {\n if (!this.startCall) {\n this.layoutService.marketingCallDocs.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n item: item,\n });\n this.startCall = true;\n }\n }\n\n startCallListener2(data, index) {\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n this.newStatus = false;\n this.callData[0] = data;\n this.selectedLead = data;\n this.marketingId = {\n id: data.id,\n status: data.CallStatus,\n name: data.FirstName,\n email: data.Email,\n phoneNumber: \"+\" + data.CountryCode + data.PhoneNumber,\n module: data.Module,\n city: \"\",\n nextCaller: this.LeadList.length > 1 ? 1 : 0,\n lead: 0,\n };\n if (this.LeadList.length > 1) {\n var nextFirstname = this.LeadList[index + 1]?.FirstName ? this.LeadList[index + 1]?.FirstName : '';\n var nextLastname = this.LeadList[index + 1]?.LastName ? this.LeadList[index + 1]?.LastName : '';\n var nextCallerCity = this.LeadList[index + 1]?.City ? this.LeadList[index + 1]?.City : '';\n var nextCallerCountryCode = this.LeadList[index + 1]?.CountryCode ? this.LeadList[index + 1]?.CountryCode.replace(\"+\", \"\") : '';\n var nextCallerPhoneNumber = this.LeadList[index + 1]?.PhoneNumber ? this.LeadList[index + 1]?.PhoneNumber : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber : '';\n this.startIndex = index + 1;\n }\n\n this.UhubDashboardService.startCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n leadData: this.marketingId,\n type: 'uhub'\n });\n this.startCall = true;\n this.patchEditValues(data);\n }\n stopCalls() {\n this.UhubDashboardService.startCall.next(null);\n this.UhubDashboardService.stopCall.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n stopCallListener() {\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n public onInput(event: any) {\n if (this.search != \"\") {\n } else if (this.search == \"\") {\n this.totalRecords.nativeElement.click();\n }\n }\n\n searchLeads(value, page) {\n this.LeadList = [];\n this.noRecords = false;\n this.isLoading = true;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.UhubDashboardService.getUhubSearchDashboardLeads(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n if (res.totalResults <= 0) {\n this.noRecords = true;\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n for (let i = 0; i <= this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].Assignedto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter';\n this.LeadList[i].FormName = 'Recruiter';\n } else {\n this.LeadList[i].FormName = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = '-';\n }\n if (this.LeadList[i].transferDetails.length > 0) {\n this.LeadList[i].UniversityCount = this.LeadList[i]?.transferDetails[0]?.universityInfo?.length || 0;\n } else {\n this.LeadList[i].UniversityCount = 0;\n }\n }\n\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.cardleadType = 'all';\n this.getTopBarCount();\n this.getLeadsByCards(\"total\");\n }\n }\n\n searchLeads1(payload) {\n this.LeadList = [];\n this.leadType = \"filter\";\n this.UhubDashboardService.getUhubSearchDashboardLeads(payload).subscribe(\n (res: any) => {\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n for (let i = 0; i < this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].Assignedto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter'\n }\n // this.LeadList[i].FormName =\n // this.LeadList[i].Miscellaneous.form_name;\n }\n\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n dropdownSelect(event) {\n if (event == \"all\") {\n this.cardleadType = \"total\";\n } else {\n this.callStatusFilter = event;\n this.leadType = \"dropdown\";\n this.cardleadType = event;\n this.onClick(null);\n }\n this.uhleadsservice.pageNumber.next(1);\n }\n\n getTopBarCount() {\n var postData = {\n AgentMail: this.userData.mail,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.UhubDashboardService.getTopBarCount(postData).subscribe(\n (res: any) => {\n if (this.leadType == \"total\") {\n this.totalPages = res.total;\n } else if (this.leadType == \"facebook\") {\n this.totalPages = res.facebook;\n } else if (this.leadType == \"Website\") {\n this.totalPages = res.web;\n } else if (this.leadType == \"callback\") {\n this.totalPages = res.followup;\n } else if (this.leadType == \"pending\") {\n this.totalPages = res.pending;\n } else if (this.leadType == \"pending\") {\n this.totalPages = res.pending;\n } else if (this.leadType == \"interested\") {\n this.totalPages = res.interested;\n } else if (this.leadType == \"counsellingpending\") {\n this.totalPages = res.counsellingpending;\n } else if (this.leadType == \"counsellingcompleted\") {\n this.totalPages = res.counsellingcompleted;\n } else if (this.leadType == \"QualifiedLead\") {\n this.totalPages = res.qualifiedLead;\n } else if (this.leadType == \"QualifiedHotLead\") {\n this.totalPages = res.qualifiedHotLead;\n } else if (this.leadType == \"assignedto\") {\n this.totalPages = res.assignedToMe;\n } else if (this.leadType == \"InternationalStudent\") {\n this.totalPages = res.InternationalStudent;\n } else if (this.leadType == \"duplicate\") {\n this.totalPages = res.duplicate;\n } else if (this.leadType == \"enrolled\") {\n this.totalPages = res.enrolled;\n } else if (this.leadType == \"TransferStudent\") {\n this.totalPages = res.TransferStudent;\n } else if (this.leadType == \"dropdown\") {\n this.UhubDashboardService.getCountByCallStatus({\n status: this.callStatusFilter,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n }).subscribe((count: any) => {\n this.totalPages = count.count;\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n });\n }\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n this.topBarCount = res;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getUniversalRecords() { }\n\n getLeads(admin, projectId, mail, leadType, start, end, page, callStatus) {\n this.isLoading = true;\n this.cardleadType = leadType;\n let payload = {\n admin: admin,\n mail: mail,\n ProjectId: projectId,\n leadType: leadType,\n start: start,\n end: end,\n page: page,\n callStatus: callStatus,\n };\n\n this.UhubDashboardService.getLeads(payload).subscribe(\n async (res: any) => {\n this.isLoading = false;\n var test1 = res.data;\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj.FirstName + \" \" + obj.LastName,\n }));\n this.LeadList = test2;\n this.callData = [...this.LeadList];\n\n for (let i = 0; i <= this.LeadList.length; i++) {\n this.LeadList[i].unreadCount = 0;\n this.LeadList[i].AssignedtoName = this.getAgentName(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoInitial = this.getAgentInitial(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoColor = this.getAgentColor(\n this.LeadList[i].Assignedto\n );\n this.LeadList[i].AssignedtoImageURL = this.getAgentphoto(\n this.LeadList[i].Assignedto\n );\n if (this.LeadList[i].Channel == 'WebApp') {\n let name = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = name;\n this.LeadList[i].Miscellaneous.form_name = 'Recruiter';\n this.LeadList[i].FormName = 'Recruiter';\n } else {\n this.LeadList[i].FormName = this.LeadList[i].Miscellaneous.form_name;\n this.LeadList[i].RecruiterName = '-';\n }\n if (this.LeadList[i].transferDetails.length > 0) {\n this.LeadList[i].UniversityCount = this.LeadList[i]?.transferDetails[0]?.universityInfo?.length || 0;\n } else {\n this.LeadList[i].UniversityCount = 0;\n }\n }\n\n\n if (this.LeadList.length == 0) {\n this.noRecords = true;\n }\n this.callData = [...this.LeadList];\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.LeadList.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.LeadList.length; i++) {\n this.leadIds.push(this.LeadList[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n var test1 = sortJsonArray(this.LeadList, this.sortColumn, this.sortOrder);\n var test2 = test1.map((obj) => ({\n ...obj,\n name: obj?.FirstName + \" \" + obj?.LastName,\n }));\n this.LeadList = test2;\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\n openEditLead(content, lead) { }\n\n updateLead() { }\n\n sideNavData(data) {\n this.sideViewerData = [];\n this.sidenavLoading = true;\n this.activityfilterString = \"\";\n this.getCustomDocList(data);\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.UhubDashboardService.getLead(data.id).subscribe(\n (res: any) => {\n this.UhubDashboardService.getSms(data.id).subscribe((smsList: any) => {\n this.smsList = smsList.SMSDetails;\n this.sideViewerData = res[0];\n this.getCustomList();\n if (this.sideViewerData.transferDetails.recruiterSalesforceId) {\n let paylaod = {\n recruiterSalesforceId:\n this.sideViewerData.transferDetails.recruiterSalesforceId,\n };\n this.UhubDashboardService.getRecruiterDetails(paylaod).subscribe(\n (Data: any) => {\n if (Data) {\n this.recruiterDetails = Data;\n }\n }\n );\n }\n\n this.replaceNull(this.sideViewerData);\n this.replaceNull(this.sideViewerData.transferDetails);\n this.documentValidation(this.sideViewerData.id);\n this.sidenavLoading = false;\n\n this.currentLeadId = this.sideViewerData.id;\n });\n let wpObj = {\n phone: \"+\" + this.sideViewerData?.CountryCode.replace('+', '') + this.sideViewerData?.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // }\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n a[key] === \"\" ? (a[key] = \"-\") : a[key];\n });\n }\n\n updateComments(modal, item) {\n if ((item.Assignedto == null || item.Assignedto == undefined || item.Assignedto == '-' || item.Assignedto == '') && item.transferDetails.length > 0) {\n this.notAssignedModel(item);\n } else {\n\n this.layoutService.commentsForm.get(\"interested\").clearValidators();\n this.layoutService.commentsForm.get(\"interested\").updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue == \"callback\") {\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue == \"counsellingpending\") {\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n dob: item[\"DOB\"] ? this.layoutService.dateFormatForAddUpdate1(item[\"DOB\"]) : null\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe(\n (data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe(\n (data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.modalService.open(modal, { size: \"xl\" });\n\n }\n }\n\n async submit() {\n if (this.isUpdateLead) {\n if (this.layoutService.commentsForm.invalid) {\n } else {\n this.layoutService\n .updateCommentsBasedOnId(this.currentLead[\"id\"])\n .subscribe(\n () => {\n this.updateLeadComments();\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n this.modalService.dismissAll();\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n if (this.layoutService.commentsForm.invalid) {\n } else {\n this.layoutService.updateComments(this.currentLead[\"id\"]).subscribe(\n () => {\n this.updateLeadComments();\n this.modalService.dismissAll();\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\")\n ) {\n await this.scheduleDemo();\n this.closeButton2.nativeElement.click();\n } else {\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n this.marketingService\n .updateLeadStatus({\n id: this.currentLead.id,\n phase: this.layoutService.commentsValue.interested,\n })\n .subscribe(\n () => {\n this.closeButton2.nativeElement.click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n this.UhubDashboardService.sendNotification({\n type: 'lead-status-changed-crm',\n data: {\n uhub_id: this.currentLead[\"id\"],\n status: this.layoutService.commentsValue.interested\n }\n }).subscribe((data: any) => {\n\n }, (err) => {\n\n })\n }\n\n updateLeadComments() {\n if (this.currentLead.phase !== \"demo\") {\n let callStatus = \"interested\";\n let futureLead = \"no\";\n if (this.layoutService.commentsValue.interested === \"futurelead\") {\n callStatus = \"interested\";\n futureLead = \"yes\";\n } else {\n callStatus = this.layoutService.commentsValue.interested;\n futureLead = \"no\";\n }\n this.layoutService\n .updateCallComments({\n id: this.currentLead[\"id\"],\n agentMail: this.userData.mail,\n comments: this.layoutService.commentsValue.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: futureLead,\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.currentLead[\"Assignedto\"],\n })\n .subscribe(\n (data) => {\n this.updateCallComments(\n this.layoutService.commentsValue.comments,\n this.currentLead[\"id\"],\n this.layoutService.commentsValue.interested\n );\n this.getTopBarCount();\n if (this.leadType != \"filter\") {\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n } else if (this.leadType == \"filter\") {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n this.searchLeads1(payload);\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n updateCallComments(comments, id, callstatus) {\n // this.layoutService.getCallSid.subscribe((sid: any) => {\n let payload = {\n sid: this.UhubCallSid,\n comments: comments,\n id: id,\n callstatus: callstatus,\n };\n this.layoutService\n .updateCallCommentsNew(payload)\n .subscribe((res: any) => { });\n // });\n }\n\n scheduleDemo() {\n let dt = this.layoutService.commentsValue.counsellingDate;\n dt =\n moment(dt).format(\"dddd D MMM YY\") + \" at \" + moment(dt).format(\"h:m a\");\n let template: string = this.currentLead[\"Miscellaneous\"][\"form_name\"]\n .toLowerCase()\n .includes(\"ielts\")\n ? \"ielts\"\n : \"usastudy\";\n\n let num = Math.floor(Math.random() * 90000) + 10000;\n let room = \"live-\" + num.toString();\n let smsId = null;\n let callId = null;\n let mailId = null;\n\n let demoScheduled = `${environment.BaseURL}/videocalling/mainscreen/${this.projectId}/${room}`;\n const smsMarketingBefore6hr: InputSMSData = {\n ProjectId: this.projectId,\n Module: this.currentLead[\"Module\"],\n RecipientNumber:\n \"+\" +\n this.currentLead[\"CountryCode\"] +\n this.currentLead[\"PhoneNumber\"].replace(/\\n/g, \"\"),\n ScheduledSMSTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Type: \"Information\",\n };\n this.marketingService.getAutoDialCompany(this.projectId).subscribe(\n async (data) => {\n if (data) {\n let apiKey = data[\"API_KEY\"];\n if (dt) {\n smsId = await this.marketingService.createAutoSmsScheduler(\n smsMarketingBefore6hr,\n apiKey\n );\n }\n }\n setTimeout(() => {\n this.marketingService\n .createDemo({\n ProjectId: this.projectId,\n Name: this.currentLead[\"FirstName\"],\n AutoEmailId: mailId ? mailId[\"mailId\"] : null,\n AutoCallId: callId ? callId[\"callId\"] : null,\n AutoSMSId: smsId ? smsId[\"smsId\"] : null,\n Comments: this.layoutService.commentsValue.comments,\n DateTime: moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\"),\n Presenter:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0][\"value\"]\n : this.currentLead[\"Assignedto\"],\n Feedback: this.layoutService.commentsValue.interested,\n Url: demoScheduled + \"/\" + this.userData.workerFriendlyName,\n ClientURL: demoScheduled + \"/\" + this.currentLead[\"FirstName\"],\n RoomName: room,\n LeadId: this.currentLead.id,\n agentEmail: this.userData.mail,\n })\n .subscribe(\n (demo) => {\n if (dt) {\n this.marketingService\n .updateDemo({\n demoId: demo[\"id\"],\n leadId: this.currentLead.id,\n })\n .subscribe(\n (data) => {\n if (dt) {\n this.layoutService.sendSmsForLead({\n date: dt,\n from: this.layoutService.twilioNumber,\n projectId: this.projectId,\n student_name: this.currentLead[\"FirstName\"],\n tosms: this.currentLead.PhoneNumber,\n });\n }\n if (dt) {\n this.marketingService.sendMailForDemo(\n {\n name: this.currentLead[\"FirstName\"],\n demoDate: moment(\n this.layoutService.commentsValue.counsellingDate\n ).format(\"MMMM Do YYYY, h:mm:ss a\"),\n url:\n demoScheduled +\n \"/\" +\n this.currentLead[\"FirstName\"],\n },\n this.currentLead.Email,\n this.projectId,\n template\n );\n this.updateLeadComments();\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }, 2000);\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n get f(): { [key: string]: AbstractControl } {\n return this.layoutService.commentsForm.controls;\n }\n\n get createLeads(): { [key: string]: AbstractControl } {\n return this.marketingService.createLead.controls;\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.UhubDashboardService.assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n }).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n\n this.getTopBarCount();\n this.getLeads(\n this.admin,\n this.projectId,\n this.userData.mail,\n this.cardleadType,\n this.startDate,\n this.endDate,\n this.pageNumber,\n this.callStatusFilter\n );\n \n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n this.modalService.dismissAll();\n\n // Notify Recruiter\n this.leadIds.forEach(element => {\n this.UhubDashboardService.sendNotification({\n type: 'lead-assigned-crm',\n data: {\n uhub_id: element\n }\n }).subscribe((data: any) => {\n\n }, (err) => {\n\n })\n });\n\n this.leadIds = [];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n if (email !== null || email !== undefined) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n } else {\n return '-'\n }\n\n }\n\n createLead() {\n this.submitted = true;\n if (this.marketingService.createLead.invalid) {\n return;\n }\n let fileData: Exceldata[] = [\n new Exceldata(\n this.marketingService.createLeadValue[\"firstName\"],\n this.marketingService.createLeadValue[\"lastName\"],\n this.marketingService.createLeadValue[\"countryCode\"],\n this.marketingService.createLeadValue[\"phoneNumber\"],\n this.marketingService.createLeadValue[\"email\"],\n this.userData.mail,\n this.marketingService.createLeadValue[\"module\"],\n this.marketingService.createLeadValue[\"channel\"],\n {\n form_id: \"\",\n form_name: this.marketingService.createLeadValue[\"form_name\"],\n \"Choose Batch\": \"\",\n \"Training Mode\": \"\",\n },\n this.marketingService.createLeadValue[\"comments\"],\n this.marketingService.createLeadValue[\"createdAt\"]\n ),\n ];\n this.marketingService\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Manual\",\n })\n .subscribe(\n (data) => {\n this.marketingService.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.getTopBarCount();\n this.onClick(1);\n this.getLeadsByCards(this.cardleadType);\n this.getUniversalRecords();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n openCreateLead(content) {\n this.modalService.open(content, { size: \"md\" });\n }\n\n getAgentInitial(email) {\n if (email !== null || email !== undefined) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n } else {\n return '-'\n }\n }\n\n getAgentColor(email) {\n if (email !== null || email !== undefined) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n } else {\n return '-'\n }\n }\n\n getAgentphoto(email) {\n if (email !== null || email !== undefined) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n } else {\n return '-'\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n\n onDIYearChange(data) {\n this.DIyear = data;\n }\n // Clear file and document name in custom document upload modal\n clearData(uniName?: any, uniProg?: any) {\n this.transferCustomUniversity = uniName;\n this.transferCustomUniversityProg = uniProg;\n if (uniName) {\n const index = this.allUniversities.findIndex(x => x?.university?.toLowerCase() === uniName?.toLowerCase());\n if (index > -1) {\n this.currentProject = this.allUniversities[index].uniProjectId;\n }\n }\n this.file = [];\n this.customDocName = \"\";\n this.customFileList = [];\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append(\"fileUpload\", this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n async attachFileMainCommentGetDetails(e) {\n for await (const i of e.target.files) {\n this.currentGUIDCommentsAttachment.push(i);\n }\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n uploadCustomDocument(e) {\n // let fileList: FileList = event.target.files;\n // this.file = fileList[0];\n // event.target.value = '';\n // if (fileList.length > 0) {\n // if (!this.validateFile(this.file.type)) {\n // this.uhleadsservice.showError(\"Invalid file format!\", \"Error\");\n // return;\n // }\n // }\n for (var i = 0; i < e.target.files.length; i++) {\n this.file.push(e.target.files[i]);\n console.log(\"e.target.files.length ::::: \", e.target.files[i])\n this.customFileList.push(e.target.files[i]);\n }\n if (this.customFileList.length > 0) {\n this.docUploadError = \"Click on add to start uploading your files\";\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n addCustomDocument(isTransfer?: boolean) {\n let check = true;\n this.customFileList.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n this.docUploadError = \"Please be patient while the document is uploaded...\";\n if (this.customDocName == \"\") {\n this.docUploadError = \"Document name cannot be empty!\";\n return;\n } else {\n this.docUploadStatus = true;\n let formData: FormData = new FormData();\n formData.append(\"GUID\", this.currentLeadId);\n formData.append(\"docName\", this.customDocName);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n formData.append('ProjectId', this.currentProject);\n Array.from(this.customFileList).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n this.UhubDashboardService.uploadDocument(formData).subscribe(\n (res: any) => {\n let response = res.status;\n this.docUploadStatus = false;\n if (response == 200) {\n this.docUploadError = \"Custom document added\";\n this.uhleadsservice.showSuccess(\n \"Custom document added!\",\n \"Success\"\n );\n } else if (response == 201) {\n this.docUploadError = \"Uploaded a custom document\";\n this.uhleadsservice.showSuccess(\n \"Uploaded a custom document!\",\n \"Success\"\n );\n } else if (response == 202) {\n this.docUploadError = \"Document with given name already exists!\";\n this.uhleadsservice.showError(\n \"Document with given name already exists!\",\n \"Error\"\n );\n return;\n }\n if (isTransfer){\n this.updatetransferUniversityProg(res.StudentdocId);\n }\n this.sideNavData({ id: this.currentLeadId });\n this.file = [];\n this.customDocName = \"\";\n this.closeButtonCustom.nativeElement.click();\n this.closeButtonCustom5.nativeElement.click();\n \n },\n (error) => {\n this.docUploadStatus = false;\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.UhubDashboardService.deleteCustomDocument({\n StudentdocId: docId,\n docName: docName,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"Custom document deleted successfully.\",\n \"Deleted Successfully!\"\n );\n } else {\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.StudentdocId);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n callFromDocs(data, item) {\n this.currentItem = item;\n this.startCallListener2(data, 0);\n }\n\n changeValidation(value, docId) {\n this.UhubDashboardService.updateValidationStatus({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n }).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Document Status updated!\", \"Success!\");\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.sideViewerData.uploadlistofdocuments.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.sideViewerData.uploadlistofdocuments.length; i++) {\n if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation ==\n \"revalidate\" ||\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (\n this.sideViewerData.uploadlistofdocuments[i].AgentValidation ==\n \"validated\"\n ) {\n this.validationStatus = true;\n // open modal to confirm if agent wants to send mail to student or not\n // this.modalService.open(this.sendUniversityDoc,{ size: \"md\" });\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n }\n\n postComments(item, HTMLid, attachmentId?: any) {\n let body;\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n if (this.documentComments.length > 0) {\n const isAttachmentFile = ((\n document.getElementById(attachmentId)\n ));\n if (isAttachmentFile) {\n let attachmentFile = isAttachmentFile.files;\n if (attachmentFile.length > 0) {\n let files = attachmentFile[0];\n let check = true;\n if (this.validateFile(files.type) == false) {\n this.uhleadsservice.showError(\"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\", '');\n check = false;\n return;\n }\n if (check == true) {\n let formData: FormData = new FormData();\n formData.append(\"document\", files, files.name)\n this.UhubDashboardService.uploadFileAndGetLink(formData).subscribe(async (data: any) => {\n let attachCommentObj = [];\n attachCommentObj.push(\n data.url\n )\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: attachCommentObj\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n })\n }\n } else {\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: []\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n }\n } else {\n body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n Attachment: []\n };\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n this.addCommentsOnDoc(body, attachmentId, HTMLid);\n }\n } else {\n this.uhleadsservice.showInfo('Please write something in comment box.', '')\n }\n }\n\n addCommentsOnDoc(body, attachmentId, HTMLid) {\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n\n this.UhubDashboardService.sendNotification({\n type: 'crm-comment',\n data: {\n uhub_id: body.GUID\n }\n }).subscribe((data: any) => {\n\n }, (err) => { });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n documentValidation(id) {\n this.documentsList2 = this.sideViewerData.uploadlistofdocuments;\n\n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n this.checkValidation();\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.UhubDashboardService.uploadDocument1(\n formData,\n this.docUploadID\n ).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.uploadSuccess = \"success\";\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.docUploadStatus = false;\n this.UhubDashboardService.sendNotification({\n type: 'doc-upload',\n data: {\n uhub_id: this.currentLeadId\n }\n }).subscribe((data: any) => {\n\n }, (err) => {\n });\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n }\n }\n },\n (err) => {\n this.docUploadStatus = false;\n this.uploadSuccess = \"failure\";\n this.handleError.handleError(err);\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n );\n }\n }\n\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n postComments1(item, value) {\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentLeadId,\n StudentDocId: item.StudentdocId,\n Text: value,\n Admin: this.admin,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fetchCountries() {\n this.countries = countryCodes;\n }\n\n onInput1(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n patchEditValues(item) {\n this.layoutService.commentsForm.get(\"interested\").clearValidators();\n this.layoutService.commentsForm.get(\"interested\").updateValueAndValidity();\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"counsellingDate\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"callBack\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"callBack\").value\n )\n );\n this.layoutService.commentsForm\n .get(\"dob\")\n .patchValue(\n this.layoutService.dateFormatForAddUpdate(\n this.layoutService.commentsForm.get(\"dob\").value\n )\n );\n // this.layoutService.commentsForm.get('callBack').patchValue(this.layoutService.dateFormatForAddUpdate(this.layoutService.commentsForm.get('callBack').value))\n this.layoutService.commentsForm\n .get(\"interested\")\n .valueChanges.subscribe(async (selectedValue) => {\n await this.layoutService.commentsForm.get(\"callBack\").clearValidators();\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .clearValidators();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n if (selectedValue == \"callback\") {\n await this.layoutService.commentsForm\n .get(\"callBack\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"callBack\")\n .updateValueAndValidity();\n } else if (selectedValue == \"counsellingpending\") {\n await this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"counsellingDate\")\n .updateValueAndValidity();\n await this.layoutService.commentsForm\n .get(\"assignedTo\")\n .setValidators([Validators.required]);\n this.layoutService.commentsForm\n .get(\"assignedTo\")\n .updateValueAndValidity();\n }\n });\n this.layoutService.onReset();\n this.currentLead = item;\n this.layoutService.commentsForm.patchValue({\n name: item[\"FirstName\"],\n emailId: item[\"Email\"],\n qualification: item[\"Education\"],\n state: item[\"City\"],\n countryCode: item[\"CountryCode\"],\n phoneNumber: item[\"PhoneNumber\"],\n dob: this.layoutService.dateFormatForAddUpdate1(item[\"DOB\"])\n });\n this.marketingService\n .showDetails(this.currentLead[\"id\"], this.statusValue)\n .subscribe(\n (data) => {\n this.layoutService.commentsForm.patchValue({\n comments:\n data[\"Phase\"] === \"demo\"\n ? data[\"DemoComments\"] || \"\"\n : data[\"Comments\"] || \"\",\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.layoutService.getCommentLead(item[\"id\"]).subscribe(\n (data) => {\n if (data) {\n this.isUpdateLead = true;\n } else {\n this.isUpdateLead = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n async submitCallEdit() {\n this.comments = this.layoutService.commentsValue.comments;\n\n if (this.layoutService.commentsValue.name.length === 0) {\n return;\n } else {\n if (this.layoutService.commentsForm.invalid) {\n return;\n }\n this.layoutService.submitted = true;\n this.submitted = this.layoutService.submitted;\n\n if (\n this.layoutService.commentsValue.interested === \"QualifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QualifiedHotLead\"\n ) {\n await this.scheduleDemo();\n }\n\n if (this.layoutService.commentsValue.interested !== \"notinterested\") {\n if (\n this.layoutService.commentsValue.counsellingDate &&\n (this.layoutService.commentsValue.interested === \"QulaifiedLead\" ||\n this.layoutService.commentsValue.interested === \"QulaifiedHotLead\")\n ) {\n //await this.scheduleDemo();\n if (this.updateLeadComments1) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n // duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n } else {\n if (this.updateLeadComments1) {\n this.updateCommentsCall();\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.updateCommentsCall();\n }\n }\n } else {\n if (this.layoutService.commentsValue.interested === \"notinterested\") {\n if (this.updateLeadComments1) {\n this.layoutService\n .updateCommentsBasedOnId(this.marketingId.id)\n .subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.updateCommentsCall();\n } else {\n this.layoutService.updateComments(this.marketingId.id).subscribe(\n () => {\n this.snackbarRef.open(\"Update Successfully\", \"\", {\n verticalPosition: \"top\",\n horizontalPosition: \"end\",\n duration: 5000,\n panelClass: [\"success-snackbar\"],\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.updateCommentsCall();\n }\n }\n }\n }\n }\n updateCommentsCall() {\n this.layoutService\n .updateCallComments({\n id: this.marketingId[\"id\"],\n agentMail: this.userData.mail,\n comments: this.comments,\n followUpdate:\n this.layoutService.commentsValue.interested === \"interested\" &&\n this.layoutService.commentsValue.counsellingDate\n ? moment(\n this.layoutService.commentsValue.counsellingDate,\n \"YYYY-MM-DDTHH:mm:SSZ\"\n ).format(\"YYYY-MM-DDTHH:mm:SSZ\")\n : this.layoutService.commentsValue.callBack,\n callStatus: this.layoutService.commentsValue.interested,\n futureLead: \"futureLead\",\n assignedTo:\n this.layoutService.selectedAgent &&\n this.layoutService.selectedAgent.length !== 0\n ? this.layoutService.selectedAgent[0]\n : this.marketingId.lead[\"Assignedto\"],\n })\n .subscribe(\n (data) => {\n let payload = {\n sid: this.UhubCallSid,\n comments: this.comments,\n id: this.marketingId[\"id\"],\n callstatus: this.layoutService.commentsValue.interested,\n };\n this.layoutService\n .updateCallCommentsNew(payload)\n .subscribe((res: any) => {\n this.layoutService.onReset();\n this.submitted = false;\n this.closeButton2.nativeElement.click();\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n startTimer() {\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n sendUniMailPopUp() {\n this.modalService.open(this.sendUniversityDoc, { size: \"md\" });\n }\n sendUniMailConfirm() {\n this.currentLeadId\n let paylaod = {\n GUID: this.currentLeadId\n };\n this.UhubDashboardService.sendUniMail(paylaod).subscribe(() => {\n this.uhleadsservice.showSuccess(\"Success\", \"Mail sent successfully!\")\n })\n }\n startCall1() {\n this.layoutService.startCalls.next(\"startcalls\");\n }\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCall.next({ value });\n }\n sendSmsWp(item, HTMLid) {\n\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n let wpObj = {\n phone: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n getUniList(i) {\n this.uniList = i.transferDetails[0].universityInfo;\n }\n downloadCommentAttachment(data) {\n if (data && data?.Attachment && data?.Attachment?.length > 0) {\n data?.Attachment.forEach(element => {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", element);\n document.body.appendChild(link);\n link.click();\n link.remove();\n });\n }\n }\n getListofUniversities() {\n this.UhubDashboardService.getAllUniversity().subscribe((data: any) => {\n this.allUniversities = data.universities;\n });\n }\n notAssignedModel(item) {\n this.leadIds.push(item.id);\n this.modalService.open(this.leadNotAssigned, { size: \"md\" });\n // this.uhleadsservice.showInfo('Please assign the lead first .','The lead is not assigned.')\n }\n markNotificationRead(id) {\n this.NotificationService.markReadByGUID({\n \"ProjectId\": this.projectId,\n \"GUID\": id\n }).subscribe((data) => {\n this.UhubDashboardService.unreadCountRecBehaviorSubject.next(id);\n this.LeadList.forEach(element => {\n if (Number(element.id) === Number(id)) {\n element.unreadCount = 0;\n }\n });\n }, (err) => {\n\n })\n }\n updatetransferUniversityProg(docId) {\n if(this.transferCustomUniversity && this.transferCustomUniversityProg){\n this.UhubDashboardService.updateTransferCustomDoc({\n studentdocid: docId,\n university: this.transferCustomUniversity,\n program: this.transferCustomUniversityProg\n }).subscribe((data: any) => {\n \n })\n }\n }\n setUniversity(uni){\n this.uni = uni;\n }\n getCustomDocList(sidenavdata) {\n this.uhleadsservice.getCustomDocListNew(this.projectId).subscribe((data: any) => {\n if (data) {\n this.customDocList = data.response;\n }\n }, (error) => {\n\n })\n }\n customDocNameChange(value) {\n const index = this.customDocList.findIndex(x => x.name.toLowerCase().trim() == value.toLowerCase().trim());\n this.customDocNameCode = this.customDocList[index].code;\n }\n\n getCustomList() {\n this.customDocList.forEach(element => {\n const index = this.sideViewerData?.uploadlistofdocuments.findIndex(x => x.ProgramDoc == element.name);\n if (index > -1) {\n element.disabled = true;\n } else {\n element.disabled = false;\n }\n });\n this.customDocList.sort((x, y) => Number(x.disabled) - Number(y.disabled));\n }\n}\n\n","\n\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Name\n {{\n sideViewerData.FirstName !== \"-\" &&\n sideViewerData.LastName !== \"-\"\n ? sideViewerData.FirstName + \" \" + sideViewerData.LastName\n : sideViewerData.FirstName !== \"-\" &&\n sideViewerData.LastName === \"-\"\n ? sideViewerData.FirstName\n : \"\"\n }}\n
    Email{{ sideViewerData.Email }}
    Mobile\n {{\n sideViewerData.CountryCode + \" \" + sideViewerData.PhoneNumber\n }}\n
    Address\n {{\n sideViewerData?.transferDetails?.address ||\n \"--\" + \" \" + sideViewerData?.transferDetails.cityOrTown ||\n \"--\" + \" \" + sideViewerData?.transferDetails.state ||\n \"--\" + \" \" + sideViewerData?.transferDetails.zip ||\n \"--\" + \" \" + sideViewerData?.transferDetails.country ||\n \"NA\" | titlecase\n }}\n \n {{ sideViewerData?.transferDetails.currentUsaAddr || \"NA\" }}\n
    Universities\n
      \n
    • \n {{ (i+1) +\" . \"+ subCategory | titlecase }}\n
    • \n
    \n
    \n
      \n
    • \n {{ (i+1) +\" . \"+ subCategory.name | titlecase }} {{subCategory.program ? \"- \"+ subCategory.program :\n ''}}\n
    • \n
    \n
    Level of study\n {{\n sideViewerData?.transferDetails?.levelOfStudy\n }}\n
    Password\n {{\n sideViewerData?.transferDetails?.password\n }}\n
    Created Date\n {{ sideViewerData?.createdAt | date : \"medium\" }}\n
    Channel{{ sideViewerData.Channel }}
    Recruiter Name\n {{ recruiterDetails.firstName }} {{ recruiterDetails.lastName }}\n
    Recruiter EmailId{{ recruiterDetails.emailId }}
    Recruiter Phone Number{{ recruiterDetails.phone }}
    Recruiter Role\n {{\n recruiterDetails.category == \"ORGANIZATION\"\n ? \"RECRUITER\"\n : recruiterDetails.category\n }}\n
    Recruiter Company Name{{ recruiterDetails.companyName || \"--\" }}
    Recruiter Address\n {{\n recruiterDetails?.street ||\n \"--\" + \" \" + recruiterDetails?.city ||\n \"--\" + \" \" + recruiterDetails?.state ||\n \"--\" + \" \" + recruiterDetails?.zip ||\n \"--\" + \" \" + recruiterDetails?.country ||\n \"NA\" | titlecase\n }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.CalledBy || \"-\" }}
    Date & Time{{ i.createdAt | date : \"medium\" }}
    Status{{ i.Status | titlecase }}
    Call Recording\n \n
    Comments{{ i.Comments || \"-\" }}
    Direction{{ i.Direction | titlecase }}
    \n
    \n
    \n
    \n
    \n \n 0; else regularStudent\">\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item?.ProgramDoc | titlecase }}\n
    \n\n \n
    \n\n
    \n {{ item?.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i?.AgentName }}\n
    \n
    \n {{ i?.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i?.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i?.AgentName }}\n
    \n
    \n {{ i?.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i?.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item.ProgramDoc | titlecase }}\n
    \n\n \n
    \n\n
    \n {{ item.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    0\">\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.createdAt | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.total || 0 }}\n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.assignedToMe || 0 }}\n
    \n
    \n
    Assigned to Me
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.TransferStudent || 0 }}\n
    \n
    \n
    Transfer Student
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.InternationalStudent || 0 }}\n
    \n
    \n
    International Student
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.facebook || 0 }}\n
    \n
    \n
    Facebook Leads
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.web || 0 }}\n
    \n
    \n
    Web Leads
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.followup || 0 }}\n
    \n
    \n
    Follow Up
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount?.pending || 0 }}\n
    \n
    \n
    Pending
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.counsellingpending || 0 }}\n
    \n
    \n
    Counselling Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.counsellingcompleted || 0 }}\n
    \n
    \n
    Counselling Completed
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.interested || 0 }}\n
    \n
    \n
    Interested
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.duplicate || 0 }}\n
    \n
    \n
    Duplicate Lead
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ topBarCount.enrolled || 0 }}\n
    \n
    \n
    Enrolled Lead
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    List of Students
    \n
    \n
    \n \n
    \n
    US Transfer
    \n\n
    \n \n
    \n
    International
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    Actions\n Created\n \n \n Name\n \n \n Email\n \n \n Assigned To\n \n \n Recruiter\n \n \n Universities\n \n \n Form\n \n \n Phone\n \n \n Channel\n \n \n Call Status\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n 0\">\n {{i?.unreadCount > 9 ? \"9+\" : i?.unreadCount}}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    0\n \">\n \n \n
    \n \n 0\">{{\n i?.unreadCount > 9 ? \"9+\" : i?.unreadCount\n }}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n
    {{ i?.createdAt | date : \"dd MMM, yyyy\" }}\n
    0 &&\n i.transferDetails[0].fromUS == 'true')\n \">\n \n \n
    \n
    0 &&\n i.transferDetails[0].fromUS == 'false')\n \">\n \n \n
    \n \n
    \n
    \n
    \n
    \n \n {{ i?.Email }}\n \n
    \n {{ i?.Email }}\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i?.AssignedtoInitial }}\n

    \n
    \n
    \n
    \n
    \n {{ i?.AssignedtoName | titlecase }}\n
    \n {{ i?.AssignedtoName | titlecase }}\n
    \n
    \n
    \n
    --\n \n
    \n
    \n \n {{i?.RecruiterName || '-'}}\n \n
    \n {{i?.RecruiterName || '-'}}\n
    \n\n
    \n \n {{i?.universityinfo?.name || '-'}}\n \n
    \n
    \n \n {{ i?.FormName }}\n \n
    \n {{ i?.FormName }}\n
    \n
    {{ i?.PhoneNumber }}\n
    \n
    \n
    \n
    \n \n {{ i?.Channel }}\n \n
    \n {{ i?.Channel }}\n
    \n
    \n
    \n
    \n \n Pending\n Not Interested\n Completed\n Follow Up\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n\n Duplicate\n Future Lead\n Interested Pending\n Interested\n Counselling Pending\n Counselling Completed\n Application Submitted\n Documents Pending\n Documents Submitted\n Payment Pending\n Pending I20\n Pending VISA\n VISA Declined\n VISA Approved\n Pending Travel\n Travel Complete\n Enrolled\n Prospect\n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the data for you\n
    \n
    \n
    \n
    \n \n
    No records found for the selected filters.
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Update Lead Details

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    name is required
    \n
    \n
    \n\n
    \n \n \n
    \n `\n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    Date of birth is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    State is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n
    \n
    IELETS is required
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    TOEFL is required
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    PTE is required
    \n
    \n
    \n
    \n \n \n\n
    \n
    Dulingo is required
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Counselling date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n callBack date is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n\n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n \n
    \n\n \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Assign to Agent
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    LastName is required .
    \n
    Please use valid name .
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required .
    \n
    Only Numbers are allowed .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n \n \n
    \n
    Form Name is required
    \n
    \n
    \n
    \n \n \n
    \n
    Channel is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add New Document
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Add New Document
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    \n\n\n
    \n
    \n
    \n
    \n
    Upload Documents
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document extensions, upload\n supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Calling Screen
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n Current Caller\n
    \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n \n
    {{ callStatus }}
    \n

    \n \n

    \n
    \n \n
    \n
    \n
    \n \n\n
    \n
    \n Call Ended
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n\n \n\n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber }}\n
    \n
    \n \"\"\n
    \n
    {{ callStatus }}
    \n

    \n \n

    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n name is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Please Enter a Valid EmailId\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Date of birth is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n State is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Alternate ContactNumber is required\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n CountryPreference is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n IELETS is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n TOEFL is required\n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n PTE is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Dulingo is required\n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n Planning is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n Qualification is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Work Experience is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Course Interested is required\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n Assigned To is required\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n Counselling Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Call Back Date is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n Funding Resource is required\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n In Take Proffered is required\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{ sideViewerData.FirstName + \" \" + sideViewerData.LastName }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n\n
    \n {{ callStatus }}\n
    \n \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    Send Mail

    \n \n
    \n
    \n
    \n
    \n All the documents has been Validated for this lead.
    Do you want to send a mail regarding university\n application.\n
    \n \n \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    Universities
    \n \n
    \n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    University NameEnrollment TermProgram
    \n {{i.name||'-'}}\n \n {{i.term ||'-'}}\n \n {{i.program || '-'}}\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n
    \n

    Assign Lead

    \n \n
    \n
    \n
    \n
    The lead is not assigned.
    \n
    \n
    Please assign the lead first.
    \n
    \n
    \n

    Assign to Agent

    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FormBuilder, RequiredValidator, Validators } from \"@angular/forms\";\nimport { HttpParams } from \"@angular/common/http\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class UhubDashboardService {\n baseApiUrl = environment.SMSapiurl;\n baseApiUrl2 = environment.baseApiUrl2;\n baseApiUrl3 = environment.baseApiUrl;\n webAppUrl = environment.webAppUrl;\n callStatus = new BehaviorSubject(null);\n startCall = new BehaviorSubject(null);\n stopCall = new BehaviorSubject(null);\n startTimer = new BehaviorSubject(null);\n getCallSid = new BehaviorSubject(null);\n conferenceCall = new BehaviorSubject(null);\n public unreadCountRecBehaviorSubject = new BehaviorSubject(null);\n public unreadCountRecObservable = this.unreadCountRecBehaviorSubject.asObservable();\n public viewReceivedLeadBehaviorSubject = new BehaviorSubject(null);\n public viewReceivedLeadObservable = this.viewReceivedLeadBehaviorSubject.asObservable();\n public addLeadBehaviorSubject = new BehaviorSubject(null);\n public addLeadObservable = this.addLeadBehaviorSubject.asObservable();\n\n editLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n CallStatus: [\"\"],\n });\n\n addLead = this.formBuilder.group({\n FirstName: [\"\", [Validators.required]],\n LastName: [\"\", [Validators.required]],\n CountryCode: [\"\", [Validators.required]],\n PhoneNumber: [\"\", [Validators.required]],\n Email: [\"\", Validators.required],\n University: [\"\"],\n });\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n private readonly formBuilder: FormBuilder\n ) { }\n\n\n //new\n\n getLeads(data) {\n return this.http.post(`${this.baseApiUrl3}getUniversityDashboardLeads`, data);\n }\n\n getTopBarCount(obj) {\n return this.http.post(`${this.baseApiUrl3}getUniversityTopBarCounts`, obj);\n }\n\n getLead(id) {\n return this.http.post(`${this.baseApiUrl3}getUhubDashboardLead`, { id: id });\n }\n\n assignLeads(data) {\n return this.http.post(`${this.baseApiUrl3}assignUhubLead`, data);\n }\n\n getCountByCallStatus(data) {\n return this.http.post(`${this.baseApiUrl3}getCountByCallStatus`, data);\n }\n\n getUhubSearchDashboardLeads(data) {\n return this.http.post(`${this.baseApiUrl3}getUhubSearchDashboardLeads`, data);\n }\n\n\n //old\n\n\n\n getSms(id) {\n return this.http.get(`${this.baseApiUrl2}communication/uHubSMS/` + id);\n }\n\n\n sendSms(data, projectId) {\n return this.http.post(`${this.baseApiUrl}` + projectId + `/messaging-adapter/sendSMS`, data);\n }\n uploadDocument(data) {\n return this.http.post(`${this.baseApiUrl2}addCustomDocUploadLeads`, data);\n }\n uploadDocument1(data, docId) {\n return this.http.post(`${this.baseApiUrl2}UploadDocumentLeads`, data);\n }\n deleteCustomDocument(data) {\n return this.http.post(\n `${this.baseApiUrl2}deleteCustomDocNameLeads`, data\n );\n }\n updateValidationStatus(data) {\n return this.http.post(\n `${this.baseApiUrl2}DocumentValidation2Leads`,\n data\n );\n }\n getRecruiterDetails(data) {\n return this.http.post(\n `${this.webAppUrl}recruiter/getRecruityerDetailsCRM`, data\n );\n }\n getWebappStudentDetails(data) {\n const url: string = this.webAppUrl + 'student/getStudentLoginDetail?contactId='+data;\n return this.http.get(url);\n }\n counsellingCompleted(data) {\n // return this.http.post(\n // `${this.baseApiUrl2}wp/university/counsellingCompleted`,\n // data\n // );\n\n }\n sendUniMail(data) {\n return this.http.post(\n `${this.baseApiUrl3}leadUniversityAttachment`, data\n );\n }\n uploadFileAndGetLink(data){\n const url = `${this.baseApiUrl2}UploadDocumentV2`;\n return this.http.post(url,data)\n }\n getAllUniversity() {\n const url = `${this.baseApiUrl2}/universitryhub/listOfUniversities`;\n return this.http.get(url);\n }\n sendNotification(data) {\n const url = `${this.baseApiUrl2}/wp/university/recruiter/sendNotification`;\n return this.http.post(url, data);\n }\n updateTransferCustomDoc(data) {\n const url = `${this.baseApiUrl2}/uhub/updateTransferCustomDoc`;\n return this.http.post(url, data);\n }\n}\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { SharedService } from 'src/app/shared/shared.service';\nimport { UhLeadsService } from '../uhleads.service';\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\nimport * as XLSX from \"xlsx\";\nimport { ProjectService } from '../project-management/project.service';\nimport { UploadService } from './upload.service';\nimport { Exceldata } from \"../marketing/smsmarketing/models/ExecelData.model\";\nimport { Exceldata2 } from \"../marketing/smsmarketing/models/ExecelData.model2\";\nimport { ReferralData } from '../marketing/smsmarketing/models/ReferralData.model';\nimport * as xlsx from \"xlsx\";\nimport { ErrorHandlerService } from 'src/app/error-handler.service';\nimport { MarketingService } from '../marketing/marketing.service';\nimport { ReferreeService } from '../referree/referree.service';\nimport { environment } from \"src/environments/environment\";\n\ntype AOA = any[][];\n@Component({\n selector: 'app-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss']\n})\nexport class UploadComponent implements OnInit {\n\n displayData: any = [];\n colList: any = [];\n data: AOA = [];\n projectId: any;\n userData: any;\n admin: any;\n projectName: any;\n e: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public fileData2: Exceldata[] = [];\n public fileData3: ReferralData[] = [];\n\n\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public errorMessage: string = \"\";\n fileToUpload: any;\n isLoading = false;\n menu = '';\n constructor(\n public sharedService: SharedService,\n public uhleadsService: UhLeadsService,\n private route: ActivatedRoute,\n private projectService: ProjectService,\n private uploadService: UploadService,\n private handleError: ErrorHandlerService,\n private router: Router,\n private marketingService: MarketingService,\n private ReferreeService: ReferreeService\n ) { }\n\n ngOnInit(): void {\n \n\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.route.paramMap.subscribe((params: ParamMap) => {\n this.projectId = +params.get('id');\n this.menu = params.get(\"menu\");\n this.sharedService.getProjectAdmin(this.projectId).subscribe((admin: any) => {\n this.admin = admin;\n this.projectService.dashboardProjects({ admin: this.admin, companyId: this.userData.companyId, userId: this.userData.id }).subscribe((projects: any) => {\n for (let i = 0; i < projects.length; i++) {\n if (this.projectId == projects[i].id) {\n this.projectName = projects[i].Name;\n this.sharedService.pageEvent.emit({\n pageName: \"Upload Leads - \"+this.projectName,\n });\n }\n }\n })\n })\n\n })\n }\n\n @ViewChild(\"fileDropRef\", { static: false }) fileDropEl: ElementRef;\n\n files: any[] = [];\n\n /**\n * on file drop handler\n */\n onFileDropped($event) {\n this.prepareFilesList($event);\n }\n\n /**\n * handle file from browsing\n */\n fileBrowseHandler(files) {\n this.fileToUpload = files[0];\n var name: String;\n var ext = files[0].type.substring(files[0].type.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"sheet\") {\n this.displayData = [];\n this.colList = [];\n this.files = [];\n this.prepareFilesList(files);\n } else {\n this.uhleadsService.showWarning(\"Please upload a valid excel file\", \"Wrong Format\")\n }\n }\n\n\n /**\n * Delete file from files list\n * @param index (File index)\n */\n deleteFile(index: number) {\n if (this.files[index].progress < 100) {\n this.uhleadsService.showWarning(\"Upload in in progress\", \"Error\");\n return;\n }\n this.displayData = [];\n this.colList = [];\n this.files.splice(index, 1);\n }\n\n /**\n * Simulate the upload process\n */\n uploadFilesSimulator(index: number) {\n setTimeout(() => {\n if (index === this.files.length) {\n return;\n } else {\n const progressInterval = setInterval(() => {\n if (this.files[index].progress === 100) {\n clearInterval(progressInterval);\n this.uploadFilesSimulator(index + 1);\n this.excelFileToJSON(this.files[index])\n } else {\n this.files[index].progress += 5;\n }\n }, 200);\n }\n }, 1000);\n }\n\n /**\n * Convert Files list to normal array list\n * @param files (Files List)\n */\n prepareFilesList(files: Array) {\n for (const item of files) {\n item.progress = 0;\n this.files.push(item);\n }\n this.fileDropEl.nativeElement.value = \"\";\n this.uploadFilesSimulator(0);\n }\n\n /**\n * format bytes\n * @param bytes (File size in bytes)\n * @param decimals (Decimals point)\n */\n formatBytes(bytes, decimals = 2) {\n if (bytes === 0) {\n return \"0 Bytes\";\n }\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n //Method to read excel file and convert it into JSON \n excelFileToJSON(file) {\n try {\n var reader = new FileReader();\n reader.readAsBinaryString(file);\n reader.onload = (e) => {\n var data = e.target.result;\n var workbook = XLSX.read(data, {\n type: 'binary'\n }\n );\n var result = {\n };\n var firstSheetName = workbook.SheetNames[0];\n //reading only first sheet data\n var jsonData = XLSX.utils.sheet_to_json(workbook.Sheets[firstSheetName]);\n this.displayData = jsonData;\n this.colList = Object.keys(this.displayData[0]);\n }\n }\n catch (e) {\n console.error(e);\n }\n }\n\n\n //Method to display the data in HTML Table\n displayJsonToHtmlTable(jsonData) {\n var table = document.getElementById(\"display_excel_data\");\n if (jsonData.length > 0) {\n var htmlData = 'Student NameAddressEmail IDAge';\n for (var i = 0; i < jsonData.length; i++) {\n var row = jsonData[i];\n htmlData += '' + row[\"Student Name\"] + '' + row[\"Address\"]\n + '' + row[\"Email ID\"] + '' + row[\"Age\"] + '';\n }\n table.innerHTML = htmlData;\n }\n else {\n table.innerHTML = 'There is no data in Excel';\n }\n }\n\n fileUpload(e) {\n this.e = e;\n }\n\n backToDashboard() {\n if (this.projectName == \"Campbellsville\") {\n this.router.navigate(['/uhleads']);\n } else if (this.projectName == \"University Hub\" && this.menu == 'social') {\n this.router.navigate([\"/socialmedia/leads\"]);\n } else if (this.projectName == \"University Hub\" && this.menu == 'recruiter') {\n this.router.navigate([\"/recruiter/leads\"]);\n } else if (this.projectName == \"University Hub\") {\n this.router.navigate(['/uhub']);\n } else if (this.projectName == \"Referrals\") {\n this.router.navigate(['/referree']);\n } else if (this.projectName == environment.Judsonuleads) {\n this.router.navigate(['/judsonuleads']);\n } else if (this.projectName == environment.Sfcleads) {\n this.router.navigate(['/sfcleads']);\n } \n }\n\n uploadAttachments() {\n if (this.projectName == \"Campbellsville\") {\n this.convertFileCU(this.e);\n } else if (this.projectName == \"University Hub\") {\n this.convertFileUhub(this.e)\n } else if (this.projectName == \"Referrals\") {\n this.convertFileRef(this.e);\n } else if (this.projectName == environment.Judsonuleads) {\n this.convertFileCU(this.e);\n } else if (this.projectName == environment.Sfcleads) {\n this.convertFileSFC(this.e);\n } \n else {\n this.uhleadsService.showError(\"Project does not exist\", \"Error\")\n }\n // this.deleteFile(0);\n }\n\n\n convertFileCU(e) {\n \n this.isLoading = true;\n // this.filePath = e.target.files[0][\"name\"].toString();\n this.filePath = this.fileToUpload[\"name\"].toString();\n var reader = new FileReader();\n // reader2.readAsArrayBuffer(e.target.files[0]);\n reader.readAsArrayBuffer(this.fileToUpload);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if ((sheet_data[0][0] === \"GUID\" || sheet_data[0][0] === \"SubmissionID\") && sheet_data.length !== 0) {\n this.fileData = this.uhleadsService.convert2dArraytoObject(sheet_data);\n this.uhleadsService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.isLoading = false;\n this.insertCount = data[\"count\"];\n this.deleteFile(0);\n this.uhleadsService.showSuccess('Inserted ' + this.insertCount + ' records', 'Upload Success!')\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n // this.router.navigate(['./uhleads'])\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n }\n convertFileSFC(e) {\n \n this.isLoading = true;\n this.filePath = this.fileToUpload[\"name\"].toString();\n var reader = new FileReader();\n reader.readAsArrayBuffer(this.fileToUpload);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if ((sheet_data[0][0] === \"GUID\" || sheet_data[0][0] === \"SubmissionID\") && sheet_data.length !== 0) {\n this.fileData = this.uhleadsService.convert2dArraytoObjectSFC(sheet_data);\n console.log(\"convert2dArraytoObjectSFC\",this.fileData)\n this.uhleadsService\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.isLoading = false;\n this.insertCount = data[\"count\"];\n this.deleteFile(0);\n this.uhleadsService.showSuccess('Inserted ' + this.insertCount + ' records', 'Upload Success!')\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n // this.router.navigate(['./uhleads'])\n\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n }\n\n convertFileUhub(e) {\n \n this.isLoading = true;\n this.filePath = this.fileToUpload[\"name\"].toString();\n let reader = new FileReader();\n reader.readAsArrayBuffer(this.fileToUpload);\n\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"First Name\" && sheet_data.length !== 0) {\n this.fileData2 =\n this.marketingService.convert2dArraytoObject(sheet_data);\n this.marketingService\n .postCallData({\n data: this.fileData2,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n type: \"Excel\",\n })\n .subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.isLoading = false;\n this.insertCount = data[\"count\"];\n this.deleteFile(0);\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n this.uhleadsService.showSuccess('Inserted ' + this.insertCount + ' records', 'Upload Success!');\n // this.router.navigate(['./leadsDashboard']);\n // this.getDashboardLeads(this.leadType);\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n // this.uploadFile.nativeElement.value = \"\";\n }\n\n convertFileRef(e) {\n \n this.isLoading = true;\n // this.filePath = e.target.files[0][\"name\"].toString();\n this.filePath = this.fileToUpload[\"name\"].toString();\n let reader = new FileReader();\n // reader.readAsArrayBuffer(e.target.files[0]);\n reader.readAsArrayBuffer(this.fileToUpload);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"FirstName\" && sheet_data.length !== 0) {\n this.fileData3 = this.ReferreeService.convert2dArraytoObject(sheet_data);\n this.ReferreeService.uploadLeads({\n data: this.fileData3,\n CreatedBy: this.userData.mail,\n ProjectId: this.projectId,\n addType: 'Excel'\n }).subscribe((data) => {\n this.uploaded = true;\n this.error = false;\n this.isLoading = false;\n this.insertCount = data[\"count\"];\n this.deleteFile(0);\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n this.uhleadsService.showSuccess('Inserted ' + this.insertCount + ' records', 'Upload Success!');\n // this.router.navigate(['./referree']);\n }, (error) => {\n this.handleError.handleError(error)\n });\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n // this.uploadFile.nativeElement.value = \"\";\n }\n\n}\n","
    \n
    \n \n
    \n
    \n
    \n
    \n \n \"\"\n
    Drag and drop file here
    \n
    or
    \n
    Browse for file
    \n
    \n
    \n
    \n
    \n
    \n \"file\"\n
    \n

    \n {{ file?.name }}\n

    \n

    \n {{ formatBytes(file?.size) }}\n

    \n \n
    \n \"file\"\n\n
    \n
    \n\n\n
    0\">\n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Instructions
    \n
      \n
    1. Download the sample file from the respective dashboard.
    2. \n
    3. Open the downloaded 'csv' file and carefully fill the details of the student.
    4. \n
    5. The date you are trying to enter i.e. \"Created Date\" or \"Birthday\", make sure the date format\n is as specified in the sample document.
    6. \n
    7. Make sure to fill the mandatory fields like phone number and email properly.
    8. \n
    9. Do not use duplicate GUID or other identical fields that are defined as identifiers.
    10. \n
    11. If the upload does not work, please check your document for any data format issues.
    12. \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n 0\">\n \n \n \n \n \n \n \n \n \n
    {{i}}
    {{i[j]}}
    \n
    \n \n
    \n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ReferralData } from \"../marketing/smsmarketing/models/ReferralData.model\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class UploadService {\n baseApiUrl = environment.baseApiUrl2;\n baseApiUrl2 = environment.SMSapiurl;\n\n\n \n uploadFile = new BehaviorSubject(null);\n\n constructor(\n private http: HttpClientService,\n private toastr: ToastrService,\n ) {}\n\n \n getSms(id) {\n return this.http.get(`${this.baseApiUrl}communication/campbellsvilleSMS/` + id);\n }\n\n sendSms(data, projectId) {\n return this.http.post(`${this.baseApiUrl2}`+projectId+`/messaging-adapter/sendSMS`,data);\n }\n \n}\n","import {\n Component,\n OnInit,\n ViewChild,\n HostListener,\n ElementRef,\n Inject,\n} from \"@angular/core\";\nimport { UhLeadsService } from \"../uhleads.service\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\nimport { SharedService } from \"src/app/shared/shared.service\";\nimport { DashboardService } from \"../dashboard/dashboard.service\";\nimport { LayoutService } from \"src/app/layout/layout.service\";\nimport { formatDate } from \"@angular/common\";\nimport { MarketingService } from \"../marketing/marketing.service\";\nimport * as xlsx from \"xlsx\";\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AbstractControl, Validators } from \"@angular/forms\";\nimport * as moment from \"moment\";\nimport { Exceldata2 } from \"../marketing/smsmarketing/models/ExecelData.model2\";\nimport { start } from \"repl\";\nimport { AuthService } from \"src/app/account/auth/auth.service\";\nimport { Router } from \"@angular/router\";\nimport { forEach, now, round } from \"lodash\";\nimport { CreateAgent } from \"../create-agent/create-agent.service\";\nimport {\n countUpTimerConfigModel,\n CountupTimerService,\n timerTexts,\n} from \"ngx-timer\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { environment } from \"src/environments/environment\";\nimport { MomentFormatService } from \"src/app/moment-format-service\";\nimport { NotificationsService } from \"src/app/notification.service\";\n\nimport { fromEvent } from \"rxjs\";\nimport {\n filter,\n debounceTime,\n distinctUntilChanged,\n tap,\n} from \"rxjs/operators\";\nimport { RoleService } from \"../role-management/role.service\";\nimport { ErrorHandlerService } from \"src/app/error-handler.service\";\nvar sortJsonArray = require(\"node_modules/sort-json-array\");\nconst countryCodes = require('../../../assets/allcountryDetails.json');\n@Component({\n selector: 'app-uwla',\n templateUrl: './uwla.component.html',\n styleUrls: ['./uwla.component.css']\n})\nexport class UwlaComponent implements OnInit {\n public fileSource = environment.fileServer;\n public userData: any;\n public filterValue = \"all\";\n nav_position: string = \"end\";\n public statusValue = \"pending\";\n public page: any = 1;\n public pageSize: any = 12;\n public search: string;\n totalApplications: number;\n completedApplications: number;\n completedApplications2: number;\n incompleteapplications: number;\n documentspending: number;\n documentssubmitted: number;\n callback: number;\n activityData: any;\n activityData2: any;\n\n activityTable: any = [];\n activityTable2: any;\n\n startDate: any;\n endDate: any;\n leadsbody: any;\n companyId: any;\n companyAdmin: Boolean = false;\n rotating: boolean = false;\n projectId: any;\n downloadLink: any;\n public filePath: any;\n public fileData: Exceldata2[] = [];\n public uploaded: boolean = false;\n public error: boolean = false;\n public insertCount: number = 0;\n public leadType: string = \"all\";\n public errorMessage: string = \"\";\n public submitted: boolean = false;\n public edited: boolean = false;\n admin: boolean = false;\n public counselling: boolean = false;\n isCallcomming: boolean = false;\n connection: any = null;\n // audio: any;\n audio = new Audio();\n audioStatus: boolean = false;\n sideViewerData: any = { Activities: [], CallDetails: [] };\n documentsList: any;\n documentsList2: any;\n selectedCallerId: any;\n selectedLead: any;\n commentText: string = \"\";\n newStatus: any;\n newStatusCheck = true;\n docUrl: any;\n currentLeadId: any;\n currentGuid: any;\n documentComments: string;\n validationStatus: boolean = false;\n currentItem: any;\n showdeferredintake: Boolean = false;\n DIyearArray: any = [];\n\n @ViewChild(\"uploadFile\") uploadFile;\n @ViewChild(\"closeButton\") closeButton;\n @ViewChild(\"closeButton2\") closeButton2;\n @ViewChild(\"closeButton3\", { static: true }) closeButton3;\n @ViewChild(\"sideNav\", { static: true }) sideNav;\n @ViewChild(\"inputString\", { static: true }) input: ElementRef;\n @ViewChild(\"totalRecords\", { static: true }) totalRecords: ElementRef;\n\n leadIds = [];\n selectedAll: boolean = false;\n agentList: any;\n GBPagentList: any;\n defaultAgent = \"default\";\n selectedAgent: any;\n\n testConfig: any;\n // callStarted: boolean = false;\n startCall: boolean = false;\n public stopCall: boolean = false;\n public clearTime: any;\n dialerScreen1 = \"dialer\";\n phoneNumber: any = \"\";\n agentCall: String = \"\";\n isShownMarketing: boolean = false;\n dailerScreen: any = \"nocall\";\n isCallingProgress: boolean = false;\n isOutgoing: boolean = false;\n isIncoming: boolean = false;\n disabled: any;\n callStatus: string = \"Calling..\";\n tab: any;\n showDate: boolean = false;\n\n nextCallerName: any;\n nextCallerCity: any;\n nextCallerNumber: any;\n\n public marketingId: {\n id: string;\n status: string;\n phoneNumber: string;\n email: string;\n name: string;\n module: string;\n city: string;\n nextCaller: any;\n lead: any;\n } = {\n id: \"\",\n status: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n module: \"\",\n city: \"\",\n nextCaller: null,\n lead: {},\n };\n\n totalAgents: any;\n agentName: any;\n\n public callData: any[] = [];\n public startIndex: number = 0;\n\n date1: any;\n date2: any;\n serializedDate = new FormControl(new Date().toISOString());\n documentsDenied: number;\n CallsPending: number;\n revalidate: any;\n minItems = 5;\n unassigned: any;\n assigned: any;\n private colors = [\n [{ bg: \"blueviolet\", color: \"white\" }],\n [{ bg: \"AntiqueWhite\", color: \"white\" }],\n [{ bg: \"Coral\", color: \"white\" }],\n [{ bg: \"Crimson\", color: \"white\" }],\n [{ bg: \"DarkOrange\", color: \"white\" }],\n [{ bg: \"DeepPink\", color: \"white\" }],\n [{ bg: \"#c5924e\", color: \"white\" }],\n ];\n assignedtome: any;\n file: File[] = [];\n customDocName: string;\n docUploadError: string;\n docUploadError2: string = \"Select files to upload.\";\n customFileList: File[] = [];\n customDocLeadId: any;\n leadtoEdit: {\n LeadId: string;\n FirstName: string;\n LastName: string;\n CountryCode: string;\n PhoneNumber: string;\n Email: string;\n DOB: Date;\n EnrollmentYear: string;\n EnrollmentTerm: string;\n Address: string;\n City: string;\n State: string;\n Zip: string;\n Country: string;\n LeadComment: string;\n CallStatus: string;\n AgentMail: string;\n DIyear?: string;\n DIterms?: string;\n };\n editComment: string;\n editStatus: string;\n allRecords: any;\n isLoading: boolean = true;\n noRecords: boolean = false;\n selectedFiles: File[] = [];\n docUploadID: any;\n docUploadStatus: boolean = false;\n activityfilterString: string = \"\";\n uploadSuccess: string = \"none\";\n topBarCounts = {\n validatedDocs: \"0\",\n completedDocs: \"0\",\n studentDenied: \"0\",\n reopen: \"0\",\n total: \"0\",\n revalidatedDocs: \"0\",\n pendingDocs: \"0\",\n documentsSubmitted: \"0\",\n unassigned: \"0\",\n assigned: \"0\",\n assignedtoMe: \"0\",\n uncontactable: \"0\",\n };\n cardLeadType: string = \"all\";\n thresItem: any;\n thresId: any;\n thresModal: NgbModalRef;\n pageNumber: Number = 1;\n totalPages: Number = 0;\n currentCard: string = \"total\";\n sortColumn = \"updatedAt\";\n sortOrder = \"des\";\n smsList: [] = [];\n smsListWp: [] = [];\n projectLists: any;\n smsText: string;\n\n DIyear: any;\n DIterms: any;\n callSid: any;\n\n countries: any[] = [];\n selectedCountryCode = 1;\n selectedCountryName = \"United States of America\";\n\n constructor(\n public uhleadsservice: UhLeadsService,\n public sharedService: SharedService,\n public dashBoardService: DashboardService,\n public layoutService: LayoutService,\n public marketingService: MarketingService,\n private readonly loginService: AuthService,\n private readonly modalService: NgbModal,\n private authService: AuthService,\n private router: Router,\n private agentService: CreateAgent,\n public countupTimerService: CountupTimerService,\n private momentService: MomentFormatService,\n private NotificationService: NotificationsService,\n private companyService: RoleService,\n private handleError: ErrorHandlerService,\n @Inject(DOCUMENT) private domService: HTMLDocument\n ) {\n this.testConfig = new countUpTimerConfigModel();\n this.testConfig.timerClass = \"test_Timer_class\";\n this.testConfig.timerTexts = new timerTexts();\n this.testConfig.timerTexts.hourText = \":\"; //default - hh\n this.testConfig.timerTexts.minuteText = \":\"; //default - mm\n this.testConfig.timerTexts.secondsText = \" \";\n }\n\n ngOnInit(): void {\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"none\";\n }\n this.getAgentNames();\n this.fetchCountries();\n this.sharedService.pageEvent.emit({\n pageName: \"Leads Dashboard\",\n });\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n // \n this.date1 = new FormControl(new Date());\n this.date2 = new FormControl(new Date(Date.now() - 864e5));\n this.filterValue == \"24hrs\";\n var today = new Date();\n this.endDate = new Date(Date.now());\n this.startDate = new Date(Date.now() - 864e5 * 365);\n\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() + 864e5))\n );\n\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == environment.UwlaLeads\n )[0].id;\n if (this.projectId != null) {\n this.sharedService.getProjectAdmin(this.projectId).subscribe(\n (data) => {\n this.admin = data;\n this.getTopBarCRM();\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.showTotalApplications(); //Shohw only pending records on page load\n this.onClick(1); //Activating pending card by default\n\n this.uhleadsservice\n .getAgentList(this.projectId, this.userData.id)\n .subscribe(\n (data: any) => {\n this.agentList = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n ////\n\n this.getDownloadLink();\n this.uhleadsservice.startTimeruwla.subscribe((res) => {\n this.callStatus = \"inProgress\";\n this.startTimer();\n });\n\n this.uhleadsservice.viewReceivedLeaduwla.subscribe((res: any) => {\n if (res) {\n this.viewLead(res);\n }\n });\n\n this.uhleadsservice.pageNumber.subscribe((pageNo: any) => {\n this.pageNumber = pageNo;\n if (this.leadType != \"filter\") {\n // this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n } else if (this.leadType == \"filter\") {\n // this.searchLeads(this.search, this.pageNumber)\n\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: this.pageNumber,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search.length > 0) {\n this.uhleadsservice\n .GetSearchDashboardLeads(payload)\n .subscribe(\n (res: any) => {\n this.activityTable = res.data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n // this.totalRecords.nativeElement.click();\n this.leadType = \"all\";\n }\n }\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.admin = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n // server-side search\n fromEvent(this.input.nativeElement, \"keyup\")\n .pipe(\n filter(Boolean),\n debounceTime(1500),\n distinctUntilChanged(),\n tap((event: KeyboardEvent) => {\n this.search = this.input.nativeElement.value;\n this.pageNumber = 1;\n // \n // \n this.searchLeads(this.input.nativeElement.value, this.pageNumber);\n })\n )\n .subscribe();\n\n //incoming sms check\n this.uhleadsservice.incomingSmsuwla.subscribe((from: any) => {\n\n if (from.from) {\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n\n });\n }\n });\n let d = new Date();\n this.DIyearArray.push(d.getFullYear());\n let year = d.getFullYear();\n for (let i = 0; i < 4; i++) {\n year = year + 1;\n this.DIyearArray.push(year);\n }\n this.uhleadsservice.callStatusuwla.subscribe((status) => {\n this.callStatus = status;\n });\n this.uhleadsservice.getCallSiduwla.subscribe((sid) => {\n this.callSid = sid;\n });\n\n }\n\n startTimer() {\n this.stopTimer();\n let cdate = new Date();\n cdate.setHours(cdate.getHours());\n this.countupTimerService.startTimer(cdate);\n }\n stopTimer() {\n this.countupTimerService.stopTimer();\n }\n\n onClick(check) {\n this.uhleadsservice.pageNumber.next(1);\n if (check == 1) {\n this.tab = \"tab1\";\n } else if (check == 2) {\n this.tab = \"tab2\";\n } else if (check == 3) {\n this.tab = \"tab3\";\n } else if (check == 4) {\n this.tab = \"tab4\";\n } else if (check == 5) {\n this.tab = \"tab5\";\n } else if (check == 6) {\n this.tab = \"tab6\";\n } else if (check == 7) {\n this.tab = \"tab7\";\n } else if (check == 8) {\n this.tab = \"tab8\";\n } else if (check == 9) {\n this.tab = \"tab9\";\n } else if (check == 10) {\n this.tab = \"tab10\";\n } else if (check == 11) {\n this.tab = \"tab11\";\n } else if (check == 12) {\n this.tab = \"tab12\";\n } else if (check == 13) {\n this.tab = \"tab13\";\n } else {\n this.tab = null;\n }\n }\n\n selectAllforAssignment() {\n if (this.selectedAll == false) {\n this.selectedAll = true;\n this.leadIds = [];\n for (let i = 0; i < this.activityTable.length; i++) {\n this.leadIds.push(this.activityTable[i].id);\n }\n } else if (this.selectedAll == true) {\n this.selectedAll = false;\n this.leadIds = [];\n }\n }\n\n selectAgentforAssignment(e, item) {\n if (e.target.checked) {\n this.leadIds.push(item.id);\n } else if (!e.target.checked) {\n this.removeItem(this.leadIds, item.id);\n }\n }\n\n assignAgentModal() {\n this.defaultAgent = \"default\";\n this.selectedAgent = null;\n }\n agentSelected(selectedAgent) {\n this.selectedAgent = selectedAgent;\n }\n\n assignLEads() {\n if (this.leadIds.length == 0) {\n this.uhleadsservice.showWarning(\"Select leads to be assigned\", \"Alert!\");\n return;\n }\n if (this.selectedAgent) {\n this.uhleadsservice\n .assignLeads({\n AssignedTo: this.selectedAgent,\n InsertedBy: this.userData.mail,\n LeadIds: this.leadIds,\n })\n .subscribe(\n (res) => {\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: this.selectedAgent,\n GUID: \"\",\n LeadId: this.leadIds,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Assigned\",\n description:\n \"New leads are assigned to you by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"AssignedToAgent\",\n token: this.userData.token,\n };\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.uhleadsservice.showSuccess(\n \"Successfully assigned the agents\",\n \"Success\"\n );\n // this.getDashboardLeads();\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n this.selectedAll = false;\n this.closeButton.nativeElement.click();\n document.getElementById(\"closeAssignButton\").click();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.uhleadsservice.showWarning(\"Please select an agent\", \"Alert!\");\n }\n }\n\n removeItem(arr, value) {\n var index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n setLeadType() {\n this.leadType = \"\";\n }\n\n showTotalApplications() {\n this.statusValue = \"all\";\n this.leadType = \"all\";\n this.currentCard = \"total\";\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"all\",\n start: this.startDate,\n end: this.endDate,\n },\n \"all\"\n );\n }\n\n //Shows date if the filter value is custom\n hideDate() {\n // this.filterValuev\n if (this.filterValue == \"custom\" && this.showDate == false) {\n this.showDate = true;\n }\n }\n\n showCompletedApplications() {\n this.statusValue = \"all\";\n this.leadType = \"validatedDocs\";\n this.currentCard = \"validated\";\n\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"validatedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"validatedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"validatedDocs\"\n );\n }\n showUncontactable() {\n this.statusValue = \"all\";\n this.leadType = \"uncontactable\";\n this.currentCard = \"uncontactable\";\n\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"uncontactable\",\n start: this.startDate,\n end: this.endDate,\n },\n \"uncontactable\"\n );\n }\n showCompletedApplications2() {\n this.statusValue = \"all\";\n this.leadType = \"completedDocs\";\n this.currentCard = \"completed\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"completedDocuments\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"completedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"completedDocs\"\n );\n }\n\n showIncompleteApplications() {\n this.statusValue = \"all\";\n this.leadType = \"pendingDocs\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"ValidationPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pendingDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pendingDocs\"\n );\n }\n showDocumentsPending() {\n this.statusValue = \"all\";\n this.leadType = \"pendingDocs\";\n this.currentCard = \"updated\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsPending\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pendingDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pendingDocs\"\n );\n }\n showDocumentsSubmitted() {\n this.statusValue = \"all\";\n this.leadType = \"documentsSubmitted\";\n this.currentCard = \"updated\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"documentsSubmitted\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"documentsSubmitted\",\n start: this.startDate,\n end: this.endDate,\n },\n \"documentsSubmitted\"\n );\n }\n showCallback() {\n this.statusValue = \"all\";\n this.leadType = \"callback\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"callback\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"callback\",\n start: this.startDate,\n end: this.endDate,\n },\n \"callback\"\n );\n }\n showCallsPending() {\n this.statusValue = \"all\";\n this.leadType = \"pending\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"pendingCalls\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"pending\",\n start: this.startDate,\n end: this.endDate,\n },\n \"pending\"\n );\n }\n\n showRevalidate() {\n this.statusValue = \"all\";\n this.leadType = \"revalidatedDocs\";\n this.currentCard = \"revalidate\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"revalidate\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"revalidatedDocs\",\n start: this.startDate,\n end: this.endDate,\n },\n \"revalidatedDocs\"\n );\n }\n\n showApplicationsDenied() {\n this.statusValue = \"all\";\n this.leadType = \"studentDenied\";\n this.currentCard = \"denied\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"denied\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"studentDenied\",\n start: this.startDate,\n end: this.endDate,\n },\n \"studentDenied\"\n );\n }\n\n showUnassigned() {\n this.statusValue = \"all\";\n this.leadType = \"unassigned\";\n this.currentCard = \"total\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"unassigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"unassigned\",\n start: this.startDate,\n end: this.endDate,\n },\n \"unassigned\"\n );\n }\n\n showAssigned() {\n this.statusValue = \"all\";\n this.leadType = \"assigned\";\n this.currentCard = \"assigned\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assigned\"\n // );\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"assigned\",\n start: this.startDate,\n end: this.endDate,\n },\n \"assigned\"\n );\n }\n\n showAssignedtoMe() {\n this.statusValue = \"all\";\n this.leadType = \"assignedtoMe\";\n this.currentCard = \"assigned\";\n // this.getCounts(\n // this.userData,\n // \"all\",\n // this.startDate,\n // this.endDate,\n // \"assignedtome\"\n // );\n var obj = {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: \"assignedtoMe\",\n start: this.startDate,\n end: this.endDate,\n };\n this.getTopBarCRM();\n this.getCardCount(obj, \"assignedtoMe\");\n }\n\n public onInput(event: any) {\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2021-08-02 09:40:25+00\",\n end: \"2022-08-03 09:40:25+00\",\n page: 1,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: this.search,\n };\n if (this.search != \"\") {\n // this.uhleadsservice\n // .GetSearchDashboardLeads(payload)\n // .subscribe((res: any) => {\n // // \n // this.activityTable = res.data;\n // });\n // this.activityTable = this.allRecords;\n } else if (this.search == \"\") {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.totalRecords.nativeElement.click();\n // this.getTopBarCRM();\n // this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n searchLeads(value, page) {\n this.leadType = \"all\";\n this.currentCard = \"total\";\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n let payload = {\n admin: this.admin,\n ProjectId: this.projectId,\n start: \"2020-08-02 09:40:25+00\",\n end: \"2025-08-03 09:40:25+00\",\n page: page,\n leadType: \"All\",\n mail: \"All\",\n callStatus: \"All\",\n course: \"All\",\n enrollmentYear: \"All\",\n enrollmentTerm: \"All\",\n export: false,\n search: value,\n };\n\n if (value.length > 0) {\n this.leadType = \"filter\";\n this.uhleadsservice.GetSearchDashboardLeads(payload).subscribe(\n (res: any) => {\n this.isLoading = false;\n this.activityTable = res.data;\n\n for (let i = 0; i < this.activityTable.length; i++) {\n if (this.activityTable[i].PhoneNumber == \"0000000000\") {\n this.activityTable[i].PhoneNumber = \"-\";\n this.activityTable[i].CountryCode = \"-\";\n }\n this.activityTable[i].AssignedtoName = this.getAgentName(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoColor = this.getAgentColor(\n this.activityTable[i].Assignedto\n );\n this.activityTable[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable[i].Assignedto\n );\n if (\n this.activityTable[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable[i].LeadDocStatus = \"Revalidate\";\n }\n }\n if (this.activityTable.length <= 0) {\n this.noRecords = true\n }\n let newTotal = ~~(Number(res.totalResults) / 12) + 1;\n this.uhleadsservice.totalPages.next(Number(newTotal));\n },\n (error) => {\n this.isLoading = false;\n this.noRecords = true;\n this.handleError.handleError(error);\n }\n );\n } else {\n this.leadType = \"all\";\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n }\n\n //Table Filter\n dropdownSelect(event) {\n this.uhleadsservice.pageNumber.next(1);\n this.onClick(null);\n this.leadType = \"dropdown\";\n this.cardLeadType = event;\n this.getTopBarCRM();\n // this.getCardData(this.userData, event, this.startDate, this.endDate);\n }\n\n updateDateFilter(event: any) {\n if (event.target.value != \"custom\") {\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now())).getTime()\n );\n }\n if (event.target.value == \"custom\") {\n //show custom date filter\n this.showDate = true;\n } else if (event.target.value == \"all\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 365)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"24hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"72hrs\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 3)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"7days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 7)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"14days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 14)).getTime()\n );\n\n this.showDate = false;\n } else if (event.target.value == \"30days\") {\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(new Date(Date.now() - 864e5 * 30)).getTime()\n );\n\n this.showDate = false;\n }\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n }\n\n updateActivity() {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n this.totalApplications = this.activityTable.length;\n this.completedApplications = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"validated\" || el.LeadDocStatus == \"Validated\";\n }).length;\n this.completedApplications2 = this.activityTable.filter(function (el) {\n return el.LeadDocStatus == \"completed\" || el.LeadDocStatus == \"complete\";\n }).length;\n this.incompleteapplications = this.activityTable.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n }).length;\n this.documentspending = this.activityTable.filter(function (el) {\n return el.Phase == \"pending\";\n }).length;\n this.documentssubmitted = this.activityTable.filter(function (el) {\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n }).length;\n this.callback = this.activityTable.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n }\n\n getStartDate(type: string, event: MatDatepickerInputEvent) {\n this.startDate = event.value;\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.startDate).getTime\n );\n }\n getEndDate(type: string, event: MatDatepickerInputEvent) {\n this.endDate = event.value;\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.endDate).getTime\n );\n }\n\n getDownloadLink() {\n this.marketingService\n .getExcelLink(this.fileSource + \"/TemplateDocuments/\" + environment.Uwlaonucsvfile)\n .subscribe(\n (data) => {\n this.downloadLink = data[\"url\"];\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n redirectToUpload() {\n\n this.router.navigate([\"./upload/\" + this.projectId]);\n }\n\n convertFile(e) {\n\n this.filePath = e.target.files[0][\"name\"].toString();\n let reader = new FileReader();\n\n\n reader.readAsArrayBuffer(e.target.files[0]);\n reader.onload = (eve) => {\n let data = new Uint8Array(reader.result as any);\n let wb = xlsx.read(data, { type: \"array\" });\n let sheet_name = wb.SheetNames;\n let sheet_data: any[][] = xlsx.utils.sheet_to_json(\n wb.Sheets[sheet_name[0]],\n { header: 1 }\n );\n if (sheet_data[0][0] === \"GUID\" && sheet_data.length !== 0) {\n this.fileData = this.uhleadsservice.convert2dArraytoObject(sheet_data);\n\n this.uhleadsservice\n .postCallData({\n data: this.fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Excel'\n })\n .subscribe(\n (data) => {\n this.uploaded = true;\n this.error = false;\n this.insertCount = data[\"count\"];\n setTimeout(() => {\n this.uploaded = false;\n this.filePath = \"\";\n }, 5000);\n // this.getDashboardLeads(this.leadType);\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } else {\n this.error = true;\n this.errorMessage = \"Please Upload a Valid File\";\n }\n };\n this.uploadFile.nativeElement.value = \"\";\n }\n\n get createLeads() {\n return this.uhleadsservice.createLead.controls;\n }\n get editLeads() {\n return this.uhleadsservice.editLead.controls;\n }\n\n createLead() {\n this.uhleadsservice.createLead.controls['form_name'].setValue('none');\n this.uhleadsservice.createLead.controls['channel'].setValue('none');\n this.submitted = true;\n if (this.uhleadsservice.createLead.invalid) {\n return;\n }\n let fileData: Exceldata2[] = [\n new Exceldata2(\n this.uhleadsservice.createLeadValue[\"GUID\"],\n this.uhleadsservice.createLeadValue[\"firstName\"],\n this.uhleadsservice.createLeadValue[\"lastName\"],\n this.uhleadsservice.createLeadValue[\"countryCode\"],\n this.uhleadsservice.createLeadValue[\"phoneNumber\"],\n this.uhleadsservice.createLeadValue[\"email\"],\n \"\",\n this.uhleadsservice.createLeadValue[\"program\"],\n this.uhleadsservice.createLeadValue[\"applicationType\"],\n this.uhleadsservice.createLeadValue[\"CreatedDate\"],\n this.uhleadsservice.createLeadValue[\"comments\"]\n ),\n ];\n this.uhleadsservice\n .postCallData({\n data: fileData,\n createdBy: this.userData[\"mail\"],\n ProjectId: this.projectId,\n addType: 'Manual'\n })\n .subscribe(\n (data) => {\n this.uhleadsservice.showSuccess(\"Lead Added\", \"Success\");\n this.uhleadsservice.resetCreateLead();\n this.submitted = false;\n this.modalService.dismissAll();\n this.leadType = \"all\";\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getDashboardLeads(leadType) {\n if (!this.projectId) {\n return;\n }\n // this.statusValue = \"pending\";\n this.leadType = leadType;\n return this.marketingService\n .getDashboardLeads({\n admin: this.admin,\n // admin: true,\n mail: this.userData[\"mail\"],\n ProjectId: this.projectId,\n leadType: this.leadType,\n counselling: this.counselling,\n })\n .subscribe(\n (data) => {\n this.callData = data;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n //Date Filter\n filterData() {\n this.onClick(null);\n this.startDate = this.momentService.dashboardDateFormat(\n new Date(this.date2.value).getTime()\n );\n this.endDate = this.momentService.dashboardDateFormat(\n new Date(this.date1.value).getTime()\n );\n\n if (this.endDate < this.startDate) {\n // window.alert(\"Choose the right date format!\");\n this.uhleadsservice.showWarning(\n \"End date cannot be less than Start date!\",\n \"Wrong Date!\"\n );\n return;\n } else {\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(this.userData, \"total\", this.startDate, this.endDate);\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.showDate = false;\n }\n }\n getCounts(userData: any, leadtype, startDate, endDate, filter) {\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n // this.activityTable = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n this.projectId = projects.filter(\n (x) => x.Name == environment.UwlaLeads\n )[0].id;\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityData2 = res;\n\n // this.callData = this.activityTable;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n this.activityData2[i].PhoneNumber = \"-\";\n this.activityData2[i].CountryCode = \"-\";\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityData2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityData = this.activityData2;\n this.totalApplications = this.activityData.length;\n this.completedApplications = this.activityData.filter(function (\n el\n ) {\n return el.LeadDocStatus == \"validated\";\n }).length;\n this.completedApplications2 = this.activityData.filter(function (\n el\n ) {\n return (\n el.LeadDocStatus == \"completed\" ||\n el.LeadDocStatus == \"Completed\"\n );\n }).length;\n this.incompleteapplications = this.activityData.filter(function (\n el\n ) {\n // return el.LeadDocStatus != \"validated\";\n return (\n el.LeadDocStatus == \"pending\" ||\n el.LeadDocStatus == \"Admin-revalidate\" ||\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"reopen\" ||\n el.LeadDocStatus == \"denied\"\n );\n }).length;\n var count = 0;\n\n this.documentspending = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n count = count + 1;\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n count = count + 1;\n } else {\n }\n }\n return el.Phase == \"pending\";\n }).length;\n this.documentspending = count;\n this.documentsDenied = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"denied\" || el.LeadDocStatus == \"Denied\"\n );\n }).length;\n this.CallsPending = this.activityData.filter(function (el) {\n return el.Phase == \"pending\" || el.Phase == \"Pending\";\n }).length;\n this.revalidate = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"GBP-revalidate\"\n );\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == \"\" || el.Assignedto == \"-\";\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.assignedtome = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n }).length;\n this.unassigned = this.activityData.filter(function (el) {\n return el.Assignedto == \"\" || el.Assignedto == \"-\";\n }).length;\n\n this.assigned = this.activityData.length - this.unassigned;\n\n this.documentssubmitted =\n this.totalApplications - this.documentspending;\n\n this.callback = this.activityData.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n }).length;\n\n var DocPendingList = [];\n var DocSubmittedList = [];\n\n if (filter == \"all\") {\n this.activityTable = this.activityData;\n } else if (filter == \"validatedDocuments\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == \"validated\";\n });\n } else if (filter == \"completedDocuments\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.LeadDocStatus == \"completed\";\n });\n } else if (filter == \"ValidationPending\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"pending\" ||\n el.LeadDocStatus == \"Admin-revalidate\" ||\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"reopen\" ||\n el.LeadDocStatus == \"denied\"\n );\n });\n } else if (filter == \"completedApplications\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == \"complete\" || el.APPStatus == \"complete\";\n });\n } else if (filter == \"incompleteApplications\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.APPStatus == \"Incomplete\";\n });\n } else if (filter == \"documentsPending\") {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length == 0) {\n DocPendingList.push(el);\n } else {\n var checkDock = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n checkDock = false;\n }\n }\n if (checkDock == false) {\n DocPendingList.push(el);\n }\n }\n return el.Phase == \"pending\";\n });\n this.activityTable = DocPendingList;\n } else if (filter == \"documentsSubmitted\") {\n this.activityTable = this.activityData.filter(function (el) {\n if (el.uploadlistofdocuments.length != 0) {\n var docCheck = true;\n for (let i = 0; i < el.uploadlistofdocuments.length; i++) {\n if (el.uploadlistofdocuments[i].StudentDocPath == null) {\n docCheck = false;\n }\n }\n if (docCheck == true) {\n DocSubmittedList.push(el);\n }\n }\n return el.Phase == \"complete\" || el.APPStatus == \"complete\";\n });\n this.activityTable = DocSubmittedList;\n } else if (filter == \"callback\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == \"callback\" || el.Phase == \"Callback\";\n });\n } else if (filter == \"denied\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"Denied\" || el.LeadDocStatus == \"denied\"\n );\n });\n } else if (filter == \"pendingCalls\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Phase == \"pending\" || el.Phase == \"Pending\";\n });\n } else if (filter == \"revalidate\") {\n this.activityTable = this.activityData.filter(function (el) {\n return (\n el.LeadDocStatus == \"revalidate\" ||\n el.LeadDocStatus == \"Revalidate\" ||\n el.LeadDocStatus == \"CRM-revalidate\" ||\n el.LeadDocStatus == \"GBP-revalidate\"\n );\n });\n } else if (filter == \"assigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != \"-\";\n });\n } else if (filter == \"assignedtome\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == userData.mail;\n });\n } else if (filter == \"unassigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == \"-\" || el.Assignedto == \"\";\n });\n } else if (filter == \"assigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto != \"-\";\n });\n } else if (filter == \"unassigned\") {\n this.activityTable = this.activityData.filter(function (el) {\n return el.Assignedto == \"-\" || el.Assignedto == \"\";\n });\n }\n\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n }\n\n getData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n\n this.leadsbody = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n };\n\n this.uhleadsservice.getActivityTable2(this.leadsbody).subscribe(\n (res) => {\n this.activityTable2 = res;\n\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n\n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"all\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n // this.getAgentName()\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAllData(userData: any, leadtype, startDate, endDate) {\n\n }\n\n getCallData() { }\n\n startCallListener() {\n this.uhleadsservice.startCalluwla.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n }\n\n startCallListener2(data, index) {\n\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n\n this.dialerScreen1 = \"outgoing1\";\n this.callStatus = \"Calling..\";\n $(\"input[name=option1]\").prop(\"checked\", false);\n\n this.newStatusCheck = true;\n\n this.callData[0] = data;\n this.selectedLead = data;\n\n this.uhleadsservice.getDocumentDetails(data.GUID).subscribe(\n (res) => {\n this.documentsList = res;\n this.documentsList = this.documentsList.uploadDocsStatus;\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.marketingId = {\n id: data?.id,\n status: data?.CallStatus,\n name: data?.FirstName,\n email: data?.Email,\n phoneNumber: \"+\" + data?.CountryCode + data?.PhoneNumber,\n // phoneNumber: \"+919848311098\",\n module: data?.Module,\n city: data?.City,\n nextCaller: this.activityTable.length > 1 ? 1 : 0,\n lead: 0,\n };\n\n if (this.activityTable.length > 1) {\n var nextFirstname = this.activityTable[index + 1]?.FirstName ? this.activityTable[index + 1]?.FirstName : '';\n var nextLastname = this.activityTable[index + 1]?.LastName ? this.activityTable[index + 1]?.LastName : '';\n var nextCallerCity = this.activityTable[index + 1]?.City ? this.activityTable[index + 1]?.City : '';\n var nextCallerCountryCode = this.activityTable[index + 1]?.CountryCode ? this.activityTable[index + 1]?.CountryCode.replace(\"+\", \"\") : '';\n var nextCallerPhoneNumber = this.activityTable[index + 1]?.PhoneNumber ? this.activityTable[index + 1]?.PhoneNumber : '';\n\n this.nextCallerName = nextFirstname;\n this.nextCallerCity = nextCallerCity;\n this.nextCallerNumber = nextCallerCountryCode ? \"+\" + nextCallerCountryCode + nextCallerPhoneNumber : '';\n this.startIndex = index + 1;\n }\n this.uhleadsservice.startCalluwla.next({\n phoneNumber: this.marketingId?.phoneNumber,\n leadData: this.marketingId,\n });\n this.startCall = true;\n }\n\n //Start Call timer\n\n // conferenceCall(from) {}\n\n conferenceCall(value: any) {\n this.uhleadsservice.conferenceCalluwla.next({ value });\n }\n\n conferenceCall2(value: any) {\n if (value.phone_number) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: value.phone_number,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n if (value.manager[0]) {\n if (value.manager[0].Name) {\n this.marketingService\n .conferenceCallConnect(\n {\n CallSid: this.connection.parameters.CallSid,\n phone: \"client:\" + value.manager[0].value,\n callerId: this.selectedCallerId,\n },\n environment.companyId\n )\n .subscribe(\n () => { },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n }\n\n updateComments() {\n if (this.newStatusCheck) {\n } else {\n // this.uhleadsservice.getCallSiduwla.subscribe(\n // (data) => {\n this.uhleadsservice\n .updateComments2({\n id: this.selectedLead.id,\n comments: this.commentText,\n callStatus: this.newStatus,\n diyear: this.DIyear,\n diterms: this.DIterms,\n CallSid: this.callSid,\n })\n .subscribe(\n (res) => {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n // this.getData(this.userData, \"all\", this.startDate, this.endDate);\n this.getTopBarCRM();\n this.getCardData(\n this.userData,\n \"total\",\n this.startDate,\n this.endDate\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.commentText = \"\";\n this.closeButton2.nativeElement.click();\n }\n }\n\n resetCallingScreen() {\n this.commentText = \"\";\n this.newStatus = null;\n this.newStatusCheck = false;\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n onStatusChange(data) {\n this.newStatus = data;\n this.newStatusCheck = false;\n if (this.newStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n }\n\n sendSms(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let fromNumber = \"\";\n this.companyService.projectAdmin(environment.companyId).subscribe((res: any) => {\n this.projectLists = res;\n\n for (let i = 0; i < res.length; i++) {\n if (res[i].Name == environment.UwlaLeads) {\n fromNumber = res[i].TwilioNumber;\n }\n }\n let payload = {\n text: this.smsText,\n from: fromNumber,\n to: \"+\" + item.CountryCode + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendSms(payload, this.projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n this.uhleadsservice\n .getSms(this.currentLeadId)\n .subscribe((smsList: any) => {\n if (smsList.SMSDetails) {\n this.smsList = smsList.SMSDetails;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n });\n }\n\n sideNavData(data) {\n this.activityfilterString = \"\";\n this.file = null;\n this.customDocName = \"\";\n this.minItems = 5;\n var x = document.getElementsByClassName(\n \"sideDataViewer\"\n ) as HTMLCollectionOf;\n // x.style.display = none;\n for (let i = 0; i < x.length; i++) {\n x[i].style.display = \"\";\n }\n this.uhleadsservice.getStudentActivity(data.id).subscribe(\n (res: any) => {\n this.uhleadsservice.getSms(data.id).subscribe((smsList: any) => {\n if (smsList?.SMSDetails) {\n this.smsList = smsList?.SMSDetails;\n }\n });\n console.log(\"1\")\n let wpObj = {\n phone: \"+\" + res?.CountryCode.replace('+', '') + res?.PhoneNumber\n }\n console.log(\"2\")\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n }\n });\n console.log(\"3\")\n if (res.APPStatus == 'complete') {\n res.APPStatus = 'Completed';\n }\n this.sideViewerData = res;\n console.log(\"🚀 -------------------------------------------------------------------------------------------🚀\");\n console.log(\"🚀 ~ file: uwla.component.ts:1973 ~ sideNavData ~ this.sideViewerData:\", this.sideViewerData);\n console.log(\"🚀 -------------------------------------------------------------------------------------------🚀\");\n\n this.currentLeadId = this.sideViewerData.id;\n if (this.customDocLeadId != this.currentLeadId) {\n this.customFileList = [];\n this.customDocLeadId = this.currentLeadId;\n } else {\n this.customDocLeadId = this.currentLeadId;\n }\n this.currentGuid = this.sideViewerData.GUID;\n this.replaceNull(this.sideViewerData);\n this.documentValidation(data.id);\n function replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n this.sideViewerData.uploadlistofdocuments.forEach((x) => {\n x.DocComments.forEach((y) => {\n y.AgentColor = this.getAgentColor(y.AgentMail);\n });\n });\n for (\n let i = 0;\n i < this.sideViewerData.uploadlistofdocuments.length;\n i++\n ) {\n this.sideViewerData.LeadComments[i].AgentColor = this.getAgentColor(\n this.sideViewerData.LeadComments[i].AgentMail\n );\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n replaceNull(a: any) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n }\n\n documentValidation(id) {\n this.uhleadsservice.getDocumentComments(id).subscribe(\n (res) => {\n this.documentsList2 = res;\n this.documentsList2 = this.documentsList2.uploadlistofdocuments;\n console.log(\"🚀 --------------------------------------------------------------------------------------------------🚀\");\n console.log(\"🚀 ~ file: uwla.component.ts:2015 ~ documentValidation ~ this.documentsList2:\", this.documentsList2);\n console.log(\"🚀 --------------------------------------------------------------------------------------------------🚀\");\n\n\n this.documentsList2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n this.checkValidation();\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getAgentName(email) {\n let name = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n name =\n this.totalAgents[k].FirstName + \" \" + this.totalAgents[k].LastName;\n return name;\n }\n }\n }\n getAgentInitial(email) {\n let initial = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n initial =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n return initial;\n }\n }\n }\n\n getAgentColor(email) {\n let color = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n color =\n this.totalAgents[k].FirstName.charAt(0) +\n this.totalAgents[k].LastName.charAt(0);\n\n let randomIndex =\n this.colors[\n this.numberFromText(this.getAgentInitial(email)) %\n this.colors.length\n ];\n color = randomIndex[0][\"bg\"];\n return color;\n }\n }\n }\n getAgentphoto(email) {\n let imageUrl = \"\";\n for (var k = 0; k < this.totalAgents.length; k++) {\n if (this.totalAgents[k].Mailid == email) {\n imageUrl = this.totalAgents[k].ProfilePhoto;\n return imageUrl;\n }\n }\n }\n\n numberFromText(text) {\n const charCodes = text\n .split(\"\") // => [\"A\", \"A\"]\n .map((char) => char.charCodeAt(0)) // => [65, 65]\n .join(\"\"); // => \"6565\"\n return parseInt(charCodes, 10);\n }\n\n changeValidation(value, docId) {\n this.uhleadsservice\n .updateValidationStatus({\n StudentdocId: docId,\n // admin: this.admin,\n admin: false,\n validationStatus: value,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n })\n .subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"Document Status updated!\",\n \"Success!\"\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n let payload = {\n AgentMail: this.userData.mail,\n GBPAssignedTo: \"\",\n GUID: \"\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: docId,\n Title: \"Document Validation\",\n description:\n \"Document status changed to \" +\n value +\n \" by \" +\n this.getAgentName(this.userData.mail),\n notificationType: \"Validation\",\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n }\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n checkValidation() {\n if (this.documentsList2.length == 0) {\n this.validationStatus = false;\n return;\n }\n for (var i = 0; i < this.documentsList2.length; i++) {\n if (\n this.documentsList2[i].AgentValidation == \"revalidate\" ||\n this.documentsList2[i].AgentValidation == \"-\"\n ) {\n this.validationStatus = false;\n return;\n } else if (this.documentsList2[i].AgentValidation == \"validated\") {\n this.validationStatus = true;\n //AddNotification\n } else {\n this.validationStatus = false;\n }\n }\n if (this.validationStatus == true) {\n // Send Notification\n\n let payload = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRMGBP\",\n StudentDocId: 0,\n Title: \"Documents Validated\",\n description: \"All the docuiments have been validated\",\n notificationType: \"alldocuments\",\n token: this.userData.token,\n };\n\n // this.NotificationService.sendNotifications(payload).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // this.uhleadsservice.showSuccess(\n // \"All Documents Validated\",\n // \"Validation Complete\"\n // );\n // this.NotificationService.success(\"Validation\", \"Notification sent\");\n // }\n // }\n // );\n // this.NotificationService.sendNotifications(payload2).subscribe(\n // (res: any) => {\n // if (res.status === 200) {\n // // this.uhleadsservice.showSuccess(\"All Documents Validated\", \"Validation Complete\");\n // this.NotificationService.success(\n // \"Validation\",\n // \"Notification sent to GBP\"\n // );\n // }\n // }\n // );\n }\n }\n\n postComments(item, HTMLid) {\n this.documentComments = ((\n document.getElementById(HTMLid)\n )).value;\n var body = {\n ProjectId: this.projectId,\n GUID: this.currentGuid,\n StudentDocId: item.StudentdocId,\n Text: this.documentComments,\n Admin: this.admin,\n // Admin: false,\n LeadId: this.currentLeadId,\n AgentMail: this.userData.mail,\n Platform: \"CRM\",\n };\n\n if (HTMLid == \"leadComments\") {\n body.StudentDocId = null;\n }\n\n this.uhleadsservice.postDocumentComment(body).subscribe(\n (res) => {\n this.documentValidation(this.currentLeadId);\n this.sideNavData(item);\n this.uhleadsservice.showSuccess(\"Comment Posted!\", \"Success!\");\n (document.getElementById(HTMLid)).value = \"\";\n\n let payload = {\n LeadId: 0,\n GBPAssignedTo: \"\",\n Platform: \"CRM\",\n GUID: this.currentGuid,\n StudentDocId: 0,\n notificationType: \"LeadComments\",\n description: this.getAgentName(this.userData.mail) + \" has commented\",\n AgentMail: this.userData.mail,\n Title: \"Comment\",\n token: this.userData.token,\n };\n\n if (HTMLid == \"leadComments\") {\n payload.StudentDocId = 0;\n } else if (\n HTMLid == \"documentComments\" ||\n HTMLid == \"callingComments\"\n ) {\n payload.StudentDocId = item.StudentdocId;\n }\n try {\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n // this.toastr.showSuccess('Successfully send notification', 'Notification')\n // this.NotificationService.success('success', 'loading component');\n } else if (res.status == 500) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n } catch (err) {\n\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n showmore(itemsCount) {\n if (itemsCount < this.minItems) {\n } else if (this.minItems + 5 < itemsCount) {\n this.minItems = this.minItems + 5;\n } else if (this.minItems < itemsCount) {\n this.minItems = itemsCount;\n }\n }\n\n callFromDocs(data, item) {\n this.startCallListener2(data, 0);\n this.currentItem = item;\n }\n\n getAgentNames() {\n this.agentService.getAgentNames().subscribe(\n (data) => {\n this.totalAgents = data;\n\n this.uhleadsservice.getGBPAgentList().subscribe(\n (res: any) => {\n this.GBPagentList = res;\n for (let i = 0; i < this.GBPagentList.length; i++) {\n this.totalAgents.push({\n FirstName: this.GBPagentList[i].FIRST_NAME,\n LastName: this.GBPagentList[i].LAST_NAME,\n Mailid: this.GBPagentList[i].EMAIL_ADDRESS,\n ProfilePhoto: this.GBPagentList[i].ProfilePhoto,\n });\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.totalAgents.push({FirstName: \"Test\", LastName: \"Test\", MailId: \"test@test.com\", ProfilePhote:\"test.com\"})\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n fileUpload(event, item) {\n let fileList: FileList = event.target.files;\n let file: File = fileList[0];\n if (fileList.length > 0) {\n if (!this.validateFile(file.type)) {\n return;\n }\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", item.StudentdocId);\n formData.append(\"document\", file, file.name);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, item.StudentdocId).subscribe(\n (res) => {\n this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n this.sideNavData({ id: this.currentLeadId });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n }\n\n uploadCustomDocument(e) {\n // let fileList: FileList = event.target.files;\n // this.file = fileList[0];\n // event.target.value = '';\n // if (fileList.length > 0) {\n // if (!this.validateFile(this.file.type)) {\n // this.uhleadsservice.showError(\"Invalid file format!\", \"Error\");\n // return;\n // }\n // }\n for (var i = 0; i < e.target.files.length; i++) {\n this.customFileList.push(e.target.files[i]);\n }\n if (this.customFileList.length > 0) {\n this.docUploadError = \"Click on add to start uploading your files\";\n console.log(this.customFileList);\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n addCustomDocument() {\n let check = true;\n this.customFileList.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n this.docUploadError = \"Please be patient while the document is uploaded...\";\n if (this.customDocName == \"\") {\n this.docUploadError = \"Document name cannot be empty!\";\n return;\n } else {\n let formData: FormData = new FormData();\n formData.append(\"GUID\", this.currentGuid);\n formData.append(\"docName\", this.customDocName);\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n Array.from(this.customFileList).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n this.docUploadStatus = true;\n this.uhleadsservice.uploadCustomDocument(formData).subscribe(\n (res: any) => {\n // let response = res.map((d:any) =>{status: d.status});\n let response = res.status;\n this.docUploadStatus = false;\n if (response == 200) {\n this.docUploadError = \"Custom document added\";\n this.uhleadsservice.showSuccess(\n \"Custom document added!\",\n \"Success\"\n );\n } else if (response == 201) {\n this.docUploadError = \"Uploaded a custom document\";\n this.uhleadsservice.showSuccess(\n \"Uploaded a custom document!\",\n \"Success\"\n );\n } else if (response == 202) {\n this.docUploadError = \"Document with given name already exists!\";\n this.uhleadsservice.showError(\n \"Document with given name already exists!\",\n \"Error\"\n );\n return;\n }\n this.sideNavData({ id: this.currentLeadId });\n this.closeButton.nativeElement.click();\n this.file = null;\n this.customDocName = \"\";\n },\n (err) => {\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.docUploadError = `The file ${err.error.file} is corrupted. Please upload valid files .`\n } else if (err.error.status == 500) {\n this.docUploadError = err.error.message;\n }\n else {\n this.docUploadError = 'Files not uploaded. Please check document extensions, upload supported documents.'\n }\n this.uhleadsservice.showError(\n this.docUploadError,\n \"Error\"\n );\n this.handleError.handleError(err);\n }\n );\n }\n }\n }\n\n deleteCustomDocument(docId, docName) {\n this.uhleadsservice\n .deleteCustomDocument({\n StudentdocId: docId,\n docName: docName,\n Platform: \"CRM\",\n MailId: this.userData.mail,\n })\n .subscribe(\n (res: any) => {\n let response = res.status;\n if (response == 200) {\n this.uhleadsservice.showSuccess(\n \"Custom document deleted successfully.\",\n \"Deleted Successfully!\"\n );\n } else {\n this.uhleadsservice.showError(\"Something went wrong!\", \"Error!\");\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n this.sideNavData({ id: this.currentLeadId });\n }\n\n downLoadDocument(url, name) {\n const link = document.createElement(\"a\");\n link.setAttribute(\"target\", \"_blank\");\n link.setAttribute(\"type\", \"hidden\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n //Validate Uploaded file\n validateFile(name: String) {\n var ext = name.substring(name.lastIndexOf(\".\") + 1);\n if (ext.toLowerCase() == \"image/jpeg\") {\n return true;\n } else if (ext.toLowerCase() == \"document\") {\n return true;\n } else if (ext.toLowerCase() == \"image/png\") {\n return true;\n } else if (ext.toLowerCase() == \"application/msword\") {\n return true;\n } else if (ext.toLowerCase() == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\") {\n return true;\n } else if (ext.toLowerCase() == \"application/pdf\") {\n return true;\n } else {\n this.uhleadsservice.showError(\"Please upload a valid file!\", \"Error!\");\n return false;\n }\n }\n\n openPreview(content, url) {\n // this.docUrl = '';\n this.docUrl = url;\n this.modalService\n .open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n })\n .result.then(\n (result) => { },\n (reason) => { }\n );\n }\n\n contentLoaded() {\n document.getElementById(\"progressBar\").style.display = \"none\";\n }\n\n playAudio(data) {\n // let audio = new Audio();\n if (this.audioStatus == false) {\n this.audio.src = data.RecordingURL;\n this.audio.pause();\n this.audio.currentTime = 0;\n // this.audio.load();\n this.audio.play();\n this.audioStatus = true;\n } else if (this.audioStatus == true) {\n this.audio.pause();\n this.audio.currentTime = 0;\n this.audioStatus = false;\n }\n }\n audioPlay(e) {\n let eAudio = this.domService.getElementsByTagName(\"audio\");\n if (eAudio && eAudio.length > 0) {\n for (var i = 0; i < eAudio.length; i++) {\n if (e.target !== eAudio[i]) {\n eAudio[i].pause();\n }\n }\n }\n }\n\n pauseAudio(data) {\n // audio.stop();\n }\n\n callNext() { }\n\n stopCurrentCall() {\n\n this.uhleadsservice.startCalluwla.next(null);\n this.uhleadsservice.stopCalluwla.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.callStatus = \"Call Ended\";\n }\n\n stopCallListener() {\n\n this.uhleadsservice.startCalluwla.next(null);\n this.uhleadsservice.stopCalluwla.next({\n phoneNumber: this.marketingId.phoneNumber,\n });\n this.stopCall = true;\n this.startCall = false;\n if (this.statusValue !== \"pending\") {\n this.startIndex += 1;\n }\n clearTimeout(this.clearTime);\n }\n\n followUpCall(data) {\n if (!this.startCall) {\n this.layoutService.marketingCall.next({\n id: data[\"id\"],\n number: \"+\" + data[\"CountryCode\"] + data[\"PhoneNumber\"],\n name: data[\"FirstName\"],\n email: data[\"Email\"],\n comments: data[\"Comments\"],\n module: data[\"Module\"],\n city: data[\"city\"],\n nextCaller: null,\n lead: data,\n });\n this.startCall = true;\n }\n }\n\n openCreateLead(content) {\n // gtag('event', 'add_new_lead', {\n // page_path: window.location.href,\n // page_title:'Leads Dashboard'\n // })\n this.modalService.open(content, { size: \"md\" });\n let country = countryCodes.find(x => x.callingCodes[0] == 1);\n this.selectCountry(country);\n }\n openEditLead(content, lead) {\n if (lead.DOB == \"-\") {\n lead.DOB = \"\";\n }\n\n this.editStatus = lead.CallStatus;\n this.DIterms = lead.DIterms;\n this.DIyear = parseInt(lead.DIyear);\n if (this.editStatus == \"deferredintake\") {\n this.showdeferredintake = true;\n } else {\n this.showdeferredintake = false;\n this.DIyear = null;\n this.DIterms = null;\n }\n this.leadtoEdit = {\n LeadId: lead.id,\n FirstName: lead.FirstName,\n LastName: lead.LastName,\n CountryCode: lead.CountryCode,\n PhoneNumber: lead.PhoneNumber,\n Email: lead.Email,\n DOB: lead.DOB,\n // DOB: this.startDate,\n EnrollmentYear: lead.EnrollmentYear,\n EnrollmentTerm: lead.EnrollmentTerm,\n Address: lead.Address,\n City: lead.City,\n State: lead.State,\n Zip: lead.Zip,\n Country: lead.Country,\n LeadComment: this.editComment,\n CallStatus: this.editStatus,\n AgentMail: this.userData.mail,\n };\n\n this.modalService.open(content, { size: \"lg\" });\n\n this.uhleadsservice.editLead.markAllAsTouched();\n if (lead.Country != \"-\") {\n let country = countryCodes.find(x => ((x.alpha2Code == lead.Country) || (x.name == lead.Country)));\n this.selectCountryEditName(country);\n }\n if (lead.CountryCode != \"-\") {\n let country1 = countryCodes.find(x => x.callingCodes[0] == lead.CountryCode);\n this.selectCountryEdit(country1);\n }\n }\n\n replaceAll(string, search, replace) {\n return string.split(search).join(replace);\n }\n\n updateLead() {\n if (this.leadtoEdit.EnrollmentTerm === '-') {\n this.leadtoEdit.EnrollmentTerm = null;\n this.uhleadsservice.editLead.controls['EnrollmentTerm'].setValue(null);\n }\n if (this.leadtoEdit.EnrollmentYear === '-') {\n this.leadtoEdit.EnrollmentYear = null;\n this.uhleadsservice.editLead.controls['EnrollmentYear'].setValue(null);\n }\n this.edited = true;\n if (this.uhleadsservice.editLead.invalid) {\n this.uhleadsservice.editLead.markAllAsTouched();\n return;\n }\n\n // this.leadtoEdit.CountryCode = this.leadtoEdit.CountryCode.replace(\"+\", \"\");\n this.leadtoEdit.CountryCode = this.replaceAll(\n this.leadtoEdit.CountryCode,\n \"+\",\n \"\"\n );\n this.leadtoEdit.DIterms = this.DIterms;\n this.leadtoEdit.DIyear = this.DIyear;\n if (this.leadtoEdit.CountryCode == \"-\") {\n this.leadtoEdit.CountryCode = \"00\";\n }\n if (this.leadtoEdit.PhoneNumber == \"-\") {\n this.leadtoEdit.PhoneNumber = \"0000000000\";\n }\n var keys = Object.keys(this.leadtoEdit);\n keys.forEach((a) => {\n if (\n this.leadtoEdit[a] === \"-\" ||\n this.leadtoEdit[a] === \"\" ||\n this.leadtoEdit[a] === undefined\n ) {\n this.leadtoEdit[a] = null;\n }\n });\n\n this.uhleadsservice.updateLead(this.leadtoEdit).subscribe(\n (res: any) => {\n this.uhleadsservice.showSuccess(\"Student details updated\", \"Success!\");\n this.edited = false;\n\n document.getElementById(\"closeButton3\").click();\n // this.getCounts(this.userData, \"all\", this.startDate, this.endDate, \"all\");\n this.getTopBarCRM();\n\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n page: 1,\n },\n this.cardLeadType\n );\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n // Clear file and document name in custom document upload modal\n clearData() {\n this.file = null;\n this.customDocName = \"\";\n this.customFileList = [];\n }\n\n selectFiles() {\n const frmData = new FormData();\n\n for (var i = 0; i < this.selectedFiles.length; i++) {\n frmData.append(\"fileUpload\", this.selectedFiles[i]);\n }\n }\n\n getFileDetails(e) {\n for (var i = 0; i < e.target.files.length; i++) {\n this.selectedFiles.push(e.target.files[i]);\n }\n if (this.selectedFiles.length > 0) {\n this.docUploadError2 = \"Click on upload to start uploading your files\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n e.target.value = '';\n }\n\n deleteFile(i) {\n this.selectedFiles.splice(i, 1);\n }\n\n uploadAttachments() {\n let check = true;\n this.selectedFiles.forEach((element) => {\n if (this.validateFile(element.type) == false) {\n this.docUploadError2 =\n \"One or more files you uploaded is not a valid format. Please upload either doc, pdf, png or JPG/JPEG format.\";\n check = false;\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"red\";\n }\n }\n });\n if (check == true) {\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n this.docUploadError2 =\n \"Compressing your documents. Please wait for the process to finish\";\n this.docUploadStatus = true;\n\n let formData: FormData = new FormData();\n formData.append(\"studentdocid\", this.docUploadID);\n Array.from(this.selectedFiles).forEach((file) =>\n formData.append(\"document\", file, file.name)\n );\n formData.append(\"Platform\", \"CRM\");\n formData.append(\"MailId\", this.userData.mail);\n\n this.uhleadsservice.uploadDocument(formData, this.docUploadID).subscribe(\n (res: any) => {\n // this.uhleadsservice.showSuccess(\"File upload successful!\", \"Success\");\n\n if (res.status == 200) {\n this.cancelUpload();\n this.uploadSuccess = \"success\";\n this.sideNavData({ id: this.currentLeadId });\n this.uhleadsservice.showSuccess(\n \"File upload successful!\",\n \"Success\"\n );\n this.getCardCount(\n {\n admin: this.admin,\n mail: this.userData.mail,\n ProjectId: this.projectId,\n leadType: this.cardLeadType,\n start: this.startDate,\n end: this.endDate,\n },\n this.cardLeadType\n );\n this.docUploadStatus = false;\n\n // document.getElementById(\"closeButton4\").click();\n try {\n // document.getElementById(\"closeButton4\").click();\n } catch (err) {\n this.uploadSuccess = \"failure\";\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n }\n },\n (err) => {\n this.handleError.handleError(err);\n this.uploadSuccess = \"failure\";\n this.docUploadStatus = false;\n if (err.error.status == 400) {\n this.uhleadsservice.showError(\n `The file ${err.error.file} is corrupted. Please upload valid files .`,\n \"\"\n );\n } else if (err.error.status == 500) {\n this.uhleadsservice.showError(\n err.error.message,\n \"\"\n );\n } else {\n this.uhleadsservice.showError(\n 'Files not uploaded. Please check document extensions, upload supported documents.',\n \"\"\n );\n }\n }\n );\n }\n }\n cancelUpload() {\n document.getElementById(\"closeButton4\").click();\n }\n\n clearSelectedFiles(item) {\n this.docUploadID = item.StudentdocId;\n this.docUploadStatus = false;\n this.selectedFiles = [];\n this.docUploadError2 = \"Select files to upload.\";\n this.uploadSuccess = \"none\";\n\n var x = document.getElementsByClassName(\n \"docUploadError\"\n ) as HTMLCollectionOf;\n for (let i = 0; i < x.length; i++) {\n x[i].style.color = \"green\";\n }\n }\n\n open() {\n let payload = {\n LeadId: 0,\n GBPAssignedTo: \"\",\n Platform: \"CRM\",\n // GUID: \"f083dc22-9ed2-4204-b46c-d4e2958b6de0\",\n GUID: \"12356yyu98\",\n StudentDocId: 0,\n notificationType: \"LeadComments\",\n description: \"Test Comment\",\n AgentMail: \"ramana@universityhub.com\",\n Title: \"Test\",\n token: this.userData.token,\n };\n\n let payload2 = {\n AgentMail: \"ramana@universityhub.com\",\n GBPAssignedTo: \"\",\n GUID: \"12356yyu98\",\n LeadId: 0,\n Platform: \"CRM\",\n StudentDocId: 0,\n Title: \"Comment\",\n description: \"12356yyu98\",\n notificationType: \"LeadComments\",\n token: this.userData.token,\n };\n\n this.NotificationService.sendNotifications(payload).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n\n this.NotificationService.sendNotifications(payload2).subscribe(\n (res: any) => {\n if (res.status === 200) {\n }\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n // this.NotificationService.success(\"success\", \"loading component\");\n // this.NotificationService.error('error', 'loading component');\n // this.NotificationService.info('info', 'loading component');\n // this.NotificationService.alert('alert', 'loading component');\n // this.NotificationService.warn('warn', 'loading component');\n }\n\n viewLead(id) {\n this.sideNav.toggle();\n this.sideNavData({ id: id });\n }\n\n onInputActivity(event: any) {\n\n if (this.activityfilterString != \"\") {\n this.minItems = event;\n } else {\n this.minItems = 5;\n }\n }\n getTopBarCRM() {\n var postData = {\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n AgentMail: this.userData.mail,\n };\n this.uhleadsservice\n .getTopBarCRM(postData)\n .toPromise()\n .then((resp: any) => {\n this.totalPages = 1;\n\n if (this.leadType == \"all\") {\n this.totalPages = resp.TopBarCount.total;\n } else if (this.leadType == \"assigned\") {\n this.totalPages = resp.TopBarCount.assigned;\n } else if (this.leadType == \"assignedtoMe\") {\n this.totalPages = resp.TopBarCount.assignedtoMe;\n } else if (this.leadType == \"completedDocs\") {\n this.totalPages = resp.TopBarCount.completedDocs;\n } else if (this.leadType == \"documentsSubmitted\") {\n this.totalPages = resp.TopBarCount.documentsSubmitted;\n } else if (this.leadType == \"pendingDocs\") {\n this.totalPages = resp.TopBarCount.pendingDocs;\n } else if (this.leadType == \"reopen\") {\n this.totalPages = resp.TopBarCount.reopen;\n } else if (this.leadType == \"revalidatedDocs\") {\n this.totalPages = resp.TopBarCount.revalidatedDocs;\n } else if (this.leadType == \"studentDenied\") {\n this.totalPages = resp.TopBarCount.studentDenied;\n } else if (this.leadType == \"unassigned\") {\n this.totalPages = resp.TopBarCount.unassigned;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"validatedDocs\") {\n this.totalPages = resp.TopBarCount.validatedDocs;\n } else if (this.leadType == \"pending\") {\n this.totalPages = resp.TopBarCount.pending;\n } else if (this.leadType == \"called\") {\n this.totalPages = resp.TopBarCount.called;\n } else if (this.leadType == \"callback\") {\n this.totalPages = resp.TopBarCount.callback;\n } else if (this.leadType == \"informed\") {\n this.totalPages = resp.TopBarCount.informed;\n } else if (this.leadType == \"wrongnumber\") {\n this.totalPages = resp.TopBarCount.wrongnumber;\n } else if (this.leadType == \"notanswered\") {\n this.totalPages = resp.TopBarCount.notanswered;\n } else if (this.leadType == \"deferredintake\") {\n this.totalPages = resp.TopBarCount.deferredintake;\n } else if (this.leadType == \"uncontactable\") {\n this.totalPages = resp.TopBarCount.uncontactable;\n } else if (this.leadType == \"dropdown\") {\n this.uhleadsservice.getCountByCallStatus({\n status: this.cardLeadType,\n ProjectId: this.projectId,\n start: this.startDate,\n end: this.endDate,\n }).subscribe((count: any) => {\n this.totalPages = count.count;\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n });\n }\n\n this.totalPages = ~~(Number(this.totalPages) / 12) + 1;\n this.uhleadsservice.totalPages.next(this.totalPages);\n\n this.topBarCounts = resp.TopBarCount;\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n\n sortData(arr, value) {\n\n return arr.sort((a, b) => {\n return a[value] - b[value];\n //return a[value] < b[value] ? -1 : a[value] > b[value] ? 1: 0\n });\n }\n toggleSort(column, order) {\n if (this.sortOrder == \"asc\") {\n this.sortOrder = \"des\";\n } else {\n this.sortOrder = \"asc\";\n }\n this.sortTableData(column, this.sortOrder);\n }\n\n sortTableData(column, order) {\n if (column == \"createdAt\") {\n if (this.currentCard == \"total\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"validated\") {\n column = \"ValidatedDate\";\n } else if (this.currentCard == \"uncontactable\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"completed\") {\n column = \"CompletedDate\";\n } else if (this.currentCard == \"updated\") {\n column = \"createdAt\";\n } else if (this.currentCard == \"revalidate\") {\n column = \"RevalidateDate\";\n } else if (this.currentCard == \"denied\") {\n column = \"DeniedDate\";\n } else if (this.currentCard == \"assigned\") {\n column = \"createdAt\";\n }\n }\n this.sortColumn = column;\n this.activityTable = sortJsonArray(\n this.activityTable,\n column,\n this.sortOrder\n );\n\n // if (this.sortOrder == 'asc'){\n // this.sortOrder ='des'\n // }else{\n // this.sortOrder = 'asc';\n // }\n }\n\n getCardCount(obj, type) {\n\n this.cardLeadType = type;\n this.leadIds = [];\n this.activityTable = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.activityData2 = [];\n this.activityData = [];\n this.companyService.projectAdmin(this.companyId).subscribe(\n (projects) => {\n\n delete obj.ProjectId;\n obj.ProjectId = projects.filter(\n (x) => x.Name == environment.UwlaLeads\n )[0].id;\n // obj.ProjectId = data;\n obj.page = this.pageNumber;\n obj.leadType = this.cardLeadType;\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n this.activityData2 = resp;\n this.activityData2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n for (let i = 0; i < this.activityData2.length; i++) {\n if (this.activityData2[i].PhoneNumber == \"0000000000\") {\n this.activityData2[i].PhoneNumber = \"-\";\n this.activityData2[i].CountryCode = \"-\";\n }\n\n this.activityData2[i].AssignedtoName = this.getAgentName(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoColor = this.getAgentColor(\n this.activityData2[i].Assignedto\n );\n this.activityData2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityData2[i].Assignedto\n );\n if (\n this.activityData2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityData2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityData2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n this.activityData = this.activityData2;\n this.sortTableData(this.sortColumn, this.sortOrder);\n\n this.activityTable = this.activityData;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n },\n (error) => {\n this.handleError.handleError(error);\n }\n );\n }\n\n getCardData(userData: any, leadtype, startDate, endDate) {\n this.leadIds = [];\n this.isLoading = true;\n this.noRecords = false;\n this.search = \"\";\n this.onClick(null);\n this.activityTable = [];\n let obj = {\n admin: this.admin,\n // admin: true,\n mail: userData.mail,\n ProjectId: this.projectId,\n leadType: leadtype,\n start: this.startDate,\n end: this.endDate,\n page: this.pageNumber,\n };\n\n\n this.uhleadsservice\n .getCardLeadByType(obj)\n .toPromise()\n .then((resp: any) => {\n // \n this.activityTable2 = resp;\n this.activityTable2.forEach(function (a) {\n Object.keys(a).map((key) => {\n a[key] === null ? (a[key] = \"-\") : a[key];\n });\n });\n // \n\n for (let i = 0; i < this.activityTable2.length; i++) {\n if (this.activityTable2[i].PhoneNumber == \"0000000000\") {\n this.activityTable2[i].CountryCode = \"-\";\n this.activityTable2[i].PhoneNumber = \"-\";\n }\n this.activityTable2[i].AssignedtoName = this.getAgentName(\n this.activityTable2[i].Assignedto\n );\n\n this.activityTable2[i].AssignedtoInitial = this.getAgentInitial(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoColor = this.getAgentColor(\n this.activityTable2[i].Assignedto\n );\n this.activityTable2[i].AssignedtoImageURL = this.getAgentphoto(\n this.activityTable2[i].Assignedto\n );\n if (\n this.activityTable2[i].LeadDocStatus == \"CRM-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-Revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"Admin-revalidate\" ||\n this.activityTable2[i].LeadDocStatus == \"CRM-revalidate\"\n ) {\n this.activityTable2[i].LeadDocStatus = \"Revalidate\";\n }\n }\n this.activityTable = this.activityTable2;\n this.getAllData(\n this.userData,\n \"total\",\n new Date(Date.now() - 864e5 * 365),\n new Date(Date.now())\n );\n this.callData = this.activityTable;\n this.isLoading = false;\n if (this.activityTable.length == 0) {\n this.noRecords = true;\n } else {\n this.noRecords = false;\n }\n })\n .catch((err) => {\n this.handleError.handleError(err);\n });\n }\n checkThresHold(content, item, id) {\n this.thresItem = item;\n this.thresId = id;\n if (item.TotalCalls > 12) {\n this.thresModal = this.modalService.open(content, {\n ariaLabelledBy: \"modal-basic-title\",\n windowClass: \"myCustomModalClass\",\n });\n } else {\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById(\"openModalButton\").click();\n }\n }\n thresHold() {\n this.thresModal.close();\n this.startCallListener2(this.thresItem, this.thresId);\n document.getElementById(\"openModalButton\").click();\n }\n onDIItermsChange(data) {\n this.DIterms = data;\n }\n onDIYearChange(data) {\n this.DIyear = data;\n }\n getLeadDocStatusName(value) {\n switch (value) {\n case 'notsubmitted':\n return 'Not Submitted';\n break;\n case 'previousintake':\n return 'Previous Intake';\n break;\n\n default:\n return value;\n break;\n }\n }\n sendSmsWp(item, HTMLid) {\n this.smsText = (document.getElementById(HTMLid)).value;\n let payload = {\n text: this.smsText,\n from: environment.whatsApp_Sender,\n to: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber,\n AgentMail: this.userData.mail,\n };\n\n this.uhleadsservice\n .sendWhatsapp(payload, environment.whatsApp_Sender_projectId)\n .subscribe((res: any) => {\n this.uhleadsservice.showInfo(\"Message successfully sent.\", \"Sent\");\n let wpObj = {\n phone: \"+\" + item.CountryCode.replace('+', '') + item.PhoneNumber\n }\n this.uhleadsservice.getSmsWp(wpObj).subscribe((wpsmsList: any) => {\n if (wpsmsList) {\n this.smsListWp = wpsmsList?.data;\n (document.getElementById(HTMLid)).value = \"\";\n }\n });\n });\n }\n selectCountry(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.createLead.get(\"countryCode\").patchValue(this.selectedCountryCode);\n }\n selectCountryEdit(country) {\n this.selectedCountryCode = country.callingCodes[0];\n this.uhleadsservice.editLead.get(\"CountryCode\").patchValue(this.selectedCountryCode);\n this.leadtoEdit.CountryCode = this.selectedCountryCode.toString();\n }\n selectCountryEditName(country) {\n this.selectedCountryName = country.name;\n this.leadtoEdit.Country = this.selectedCountryName;\n this.uhleadsservice.editLead.get(\"Country\").patchValue(country?.alpha2Code)\n }\n fetchCountries() {\n this.countries = countryCodes;\n }\n onInputC(Event: any) {\n let search = Event.target.value;\n let serachData = [];\n if (search) {\n this.countries = countryCodes.filter((x) => {\n return x.name.toLowerCase().includes(search.toLowerCase());\n });\n } else {\n this.countries = countryCodes;\n }\n }\n}\n","\n
    \n
    \n
    \n ×\n
    \n
    Overview
    \n
    \n
    \n \n \n
    \n {{ sideViewerData.CallDetails.length }} Calls\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Called by{{ i.AgentName }}
    Date & Time{{ i.DateTime | date : \"medium\" }}
    Status\n Pending\n Uncontactable\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred Intake\n Not Answered\n Deferred Intake\n
    DirectionInComing CallOutGoing Call
    Call Recording\n \n
    Comments{{ i.Comments }}
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    GUID{{ sideViewerData.GUID }}
    Name\n {{\n sideViewerData.FirstName + \" \" + sideViewerData.LastName\n | titlecase\n }}\n
    DOB{{ sideViewerData.DOB | date: \"dd MMM, yyyy\"}}
    Submitted Date{{ sideViewerData.createdAt | date : \"medium\" }}
    APP Status{{ sideViewerData.APPStatus | titlecase }}
    Enrollment Year{{ sideViewerData.EnrollmentYear || \"NA\" }}
    Program{{ sideViewerData.Program }}
    Phone Number\n {{\n \"+\" + sideViewerData.CountryCode + sideViewerData.PhoneNumber\n }}\n
    Email{{ sideViewerData.Email }}
    Address\n {{\n sideViewerData.Address +\n \" \" +\n sideViewerData.City +\n \" \" +\n sideViewerData.State +\n \" \" +\n sideViewerData.Zip +\n \" \" +\n sideViewerData.Country || \"NA\" | titlecase\n }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ item.ProgramDoc | titlecase }}\n
    \n \n
    \n\n
    \n {{ item.uploadedDate | date : \"medium\" }}\n
    \n
    \n
    \n
    \n Validated\n Re\n Validate\n
    \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n \n \n \n \n \n
    \n
    \n\n \n 0\">\n \n Comments \n \n\n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ i.AgentName }}\n
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n

    \n {{ i.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    {{ i.AgentName }}
    \n
    \n {{ i.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ i.Text }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n Comments\n {{\n \"(\" + (sideViewerData.LeadComments?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n

    \n {{ j.AgentInitials }}\n

    \n
    \n
    \n
    \n
    \n
    \n {{ j.AgentName }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsList?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.DateTime | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Total Messages\n {{\n \"(\" + (smsListWp?.length || \"0\") + \")\"\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Student\n\n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    {{ j.Text }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Agent\n \n
    \n {{ j.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n {{ j.Text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n {{ sideViewerData.Activities.length }} Actions taken\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n

    \n {{ i.Description }}\n {{\n i.DateTime | date : \"medium\"\n }}\n

    \n
    \n
    \n
    \n
    \n Show more..\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    Activity
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.total }}\n
    \n
    \n
    Total Students
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assignedtoMe || 0 }}\n
    \n
    \n
    Assigned to me
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.completedDocs || 0 }}\n
    \n
    \n
    Completed Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.validatedDocs || 0 }}\n
    \n
    \n
    Validated Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.documentsSubmitted || 0 }}\n
    \n
    \n
    Documents Submitted
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.pendingDocs || 0 }}\n
    \n
    \n
    Documents Pending
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.studentDenied || 0 }}\n
    \n
    \n
    Students Denied
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.revalidatedDocs || 0 }}\n
    \n
    \n
    Revalidate Documents
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.uncontactable || 0 }}\n
    \n
    \n
    Uncontactable
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.unassigned || 0 }}\n
    \n
    \n
    Unassigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ topBarCounts?.assigned || 0 }}\n
    \n
    \n
    Assigned
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    Total Applications
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n\n
    \n
    \n
    \n
    \n {{ filePath }}\n
    \n
    \n {{ insertCount + \" \" + \"Contacts inserted\" }}\n
    \n
    \n {{ errorMessage }}\n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Add New Document\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n Please use CTRL to select multiple files .\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n Selected Files: {{ customFileList.length }}\n
    \n
    \n
    \n
    \n \n {{ i.name | titlecase }}
    \n
    \n
    \n {{ i.fileName }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n
    \n \n
    \n\n
    \n {{ docUploadError }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Upload Documents\n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Selected Files: {{ selectedFiles.length }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n Upload below supported documents only
    \n .doc .pdf .png .jpg .jpeg\n
    \n
    \n \n\n \n
    0\">\n
    \n
    \n
    \n \n
    \n {{ i.name }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    0\">\n
    \n \n\n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n \n
    \n
    \n Upload Success
    \n
    \n Total {{ selectedFiles.length }} files uploaded\n successfully\n
    \n
    \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n Upload Failed
    \n
    \n Files not uploaded. Please check document\n extensions, upload supported documents\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ docUploadError2 }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n Assign to Agent\n
    \n \n
    \n
    \n
    \n
    \n {{ leadIds.length }} Students are selected to\n assign.\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    Created Date
    \n
    \n Validation Date\n
    \n
    \n Uncontactable Date\n
    \n
    \n Completed Date\n
    \n
    \n Revalidation Date\n
    \n
    Denied Date
    \n
    \n Assigned Date\n
    \n \n
    \n
    \n Updated Date\n \n \n Student Name\n \n \n Student Email\n \n \n Assigned To\n \n \n Phone Number\n \n \n Enrollment Term\n \n \n Enrollment Year\n \n \n Study Programme\n \n \n Document Status\n \n \n Call Status\n \n Actions
    \n
    \n
    \n \n
    \n
    \n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.ValidatedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.CompletedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.DeniedDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.RevalidateDate | date : \"dd MMM, yyyy\"\n }}\n {{\n item?.createdAt | date : \"dd MMM, yyyy\"\n }}\n
    \n
    \n
    \n
    \n {{ item.updatedAt | date : \"dd MMM, yyyy\" }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ item.Email | lowercase }}\n
    \n
    \n
    \n
    \n \n\n

    \n {{ item.AssignedtoInitial }}\n

    \n
    \n
    \n {{ item.AssignedtoName | titlecase }}\n
    \n
    \n
    \n {{ item.PhoneNumber }}\n \n {{ item.EnrollmentTerm }}\n \n {{ item.EnrollmentYear }}\n \n {{ item.Program | uppercase }}\n \n \n Not Submitted\n \n \n {{ getLeadDocStatusName(item?.LeadDocStatus) | titlecase }}\n \n \n Pending\n Not Interested\n Completed\n Call Back\n Informed\n Called\n Wrong Number\n Deferred\n Intake\n Not Answered\n Deferred Intake\n Un Contactable\n \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n\n
    \n Loading Data
    Please wait while we fetch the\n data for you\n
    \n
    \n
    \n
    \n \n
    \n No records found.
    Please select a different\n date range.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Calling Screens\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    Current Caller
    \n
    \n
    \n

    \n {{ marketingId.name }}\n

    \n
    \n {{ marketingId.city }}\n
    \n
    \n {{ marketingId.phoneNumber || agentCall }}\n
    \n
    \n \"\"\n
    \n
    \n {{ callStatus }}\n
    \n

    \n \n

    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n NEXT CALLER\n
    \n
    \n {{ nextCallerName }}\n
    \n
    {{ nextCallerCity }}
    \n
    \n {{ nextCallerNumber }}\n
    \n
    \n\n
    \n
    \n \"\"\n
    \n\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n \"\"\n
    \n\n
    \n \"\"\n
    \n
    \n
    \n
    \n
    \n
    \n
    Student details
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{\n callData[0]?.FirstName +\n \" \" +\n callData[0].LastName\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.GUID }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.APPStatus }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ callData[0]?.createdAt | date : \"medium\" }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0].DOB | date: \"dd MMM, yyyy\"}}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.EnrollmentYear }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Program }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.PhoneNumber }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {{ callData[0]?.Email }}
    \n
    \n
    \n
    \n
    \n \n
    {{ callData[0]?.Address }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Document details
    \n
    \n
    \n
    \n
    \n \n {{\n documentsList[i].DocumentName }}\n
    \n
    \n \n {{ documentsList[i + 1].DocumentName }}\n
    \n
    \n\n
    \n
    \n
    \n
    Feedback
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n Please select any option above!\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n

    \n {{\n sideViewerData.FirstName +\n \" \" +\n sideViewerData.LastName\n }}\n

    \n
    \n {{\n \"+\" +\n sideViewerData.CountryCode +\n \" \" +\n sideViewerData.PhoneNumber\n }}\n
    \n
    \n \"\"\n
    \n\n
    \n {{ callStatus }}\n
    \n\n
    \n \n
    \n\n \n\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n \n \n
    \n

    Add Lead

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    LastName is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n \n
    \n
    \n
    \n \n
      \n \n
    • \n \n \n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n
    \n
    Country Code is required
    \n
    Please use valid country code .
    \n
    \n
    \n
    \n \n
    \n
    Phone Number is required
    \n
    Please use valid phone number .
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid email
    \n
    \n
    \n
    \n \n \n
    \n
    Minimum length should be 2 characters .
    \n
    Maximum length should be 50 characters .
    \n
    Only characters are allowed .
    \n
    Program is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n \n \n
    \n\n \n \n
    \n

    \n Update Lead Details\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    First Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    Last Name is required
    \n
    Please use valid Name
    \n
    Minimum length should be 2 characters .\n
    \n
    Maximum length should be 50 characters .
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Please use valid Email
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }} (+{{ country.callingCodes[0] }})\n \n
    • \n
    \n
    \n\n
    \n
    Country Code is required
    \n
    Only Numbers are allowed
    \n
    \n
    \n
    \n \n\n
    \n
    Phone Number is required
    \n
    Only numbers are allowed
    \n
    Minimum length should be 7 characters .\n
    \n
    Maximum length should be 15 characters .\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    Enrollment Year is required
    \n
    Only numbers are allowed
    \n
    \n
    \n\n
    \n \n \n\n
    \n
    Enrollment Term is required
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n \n
      \n \n
    • \n \n \"\"\n {{ country.name }}\n \n
    • \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    Call

    \n \n
    \n
    \n
    \n
    \n You have reached the calling limit.
    Are you sure you want\n to continue?\n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-privacypolicy',\n templateUrl: './privacypolicy.component.html',\n styleUrls: ['./privacypolicy.component.css']\n})\nexport class PrivacypolicyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
    \n\t\n\t
    \n\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t
    Privacy Policy
    \n\t\t
    \n\t
    \n\t\n\t\n\n\t
    \n\t\t
    \n\t\t\tAccessQue Privacy Policy\n\t\t\t

    \n\t\t\t\tThis privacy policy (“Policy”) was last updated on February, 2021. We may change or update this policy at any time, and the same will be updated here. If you are a AccessQue user or customer, we shall notify the changes or updates either by sending an email or a notification on the AccessQue App (as defined below). Please ensure to read such notices carefully.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tWe sincerely believe that you should always know what data we collect from you, the purposes for which such data is used, and that you should have the ability to make informed decisions about what you want to share with us.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tTherefore, we want to be transparent about: \n\t\t\t\t
    (i) how and why we collect, store and use your personal data in the various capacities in which you interact with us; and \n\t\t\t\t
    (ii) the rights that you have to determine the contours of this interaction.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tWhile we would strongly advise you to read the Policy in full, the following summary will give you a snapshot of the salient points covered herein:\n\t\t\t

    \n\n\t\t\t

    \n\t\t\t\tThis Policy details the critical aspects governing your personal data relationship with AccessQue which is owned and operated by Avantao Technologies(opc)private Limited Private Limited, a company incorporated under the laws of India, and having its registered office at #39, NGEF Lane, 2nd Floor, Suite No.673 Indiranagar, Bangalore, India 560 038

    \n\t\t\t\t

    \nYour personal data relationship with AccessQue varies based on the capacity in which you interact with us/avail of our products and solutions (“Services”). You could be:
    (i) a visitor to AccessQue.com (“Website”) or any pages thereof (“Visitor”)
    (ii) A person/entity availing of one of our Services (“Customer”); or
    (iii) an employee/agent/representative/appointee of a Customer who uses the said Service (“User”);\nBased on whether you are a Visitor, Customer or User, the type of data we collect and the purpose for which we use it will differ and this Policy details such variations;\nThis Policy is a part of and should be read in conjunction with our Terms of Service; and\nThis Policy will clarify the rights available to you vis-à-vis the personal data you share with us.

    \n

    \nIf you have any queries or concerns with this Policy, please contact our Grievance Officer (refer Section 12). If you do not agree with the Policy, we would advise you to not visit/use the Website or the AccessQue mobile application(s)/platform(s) (collectively “App”).\n

    \nINFORMATION WE COLLECT AND HOW WE USE IT
    \nTYPE OF USER\tVISITOR\tCUSTOMER\tUSER WHAT DATA WE MAY COLLECT\n

    Your IP Address
    \nYour location\n

    \n\n\t\t\t

    How you behave on the Website, (what pages you land on, how much time you spend, etc.);\n\t\t\t\tWhat Device you use to access the Website and its details (model, operating system, etc.);\n\t\t\t\tCookies and Web Beacon data; and\n\t\t\t\tData from third parties who have your explicit consent to lawfully share that data. \n\t\t\t\tIf you submit an inquiry through the Website, we will ask for your:\n\t\t\t\tName; and e-mail.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tThe name and e-mail of your representative who signs up for a Service on your behalf; and\nCredit Card/Debit Card/Other Payment Mode information to check your financial qualifications, detect fraud and facilitate payments for our Services.\nYour name, e-mail;\nYour IP Address;\nYour location unless you deactivate location services in the relevant section of the App;\nHow you behave in the relevant product environment and use the features;\nWhat device you use to access the Website/App and its details (model, operating system, etc.);\nCookies and Web Beacon data;\nData from third parties who have your explicit consent to lawfully share that data;\nSMSs that you send or receive on your Device from your existing and prospective customers (“Leads”) if you have opted for the same in the relevant section of the App;\nPhone call logs to record your call activities with Leads (i.e. call time, duration, phone number of relevant Lead) if you have opted for the same in the relevant section of the App; and\nE-mails that you send and receive for the purpose of reading them to sync with your Leads, if you have opted to sync your e-mail with your AccessQue account using our E-mail Sync App. If you do choose to activate SMS and Call Log parsing or E-mail Sync to improve your experience, you can be sure that we will never collect or store any information that does not pertain to Leads.\nHOW AND WHY WE USE IT\tWe use this information to analyse and identify your behaviour and enhance the interactions you have with the Website.\n\t\t\t

    \n\t\t\t

    If you submit your details and give us your consent, we may use your data to send you e-mails/newsletters, re-target AccessQue advertisements or re-market our Services using services from third-parties like Facebook and Google.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tWe collect this data in order to help you register for and facilitate provision of our Services.\nWe also use this data to enable you to make payments for our Services. We use a third-party service provider to manage payment processing. This service provider is not permitted to store, retain, or use information you provide except for the sole purpose of payment processing on our behalf.\n\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tIf you give us your consent, we may send you newsletters and e-mails to market other products and services we may provide.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tWe collect this data in order to facilitate provision of our Services.\nWe will occasionally send you e-mails regarding changes or updates to the Service that you are using. In the event you report an issue with a Service, we may also screen/video record your Device only when you use the App for a limited time period to help us better understand how to address the issue.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tIf you give us your consent, we may send you newsletters and e-mails to market other products and services we may provide.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tWe may also conduct anonymized usage behaviour analysis at the aggregate level to determine how the features of a particular Service are being used.\n\n\t\t\t

    \n\t\t\tWHAT ARE THE COOKIES AND WEB BEACONS REFERRED TO ABOVE?\n\t\t\t

    \n\t\t\t\tTYPE OF FILE\tCOOKIES\tWEB BEACON\nWHAT THEY DO\tCookies are text files which are sent from our server and downloaded to your Device when you visit our Website.\nThey are useful because they allow us to recognize your Device when you return. You can disable them through your browser should you so wish.\n\n\t\t\t

    \n\t\t\t

    You can find more information about cookies at: www.allaboutcookies.org

    \n\t\t\t

    \n\t\t\t\tWeb Beacon (also known as Clear GIF, Web Bugs or Pixel Tag) is a tiny picture file embedded on the Website/App that tracks your behaviour and navigation. It is similar to a cookie in what it does, but it doesn’t get downloaded on to your Device.\n\t\t\t

    \n\t\t\t

    You can find more information about Web Beacons at: http://www.allaboutcookies.org/faqs/beacons.html\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tWHAT THEY WON’T DO\t\nHarvest any personally identifiable information; or\nContain any executable software, malicious code or virus.\n\nFOR THE AVOIDANCE OF ANY DOUBT, WE SHOULD CLARIFY THAT IN THE EVENT WE ANONYMIZE AND AGGREGATE INFORMATION COLLECTED FROM YOU, WE WILL BE ENTITLED TO USE SUCH ANONYMIZED DATA FREELY, WITHOUT ANY RESTRICTIONS OTHER THAN THOSE SET OUT UNDER APPLICABLE LAW.\n\n\t\t\t

    \n\t\t\t

    Where such data is not being used by us to render Services to you, we shall explicitly seek your consent for using the same. You can choose to withdraw this consent at any time, here.\n\t\t\t

    \n\n\n\t\t\tYOUR RIGHTS & PREFERENCES AS A DATA SUBJECT IN THE EU\n\t\t\t

    \n\t\t\t\tIt might have come to your attention that a new law was passed in the European Union (EU) called the General Data Protection Regulation (GDPR). The GDPR gives certain rights to individuals who are EU data subjects, in relation to their personal data.\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tSubject to the GDPR and applicable law’s limitations, the rights afforded to you if you are an EU data subject are:\n\t\t\t

    \n\n\t\t\tRIGHT TO BE INFORMED\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to be informed about the manner in which any of your personal data is collected or used which we have endeavoured to do by way of this Policy.\n\t\t\t

    \n\n\t\t\tRIGHT OF ACCESS\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to access the personal data you have provided by requesting us to provide you with the same.\n\t\t\t

    \n\n\t\t\tRIGHT TO RECTIFICATION\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to request us to amend or update your personal data if it is inaccurate or incomplete.\n\t\t\t

    \n\n\t\t\tRIGHT TO ERASURE\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to request us to delete your personal data.\n\t\t\t

    \n\t\t\tRIGHT TO RESTRICT\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to request us to temporarily or permanently stop processing all or some of your personal data.\n\t\t\t

    \n\t\t\tRIGHT TO OBJECT\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right, at any time, to object to our processing of your personal data under certain circumstances. You have an absolute right to object to us processing your personal data for the purposes of direct marketing.\n\t\t\t

    \n\t\t\tRIGHT TO DATA PORTABILITY\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to request us to provide you with a copy of your personal data in electronic format and you can transmit that personal data for using another third-party’s product/service.\n\t\t\t

    \n\t\t\tRIGHT NOT TO BE SUBJECT TO AUTOMATED DECISION-MAKING\n\t\t\t

    \t\t\t\t\n\t\t\t\tYou have a right to not be subject to a decision based solely on automated decision making, including profiling.\n\t\t\t

    \n\t\t\t

    \t\t\t\t\n\t\t\t\tIn case you want to exercise the rights set out above you can contact our Grievance Officer whose details are set out in Section 12 below.\n\t\t\t

    \n\t\t\t

    \t\t\t\t\n\t\t\t\tThe data provided by you as a Visitor, or when you sign up as a Customer / User or register for our Services will be processed by us for the purpose of rendering Services to you or in order to take steps prior to rendering such Services, at your request. Where such data is not being used by us to render Services to you, we shall explicitly seek your consent for using the same. You can choose to withdraw this consent at any time, here. Additionally, we may process your data to serve legitimate interests.\n\t\t\t

    \n\t\t\t

    Accordingly, the grounds on which we can engage in processing are as follows:

    \n\t\t\t

    \n\t\t\t\tNATURE OF DATA\tGROUNDS\nVisitor Data Consent;\nPerformance of a Contract; and\nLegitimate Interest\nAccount Registration Data\t\nPerformance of a Contract; and\nLegitimate Interest\nPayment Data\t\nPerformance of a Contract;\nCompliance with applicable laws; and\nLegitimate Interest\nService Usage Data\t\nPerformance of a Contract; and\nLegitimate Interest\nData for Marketing our Services\t\nConsent; and\nLegitimate Interest\n\n\t\t\t

    \n\t\t\t

    If you believe we have used your personal data in violation of the rights above or have not responded to your objections, you may lodge a complaint with your local supervisory authority.\n\t\t\t

    \n\t\t\tAdditionally, please note:\n\t\t\t

    \n\t\t\t\tIf you are a Customer/User using one of our Services to collect data about an EU data subject from third-parties, it shall be your sole obligation to inform such data subject about the source of such data; and\nWe do not collect any Special Categories of Personal Data. Further, if you are a Customer/User, you hereby agree and acknowledge that you shall not, under any circumstances, whether directly or indirectly, use our Services to collect or process Special Categories of Personal Data or transfer to us any such data.\nThe term “Special Categories of Personal Data” shall have the meaning ascribed to it under the GDPR and shall include, without limitation, data pertaining to a data subject’s race, ethnic origin, genetics, political affiliations, biometrics, health or sexual orientation.\n\t\t\t

    \n\t\t\t\n\t\t\t\tYOUR RIGHTS UNDER CALIFORNIA CONSUMER PRIVACY ACT (CCPA)\n\t\t\t\n\t\t\t
    \n\t\t\tAccessQue complies with CCPA by giving you the five privacy rights for California consumers:\n\t\t\t

    \n\t\t\t\tThe right to know about the personal information a business collects about them and how it is used and shared\tYou have a right to be informed about the manner in which any of your personal data is collected or used which we have endeavoured to do by way of this Policy.

    \n\t\t\t\t

    \nThe right to delete personal information collected from them\tAccessQue gives you the right to request us to delete your personal data.

    \n\t\t\t\t

    \nThe right to opt-out of the sale of their personal information\tAccessQue does not sell any data of any of its users/customer/lead.

    \n\t\t\t\t

    \nThe right to non-discrimination for exercising their CCPA rights\tAccessQue assures no discrimination against consumers exercising their right of privacy under CCPA\nNo waiver of privacy rights\tAccessQue assures that it will not ask for waiver of privacy rights from California consumers

    \n\t\t\t\t

    \nIn case you want to exercise the rights set out above you can contact our Grievance Officer whose details are set out in Section 12 below.\n\n\t\t\t

    \n\t\t\tRETENTION OF PERSONAL INFORMATION\n\t\t\t

    \n\t\t\t\tWe will store any personal data we collect from you as long as it is necessary in order to facilitate your use of the Services and for ancillary legitimate and essential business purposes – these include, without limitation, for improving our Services, attending to technical issues, and dealing with disputes.

    \n\t\t\t

    \nWe may need to retain your personal data even if you seek deletion thereof, if it is needed to comply with our legal obligations, resolve disputes and enforce our agreements.

    \n\t\t\t

    \nIf you are a Customer, please be advised that: (i) you will need to inform your Leads about how you store and deal with any data you collect from them using one of our Services, in compliance with applicable laws including the GDPR; and (ii) after you terminate your usage of a Service, we may, unless legally prohibited, delete all data provided or collected by you (including Lead information) from our servers.\n\t\t\t

    \n\t\t\tTRACKING BY OUR ADVERTISEMENT PARTNERS\n\t\t\t

    \nUpon receiving your specific consent, we may share the data we collect from Cookies or Web Beacons with our advertisement partners to track your visits, establish your non-personal identity and present you with targeted advertisements about our Services.\n\t\t\t

    \n\t\t\tTOOLS USED BY OUR CUSTOMERS\n

    If you are a Customer, you are empowered to use proprietary or other third party technologies (for example Flash Cookies) on your website and host them in our App. If you do, you agree and acknowledge that it is your sole obligation to inform your Leads about any data you collect by using such technologies and the policies by which such collection is bound.\n

    \nCOMPLIANCE WITH CHILDREN’S ONLINE PRIVACY PROTECTION ACT\n

    As a business service, we neither target our Services toward nor knowingly collect any personal information from any individuals under the age of 13.

    \nTRANSFER OF INFORMATION\n

    In order for us to facilitate our global operations, we may transfer and access the data we collect and process in accordance with this Policy, to our group companies around the world. Your rights and protections will, under no circumstances, be diluted by this transfer.

    \n

    Further, in the ordinary course of business, we may employ other companies and people to assist us in providing certain components of our Services in compliance with the provisions of this Policy. To do so, we may need to share your data with them.

    \n

    Where applicable – if the entities to which these transfers are effected are not situated in countries deemed ‘adequate’ by the European Commission, we shall enter into appropriate Data Protection Addendums with the transferee parties that comprehensively protect your data. We shall also put in place industry-standard technical and organizational measures (including robust data handling policies) to ensure that such transfers are completed in accordance with applicable laws.\n

    \n

    Some of the examples of where we may sub-contract processing activities to third parties include—data analysis, marketing assistance, processing credit card payments, and providing customer service.

    \nTHIRD PARTY LINKS\n

    \n\tWe may display links to third-party websites or applications on our Website or App for advertising or providing you with relevant content. We will not be responsible for such third-party websites or applications if you choose to access them. If you provide any data to such website/application, please ensure you read their policies given that you will no longer by bound by this Policy in doing so.\n

    \nCOMPELLED DISCLOSURE\n

    In addition to the purposes set out in the Policy, we may disclose any data we collected or processed from you if it is required:

    \n

    Under applicable law or to respond to a legal process, such as a search warrant, court order, or subpoena;\n\tTo protect our safety, your safety or the safety of others or in the legitimate interest of any party in the context of national security, law enforcement, litigation, criminal investigation or to prevent death or imminent bodily harm;\n\tTo investigate fraud or violation of our Acceptable Use Policy;\n\tIf required in connection with legal proceedings brought against AccessQue, its officers, employees, affiliates, customers or vendors; or\n\tTo establish, exercise, protect, defend and enforce our legal rights.\n

    \nSECURITY OF YOUR PERSONAL INFORMATION\n

    We implement industry-standard technical and organizational measures by using a variety of security technologies and procedures to help protect your data from unauthorized access, use, loss, destruction or disclosure. When we collect particularly sensitive data (such as a credit card number or your geo-location), it is encrypted using industry-standard cryptographic techniques including but not limited to SSL, TLS, RSA, and AES.\n

    \n

    Your password is your first line of defense once you set up a AccessQue account, so we recommend that you set a strong password which you never share with anyone and ensure you sign out of your AccessQue account once you have used that same.\n

    \n\nCONTACT OFFICER\n

    The name and contact details of our CONTACT Officer, who you may contact if you have any concerns, complaints or feedback pertaining to this Policy, are as follows:

    \n

    \nNAME:\tRajesh Muni
    \nADDRESS: #39, NGEF Lane,
    2nd Floor, Suite No.673 Indiranagar,
    Bangalore, India 560 038

    \nTEL:\t+91-9902587664
    \nEMAIL:\tadmin@avantao.com\n

    \n\nDISPUTE RESOLUTION\n

    \nIf you have an unresolved privacy or data use concern that we have not addressed satisfactorily, please contact our privacy Admin admin@avantao.com

    \t\t\t \n\t\t
    \n\t\t\n\t\t\n\t
    \n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\tCompany\n\t\t\tAbout Us\n\t\t
    \n\t\t
    \n\t\t\tPolicies\n\t\t\tPrivacy Policy\n\t\t\tTerms & Conditions\n\t\t
    \n\t\t
    \n\t\t\tDeveloped by
    \n\t\t\tAvantao Technologies\n\t\t
    \n\t
    \n\t\n\n\t\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'searchFilterTable'\n})\nexport class ActivityFilterPipe implements PipeTransform {\n\n transform(value: any, args?: any): any {\n if(!value)return null;\n if(!args)return value;\n\n args = args.toLowerCase();\n\n return value.filter(function(data: any){\n return JSON.stringify(data).toLowerCase().includes(args);\n });\n}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'searchFilterTable'\n})\nexport class ActivityFilterPipe2 implements PipeTransform {\n\n transform(value: any, args?: any): any {\n if(!value)return null;\n if(!args)return value;\n\n args = args.toLowerCase();\n\n return value.filter(function(data: any){\n return JSON.stringify(data).toLowerCase().includes(args);\n });\n}\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UhLeadsService } from 'src/app/pages/uhleads.service';\n\n@Component({\n selector: 'app-custom-pagination',\n templateUrl: './custom-pagination.component.html',\n styleUrls: ['./custom-pagination.component.css']\n})\nexport class CustomPaginationComponent implements OnInit {\n pageNo: Number = 1;\n totalPages: Number;\n onPageChange(pageNo: Number) {\n this.pageNo = pageNo;\n this.dashService.pageNumber.next(this.pageNo);\n }\n\n constructor( \n private dashService :UhLeadsService,\n ) { }\n\n ngOnInit(): void {\n this.dashService.totalPages.subscribe((res:any)=>{\n this.totalPages = res;\n });\n this.dashService.pageNumber.subscribe((res:any)=>{\n this.pageNo = res;\n });\n this.onPageChange(this.pageNo);\n document.getElementById(\"firstPage\").click();\n }\n\n}\n","\n\n\n / {{ pagination.totalPages }}\n\n\n","import {\n Directive,\n OnChanges,\n OnInit,\n SimpleChanges,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n Renderer2,\n HostBinding,\n HostListener\n } from \"@angular/core\";\nimport { UhLeadsService } from \"src/app/pages/uhleads.service\";\n \n @Directive({\n selector: \"[appPagination]\",\n exportAs: \"appPagination\"\n })\n export class PaginationDirective implements OnChanges, OnInit {\n @Input() pageNo = 1;\n @Input() totalPages = 1;\n\n @Output() pageChange = new EventEmitter();\n\n constructor(private el: ElementRef, private renderer: Renderer2,private dashService :UhLeadsService) {}\n\n ngOnInit() {\n // In case no value is passed\n this.setValue(this.pageNo);\n this.dashService.pageNumber.subscribe((res:any)=>{\n this.pageNo = res;\n });\n }\n\n ngOnChanges({ pageNo, totalPages }: SimpleChanges) {\n // Needs to be checked before pageNo\n if (totalPages) {\n this.onTotalPagesInput();\n }\n\n if (pageNo) {\n this.onPageNoInput();\n }\n }\n\n @HostListener(\"input\", [\"$event.target.value\"]) onInput(val) {\n this.setValue(this.getParsedValue(val));\n }\n\n @HostListener(\"change\", [\"$event.target.value\"]) onChange(val) {\n if (val === \"\") {\n this.setValue(1);\n }\n\n if (this.isOutOfRange(val)) {\n this.setValue(this.totalPages);\n }\n\n this.pageNo = Number(this.el.nativeElement.value);\n this.pageChange.emit(this.pageNo);\n }\n\n get isFirst(): boolean {\n return this.pageNo === 1;\n }\n\n get isLast(): boolean {\n return this.pageNo === this.totalPages;\n }\n\n first() {\n this.setPage(1);\n }\n\n prev() {\n this.setPage(Math.max(1, this.pageNo - 1));\n }\n\n next() {\n this.setPage(Math.min(this.totalPages, this.pageNo + 1));\n }\n\n last() {\n this.setPage(this.totalPages);\n }\n\n private setValue(val: string | number) {\n this.renderer.setProperty(this.el.nativeElement, \"value\", String(val));\n }\n\n private setPage(val: number) {\n this.pageNo = val;\n this.setValue(this.pageNo);\n this.pageChange.emit(this.pageNo);\n }\n\n private getParsedValue(val: string): string {\n return val.replace(/(^0)|([^0-9]+$)/, \"\");\n }\n\n private isOutOfRange(val: string): boolean {\n return Number(val) > this.totalPages;\n }\n\n private onTotalPagesInput() {\n if (typeof this.totalPages !== \"number\") {\n this.totalPages = 1;\n }\n }\n\n private onPageNoInput() {\n if (\n typeof this.pageNo !== \"number\" ||\n this.pageNo < 1 ||\n this.pageNo > this.totalPages\n ) {\n this.pageNo = 1;\n }\n\n this.setValue(this.pageNo);\n }\n }\n ","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { UhLeadsService } from 'src/app/pages/uhleads.service';\n\n@Component({\n selector: 'app-custom-paginationuhub',\n templateUrl: './custom-paginationuhub.component.html',\n styleUrls: ['./custom-paginationuhub.component.css']\n})\nexport class CustomPaginationuhubComponent implements OnInit, OnChanges {\n @Input() pageNumber: Number = 1;\n @Input() totalPages: Number;\n @Output() pageChange : EventEmitter = new EventEmitter();\n onPageChange(pageNo: Number) {\n this.pageNumber = pageNo;\n // this.dashService.pageNumber.next(this.pageNumber);\n this.pageChange.emit(this.pageNumber);\n }\n\n constructor( \n private dashService :UhLeadsService,\n ) { }\n\n ngOnInit(): void {\n this.onPageChange(this.pageNumber);\n document.getElementById(\"firstPage\").click();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes.totalPages){\n this.totalPages = changes.totalPages.currentValue;\n console.log(this.totalPages)\n }\n if(changes.pageNumber){\n this.pageNumber = changes.pageNumber.currentValue;\n }\n }\n}\n","\n\n\n / {{ pagination.totalPages }}\n\n\n","import { Directive, OnChanges, ElementRef, Input, OnInit } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[CountTo]'\n})\nexport class CountToDirective implements OnChanges, OnInit {\n @Input()\n CountTo: number;\n @Input()\n from = 0;\n @Input()\n duration = 4;\n\n e = this.el.nativeElement;\n num: number;\n refreshInterval = 30;\n steps: number;\n step = 0;\n increment: number;\n\n constructor(private el: ElementRef) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n if (this.CountTo) {\n this.start();\n }\n }\n\n calculate() {\n this.duration = this.duration * 1000;\n\n this.steps = Math.ceil(this.duration / this.refreshInterval);\n this.increment = ((this.CountTo - this.from) / this.steps);\n this.num = this.from;\n }\n\n tick() {\n setTimeout(() => {\n this.num += this.increment;\n this.step++;\n if (this.step >= this.steps) {\n this.num = this.CountTo;\n this.e.textContent = this.CountTo.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n } else {\n this.e.textContent = Math.round(this.num).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); // Math.round(this.num);\n this.tick();\n }\n }, this.refreshInterval);\n }\n\n start() {\n this.calculate();\n this.tick();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CountToDirective } from './directives/count-to.directive';\nimport { CustomPaginationComponent } from './custom-pagination/custom-pagination.component';\n\n\n\n@NgModule({\n declarations: [CountToDirective],\n imports: [\n CommonModule\n ],\n exports: [CountToDirective]\n})\nexport class SharedModule { }\n","// import { HttpClientService } from '@angular/common/http';\nimport { Injectable, EventEmitter, Output, Directive } from \"@angular/core\";\nimport { BehaviorSubject, Observable, Subject, of } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { environment } from \"src/environments/environment\";\nimport { HttpClientService } from \"../httpclient.service\";\nimport { ProjectService } from \"../pages/project-management/project.service\";\nimport { RoleService } from \"../pages/role-management/role.service\";\n\n@Directive()\n@Injectable({\n providedIn: \"root\",\n})\nexport class SharedService {\n public baseApiUrl: any = environment.baseApiUrl;\n public pageEvent: any = new EventEmitter();\n @Output() chatEvent: EventEmitter = new EventEmitter();\n public newMessage: any = new EventEmitter();\n public tagsEvent: any = new EventEmitter();\n public CompanyId = new BehaviorSubject(1);\n public companyCreated = new BehaviorSubject(\"\");\n public totalAgents = new BehaviorSubject([]);\n public displayMenu = new BehaviorSubject([]);\n public saveAddress = new BehaviorSubject<{\n latlng: any;\n address: string;\n types: string;\n }>(null);\n public traceLocation = new BehaviorSubject<{ destination: any; source: any }>(\n null\n );\n public switchToggle = new Subject();\n public toggleSidebar = new Subject();\n public removeLink = new Subject();\n public projectId = new BehaviorSubject(null);\n public currentProject = new BehaviorSubject(null);\n // public smsModuleForm=new BehaviorSubject(null);\n // public formSubmitted=new BehaviorSubject(null);\n\n constructor(\n private http: HttpClientService,\n private roleService: RoleService,\n private projectService: ProjectService\n ) {}\n\n getCountries() {\n return this.http.get(`${this.baseApiUrl}allCountries`);\n }\n\n getProjectAdmin(data): Observable {\n let userData = JSON.parse(localStorage.getItem(\"userData\"));\n // return this.projectId.pipe(\n // map((data) => {\n if (data) {\n if (userData[\"companyId\"] === 0) {\n return of(true);\n } else {\n return this.projectService\n .projectAdmin({ projectId: data, userId: userData[\"id\"] })\n .pipe(map((data) => data[\"admin\"]));\n }\n }\n // return of(null);\n // })\n\n // return of(null);\n }\n getAllCountryList(){\n return this.http.get(environment.countryCodesURL);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'transferSearch'\n})\nexport class TransferSearchPipe implements PipeTransform {\n\n transform(value: any, args?: any): any {\n if(!value)return null;\n if(!args)return value;\n\n args = args.toLowerCase();\n\n return value.filter(function(data: any){\n return JSON.stringify(data).toLowerCase().includes(args);\n });\n}\n\n}\n","import { Injectable } from '@angular/core';\nimport { io } from 'socket.io-client';\nimport { Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { FreJunService } from './pages/frejun.service';\nimport { UhLeadsService } from './pages/uhleads.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SocketService {\n status = new Subject();\n chatStatus = new Subject();\n recruiterLeadAdd = new Subject();\n socket: any;\n socketDetails: any = []\n constructor(\n private freJunService: FreJunService,\n private UuhLeadsService: UhLeadsService,\n ) { }\n connect(userId?: any) {\n this.socket = io(environment.socketUrl2, { transports: ['websocket'], query: { userId: userId } });\n this.socket.on('connect', (data) => {\n })\n this.socket.on('statusUpdated', data => {\n this.status.next('data emitted')\n })\n this.socket.on('chatStatus', data => {\n this.chatStatus.next(data);\n })\n this.socket.on('recruiterleadadd', data => {\n this.recruiterLeadAdd.next(data);\n });\n\n\n // FreJUn \n\n this.socket.on('socket-user', (data) => {\n this.socketDetails = data\n console.log(\"socket-user\", this.socketDetails)\n console.log(\"************************************************************************************\")\n\n })\n\n \n this.socket.on('call-answered', (data: any) => {\n console.log(\"************************************************************************************\")\n this.freJunService.callAnswered.next(data)\n console.log(\"call-answered\", data);\n \n })\n \n }\n\n sendMessage(){\n this.socket.emit('message','Test message sent')\n }\n disConnect() {\n this.socket.disconnect({test:'test'});\n }\n}\n","import { BehaviorSubject, Subject } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\nimport { io } from \"socket.io-client\";\nimport { environment } from \"src/environments/environment\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TwilioSocketService {\n socket: any;\n channelJoin = new Subject();\n callAccepted = new BehaviorSubject(null);\n callCancelled = new BehaviorSubject(null);\n\n constructor() {}\n connect() {\n this.socket = io(environment.socketUrl, {\n transports: [\"websocket\"],\n upgrade: false,\n path: \"/api/socket\",\n reconnection: true,\n reconnectionDelay: 500,\n reconnectionAttempts: 10,\n });\n this.channelJoin.subscribe((data) => {\n this.socket.emit(\"join\", { workerSID: data.sid });\n });\n\n //handle the event sent with socket.emit()\n this.socket.on(\"callAccepted\", (data) => {\n this.callAccepted.next(data);\n });\n this.socket.on(\"callCanceled\", (data) => {\n this.callCancelled.next(data);\n });\n // this.socket.on('connect', socket => {\n // });\n // this.socket.emit('test', \"Hello server\");\n\n this.socket.on(\"connect\", (data) => {\n });\n this.socket.on(\"disconnect\", () => {\n this.socket.connect();\n });\n }\n // disConnect() {\n // this.socket.disconnect();\n // }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n // RendererFactory2,\n} from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { Client, Conversation } from \"@twilio/conversations\";\nimport { BehaviorSubject, Observable, of } from \"rxjs\";\nimport { switchMap } from \"rxjs/operators\";\nimport { environment } from \"src/environments/environment\";\n// import Client from \"twilio-chat\";\nimport {\n connect,\n LocalVideoTrack,\n RemoteAudioTrack,\n RemoteParticipant,\n RemoteTrack,\n RemoteTrackPublication,\n RemoteVideoTrack,\n TrackStats,\n VideoTrack,\n} from \"twilio-video\";\nimport { SharedService } from \"../shared/shared.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class VideoCallingService {\n public screenShare;\n\n private twilioApiUrl = environment.twilioApiUrl;\n remoteVideo: ElementRef;\n localVideo: ElementRef;\n chatContainer!: ElementRef;\n previewing: boolean;\n msgSubject = new BehaviorSubject(\"\");\n roomObj: any;\n microphone = true;\n video = true;\n participants = new BehaviorSubject([]);\n\n roomParticipants;\n users: any[] = [];\n private renderer: Renderer2;\n el: any = {};\n chat: any;\n messages: any[] = [];\n conversation: any;\n messageUsers: any[] = [];\n\n constructor(\n private http: HttpClient,\n private sharedService: SharedService,\n private router: Router,\n private rendererFactory: RendererFactory2 //\n ) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n connectToRoom(accessToken: string, options): void {\n connect(accessToken, options).then(\n (room) => {\n this.roomObj = room;\n if (!this.previewing && options[\"video\"]) {\n this.startLocalVideo();\n this.previewing = true;\n }\n this.roomParticipants = room.participants;\n room.participants.forEach((participant) => {\n this.addParticipant(participant);\n this.attachParticipantTracks(participant);\n });\n\n room.on(\"participantDisconnected\", (participant) => {\n this.detachTracks(participant);\n // this.removeParticipant(participant);\n\n participant.tracks.forEach((track) => {\n // this.subscribe(track, participant);\n });\n });\n\n room.on(\"participantConnected\", (participant) => {\n this.roomParticipants = room.participants;\n if (!this.findParticipant(participant)) {\n this.addParticipant(participant);\n this.attachParticipantTracks(participant);\n }\n });\n // When a Participant adds a Track, attach it to the DOM.\n // room.on(\"trackPublished\", (track, participant) => {\n // this.trackPublished(track, participant);\n // });\n // When a Participant removes a Track, detach it from the DOM.\n room.on(\"trackDisabled\", (track, participant) => {\n let user = this.findParticipant(participant);\n if (track.kind === \"audio\") {\n user[\"audioElement\"] = null;\n }\n if (track.kind === \"video\") {\n user[\"videoElement\"] = null;\n this.disablingVideo(participant);\n }\n this.participants.next(this.users);\n // this.detachTracks(track);\n // // this.detachTracks([track]);\n // let participant=\n });\n room.on(\n \"trackSubscribed\",\n (track, participantPublication, participant) => {\n if (track.kind === \"video\" && track.name === \"screen\") {\n this.attachScreenShare(track, participant);\n }\n }\n );\n room.on(\"trackUnsubscribed\", (track, participant) => {\n if (track.kind === \"video\" && track.name === \"screen\") {\n this.detachScreenShare(track);\n }\n });\n room.on(\"trackEnabled\", (track, participant) => {\n let user = this.findParticipant(participant);\n if (track.kind === \"video\") {\n this.enablingVideo(participant, track);\n }\n if (track.kind === \"audio\") {\n user[\"audioElement\"] = track;\n }\n if (track.kind === \"video\") {\n user[\"videoElement\"] = track;\n }\n this.participants.next(this.users);\n });\n\n room.once(\"disconnected\", (room) => {\n room.localParticipant.tracks.forEach((track) => {\n });\n });\n },\n (error) => {\n alert(error.message);\n }\n );\n }\n\n getToken(id: any, body: any): Observable {\n return this.http.post(`${this.twilioApiUrl}${id}/video/token`, body);\n }\n\n mute() {\n this.roomObj.localParticipant.audioTracks.forEach(function (audioTrack) {\n audioTrack.track.disable();\n });\n this.microphone = false;\n }\n\n unmute() {\n this.roomObj.localParticipant.audioTracks.forEach(function (audioTrack) {\n audioTrack.track.enable();\n });\n this.microphone = true;\n }\n\n turnOffVideo() {\n this.roomObj.localParticipant.videoTracks.forEach(function (audioTrack) {\n audioTrack.track.disable();\n });\n this.video = false;\n }\n\n turnOnVideo() {\n this.roomObj.localParticipant.videoTracks.forEach(function (audioTrack) {\n audioTrack.track.enable();\n });\n this.video = true;\n }\n\n attachParticipantTracks(participant: RemoteParticipant): void {\n participant.tracks.forEach((part) => {\n this.trackPublished(part, participant);\n });\n }\n\n trackPublished(\n publication: RemoteTrackPublication,\n participant: RemoteParticipant\n ) {\n publication.on(\"subscribed\", (track) => {\n let remoteUser = this.users.find(\n (data) => data[\"identity\"] === participant.identity\n );\n if (track.kind === \"audio\") {\n if (remoteUser) {\n remoteUser[\"audioElement\"] = track.attach();\n remoteUser[\"audioTrack\"] = track;\n }\n }\n if (track.kind === \"video\") {\n if (remoteUser) {\n remoteUser[\"videoElement\"] = track.attach();\n remoteUser[\"videoTrack\"] = track;\n }\n }\n if (remoteUser) {\n if (track.kind === \"audio\") {\n remoteUser[\"audioElement\"] = track.isEnabled;\n }\n if (track.kind === \"video\") {\n remoteUser[\"videoElement\"] = track.isEnabled;\n }\n }\n this.participants.next(this.users);\n if (remoteUser) {\n this.attachTracks(track, participant);\n }\n });\n }\n\n attachTracks(track, participant: RemoteParticipant) {\n const element = track.attach();\n if (track.kind === \"video\") {\n this.renderer.data.id = track.sid;\n const divElement = this.renderer.createElement(\"div\");\n this.renderer.addClass(divElement, \"video-thumb\");\n this.renderer.setAttribute(divElement, \"id\", participant.sid);\n const divElement2 = this.renderer.createElement(\"div\");\n this.renderer.addClass(divElement2, \"video-status\");\n let text = this.renderer.createText(participant.identity);\n this.renderer.appendChild(divElement2, text);\n this.renderer.appendChild(divElement, divElement2);\n this.renderer.appendChild(divElement, element);\n this.renderer.setStyle(element, \"height\", \"100%\");\n this.renderer.setStyle(element, \"max-width\", \"100%\");\n this.renderer.appendChild(this.remoteVideo.nativeElement, divElement);\n }\n if (track.kind === \"audio\") {\n this.renderer.appendChild(this.remoteVideo.nativeElement, element);\n }\n }\n\n startLocalVideo(): void {\n this.roomObj.localParticipant.videoTracks.forEach((publication) => {\n const element = publication.track.attach();\n this.renderer.data.id = publication.track.sid;\n this.renderer.appendChild(this.localVideo.nativeElement, element);\n });\n }\n\n detachTracks(participant: RemoteParticipant): void {\n let element = document.getElementById(participant.sid);\n element.remove();\n this.users = this.users.filter(\n (data) => data[\"identity\"] !== participant.identity\n );\n let user = this.users.filter(\n (data) => data[\"identity\"] !== participant.identity\n );\n this.participants.next(this.users);\n }\n\n addParticipant(participant: RemoteParticipant) {\n if (!this.users.find((data) => data[\"identity\"] === participant.identity)) {\n this.users.push({\n identity: participant.identity,\n sid: participant.sid,\n });\n }\n }\n\n findParticipant(participant: RemoteParticipant) {\n return this.users.find((user) => user[\"identity\"] === participant.identity);\n }\n\n private subscribe(\n publication: RemoteTrackPublication | any,\n participant: RemoteParticipant\n ) {\n if (publication && publication.on) {\n\n publication.on(\"subscribed\", (track: RemoteTrack) => {\n this.attachTracks(track, participant);\n });\n publication.on(\"unsubscribed\", (track: RemoteTrack) =>\n this.detachTracks(participant)\n );\n }\n }\n\n private disablingVideo(participant: RemoteParticipant) {\n let element = document.querySelector(`#${participant.sid} video`);\n let parent = document.querySelector(`#${participant.sid}`);\n const divElement = document.createElement(\"div\");\n divElement.classList.add(\"video_off\");\n parent.appendChild(divElement);\n }\n private enablingVideo(\n participant: RemoteParticipant,\n publication: RemoteTrackPublication\n ) {\n let element = document.querySelector(`#${participant.sid} .video_off`);\n element.remove();\n }\n private disconnect() {\n this.roomObj.disconnect();\n this.router.navigate([\"/home\"]);\n }\n\n shareScreen() {\n try {\n if (!this.screenShare) {\n const mediaDevices = navigator.mediaDevices as any;\n // @ts-ignore\n mediaDevices\n .getDisplayMedia()\n\n .then((stream) => {\n this.screenShare = new LocalVideoTrack(stream.getTracks()[0], {\n name: \"screen\",\n logLevel: {\n default: \"warn\",\n media: \"warn\",\n webrtc: \"warn\",\n signaling: \"warn\",\n },\n });\n this.roomObj.localParticipant.publishTrack(this.screenShare);\n this.screenShare.mediaStreamTrack.onended = () => {\n this.shareScreen();\n };\n })\n .catch((err) => {\n });\n } else {\n this.roomObj.localParticipant.unpublishTrack(this.screenShare);\n this.screenShare.stop();\n this.screenShare = null;\n // shareScreen.innerHTML = 'Share screen';\n }\n } catch (err) {\n }\n }\n\n async connectToChat(token, conversationSid) {\n const client = await new Client(token);\n this.conversation = await client.getConversationBySid(conversationSid);\n\n this.conversation.on(\"messageAdded\", (message) => {\n if (!this.messageUsers.find((data) => data === message.state.author)) {\n message[\"backgroundColor\"] = this.setBg();\n this.messages.push(message);\n } else {\n this.messages.push(message);\n }\n setTimeout(() => {\n this.chatContainer.nativeElement.scrollTop =\n this.chatContainer.nativeElement.scrollHeight;\n }, 20);\n });\n const messages = await this.conversation.getMessages(30);\n for (let mess of messages.items) {\n if (\n !this.messageUsers.find((data) => data[\"name\"] === mess.state.author)\n ) {\n mess[\"backgroundColor\"] = this.setBg();\n this.messageUsers.push({\n name: mess.state.author,\n backgroundColor: mess[\"backgroundColor\"],\n });\n this.messages.push(mess);\n } else {\n let user = this.messageUsers.find(\n (data) => data[\"name\"] === mess.state.author\n );\n mess[\"backgroundColor\"] = user[\"backgroundColor\"];\n this.messages.push(mess);\n }\n }\n setTimeout(() => {\n this.chatContainer.nativeElement.scrollTop =\n this.chatContainer.nativeElement.scrollHeight;\n }, 20);\n // client.\n }\n\n sendMessage(value) {\n this.conversation.sendMessage(value);\n // chatInput.value = '';\n }\n\n attachScreenShare(track: VideoTrack, participant: RemoteParticipant) {\n let element = document.querySelector(\"#localvideo video\");\n let status = document.querySelector(\"#localvideo .video-status\");\n // let copy = element;\n let localelement = document.querySelector(\"#localvideo\");\n localelement.appendChild(track.attach());\n // let newElement = document.createElement(\"div\");\n let statusElement = document.createElement(\"div\");\n statusElement.classList.add(\"video-status\");\n // statusElement.innerHTML = ``;\n statusElement.innerHTML = `\n ${participant.identity}\n
    \n `;\n // element.remove();\n let createElement = document.getElementById(\"remotevideo\");\n let newDiv = document.createElement(\"div\");\n newDiv.setAttribute(\"id\", \"tempvideo\");\n newDiv.classList.add(\"video-thumb\");\n newDiv.appendChild(element);\n newDiv.appendChild(status);\n localelement.appendChild(statusElement);\n createElement.appendChild(newDiv);\n }\n\n detachScreenShare(track: VideoTrack) {\n let element = document.querySelector(\"#tempvideo video\");\n let tempel = document.querySelector(\"#tempvideo .video-status\");\n let remote = document.querySelector(\"#localvideo .video-status\");\n remote.remove();\n let localEl = document.querySelector(\"#localvideo video\");\n localEl.remove();\n let local = document.querySelector(\"#localvideo\");\n local.appendChild(element);\n local.appendChild(tempel);\n let temp = document.querySelector(\"#tempvideo\");\n temp.remove();\n }\n\n setBg() {\n const randomColor = Math.floor(Math.random() * 16777215).toString(16);\n return \"#\" + randomColor;\n // document.body.style.backgroundColor = \"#\" + randomColor;\n // color.innerHTML = \"#\" + randomColor;\n }\n\n updateComments(body: {\n Comments: string;\n Description: string;\n Status: string;\n FollowUpdate: any;\n }) {\n return this.http.post(`${environment.baseApiUrl}updateDemoRec`, body);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from \"@angular/animations\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { Notification } from \"src/app/interfaces/notification.type\";\nimport { NotificationsService } from \"src/app/notification.service\";\nimport { UhLeadsService } from \"src/app/pages/uhleads.service\";\nimport { UhubDashboardService } from \"src/app/pages/uhub-dashboard/uhub-dashboard.service\";\n\n@Component({\n selector: \"simple-notification\",\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger(\"enterLeave\", [\n // Fade\n state(\"fade\", style({ opacity: 1 })),\n transition(\"* => fade\", [\n style({ opacity: 0 }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\"fadeOut\", style({ opacity: 0 })),\n transition(\"fade => fadeOut\", [\n style({ opacity: 1 }),\n animate(\"300ms ease-in-out\"),\n ]),\n\n // Enter from top\n state(\"fromTop\", style({ opacity: 1, transform: \"translateY(0)\" })),\n transition(\"* => fromTop\", [\n style({ opacity: 0, transform: \"translateY(-5%)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\"fromTopOut\", style({ opacity: 0, transform: \"translateY(5%)\" })),\n transition(\"fromTop => fromTopOut\", [\n style({ opacity: 1, transform: \"translateY(0)\" }),\n animate(\"300ms ease-in-out\"),\n ]),\n\n // Enter from right\n state(\"fromRight\", style({ opacity: 1, transform: \"translateX(0)\" })),\n transition(\"* => fromRight\", [\n style({ opacity: 0, transform: \"translateX(5%)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\n \"fromRightOut\",\n style({ opacity: 0, transform: \"translateX(-5%)\" })\n ),\n transition(\"fromRight => fromRightOut\", [\n style({ opacity: 1, transform: \"translateX(0)\" }),\n animate(\"300ms ease-in-out\"),\n ]),\n\n // Enter from bottom\n state(\"fromBottom\", style({ opacity: 1, transform: \"translateY(0)\" })),\n transition(\"* => fromBottom\", [\n style({ opacity: 0, transform: \"translateY(5%)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\n \"fromBottomOut\",\n style({ opacity: 0, transform: \"translateY(-5%)\" })\n ),\n transition(\"fromBottom => fromBottomOut\", [\n style({ opacity: 1, transform: \"translateY(0)\" }),\n animate(\"300ms ease-in-out\"),\n ]),\n\n // Enter from left\n state(\"fromLeft\", style({ opacity: 1, transform: \"translateX(0)\" })),\n transition(\"* => fromLeft\", [\n style({ opacity: 0, transform: \"translateX(-5%)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\"fromLeftOut\", style({ opacity: 0, transform: \"translateX(5%)\" })),\n transition(\"fromLeft => fromLeftOut\", [\n style({ opacity: 1, transform: \"translateX(0)\" }),\n animate(\"300ms ease-in-out\"),\n ]),\n\n // Rotate\n state(\"scale\", style({ opacity: 1, transform: \"scale(1)\" })),\n transition(\"* => scale\", [\n style({ opacity: 0, transform: \"scale(0)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\"scaleOut\", style({ opacity: 0, transform: \"scale(0)\" })),\n transition(\"scale => scaleOut\", [\n style({ opacity: 1, transform: \"scale(1)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n\n // Scale\n state(\"rotate\", style({ opacity: 1, transform: \"rotate(0deg)\" })),\n transition(\"* => rotate\", [\n style({ opacity: 0, transform: \"rotate(5deg)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n state(\"rotateOut\", style({ opacity: 0, transform: \"rotate(-5deg)\" })),\n transition(\"rotate => rotateOut\", [\n style({ opacity: 1, transform: \"rotate(0deg)\" }),\n animate(\"400ms ease-in-out\"),\n ]),\n ]),\n ],\n templateUrl: \"./notification.component.html\",\n styleUrls: [\"./notification.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NotificationComponent implements OnInit, OnDestroy {\n @Input() public timeOut: number;\n @Input() public showProgressBar: boolean;\n @Input() public pauseOnHover: boolean = true;\n @Input() public clickToClose: boolean;\n @Input() public clickIconToClose: boolean;\n @Input() public maxLength: number;\n @Input() public theClass: string;\n @Input() public rtl: boolean;\n @Input() public animate: string;\n @Input() public position: number;\n @Input() public item: Notification;\n\n // Progress bar variables\n public title: any;\n public content: any;\n\n public titleIsTemplate = false;\n public contentIsTemplate = false;\n\n public progressWidth = 0;\n public safeSvg: SafeHtml;\n\n private stopTime = false;\n private timer: any;\n private steps: number;\n private speed: number;\n private count = 0;\n private start: any;\n\n private diff: any;\n private icon: string;\n notificationType: any;\n leadId: any;\n notificationId: any;\n userData: any;\n audio = new Audio();\n saved: boolean = false;\n\n constructor(\n private notificationService: NotificationsService,\n private uhleadsService: UhLeadsService,\n private domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n private zone: NgZone,\n public uhubleadsService: UhubDashboardService\n ) { }\n\n ngOnInit(): void {\n this.userData = JSON.parse(localStorage.getItem(\"userData\"));\n this.notificationService\n .getAudio(\n this.userData.mail,\n \"CRM\",\n this.userData.token,\n this.userData.soundId\n )\n .subscribe((res: any) => {\n this.play(res.listOfSounds[0].soundPath);\n });\n\n if (this.item.override) {\n this.attachOverrides();\n }\n\n if (this.animate) {\n this.item.state = this.animate;\n }\n\n if (this.timeOut !== 0) {\n this.startTimeOut();\n }\n\n this.contentType(this.item.title, \"title\");\n this.contentType(this.item.content.description, \"content\");\n this.content = this.item.content.description;\n this.notificationType = this.item.content.notificationtype;\n this.leadId = this.item.content.leadId;\n this.notificationId = this.item.content.notififcaitonReadId;\n\n this.safeSvg = this.domSanitizer.bypassSecurityTrustHtml(\n this.icon || this.item.icon\n );\n if (this.item.content.Platform === 'Recruiter') {\n this.notificationService.recruiterUnreadCount({\n ProjectId: this.item.content.ProjectId,\n GUID: this.item.content.GUID\n }).subscribe((data: any) => {\n console.log(data)\n console.log(data.unreadCount)\n this.uhubleadsService.unreadCountRecBehaviorSubject.next({\n id: this.item.content.GUID,\n count: data.unreadCount\n });\n }, (err) => {\n\n })\n }\n }\n\n play(url) {\n this.audio = new Audio();\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", url);\n source.setAttribute(\"type\", \"audio/mpeg\");\n this.audio.append(source);\n this.audio.load();\n const playPromise = this.audio.play();\n if (playPromise !== null) {\n playPromise.catch(() => {\n this.audio.play();\n });\n }\n }\n\n startTimeOut(): void {\n this.steps = this.timeOut / 10;\n this.speed = this.timeOut / this.steps;\n this.start = new Date().getTime();\n this.zone.runOutsideAngular(\n () => (this.timer = setTimeout(this.instance, this.speed))\n );\n }\n\n onEnter(): void {\n if (this.pauseOnHover) {\n this.stopTime = true;\n }\n }\n\n onLeave(): void {\n if (this.pauseOnHover) {\n this.stopTime = false;\n this.zone.runOutsideAngular(() =>\n setTimeout(this.instance, this.speed - this.diff)\n );\n }\n }\n\n onClick($e: MouseEvent): void {\n this.item.click!.emit($e);\n\n if (this.clickToClose) {\n this.remove();\n }\n }\n\n onClickIcon($e: MouseEvent): void {\n this.item.clickIcon!.emit($e);\n window.alert(\"Action\");\n\n if (this.clickIconToClose) {\n this.remove();\n }\n }\n\n mycustomremove() {\n this.remove();\n }\n\n // Attach all the overrides\n attachOverrides(): void {\n Object.keys(this.item.override).forEach((a) => {\n if (this.hasOwnProperty(a)) {\n (this)[a] = this.item.override[a];\n }\n });\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.timer);\n }\n\n private instance = () => {\n this.diff = new Date().getTime() - this.start - this.count * this.speed;\n\n if (this.count++ === this.steps) {\n this.remove();\n } else if (!this.stopTime) {\n if (this.showProgressBar) {\n this.progressWidth += 100 / this.steps;\n }\n\n this.timer = setTimeout(this.instance, this.speed - this.diff);\n }\n this.zone.run(() => this.cdr.detectChanges());\n };\n\n remove() {\n if (this.animate) {\n this.item.state = this.animate + \"Out\";\n setTimeout(() => {\n this.notificationService.set(this.item, false);\n }, 310);\n } else {\n this.notificationService.set(this.item, false);\n }\n }\n saveNotification(value) {\n this.notificationService\n .saveNotification({\n email: this.userData.mail,\n Platform: \"CRM\",\n \"saveType\": value,\n token: this.userData.token,\n notificationId: this.notificationId,\n })\n .subscribe((res: any) => {\n if (res.status == 200) {\n this.saved = value;\n }\n });\n }\n\n viewNotification() {\n if (this.item.content.Platform === 'Recruiter') {\n switch (this.item.content.notificationtype) {\n case 'rec-comment':\n case 'rec-comment-doc':\n this.uhubleadsService.viewReceivedLeadBehaviorSubject.next(this.item.content.GUID);\n break;\n case 'lead-add-rec':\n this.uhubleadsService.addLeadBehaviorSubject.next(this.item.content.GUID);\n break;\n case 'doc-upload':\n this.uhubleadsService.viewReceivedLeadBehaviorSubject.next(this.item.content.GUID);\n break;\n default:\n break;\n }\n }\n if (\n this.notificationType == \"LeadComments\" ||\n this.notificationType == \"Comments\"\n ) {\n this.uhleadsService.viewReceivedLead.next(this.leadId);\n }\n }\n\n deleteNotification() {\n this.notificationService\n .deleteNotification({\n email: this.userData.mail,\n Platform: \"CRM\",\n token: this.userData.token,\n notificationId: this.notificationId,\n })\n .subscribe((res: any) => {\n this.remove();\n this.notificationService.currentPage.next({ page: 1 });\n });\n }\n\n private contentType(item: any, key: string) {\n if (item instanceof TemplateRef) {\n this[key] = item;\n } else {\n this[key] = this.domSanitizer.bypassSecurityTrustHtml(item);\n }\n\n this[key + \"IsTemplate\"] = item instanceof TemplateRef;\n }\n}\n","\n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n\n \n
    \n
    \n\n
    \n \n
    \n\n \n
    \n
    \n\n \n\n
    \n \n\n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.scss']\n})\nexport class ProgressComponent implements OnInit {\n @Input() progress = 0;\n constructor() {}\n\n ngOnInit() {}\n}\n","
    \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { SettingsService } from \"./settings.service\";\n// import { ServiceService } from 'src/app/pages/services/service.service';\n// import { SettingsService } from '../settings.service';\n\n@Component({\n selector: \"app-settings\",\n templateUrl: \"./settings.component.html\",\n styleUrls: [\"./settings.component.scss\"],\n})\nexport class SettingsComponent implements OnInit {\n desktopOffValue = false;\n desktopOnValue = false;\n soundValue = false;\n soundId = 1;\n sounsData: any = [];\n currentItem: any;\n // audio: HTMLAudioElement;\n audio = new Audio();\n userData: any;\n sound = false;\n sounds: any;\n selectedSound: any;\n showNotifications = false;\n constructor(\n private SettingsService: SettingsService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) // public settingsService: SettingsService,\n // public services: ServiceService\n {}\n\n ngOnInit() {\n this.userData = JSON.parse(localStorage.getItem(\"userData\") || \"{}\");\n this.selectedSound = this.userData.soundId;\n if (this.userData.notification_subscribe == null) {\n this.userData.notification_subscribe = true;\n } else {\n this.sound = this.userData.notification_subscribe;\n }\n if (this.userData.notification_subscribe == true) {\n this.sound = true;\n }\n this.showNotifications = this.userData.notification_subscribe;\n // this.desktopOffValue = this?.userData?.notification_subscribe;\n // this.soundId = this.userData?.soundId;\n // this.listOfSounds()\n this.getSoundsList();\n }\n\n getSoundsList() {\n this.SettingsService.getSounds({\n email: this.userData.mail,\n Platform: \"CRM\",\n token: this.userData.token,\n }).subscribe((res: any) => {\n this.sounds = res.listOfSounds;\n });\n }\n\n playAudio(item) {\n this.audio = new Audio();\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", item.soundPath);\n source.setAttribute(\"type\", \"audio/mpeg\");\n this.audio.append(source);\n this.audio.load();\n const playPromise = this.audio.play();\n if (playPromise !== null) {\n playPromise.catch(() => {\n this.audio.play();\n });\n }\n\n this.SettingsService.updateNotificationAlert({\n email: this.userData.mail,\n Platform: \"CRM\",\n token: this.userData.token,\n id: item.id,\n }).subscribe((res: any) => {\n\n this.userData.soundId = item.id;\n localStorage.setItem(\"userData\", JSON.stringify(this.userData));\n\n });\n }\n\n subscription() {\n // if (this.showNotifications == true) {\n // this.showNotifications = false;\n // } else if(this.showNotifications == false){\n // this.showNotifications = true;\n // }\n this.SettingsService.updateSubscription({\n userId: this.userData.id,\n notification_subscribe: this.showNotifications,\n token: this.userData.token,\n Platform: \"CRM\",\n }).subscribe((res: any) => {\n this.showNotifications = res.notification_subscribe;\n this.userData.notification_subscribe = this.showNotifications;\n localStorage.setItem(\"userData\", JSON.stringify(this.userData));\n });\n }\n}\n","

    Notification Settings

    \n
    \n Sound On/Off\n\n
    \n \n
    \n
    \n \n {{i.id}}\n \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n Show Notifications\n
    ","import { Injectable } from \"@angular/core\";\nimport { HttpClientService } from \"src/app/httpclient.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class SettingsService {\n baseApiUrl = environment.baseApiUrl2;\n userData = JSON.parse(`${localStorage.getItem(\"userData\")}`);\n\n constructor(\n private http: HttpClientService){}\n\n getSounds(data) {\n return this.http.post(`${this.baseApiUrl}listOfSounds`,data);\n }\n\n updateNotificationAlert(data){\n return this.http.put(`${this.baseApiUrl}sounds/updateRingTone`,data);\n }\n\n updateSubscription(data){\n return this.http.post(`${this.baseApiUrl}notification_subscribe`,data);\n }\n}\n","import {\n Component, EventEmitter, OnInit, OnDestroy, ViewEncapsulation, Input, Output,\n ChangeDetectionStrategy, ChangeDetectorRef\n} from '@angular/core';\nimport {Subscription} from 'rxjs/Subscription';\nimport {Options} from 'src/app/interfaces/options.type';\nimport {Notification} from 'src/app/interfaces/notification.type';\nimport {NotificationsService} from 'src/app/notification.service';\n\n@Component({\n selector: 'simple-notifications',\n encapsulation: ViewEncapsulation.None,\n templateUrl: './simple-notifications.component.html',\n styleUrls: ['./simple-notifications.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SimpleNotificationsComponent implements OnInit, OnDestroy {\n\n @Input() set options(opt: Options) {\n this.attachChanges(opt);\n }\n\n @Output() onCreate = new EventEmitter();\n @Output() onDestroy = new EventEmitter();\n\n public notifications: Notification[] = [];\n public position: ['top' | 'bottom' | 'middle', 'right' | 'left' | 'center'] = ['bottom', 'right'];\n\n private lastNotificationCreated: Notification;\n private listener: Subscription;\n\n // Received values\n private lastOnBottom = true;\n private maxStack = 8;\n private preventLastDuplicates: any = false;\n private preventDuplicates = false;\n\n // Sent values\n public timeOut = 0;\n public maxLength = 0;\n public clickToClose = true;\n public clickIconToClose = false;\n public showProgressBar = true;\n public pauseOnHover = true;\n public theClass = '';\n public rtl = false;\n public animate: 'fade' | 'fromTop' | 'fromRight' | 'fromBottom' | 'fromLeft' | 'rotate' | 'scale' = 'fromRight';\n\n constructor(\n private service: NotificationsService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n // Listen for changes in the service\n this.listener = this.service.emitter\n .subscribe(item => {\n switch (item.command) {\n case 'cleanAll':\n this.notifications = [];\n break;\n\n case 'clean':\n this.cleanSingle(item.id!);\n break;\n\n case 'set':\n if (item.add) {\n this.add(item.notification!);\n } else {\n this.defaultBehavior(item);\n }\n break;\n\n default:\n this.defaultBehavior(item);\n break;\n }\n\n this.cdr.markForCheck();\n });\n }\n\n // Default behavior on event\n defaultBehavior(value: any): void {\n this.notifications.splice(this.notifications.indexOf(value.notification), 1);\n this.onDestroy.emit(this.buildEmit(value.notification, false));\n }\n\n\n // Add the new notification to the notification array\n add(item: Notification): void {\n item.createdOn = new Date();\n\n let toBlock: boolean = this.preventLastDuplicates || this.preventDuplicates ? this.block(item) : false;\n\n // Save this as the last created notification\n this.lastNotificationCreated = item;\n // Override icon if set\n if (item.override && item.override.icons && item.override.icons[item.type]) {\n item.icon = item.override.icons[item.type];\n }\n\n if (!toBlock) {\n // Check if the notification should be added at the start or the end of the array\n if (this.lastOnBottom) {\n if (this.notifications.length >= this.maxStack) {\n this.notifications.splice(0, 1);\n }\n\n this.notifications.push(item);\n } else {\n if (this.notifications.length >= this.maxStack) {\n this.notifications.splice(this.notifications.length - 1, 1);\n }\n\n this.notifications.splice(0, 0, item);\n }\n\n this.onCreate.emit(this.buildEmit(item, true));\n }\n }\n\n // Check if notifications should be prevented\n block(item: Notification): boolean {\n\n const toCheck = item.html ? this.checkHtml : this.checkStandard;\n\n if (this.preventDuplicates && this.notifications.length > 0) {\n for (let i = 0; i < this.notifications.length; i++) {\n if (toCheck(this.notifications[i], item)) {\n return true;\n }\n }\n }\n\n if (this.preventLastDuplicates) {\n\n let comp: Notification;\n\n if (this.preventLastDuplicates === 'visible' && this.notifications.length > 0) {\n if (this.lastOnBottom) {\n comp = this.notifications[this.notifications.length - 1];\n } else {\n comp = this.notifications[0];\n }\n } else if (this.preventLastDuplicates === 'all' && this.lastNotificationCreated) {\n comp = this.lastNotificationCreated;\n } else {\n return false;\n }\n return toCheck(comp, item);\n }\n\n return false;\n }\n\n checkStandard(checker: Notification, item: Notification): boolean {\n return checker.type === item.type && checker.title === item.title && checker.content === item.content;\n }\n\n checkHtml(checker: Notification, item: Notification): boolean {\n return checker.html ? checker.type === item.type && checker.title === item.title && checker.content === item.content && checker.html === item.html : false;\n }\n\n // Attach all the changes received in the options object\n attachChanges(options: any): void {\n Object.keys(options).forEach(a => {\n if (this.hasOwnProperty(a)) {\n (this)[a] = options[a];\n } else if (a === 'icons') {\n this.service.icons = options[a];\n }\n });\n }\n\n buildEmit(notification: Notification, to: boolean) {\n let toEmit: Notification = {\n createdOn: notification.createdOn,\n type: notification.type,\n icon: notification.icon,\n id: notification.id\n };\n\n if (notification.html) {\n toEmit.html = notification.html;\n } else {\n toEmit.title = notification.title;\n toEmit.content = notification.content;\n }\n\n if (!to) {\n toEmit.destroyedOn = new Date();\n }\n\n return toEmit;\n }\n\n cleanSingle(id: string): void {\n let indexOfDelete = 0;\n let doDelete = false;\n let noti;\n\n this.notifications.forEach((notification, idx) => {\n if (notification.id === id) {\n indexOfDelete = idx;\n noti = notification;\n doDelete = true;\n }\n });\n\n if (doDelete) {\n this.notifications.splice(indexOfDelete, 1);\n this.onDestroy.emit(this.buildEmit(noti, false));\n }\n }\n\n ngOnDestroy(): void {\n if (this.listener) {\n this.listener.unsubscribe();\n }\n }\n}\n","
    \n \n \n
    \n\n","export const environment = {\n production: false,\n baseApiUrl3: \"https://crmreferralapi.universityhub.com/api/\",\n twilioApiUrl: \"https://crmtwilioapi.universityhub.com/api/\",\n SMSapiurl: \"https://crmtwilioapi.universityhub.com/api/\",\n socketUrl: \"https://crmtwilioapi.universityhub.com/\",\n socketUrl2: \"https://crmservicesapi.universityhub.com/\",\n baseApiUrl: \"https://crmservicesapi.universityhub.com/api/v1/\",\n baseApiUrl2: \"https://crmservicesapi.universityhub.com/api/v1/\",\n baseApiUrl2Test: \"https://crmtest.universityhub.com/api/v1/\",\n // baseApiUrl: \"http://localhost:4000/api/v1/\",\n // baseApiUrl2: \"http://localhost:4000/api/v1/\",\n webAppUrl:'https://app.universityhub.com/studentUniversity/',\n baseCuNextUrl: \"https://cunextapi.campbellsville.edu/api/cunext/v1/\",\n forwardMail: \"@accessque.com\",\n fileServer: \"services\",\n firebase: {\n apiKey: 'AIzaSyDXd86FG97SodBdz5W7BEh6z_apAdg86OM',\n authDomain: 'accessque-f4edb.firebaseapp.com',\n projectId: 'accessque-f4edb',\n storageBucket: 'accessque-f4edb.appspot.com',\n messagingSenderId: '991318304901',\n appId: '1:991318304901:web:c713749910d96d50daa1ec',\n measurementId: 'G-Z4Z5FYRBWB',\n vapidKey: 'BHN6imBr9X7fZxuXouWfk5DS3eQOi0oaMluvZ6l0AdCjOiq2fbkkFdzfq7lXAiSR1egqbY9MNH6ggN8lqPN_eEM'\n },\n BaseURL : 'https://crm.universityhub.com/',\n TwilioNumber:'+16062206004',\n s3URL: 'https://accessque.fra1.digitaloceanspaces.com/',\n uploadContactCSV: 'https://accessque.fra1.digitaloceanspaces.com/TemplateDocuments/CampaignContacts.xlsx',\n referralCSV: \"https://accessque.fra1.digitaloceanspaces.com/TestServer/TemplateDocuments/RefereeUpload.xlsx\",\n referreeCSV: \"https://accessque.fra1.digitaloceanspaces.com/TestServer/TemplateDocuments/RefereeUpload.xlsx\",\n countryCodesURL: 'https://countriesnow.space/api/v0.1/countries/codes',\n Judsonuleads: 'Judsonu',\n Judsonucsvfile: 'judsonu.xlsx',\n Uwlauleads: 'UWLA',\n Sfcleads: 'SFC',\n Sfconucsvfile: 'sfc.xlsx',\n Sfc_Application_Type: 'Y',\n Sfc_Program_Type: 'MS',\n sfcURL: 'https://sfctestapi.universityhub.com/api/sfc/v1/', \n url_v1: \"https://crmsfcapi.universityhub.com/api/sfc/v1/\",\n forgotPassEmailTempId: 9,\n companyId: 14,\n whatsApp_Sender: '+917337368804',\n whatsApp_Sender_projectId: 0,\n Uwlaonucsvfile: 'uwla.xlsx',\n UwlaLeads: 'UWLA',\n freJunURL:\"https://api.frejun.com/api/v1/integrations/\"\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","// import 'hammerjs';\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}