{"version":3,"file":"main.js","mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJoB;AACmB;AACK;AAEjB;AACU;AACI;AACR;AACY;AACV;AACQ;AAEU;AACT;AACA;AACK;AACR;AACI;AACQ;AACV;AACwB;AAC1B;AACK;AACd;AACG;AACG;AACW;AACR;AACc;AACR;AACG;AAC9B;AAC8C;AACb;AACtB;AACmD;AAC9B;AACV;AACH;AACO;AAE0B;AACS;AAClB;AACA;AACT;AACJ;AAE7B;AACQ;AAChB;AACe;AACL;AACM;AACE;AAEkB;AACqB;AACpB;AACD;AACkC;AAC5C;AACU;AACM;AACN;AACS;AACgB;AACZ;AAClB;AACW;AACR;AACN;AACT;AACY;AACY;AACiD;AAChE;AACA;AACN;AACiB;AACjB;AACS;AACZ;AACS;AACI;AACR;AACT;AACK;AACQ;AACrB;AACY;AACU;AACR;AACP;AACO;AAC2B;AACd;AAC1E,6HAA6H;AACtB;AACV;AACL;;AAExF,MAAM,iBAAiB,GAAG;IACxB,oGAAqB;IACrB,6GAAwB;IACxB,oGAAqB;IACrB,2FAAuB;IACvB,uFAAqB;IACrB,sHAA2B;IAC3B,oEAAY;IACZ,0DAAY;IACZ,kEAAgB;IAChB,kEAAc;IACd,kDAAM;IACN,iEAAkB;IAClB,4DAAY;IACZ,6FAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,mGAAwB;IACxB,uFAAoB;IACpB,sFAAmB;IACnB,uHAAoB;IACpB,sFAAmB;IACnB,4FAAqB;IACrB,sFAAmB;IACnB,+FAAsB;IACtB,+GAA4B;IAC5B,4FAAqB;IACrB,oFAAmB;IACnB,8IAAqC;IACrC,8EAAiB;IACjB,oFAAmB;IACnB,qCAAqC;IACrC,gHAAoB;IACpB,uGAAwB;CACzB,CAAC;AA0IK,MAAM,YAAY;;wEAAZ,YAAY;0GAAZ,YAAY;8GAtId;YACP,wDAAW;YACX,gEAAmB;YACnB,6EAAgB;YAChB,oFAAkB;YAClB,uFAAmB;YACnB,+EAAiB;YACjB,0DAAY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AA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAMQA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAsEA,MAAAA,yDAAAA,kCAA4B,QAA5B,EAA4BwX,gBAA5B;AAGjFxX,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AACGA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIEA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAOAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AASEA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,gBAAAA,0DAAAA;AAFAA,MAAAA,yDAAAA;AAMmBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAYXA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,uBAAiB,QAAjB,EAAiBwX,cAAjB;AAKsCxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAOhDA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAKCA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AASyBA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAK1BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,WAAAA,8DAAAA,2CAEE,aAFF,EAEEwX,6BAFF;AAMmBxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAKjBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAmB2BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAO3BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,WAAAA,8DAAAA,WAAAA,8DAAAA,WAAAA,8DAAAA,WAAAA,0DAAAA,qCAAAA,8DAAAA,WAAAA,0DAAAA;AAemBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAKjBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAqBAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAuBKA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAyF4DA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAMvCA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAQ9BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,+FAAmD,QAAnD,EAAmDwX,2BAAnD;AAKHxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAWiCA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAY5BA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,gBAAAA,0DAAAA;AANAA,MAAAA,yDAAAA,YAAAA,8DAAAA;AAGAA,MAAAA,0DAAAA;AAMiBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAYWA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAa5BA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,gBAAAA,0DAAAA;AAPAA,MAAAA,yDAAAA,YAAAA,8DAAAA,sEAAiE,WAAjE,EAAiE,CAAjE;AAIAA,MAAAA,0DAAAA;AAMiBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAWTA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAA4DA,MAAAA,yDAAAA;AAErDA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AASAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAYtBA,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAIGA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAI6BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,iBAAe,OAAf,EAAeA,0DAAAA,6BAAf;AAGCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACSA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACTA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAS9BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKiCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAE7BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAOFA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,kBAAgB,OAAhB,EAAgBwX,kDAAhB;AAaCxX,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA;AAWHA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAUAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAaAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKiCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAMjCA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAaSA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAoCCA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAA4DA,MAAAA,yDAAAA;AAG5DA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAsEA,MAAAA,yDAAAA;AAE/CA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAMpCA,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AACGA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAiFeA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AA+ELA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAA4DA,MAAAA,yDAAAA;AAKtEA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AADAA,MAAAA,yDAAAA,+CAAyC,QAAzC,EAAyCwX,gBAAzC;AAQHxX,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAIGA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAK6BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,iBAAe,OAAf,EAAeA,0DAAAA,6BAAf;AAGCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACSA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACTA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAS9BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAI2BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AACvBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAYJA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,kBAAgB,OAAhB,EAAgBwX,kDAAhB;AAaGxX,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA;AAWHA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAUAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAcAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA,kDAAAA,0DAAAA;AAK2BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAM3BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAcSA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAsCoBA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAEUA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAIrCA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AA0CEA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,kBAAgB,OAAhB,EAAgBwX,wBAAhB;AAQWxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAgELA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAiEA,MAAAA,yDAAAA;AAGjEA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAgFA,MAAAA,yDAAAA;AAEzDA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;;;;;;;;;;;;;;;;AC3mCtC,MAAM,iBAAiB,GAAgB;IAC5C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;IACpC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;IACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;IAClC;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG;KACX;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,EAAE;KACV;IACD;QACE,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG;KACX;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,EAAE;KACV;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG;KACX;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,EAAE;KACV;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG;KACX;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;KACf;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;IACD;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;KACb;CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7/BF;AAOA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmJgBA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;;AACHA,IAAAA,2DAAAA;;;;AADGA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAEHA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;;AACHA,IAAAA,2DAAAA;;;;AADGA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AALLA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;;AANuBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAkBzBA,IAAAA,6DAAAA;AAIGA,IAAAA,qDAAAA;;AACHA,IAAAA,2DAAAA;;;;AADGA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAUHA,IAAAA,6DAAAA,eAEyI,CAFzI,EAEyI,oBAFzI,EAEyI,EAFzI,EAEyI,CAFzI,EAEyI,MAFzI;AAKMA,IAAAA,qDAAAA;;AACFA,IAAAA,2DAAAA;;;;AADEA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,MAAAA,0DAAAA;;;;;;AAcJA,IAAAA,6DAAAA,WAA2I,CAA3I,EAA2I,oBAA3I,EAA2I,EAA3I,EAA2I,CAA3I,EAA2I,MAA3I;AAGMA,IAAAA,qDAAAA;;AACFA,IAAAA,2DAAAA;;;;AADEA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,MAAAA,0DAAAA;;;;;;;;;;;;AAMJA,IAAAA,6DAAAA,WAAkH,CAAlH,EAAkH,oBAAlH,EAAkH,EAAlH,EAAkH,CAAlH,EAAkH,MAAlH;AAGMA,IAAAA,qDAAAA;;;AACFA,IAAAA,2DAAAA;;;;AADEA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,MAAAA,0DAAAA,yBAAAA,8DAAAA,SAAAA,0DAAAA;;;;;;AAHNA,IAAAA,yDAAAA;;;;;;AAAMA,IAAAA,yDAAAA;;;;;;AAVVA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAQAA,IAAAA,yDAAAA,2FAAAA,qEAAAA;AASFA,IAAAA,2DAAAA;;;;;;;;AAjBQA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,mMAAyG,UAAzG,EAAyG8yE,IAAzG;;;;;;AAkDJ9yE,IAAAA,6DAAAA;AAAoEA,IAAAA,qDAAAA;;AAAoCA,IAAAA,2DAAAA;;;;AAApCA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AADtEA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AACFA,IAAAA,2DAAAA;;;;;AADuBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAiBnBA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;;AACHA,IAAAA,2DAAAA;;;;AADGA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAFLA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;AAHuBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAIvBA,IAAAA,6DAAAA,eAAuH,CAAvH,EAAuH,oBAAvH,EAAuH,EAAvH;AACmCA,IAAAA,qDAAAA;;AAAiCA,IAAAA,2DAAAA;;;;AAAjCA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAlBvCA,IAAAA,6DAAAA,gBAAoF,CAApF,EAAoF,KAApF,EAAoF,GAApF;AAEIA,IAAAA,wDAAAA;AACFA,IAAAA,2DAAAA;AACAA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;;AAOAA,IAAAA,yDAAAA;AAKAA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;;AAlBsEA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAQlEA,IAAAA,wDAAAA;AAAAA,IAAAA,oEAAAA,gBAAAA,0DAAAA;AAFAA,IAAAA,yDAAAA;AAImBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAKAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAWnBA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;;AACHA,IAAAA,2DAAAA;;;;AADGA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAJLA,IAAAA,6DAAAA;AAGEA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;AAHuBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAIvBA,IAAAA,6DAAAA,eAAqG,CAArG,EAAqG,oBAArG,EAAqG,EAArG;AACmCA,IAAAA,qDAAAA;;AAA+BA,IAAAA,2DAAAA;;;;AAA/BA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAXvCA,IAAAA,6DAAAA,gBAAoF,CAApF,EAAoF,KAApF,EAAoF,GAApF;AAEIA,IAAAA,wDAAAA;;AACAA,IAAAA,yDAAAA;AAOAA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;;AAXoDA,IAAAA,wDAAAA;AAAAA,IAAAA,oEAAAA,gBAAAA,0DAAAA;AAG/CA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAKkBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAsBrBA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;AACHA,IAAAA,2DAAAA;;;;;;AAEEA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;AACHA,IAAAA,2DAAAA;;;;;;AAFAA,IAAAA,yDAAAA;;;;;AAAqBA,IAAAA,yDAAAA;;;;;;AAqBvBA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;AACHA,IAAAA,2DAAAA;;;;;;AAkBAA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;AACHA,IAAAA,2DAAAA;;;;;;AAkBAA,IAAAA,6DAAAA;AACGA,IAAAA,qDAAAA;AACHA,IAAAA,2DAAAA;;;;;;AAlFRA,IAAAA,sEAAAA;AACEA,IAAAA,6DAAAA,gBAA0C,CAA1C,EAA0C,KAA1C,EAA0C,EAA1C,EAA0C,CAA1C,EAA0C,KAA1C,EAA0C,CAA1C,EAA0C,MAA1C,EAA0C,EAA1C;AAGmCA,IAAAA,qDAAAA;AAAiBA,IAAAA,2DAAAA;AAGlDA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;AAMAA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA,uGAAAA,qEAAAA;AAKFA,IAAAA,2DAAAA;AAGJA,IAAAA,6DAAAA,gBAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGmCA,IAAAA,qDAAAA;AAAYA,IAAAA,2DAAAA;AAG7CA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;AAMAA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;AAGJA,IAAAA,6DAAAA,gBAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGmCA,IAAAA,qDAAAA;AAAcA,IAAAA,2DAAAA;AAG/CA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;AAMAA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;AAGJA,IAAAA,6DAAAA,gBAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGmCA,IAAAA,qDAAAA;AAAYA,IAAAA,2DAAAA;AAG7CA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;AAMAA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;AAGNA,IAAAA,oEAAAA;;;;;;;AA7EQA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,mBAAiB,aAAjB,EAAiBmV,yBAAjB,EAAiB,WAAjB,EAAiB,CAAjB,EAAiB,aAAjB,EAAiB,wBAAjB;AAMqBnV,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,4FAA2E,UAA3E,EAA2E+yE,IAA3E;AAmBrB/yE,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,4CAAmC,WAAnC,EAAmC,CAAnC,EAAmC,aAAnC,EAAmC,iBAAnC,EAAmC,aAAnC,EAAmC,8BAAnC;AAMqBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAcrBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,yCAAgC,WAAhC,EAAgC,EAAhC,EAAgC,aAAhC,EAAgC,iBAAhC,EAAgC,aAAhC,EAAgC,gCAAhC;AAMqBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAcrBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,uCAA8B,WAA9B,EAA8B,EAA9B,EAA8B,aAA9B,EAA8B,iBAA9B,EAA8B,aAA9B,EAA8B,8BAA9B;AAMqBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AA2B7BA,IAAAA,6DAAAA;AAIEA,IAAAA,wDAAAA;AACAA,IAAAA,6DAAAA,eAAsB,CAAtB,EAAsB,oBAAtB,EAAsB,EAAtB;AACmCA,IAAAA,qDAAAA;;;AAA2FA,IAAAA,2DAAAA;;;;AAA3FA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA,2BAAAA,8DAAAA,SAAAA,0DAAAA;;;;;;AAuB/BA,IAAAA,6DAAAA;AAGGA,IAAAA,qDAAAA;;AACHA,IAAAA,2DAAAA;;;;AADGA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;;;;;;AAJLA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAKFA,IAAAA,2DAAAA;;;;;;AAJKA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;;;;;;;;;AAWPA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;;AAOFA,IAAAA,2DAAAA;;;;AANIA,IAAAA,wDAAAA;AAAAA,IAAAA,oEAAAA,UAAAA,0DAAAA;AACAA,IAAAA,yDAAAA,WAAAA,8DAAAA;;;;;;AAMJA,IAAAA,6DAAAA;AACEA,IAAAA,wDAAAA;;AAOFA,IAAAA,2DAAAA;;;;AANIA,IAAAA,wDAAAA;AAAAA,IAAAA,oEAAAA,UAAAA,0DAAAA;AACAA,IAAAA,yDAAAA,WAAAA,8DAAAA;;;;;;AAmFJA,IAAAA,6DAAAA,WAAuF,CAAvF,EAAuF,MAAvF,EAAuF,EAAvF;AACmCA,IAAAA,qDAAAA;;AAA6BA,IAAAA,2DAAAA;;;;AAA7BA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;AAEnCA,IAAAA,6DAAAA,WAAuF,CAAvF,EAAuF,MAAvF,EAAuF,EAAvF;AACmCA,IAAAA,qDAAAA;;AAA6BA,IAAAA,2DAAAA;;;;AAA7BA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;AATvCA,IAAAA,6DAAAA,eAAwE,CAAxE,EAAwE,KAAxE,EAAwE,EAAxE,EAAwE,CAAxE,EAAwE,KAAxE,EAAwE,EAAxE;AAEgCA,IAAAA,qDAAAA;;AAAuDA,IAAAA,2DAAAA;AAErFA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;;AAT8BA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;AAGtBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAKVA,IAAAA,sEAAAA;AACEA,IAAAA,6DAAAA,eAAwB,CAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,CAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAiBA,IAAAA,2DAAAA;AAE/CA,IAAAA,6DAAAA,eAAsB,CAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AACmCA,IAAAA,qDAAAA;AAAqCA,IAAAA,2DAAAA;AAG1EA,IAAAA,6DAAAA,eAAwB,CAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAYA,IAAAA,2DAAAA;AAE1CA,IAAAA,6DAAAA,gBAAsB,EAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AACmCA,IAAAA,qDAAAA;AAAsCA,IAAAA,2DAAAA;AAG3EA,IAAAA,6DAAAA,gBAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAcA,IAAAA,2DAAAA;AAE5CA,IAAAA,6DAAAA,gBAAsB,EAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AACmCA,IAAAA,qDAAAA;AAAmCA,IAAAA,2DAAAA;AAGxEA,IAAAA,6DAAAA,gBAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAYA,IAAAA,2DAAAA;AAE1CA,IAAAA,6DAAAA,gBAAsB,EAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AACmCA,IAAAA,qDAAAA;AAAiCA,IAAAA,2DAAAA;AAGxEA,IAAAA,oEAAAA;;;;;AA3BuCA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAQAA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAQAA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAQAA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;;;AA8DvCA,IAAAA,6DAAAA,gBAAyD,CAAzD,EAAyD,KAAzD,EAAyD,GAAzD,EAAyD,CAAzD,EAAyD,+BAAzD,EAAyD,GAAzD;;AAGMA,IAAAA,6DAAAA,gBAAwC,CAAxC,EAAwC,MAAxC,EAAwC,GAAxC;AAEIA,IAAAA,qDAAAA;;AACFA,IAAAA,2DAAAA;AAKNA,IAAAA,6DAAAA,eAAiB,CAAjB,EAAiB,KAAjB,EAAiB,GAAjB;AAEIA,IAAAA,qDAAAA;;AACFA,IAAAA,2DAAAA;AAEFA,IAAAA,6DAAAA,gBAAiB,EAAjB,EAAiB,KAAjB,EAAiB,GAAjB,EAAiB,EAAjB,EAAiB,cAAjB,EAAiB,EAAjB;AAIMA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA,OAA0C,aAA1C,EAA0C;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAE3BqmD,8CAF2B;AAEW,KAFrD;AAEuDrmD,IAAAA,2DAAAA;AAI7DA,IAAAA,6DAAAA,iBAA2D,EAA3D,EAA2D,KAA3D,EAA2D,GAA3D,EAA2D,EAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGmCA,IAAAA,qDAAAA;;AAAsDA,IAAAA,2DAAAA;AAGvFA,IAAAA,6DAAAA,iBAAsB,EAAtB,EAAsB,cAAtB,EAAsB,EAAtB,EAAsB,GAAtB;AAIIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA;AAAA;AAC8CA,IAAAA,2DAAAA;;;;;AAnCnBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,UAAAA,0DAAAA;AAGzBA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,MAAAA,0DAAAA;AAQJA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,MAAAA,0DAAAA;AAOEA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,kDAA0C,QAA1C,EAA0CouB,8BAA1C;AAS6BpuB,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;AAO7BA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA,gDAAwC,QAAxC,EAAwCouB,0CAAxC;;;;;;AA+FJpuB,IAAAA,6DAAAA,WAAuF,CAAvF,EAAuF,MAAvF,EAAuF,EAAvF;AAC+BA,IAAAA,qDAAAA;;AAA6BA,IAAAA,2DAAAA;;;;AAA7BA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;AAE/BA,IAAAA,6DAAAA,WAAuF,CAAvF,EAAuF,MAAvF,EAAuF,EAAvF;AAC+BA,IAAAA,qDAAAA;;AAA6BA,IAAAA,2DAAAA;;;;AAA7BA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;AATnCA,IAAAA,6DAAAA,eAAwE,CAAxE,EAAwE,KAAxE,EAAwE,EAAxE,EAAwE,CAAxE,EAAwE,KAAxE,EAAwE,EAAxE;AAEgCA,IAAAA,qDAAAA;;AAAuDA,IAAAA,2DAAAA;AAErFA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;;;AAT8BA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA;AAGtBA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAKVA,IAAAA,sEAAAA;AACEA,IAAAA,6DAAAA,eAAwB,CAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,CAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAiBA,IAAAA,2DAAAA;AAE/CA,IAAAA,6DAAAA,eAAsB,CAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,IAAAA,qDAAAA;AAAqCA,IAAAA,2DAAAA;AAGtEA,IAAAA,6DAAAA,eAAwB,CAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAYA,IAAAA,2DAAAA;AAE1CA,IAAAA,6DAAAA,gBAAsB,EAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,IAAAA,qDAAAA;AAAsCA,IAAAA,2DAAAA;AAGvEA,IAAAA,6DAAAA,gBAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAcA,IAAAA,2DAAAA;AAE5CA,IAAAA,6DAAAA,gBAAsB,EAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,IAAAA,qDAAAA;AAAmCA,IAAAA,2DAAAA;AAGpEA,IAAAA,6DAAAA,gBAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,EAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,IAAAA,qDAAAA;AAAYA,IAAAA,2DAAAA;AAE1CA,IAAAA,6DAAAA,gBAAsB,EAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,IAAAA,qDAAAA;AAAiCA,IAAAA,2DAAAA;AAGpEA,IAAAA,oEAAAA;;;;;AA3BmCA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAQAA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAQAA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAQAA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAuCrBA,IAAAA,6DAAAA,gBAAoG,CAApG,EAAoG,MAApG,EAAoG,EAApG;AAC+BA,IAAAA,qDAAAA;;AAA6BA,IAAAA,2DAAAA;;;;AAA7BA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;AAE/BA,IAAAA,6DAAAA,gBAAoG,CAApG,EAAoG,MAApG,EAAoG,EAApG;AAC+BA,IAAAA,qDAAAA;;AAA6BA,IAAAA,2DAAAA;;;;AAA7BA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;AAbzCA,IAAAA,6DAAAA,gBAAyD,CAAzD,EAAyD,KAAzD,EAAyD,EAAzD;AAEIA,IAAAA,wDAAAA;AACAA,IAAAA,6DAAAA,eAAsB,CAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,CAAtB,EAAsB,KAAtB,EAAsB,CAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAGmCA,IAAAA,qDAAAA;;;AAAgGA,IAAAA,2DAAAA;AAE/HA,IAAAA,6DAAAA;AACEA,IAAAA,yDAAAA;AAGAA,IAAAA,yDAAAA;AAGFA,IAAAA,2DAAAA;;;;;AAT+BA,IAAAA,wDAAAA;AAAAA,IAAAA,iEAAAA,KAAAA,0DAAAA,6BAAAA,8DAAAA,SAAAA,0DAAAA;AAGCA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;AAGAA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;AAzB5CA,IAAAA,6DAAAA,WAAkC,CAAlC,EAAkC,KAAlC,EAAkC,GAAlC,EAAkC,CAAlC,EAAkC,KAAlC,EAAkC,EAAlC;AAGMA,IAAAA,wDAAAA;AACAA,IAAAA,6DAAAA,eAAsB,CAAtB,EAAsB,KAAtB,EAAsB,CAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAEiCA,IAAAA,qDAAAA;;AAAqDA,IAAAA,2DAAAA;AAClFA,IAAAA,6DAAAA,iBACG,EADH,EACG,MADH,EACG,EADH;AACgCA,IAAAA,qDAAAA;AAAoCA,IAAAA,2DAAAA;AAK1EA,IAAAA,yDAAAA;AAoBFA,IAAAA,2DAAAA;;;;;AA3BqCA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA,CAAAA,0DAAAA;AAEGA,IAAAA,wDAAAA;AAAAA,IAAAA,gEAAAA;AAKhCA,IAAAA,wDAAAA;AAAAA,IAAAA,yDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AD1zBV,MAAOgzE,uBAAP,CAA8B;AAyFlCxyE,cACUqkB,SADV,EAEUte,KAFV,EAGSyZ,qBAHT,EAIUunD,UAJV,EAKUhiE,QALV,EAMU+8B,qBANV,EAOSklC,cAPT,EASSvhE,IATT,EAYU8Z,kBAZV,EAaU0nD,mBAbV,EAakD;AAZxC;AACA;AACD;AACC;AACA;AACA;AACD;AAEA;AAGC;AACA;AAlGV,iCAAwBT,sEAAxB;AACA,oBAAW,IAAX;;AAMA,8BAAsBrwD,OAAD,IAAsD;AACzE,UAAI+xB,KAAK,GAAG/xB,OAAO,CAAC1U,KAAR,IAAiB,EAA7B;AACAymC,WAAK,GAAGA,KAAK,CAAC7lB,IAAN,EAAR;AACA,YAAMglD,OAAO,GAAGn/B,KAAK,CAACn+B,MAAN,IAAgB,CAAhB,IAAqBm+B,KAAK,CAACn+B,MAAN,IAAgB,CAArD;AACA,aAAOs9D,OAAO,GAAG,IAAH,GAAU;AAAEC,mBAAW,EAAE;AAAf,OAAxB;AACD,KALD;;AAMA,+BAAuBnxD,OAAD,IAAsD;AAC1E,UAAI+xB,KAAK,GAAG/xB,OAAO,CAAC1U,KAAR,IAAiB,EAA7B;AACAymC,WAAK,GAAGA,KAAK,CAAC7lB,IAAN,EAAR;AACA,YAAMglD,OAAO,GAAG,CAAEn/B,KAAK,CAACn+B,MAAN,IAAgB,CAAhB,IAAqBm+B,KAAK,CAACn+B,MAAN,IAAgB,CAAtC,IAA4Cm+B,KAAK,CAACn+B,MAAN,KAAiB,CAA9D,KAAoE,kBAAkBw9D,IAAlB,CAAuBr/B,KAAvB,CAApF;AACA,aAAOm/B,OAAO,GAAG,IAAH,GAAU;AAAEC,mBAAW,EAAE;AAAf,OAAxB;AACD,KALD;;AAMA,0BAAkBnxD,OAAD,IAAsD;AACrE,UAAI+xB,KAAK,GAAG/xB,OAAO,CAAC1U,KAAR,IAAiB,EAA7B;AACAymC,WAAK,GAAGA,KAAK,CAAC7lB,IAAN,EAAR;AACA,YAAMglD,OAAO,GAAG,CAACn/B,KAAK,CAACn+B,MAAN,KAAiB,EAAjB,IAAuBm+B,KAAK,CAACn+B,MAAN,KAAiB,CAAzC,KAA+C,kBAAkBw9D,IAAlB,CAAuBr/B,KAAvB,CAA/D;AACA,aAAOm/B,OAAO,GAAG,IAAH,GAAU;AAAEC,mBAAW,EAAE;AAAf,OAAxB;AACD,KALD;;AAMA,4BAAoBnxD,OAAD,IAAsD;AACvE,UAAI+xB,KAAK,GAAG/xB,OAAO,CAAC1U,KAAR,IAAiB,EAA7B;AACAymC,WAAK,GAAGA,KAAK,CAAC7lB,IAAN,EAAR;AACA,YAAMglD,OAAO,GAAG,CAACn/B,KAAK,CAACn+B,MAAN,KAAiB,EAAjB,IAAuBm+B,KAAK,CAACn+B,MAAN,KAAiB,CAAzC,KAA+C,kBAAkBw9D,IAAlB,CAAuBr/B,KAAvB,CAA/D;AACA,aAAOm/B,OAAO,GAAG,IAAH,GAAU;AAAEC,mBAAW,EAAE;AAAf,OAAxB;AACD,KALD;;AAMA,eAAM;AACJE,oBAAc,EAAE,IAAIn7C,wDAAJ,CAAgB,EAAhB,EAAoB,CAAC8jB,gEAAD,EAAsB,KAAKs3B,kBAA3B,CAApB,CADZ;AAEJC,qBAAe,EAAE,IAAIr7C,wDAAJ,CAAgB,EAAhB,EAAoB,CAAC,KAAKs7C,mBAAN,CAApB,CAFb;AAGJC,gBAAU,EAAE,IAAIv7C,wDAAJ,CAAgB,EAAhB,EAAoB,CAAC,KAAKw7C,cAAN,CAApB,CAHR;AAIJC,kBAAY,EAAE,IAAIz7C,wDAAJ,CAAgB,EAAhB,EAAoB,CAAC,KAAK07C,gBAAN,CAApB;AAJV,KAAN;AAMA,gCAA0C;AACxCxnD,aAAO,EAAE,CACP;AAAEzU,aAAK,EAAE,KAAKk7D,cAAL,CAAoB/wD,SAApB,CAA8B,UAA9B,CAAT;AAAoDxU,aAAK,EAAE;AAA3D,OADO,EAEP;AAAEqK,aAAK,EAAE,KAAKk7D,cAAL,CAAoB/wD,SAApB,CAA8B,cAA9B,CAAT;AAAwDxU,aAAK,EAAE;AAA/D,OAFO,CAD+B;AAKxC4U,iBAAW,EAAE,KAAK2wD,cAAL,CAAoB/wD,SAApB,CAA8B,wBAA9B;AAL2B,KAA1C;AAOA,qCAA4B,IAAIoW,wDAAJ,EAA5B;AACA,0BAAiB,KAAjB;;AACA,mBAAU,MAAK;AACb,YAAMic,YAAY,GAAG,KAAK4+B,cAAL,CAAoB9lE,aAApB,CAAkCknC,YAAvD;AACA,YAAM6+B,YAAY,GAAG,KAAKD,cAAL,CAAoB9lE,aAApB,CAAkC+lE,YAAvD;;AAEA,UAAI,CAAC,KAAKC,cAAN,IAAwB,KAAKF,cAAL,CAAoB9lE,aAApB,CAAkCinC,SAAlC,GAA8CC,YAAY,GAAG6+B,YAAf,GAA8B,EAAxG,EAA4G;AAC1G,aAAKC,cAAL,GAAsB,IAAtB;AACD;AACF,KAPD;;AAQA,wBAAe,CAAf,CA4CkD,CA5ChC;;AAClB,mCAA0B;AACxB7mD,aAAO,EAAE,CACP;AACEzU,aAAK,EAAE,gBADT;AAEErK,aAAK,EAAE+kE,8EAFT;AAGEyB,eAAO,EAAE;AAHX,OADO,EAMP;AACEn8D,aAAK,EAAE,gBADT;AAEErK,aAAK,EAAE+kE,8EAFT;AAGEyB,eAAO,EAAE;AAHX,OANO;AADe,KAA1B;AAeA,8CAAqC;AACnC1nD,aAAO,EAAE,CACP;AACEzU,aAAK,EAAE,gBADT;AAEErK,aAAK,EAAE+kE,8EAFT;AAGEyB,eAAO,EAAE;AAHX,OADO,EAMP;AACEn8D,aAAK,EAAE,gBADT;AAEErK,aAAK,EAAE+kE,8EAFT;AAGEyB,eAAO,EAAE;AAHX,OANO;AAD0B,KAArC;AA2CA,wBAAgC;AAC9B39D,UAAI,EAAE,IADwB;AAE9BkW,WAAK,EAAE;AAFuB,KAAhC;AAKA,yBAAiC;AAC/BlW,UAAI,EAAE,IADyB;AAE/BkW,WAAK,EAAE,WAFwB;AAG/BtL,cAAQ,EAAE;AAHqB,KAAjC;AAWA,kCAAwC;AACtCqL,aAAO,EAAE,CACP;AACEzU,aAAK,EAAE,KAAKuU,QAAL,KAAkB,IAAlB,GAAyB,oBAAzB,GAAgD,WADzD;AAEE5e,aAAK,EAAE,GAFT;AAGEwmE,eAAO,EAAE;AAHX,OADO,EAMP;AACEn8D,aAAK,EAAE,KAAKuU,QAAL,KAAkB,IAAlB,GAAyB,yBAAzB,GAAqD,YAD9D;AAEE5e,aAAK,EAAE,GAFT;AAGEwmE,eAAO,EAAE;AAHX,OANO;AAD6B,KAAxC;AAgBA,mCAA0B,EAA1B;AACA,mCAA0B,EAA1B;;AAEA,wCAAgCG,aAAD,IAAqC;;;AAClE,UAAIA,aAAa,IAAIA,aAAa,CAAC1+D,MAAd,KAAyB,CAA1C,IAA+C0+D,aAAa,CAAC3iE,IAA7D,IAAqE2iE,aAAa,CAAC3iE,IAAd,CAAmBic,SAA5F,EAAuG;AACrG,aAAK4mD,eAAL,GAAuBF,aAAa,CAAC3iE,IAArC;AAEA,cAAM8iE,gBAAgB,GAAG,WAAKD,eAAL,MAAoB,IAApB,IAAoB/lE,aAApB,GAAoB,MAApB,GAAoBA,GAAEimE,YAA/C;AACA,cAAMC,kBAAkB,GAAG,WAAKH,eAAL,MAAoB,IAApB,IAAoB9lE,aAApB,GAAoB,MAApB,GAAoBA,GAAEkmE,YAAjD;AACA,YAAIC,YAAY,GAAG,KAAKtoD,QAAL,KAAkB,IAAlB,GAAyB,kBAAzB,GAA8C,UAAjE;AACA,YAAIuoD,YAAY,GAAG,KAAKvoD,QAAL,KAAkB,IAAlB,GAAyB,uBAAzB,GAAmD,UAAtE;;AACA,YAAIkoD,gBAAJ,EAAsB;AACpB,gBAAMM,SAAS,GAAGN,gBAAgB,CAAC5kE,OAAjB,CAAyB,GAAzB,CAAlB;AACA,gBAAMmlE,SAAS,GAAGP,gBAAgB,CAACphE,SAAjB,CAA2B,CAA3B,EAA8B0hE,SAA9B,CAAlB;AACA,gBAAME,UAAU,GAAGR,gBAAgB,CAACphE,SAAjB,CAA2B0hE,SAAS,GAAG,CAAvC,CAAnB;AACA,gBAAMG,YAAY,GAAGF,SAAS,CAAC3hE,SAAV,CAAoB,CAApB,EAAuB,CAAvB,IAA4B,QAA5B,GAAuC,GAAvC,GAA6C4hE,UAAlE;AACAJ,sBAAY,GAAG,KAAKtoD,QAAL,KAAkB,IAAlB,GAAyB,sBAAsB2oD,YAAtB,GAAqC,GAA9D,GAAoE,cAAcA,YAAd,GAA6B,GAAhH;AACD;;AACD,YAAIP,kBAAJ,EAAwB;AACtB,gBAAMQ,aAAa,GAAGR,kBAAkB,CAACthE,SAAnB,CAA6B,CAA7B,EAAgC,CAAhC,IAAqC,MAA3D;AACAyhE,sBAAY,GAAG,KAAKvoD,QAAL,KAAkB,IAAlB,GAAyB,2BAA2B4oD,aAA3B,GAA2C,GAApE,GAA0E,cAAcA,aAAd,GAA8B,GAAvH;AACD;;AAED,aAAKC,uBAAL,GAA+BP,YAA/B;AACA,aAAKQ,uBAAL,GAA+BP,YAA/B;AACA,aAAKQ,sBAAL,GAA8B;AAC5B7oD,iBAAO,EAAE,CACP;AAAEzU,iBAAK,EAAE68D,YAAT;AAAuBlnE,iBAAK,EAAE,GAA9B;AAAmCwmE,mBAAO,EAAE,CAACM;AAA7C,WADO,EAEP;AAAEz8D,iBAAK,EAAE88D,YAAT;AAAuBnnE,iBAAK,EAAE,GAA9B;AAAmCwmE,mBAAO,EAAE,CAACQ;AAA7C,WAFO;AADmB,SAA9B;AAMA,aAAKY,8BAAL,GAAsCV,YAAtC;;AACA,YAAI,CAAC,KAAKqB,8BAAL,CAAoCvoE,KAAzC,EAAgD;AAC9C,eAAKwoE,oBAAL,GAA4B,KAA5B;AACD,SAFD,MAEO;AACL,eAAKA,oBAAL,GAA4B1gD,SAA5B;AACD;;AACD,YAAIg/C,gBAAJ,EAAsB;AACpB,eAAKe,8BAAL,GAAsC,GAAtC;AACD,SAFD,MAEO,IAAIb,kBAAJ,EAAwB;AAC7B,eAAKa,8BAAL,GAAsC,GAAtC;AACD;;AACD,cAAMyB,eAAe,GAAG,KAAKA,eAAL,CAAqBtpE,KAA7C;AACA,cAAMyuE,wBAAwB,GAAG,IAAIhK,uGAAJ,EAAjC;AACAgK,gCAAwB,CAACxE,SAAzB,GAAqCX,eAArC;AACAmF,gCAAwB,CAACC,UAAzB,GAAsC,QAAtC;AACA,aAAK5wD,kBAAL,CACGnX,IADH,CACsC,gFADtC,EACwH8nE,wBADxH,EAEG5vE,SAFH,CAEa;AACTgC,cAAI,EAAEuM,IAAI,IAAG;AACX,gBAAIA,IAAI,IAAIA,IAAI,CAACnF,MAAL,KAAgB,CAAxB,IAA6BmF,IAAI,CAACpJ,IAAtC,EAA4C;AAC1C;AACA,kBAAI,CAACoJ,IAAI,CAACpJ,IAAL,CAAUolE,eAAf,EAAgC;AAC9B,sBAAMC,sBAAsB,GAAyC,KAAK/lE,QAAL,CAAckB,IAAd,CAAmBogE,kGAAnB,EAA2C;AAC9G/7D,sBAAI,EAAE;AADwG,iBAA3C,CAArE;AAGAwgE,sCAAsB,CAACxkE,WAAvB,GAAqChG,SAArC,CAA+CmF,IAAI,IAAG;AACpD,sBAAIA,IAAI,CAAC+E,KAAT,EAAgB;AACd,yBAAKo/D,YAAL,GAAoB,CAApB;AACA,yBAAKmB,eAAL,CAAqBpoE,aAArB;AACA,yBAAKooE,eAAL,CAAqB9xB,SAArB,CAA+B;AAAE+xB,mCAAa,EAAE;AAAjB,qBAA/B;AACD;AACF,iBAND;AAOD,eAXD,MAWO;AACL;AACA,qBAAKpB,YAAL,GAAoB,CAApB;AACA,qBAAKC,8BAAL,CAAoC,KAAKP,8BAAzC;AACD;AACF;;AACD,iBAAK2B,gBAAL,GAAwB,KAAxB;AACD,WAtBQ;AAuBT3wD,eAAK,EAAEiuB,GAAG,IAAG;AACX,iBAAKxiC,KAAL,CAAWuU,KAAX,CAAiB,QAAjB,EAA2BiuB,GAA3B;AACA,iBAAK0iC,gBAAL,GAAwB,KAAxB;AACD;AA1BQ,SAFb;AA8BD,OAxED,MAwEO;AACL,aAAKwH,cAAL,CAAoB9vE,aAApB;AACA,aAAK8vE,cAAL,CAAoBx5B,SAApB,CAA8B;AAAE0wB,+BAAqB,EAAE;AAAzB,SAA9B;AACD;AACF,KA7ED;;AA+EA,4CAAoC96D,IAAD,IAAoC;;;AACrE,UAAIA,IAAI,IAAIA,IAAI,CAACnF,MAAL,KAAgB,CAAxB,IAA6BmF,IAAI,CAACpJ,IAAtC,EAA4C;AAC1C;AACA,YAAI,CAACoJ,IAAI,CAACpJ,IAAL,CAAUolE,eAAf,EAAgC;AAC9B,gBAAMC,sBAAsB,GAAyC,KAAK/lE,QAAL,CAAckB,IAAd,CAAmBogE,kGAAnB,EAA2C;AAC9G/7D,gBAAI,EAAE;AADwG,WAA3C,CAArE;AAGAwgE,gCAAsB,CAACxkE,WAAvB,GAAqChG,SAArC,CAA+CmF,IAAI,IAAG;AACpD,gBAAIA,IAAI,CAAC+E,KAAT,EAAgB;AACd,mBAAKo/D,YAAL,GAAoB,CAApB;AACA,mBAAKmB,eAAL,CAAqBpoE,aAArB;AACA,mBAAKooE,eAAL,CAAqB9xB,SAArB,CAA+B;AAAE+xB,6BAAa,EAAE;AAAjB,eAA/B;AACD;AACF,WAND;AAOA,eAAKC,gBAAL,GAAwB,KAAxB;AACD,SAZD,MAYO;AACL;AACA,cAAI,KAAKrB,YAAL,KAAsB,CAAtB,IAA2B,CAAC,KAAK6I,cAAL,CAAoBhxE,KAApD,EAA2D;AACzD,iBAAKmoE,YAAL,GAAoB,CAApB;AACD,WAFD,MAEO;AACL;AACA,kBAAMsB,YAAY,GAAG,EAArB;AACA,kBAAMtnC,SAAS,GAAG,IAAIuiC,oFAAJ,EAAlB;AACAviC,qBAAS,CAACunC,eAAV,GAA4B,KAAKC,gBAAjC;AACA,kBAAMC,cAAc,GAAG,KAAKrB,8BAAL,CAAoCvoE,KAA3D;AACAmiC,qBAAS,CAAC0nC,YAAV,GAAyBD,cAAc,KAAK,IAAnB,IAA2BA,cAAc,KAAK9hD,SAA9C,GAA0D,KAA1D,GAAkE8hD,cAA3F;AACAznC,qBAAS,CAAC2nC,wBAAV,GAAqC,EAArC;AACA3nC,qBAAS,CAAC4nC,YAAV,GAAyB,IAAzB;AACAN,wBAAY,CAACx5D,IAAb,CAAkBkyB,SAAlB;AACA,kBAAM6nC,sBAAsB,GAAG,IAAIrF,iGAAJ,EAA/B;AACAqF,kCAAsB,CAACC,SAAvB,GAAmC,KAAKX,eAAL,CAAqBtpE,KAAxD,CAXK,CAYL;;AACAgqE,kCAAsB,CAACmB,UAAvB,GAAoCnG,gFAApC,CAbK,CAcL;AACA;;AACAgF,kCAAsB,CAACkH,gBAAvB,GAA0C,KAAKA,gBAAL,CAAsBlxE,KAAhE;AACAgqE,kCAAsB,CAACmH,MAAvB,GAAgC,KAAKC,yBAAL,CAA+BpxE,KAA/D,CAjBK,CAkBL;AACA;;AACAgqE,kCAAsB,CAACrvB,OAAvB,GAAiC,WAAK02B,OAAL,CAAajpE,GAAb,CAAiB,aAAjB,OAA+B,IAA/B,IAA+BtH,aAA/B,GAA+B,MAA/B,GAA+BA,GAAEd,KAAlE;AACAgqE,kCAAsB,CAACrQ,kBAAvB,GAA4C,WAAK0X,OAAL,CAAajpE,GAAb,CAAiB,aAAjB,OAA+B,IAA/B,IAA+BrH,aAA/B,GAA+B,MAA/B,GAA+BA,GAAEf,KAA7E;AACAgqE,kCAAsB,CAACG,QAAvB,GAAkC,WAAKkH,OAAL,CAAajpE,GAAb,CAAiB,SAAjB,OAA2B,IAA3B,IAA2BnH,aAA3B,GAA2B,MAA3B,GAA2BA,GAAEjB,KAA/D;AACAgqE,kCAAsB,CAACK,SAAvB,GAAmC,WAAKgH,OAAL,CAAajpE,GAAb,CAAiB,OAAjB,OAAyB,IAAzB,IAAyB4rB,aAAzB,GAAyB,MAAzB,GAAyBA,GAAEh0B,KAA9D;AACAgqE,kCAAsB,CAACM,SAAvB,GAAmC,KAAnC;;AACA,gBAAI,KAAKd,gBAAT,EAA2B;AACzB,oBAAMmB,UAAU,GAAG,IAAIjG,oFAAJ,EAAnB;AACAiG,wBAAU,CAACC,OAAX,GAAqB,WAAK/D,eAAL,MAAoB,IAApB,IAAoB5yC,aAApB,GAAoB,MAApB,GAAoBA,GAAE42C,OAA3C;AACAF,wBAAU,CAACd,YAAX,GAA0B,KAAKrB,oBAAL,KAA8B,IAA9B,IAAsC,KAAKA,oBAAL,KAA8B1gD,SAApE,GAAgF,KAAhF,GAAwF,KAAK0gD,oBAAvH;AACAmC,wBAAU,CAACb,wBAAX,GAAsC,KAAKjC,8BAA3C;AACA8C,wBAAU,CAACZ,YAAX,GAA0B,KAA1B;;AACA,kBAAIY,UAAU,CAACd,YAAX,IAA2B,KAAKhC,8BAAL,KAAwC,GAAvE,EAA4E;AAC1E8C,0BAAU,CAACG,WAAX,GAAyB,KAAKC,4BAAL,KAAsChG,8EAAtC,GAAsE,CAAtE,GAA0E,CAAnG;AACD;;AACD0E,0BAAY,CAACx5D,IAAb,CAAkB06D,UAAlB;AACAX,oCAAsB,CAACM,SAAvB,GAAmC,IAAnC;AACD;;AACDN,kCAAsB,CAACkB,UAAvB,GAAoCzB,YAApC;;AACA,gBAAI,KAAKzlE,IAAL,CAAUstE,MAAV,KAAqBtM,yEAAzB,EAAmD;AACjDgF,oCAAsB,CAACmB,UAAvB,GAAoCnG,yEAApC;AACAgF,oCAAsB,CAACqB,WAAvB,GAAqCrG,yEAArC;AACD;;AACD,gBAAI,KAAKsG,YAAT,EAAuB;AACrBtB,oCAAsB,CAACuB,GAAvB,GAA6B;AAC3BC,+BAAe,EAAE,KAAKD,GAAL,CAASxF,cAAT,CAAwB/lE,KADd;AAE3ByrE,6BAAa,EAAE,KAAKF,GAAL,CAAStF,eAAT,CAAyBjmE,KAFb;AAG3B0rE,6BAAa,EAAE,KAAKH,GAAL,CAASlF,YAAT,CAAsBrmE,KAHV;AAI3B2rE,2BAAW,EAAE,KAAKJ,GAAL,CAASpF,UAAT,CAAoBnmE;AAJN,eAA7B;AAMD;;AAED,gBAAIgqE,sBAAsB,CAACrvB,OAAvB,KAAmC,GAAvC,EAA4C;AAC1CqvB,oCAAsB,CAACc,WAAvB,GAAqC,KAAKc,iBAAL,CAAuB5rE,KAAvB,KAAiC+kE,8EAAjC,GAAiE,CAAjE,GAAqE,CAA1G;AACD;;AAED,iBAAKO,UAAL,CAAgBuG,eAAhB,CAAgC7B,sBAAhC;AACD;AACF;AACF,OA5ED,MA4EO;AACL,aAAK1lE,KAAL,CAAWuU,KAAX,CAAiB,QAAjB,EAA2BzL,IAAI,CAAC3I,OAAL,IAAgB,6CAA3C;AACD;AACF,KAhFD;;AAkFA,0CAAkC2I,IAAD,IAAkC;AACjE,UAAIA,IAAI,IAAIA,IAAI,CAACnF,MAAL,KAAgB,CAA5B,EAA+B;AAC7B;AACA,YAAIe,GAAG,GAAG,EAAV;;AACA,YAAI,KAAK8iE,qBAAT,EAAgC;AAC9B9iE,aAAG,GAAG,qDAAN;AACD,SAFD,MAEO;AACLA,aAAG,GAAG,gDAAN;AACD;;AACD,cAAM+iE,0BAA0B,GAAkD,KAAKzoE,QAAL,CAAckB,IAAd,CAAmBqgE,2HAAnB,EAAoD;AACpIh8D,cAAI,EAAE,IAD8H;AAEpI7E,cAAI,EAAE;AACJS,mBAAO,EAAE,KAAK8gE,cAAL,CAAoB/wD,SAApB,CAA8BxL,GAA9B;AADL;AAF8H,SAApD,CAAlF;AAMA+iE,kCAA0B,CAAClnE,WAA3B,GAAyChG,SAAzC,CAAmDmF,IAAI,IAAG;AACxD,cAAIA,IAAI,CAAC+E,KAAT,EAAgB;AACd,iBAAK6Z,SAAL,CAAe5a,KAAf,CAAqB;AAAEgkE,qBAAO,EAAE;AAAX,aAArB;AACD;AACF,SAJD;AAKD;;AACD,WAAKxC,gBAAL,GAAwB,KAAxB;AACD,KAtBD;;AAoKA,6BAAuC;AACrC1qD,aAAO,EAAEq1C,+FAD4B;AAErCv/C,iBAAW,EAAE,WAFwB;AAGrCqJ,WAAK,EAAE;AAH8B,KAAvC;AAKA,sBAA4B;AAC1BpV,UAAI,EAAE,IADoB;AAE1BoV,WAAK,EAAE;AAFmB,KAA5B;AAIA,oBAAW5D,+DAAX,CAhYkD,CAmpBlD;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAgBA,kEAAhB;AAsDA,0CAAiC,EAAjC;AACA,0CAAiC,EAAjC;AAmDA,4BAAmB,KAAnB,CApwBkD,CAowBxB;;AAC1B,iCAAwB,KAAxB;AA6DA,uBAA+B;AAC7BxR,UAAI,EAAE,IADuB;AAE7BkW,WAAK,EAAE,SAFsB;AAG7BtL,cAAQ,EAAE;AAHmB,KAA/B;AAj0BI;;AAEJhU,iBAAe;AACb,SAAKgmE,cAAL,CAAoB9lE,aAApB,CAAkC+f,gBAAlC,CAAmD,QAAnD,EAA6D,KAAKysD,OAAlE;AACD;;AAED5sE,aAAW;;;AACT,eAAK6sE,QAAL,MAAa,IAAb,IAAatrE,aAAb,GAAa,MAAb,GAAaA,GAAEtB,WAAF,EAAb;AACA,eAAK6sE,qBAAL,MAA0B,IAA1B,IAA0BtrE,aAA1B,GAA0B,MAA1B,GAA0BA,GAAEvB,WAAF,EAA1B;AACA,eAAK8sE,6BAAL,MAAkC,IAAlC,IAAkCrrE,aAAlC,GAAkC,MAAlC,GAAkCA,GAAEzB,WAAF,EAAlC;AACA,eAAK+sE,2BAAL,MAAgC,IAAhC,IAAgCv4C,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEx0B,WAAF,EAAhC;AACA,eAAKgtE,2BAAL,MAAgC,IAAhC,IAAgCv4C,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEz0B,WAAF,EAAhC;AACA,SAAKimE,cAAL,CAAoB9lE,aAApB,CAAkC8f,mBAAlC,CAAsD,QAAtD,EAAgE,KAAK0sD,OAArE;AACD;;AA6NDztE,UAAQ;AACN,SAAK2tE,qBAAL,GAA6B,KAAKtuD,qBAAL,CAA2BkB,UAA3B,CAAsCpgB,SAAtC,CAAgDqgB,GAAG,IAAG;AACjF,WAAKN,QAAL,GAAgBM,GAAG,KAAK,IAAR,GAAe,IAAf,GAAsB,IAAtC;AACD,KAF4B,CAA7B;AAIA,SAAKktD,QAAL,GAAgB,KAAK9G,UAAL,CAAgBqH,eAAhB,CAAgC9tE,SAAhC,CAA0C45B,YAAY,IAAG;AACvE,YAAMm0C,UAAU,GAAG,YAAnB;AACA,WAAKtoE,KAAL,CAAWuU,KAAX,CAAiB+zD,UAAjB,EAA6Bn0C,YAA7B;AACD,KAHe,CAAhB;AAKA,SAAK+zC,2BAAL,GAAmC,KAAKlH,UAAL,CAAgBuH,oBAAhB,CAAqChuE,SAArC,CAA+C,KAAKiuE,4BAApD,CAAnC;AAEA,SAAKzsC,qBAAL,CAA2Br7B,gBAA3B,GAA8C5C,IAA9C,CAAmDlD,GAAG,IAAG;AACvD,WAAKyqE,gBAAL,GAAwBzqE,GAAG,CAAC2G,EAAJ,GAAS,EAAjC;AAEA,WAAKy/D,UAAL,CAAgBljC,YAAhB,CAA6B,KAAKunC,gBAAlC,EAAoD9qE,SAApD,CAA8D;AAC5DgC,YAAI,EAAE3B,GAAG,IAAG;AACV,cAAIA,GAAG,CAAC+I,MAAJ,KAAe,CAAnB,EAAsB;AACpB,iBAAK3D,KAAL,CAAW4c,OAAX,CAAmB,UAAnB,EAA+B,GAAGhiB,GAAG,CAACuF,OAAO,EAA7C;AACD,WAFD,MAEO;AACL,iBAAK+xD,kBAAL,GAA0Bt3D,GAAG,CAAC8E,IAAJ,CAASic,SAAnC;AACD;AACF,SAP2D;AAQ5DpH,aAAK,EAAEiuB,GAAG,IAAG;AACX,eAAKxiC,KAAL,CAAWuU,KAAX,CAAiB,QAAjB,EAA2BiuB,GAA3B;AACD;AAV2D,OAA9D;AAYD,KAfD;AAiBA,SAAKwlC,6BAAL,GAAqC,KAAKhH,UAAL,CAAgB2H,wBAAhB,CAAyCpuE,SAAzC,CAAmD,KAAKquE,gCAAxD,CAArC;AAEA,SAAKX,2BAAL,GAAmC,KAAKjH,UAAL,CAAgB6H,sBAAhB,CAAuCtuE,SAAvC,CAAiD,KAAKuuE,8BAAtD,CAAnC;AAEA,SAAKiE,OAAL,GAAe,IAAIxmD,sDAAJ,CACb;AACEy+C,qBAAe,EAAE,IAAI1+C,wDAAJ,CAAgB,IAAhB,EAAsB,CAAC8jB,gEAAD,CAAtB,CADnB;AAEE65B,oCAA8B,EAAE,IAAI39C,wDAAJ,CAAgB,IAAhB,EAAsB,CAAC8jB,gEAAD,CAAtB,CAFlC;AAGEwiC,sBAAgB,EAAE,IAAItmD,wDAAJ,CAAgB,IAAhB,EAAsB,CACtC8jB,gEADsC,EAErCh6B,OAAD,IAAsD;AACpD,YAAI,KAAK08D,yBAAL,CAA+BpxE,KAA/B,KAAyC,GAA7C,EAAkD;AAChD,iBAAO,IAAP;AACD;;AACD,YAAIymC,KAAK,GAAW/xB,OAAO,CAAC1U,KAAR,IAAiB,EAArC;AACAymC,aAAK,GAAGA,KAAK,CAAC7lB,IAAN,EAAR;AACA,cAAMglD,OAAO,GAAqC,iCAAiCE,IAAjC,CAAsCr/B,KAAtC,CAAlD;AACA,eAAOm/B,OAAO,GAAG,IAAH,GAAU;AAAEqG,qBAAW,EAAE;AAAf,SAAxB;AACD,OAVqC,CAAtB,CAHpB;AAeE/B,iBAAW,EAAE,IAAIt/C,wDAAJ,CAAgB,IAAhB,EAAsB,CAAC8jB,gEAAD,CAAtB,CAff;AAgBEk9B,uBAAiB,EAAE,IAAIhhD,wDAAJ,CAAgB,IAAhB,EAAsB,CACtClW,OAAD,IAAsD;;;AACpD,YACG,kBAAK28D,OAAL,MAAY,IAAZ,IAAYvwE,aAAZ,GAAY,MAAZ,GAAYA,GAAEsH,GAAF,CAAM,aAAN,CAAZ,MAAgC,IAAhC,IAAgCrH,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEf,KAAlC,MAA4C,GAA5C,IAAmD0U,OAAO,CAAC1U,KAA5D,IACA,kBAAKqxE,OAAL,MAAY,IAAZ,IAAYpwE,aAAZ,GAAY,MAAZ,GAAYA,GAAEmH,GAAF,CAAM,aAAN,CAAZ,MAAgC,IAAhC,IAAgC4rB,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEh0B,KAAlC,MAA4C,GAD5C,IAEA,EAAC,iBAAKqxE,OAAL,MAAY,IAAZ,IAAYp9C,aAAZ,GAAY,MAAZ,GAAYA,GAAE7rB,GAAF,CAAM,aAAN,CAAZ,MAAgC,IAAhC,IAAgC8rB,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEl0B,KAAnC,CAHF,EAIE;AACA,iBAAO,IAAP;AACD;;AACD,eAAO;AAAEisE,qBAAW,EAAE;AAAf,SAAP;AACD,OAVsC,CAAtB,CAhBrB;AA4BE+E,oBAAc,EAAE,IAAIpmD,wDAAJ,CAAgB,IAAhB;AA5BlB,KADa,EA+Bb,KAAK4iD,kCAAL,CAAwCh9B,IAAxC,CAA6C,IAA7C,CA/Ba,CAAf;AAiCD;;AAEmB,MAAhB0gC,gBAAgB;AAClB,WAAO,KAAKG,OAAL,CAAajpE,GAAb,CAAiB,kBAAjB,CAAP;AACD;;AAEDopE,sBAAoB;AAClB,SAAKN,gBAAL,CAAsBxY,sBAAtB;AACD;;AAED+Y,WAAS;AACP,QAAI,CAAC,KAAK9L,cAAV,EAA0B;AACxB;AACD;;AAED,SAAKwC,YAAL,GAAoB,CAApB;AACD;;AAEDuJ,2BAAyB;;;AACvB,UAAM1xE,KAAK,GAAG,WAAKkxE,gBAAL,CAAsBlxE,KAAtB,MAA2B,IAA3B,IAA2Bc,aAA3B,GAA2B,MAA3B,GAA2BA,GAAE+Q,OAAF,CAAU,mBAAV,EAA+B,EAA/B,CAAzC;;AACA,QAAI7R,KAAJ,EAAW;AACT,WAAKkxE,gBAAL,CAAsBzwE,QAAtB,CAA+BT,KAAK,CAAC4gB,IAAN,EAA/B;AACD;;AAED,QAAI,KAAKwwD,yBAAL,CAA+BpxE,KAA/B,KAAyC,GAA7C,EAAkD;AAChD,UAAI,iCAAiC8lE,IAAjC,CAAsC9lE,KAAK,CAAC4gB,IAAN,EAAtC,CAAJ,EAAyD;AACvD,aAAK9C,kBAAL,CAAwBnX,IAAxB,CAA6B,mDAA7B,EAAkF;AAAEgrE,cAAI,EAAE3xE,KAAK,CAAC4gB,IAAN;AAAR,SAAlF,EAA0G/hB,SAA1G,CAAoH;AAClHgC,cAAI,EAAE3B,GAAG,IAAG;AACV,gBAAI,EAAEA,GAAG,CAAC+I,MAAJ,KAAe,CAAf,IAAoB/I,GAAG,CAAC8E,IAA1B,CAAJ,EAAqC;AACnC,mBAAKktE,gBAAL,CAAsB15B,SAAtB,CAAgC;AAAEy0B,2BAAW,EAAE;AAAf,eAAhC;AACD;AACF,WALiH;AAMlHpzD,eAAK,EAAEiuB,GAAG,IAAG;AACX,iBAAKoqC,gBAAL,CAAsB15B,SAAtB,CAAgC;AAAEy0B,yBAAW,EAAE;AAAf,aAAhC;AACA,iBAAK3nE,KAAL,CAAWuU,KAAX,CAAiB,QAAjB,EAA2BiuB,GAA3B;AACD;AATiH,SAApH;AAWD;AACF;AACF;;AAEkB,MAAfwiC,eAAe;AACjB,WAAO,KAAK+H,OAAL,CAAajpE,GAAb,CAAiB,iBAAjB,CAAP;AACD;;AAEDwpE,0BAAwB;;;AACtB,UAAM5xE,KAAK,GAAW,WAAKspE,eAAL,CAAqBtpE,KAArB,MAA0B,IAA1B,IAA0Bc,aAA1B,GAA0B,MAA1B,GAA0BA,GAAE+Q,OAAF,CAAU,mBAAV,EAA+B,EAA/B,CAAhD;;AACA,QAAI7R,KAAJ,EAAW;AACT,WAAKspE,eAAL,CAAqB7oE,QAArB,CAA8BT,KAAK,CAAC4gB,IAAN,EAA9B;AACD;AACF;;AAEiB,MAAdowD,cAAc;AAChB,WAAO,KAAKK,OAAL,CAAajpE,GAAb,CAAiB,gBAAjB,CAAP;AACD;;AAEDypE,yBAAuB;;;AACrB,UAAM7xE,KAAK,GAAW,WAAKgxE,cAAL,CAAoBhxE,KAApB,MAAyB,IAAzB,IAAyBc,aAAzB,GAAyB,MAAzB,GAAyBA,GAAE+Q,OAAF,CAAU,mBAAV,EAA+B,EAA/B,CAA/C;;AACA,QAAI7R,KAAJ,EAAW;AACT,WAAKgxE,cAAL,CAAoBvwE,QAApB,CAA6BT,KAAK,CAAC4gB,IAAN,EAA7B;AACD;AACF;;AAEDyvD,cAAY,CAACzrC,KAAD,EAAwB;AAClC,QAAI,CAACA,KAAL,EAAY;AACV,aAAO,EAAP;AACD;;AACD,QAAI,KAAK2gC,cAAL,CAAoB+K,WAApB,KAAoC,IAAxC,EAA8C;AAC5C,aAAO1rC,KAAK,CAACtB,SAAN,IAAmBsB,KAAK,CAAC2rC,WAAhC;AACD,KAFD,MAEO;AACL,aAAO3rC,KAAK,CAAC2rC,WAAN,IAAqB3rC,KAAK,CAACtB,SAAlC;AACD;AACF;;AAac,MAAX4mC,WAAW;AACb,WAAO,KAAKmH,OAAL,CAAajpE,GAAb,CAAiB,aAAjB,CAAP;AACD;;AAEQ,MAALigC,KAAK;AACP,WAAO,KAAKgpC,OAAL,CAAajpE,GAAb,CAAiB,OAAjB,CAAP;AACD;;AAEU,MAAPgiE,OAAO;AACT,WAAO,KAAKiH,OAAL,CAAajpE,GAAb,CAAiB,SAAjB,CAAP;AACD;;AAEoB,MAAjBwjE,iBAAiB;AACnB,WAAO,KAAKyF,OAAL,CAAajpE,GAAb,CAAiB,mBAAjB,CAAP;AACD;;AAEc,MAAX4tD,WAAW;AACb,WAAO,KAAKqb,OAAL,CAAajpE,GAAb,CAAiB,aAAjB,CAAP;AACD;;AAED0pE,cAAY;;;AACV,SAAKT,OAAL,CAAaluD,KAAb;AACA,SAAKmmD,eAAL,CAAqB7oE,QAArB,CAA8B,IAA9B;AACA,SAAKywE,gBAAL,CAAsB/tD,KAAtB;AACA,SAAK+mD,WAAL,CAAiB/mD,KAAjB;AACA,eAAKklB,KAAL,MAAU,IAAV,IAAUvnC,aAAV,GAAU,MAAV,GAAUA,GAAEqiB,KAAF,EAAV;AACA,eAAKinD,OAAL,MAAY,IAAZ,IAAYrpE,aAAZ,GAAY,MAAZ,GAAYA,GAAEoiB,KAAF,EAAZ;AACA,SAAKyoD,iBAAL,CAAuBzoD,KAAvB;AACA,SAAKooD,GAAL,CAASxF,cAAT,CAAwB5iD,KAAxB,CAA8B,EAA9B;AACA,SAAKooD,GAAL,CAASpF,UAAT,CAAoBhjD,KAApB,CAA0B,EAA1B;AACA,SAAKooD,GAAL,CAASlF,YAAT,CAAsBljD,KAAtB,CAA4B,EAA5B;AACA,SAAKooD,GAAL,CAAStF,eAAT,CAAyB9iD,KAAzB,CAA+B,EAA/B;AACA,SAAKiuD,yBAAL,CAA+BjuD,KAA/B;AACA,SAAK4qD,uBAAL,GAA+B;AAC7BjvD,aAAO,EAAE,CACP;AACEzU,aAAK,EAAE,gBADT;AAEErK,aAAK,EAAE+kE,8EAFT;AAGEyB,eAAO,EAAE;AAHX,OADO,EAMP;AACEn8D,aAAK,EAAE,gBADT;AAEErK,aAAK,EAAE+kE,8EAFT;AAGEyB,eAAO,EAAE;AAHX,OANO;AADoB,KAA/B;AAcA,SAAKwH,wBAAL,CAA8BC,aAA9B;AACD;;AAEDC,iBAAe;AACb,SAAK/F,YAAL,GAAoB,CAApB;AACD;;AAEDiG,mBAAiB;AACf,QAAI,KAAKjG,YAAL,KAAsB,CAA1B,EAA6B;AAC3B,WAAKvlD,SAAL,CAAe5a,KAAf;AACD,KAFD,MAEO;AACL,YAAMqmE,oBAAoB,GAA4C,KAAK/qE,QAAL,CAAckB,IAAd,CAAmBsgE,yGAAnB,EAA8C;AAClHj8D,YAAI,EAAE;AAD4G,OAA9C,CAAtE;AAGAwlE,0BAAoB,CAACxpE,WAArB,GAAmChG,SAAnC,CAA6CmF,IAAI,IAAG;AAClD,YAAIA,IAAI,CAAC+E,KAAT,EAAgB;AACd,eAAK6Z,SAAL,CAAe5a,KAAf;AACD;AACF,OAJD;AAKD;AACF;;AAEDmmE,mBAAiB;AACf,QAAI,CAAC,KAAK7C,YAAV,EAAwB;AACtB,aAAO,KAAP;AACD;;AACD,WACG,KAAKC,GAAL,CAASxF,cAAT,IAA2B,KAAKwF,GAAL,CAASxF,cAAT,CAAwB3zB,KAAnD,IAA4D,CAAC,CAAC,KAAKm5B,GAAL,CAASxF,cAAT,CAAwBhyB,MAAvF,IACC,KAAKw3B,GAAL,CAASlF,YAAT,IAAyB,KAAKkF,GAAL,CAASlF,YAAT,CAAsBj0B,KAA/C,IAAwD,CAAC,CAAC,KAAKm5B,GAAL,CAASlF,YAAT,CAAsBtyB,MADjF,IAEC,KAAKw3B,GAAL,CAASpF,UAAT,IAAuB,KAAKoF,GAAL,CAASpF,UAAT,CAAoB/zB,KAA3C,IAAoD,CAAC,CAAC,KAAKm5B,GAAL,CAASpF,UAAT,CAAoBpyB,MAF3E,IAGC,KAAKw3B,GAAL,CAAStF,eAAT,IAA4B,KAAKsF,GAAL,CAAStF,eAAT,CAAyB7zB,KAArD,IAA8D,CAAC,CAAC,KAAKm5B,GAAL,CAAStF,eAAT,CAAyBlyB,MAJ5F;AAMD;;AAEDy6B,iBAAe;AACb,UAAMuD,IAAI,GAAG,KAAKb,gBAAL,CAAsBlxE,KAAnC,CADa,CAEb;;AACA,UAAMgyE,MAAM,GAAG,KAAKZ,yBAAL,CAA+BpxE,KAA9C;;AAEA,QAAIgyE,MAAM,IAAI,CAAd,EAAiB;AACf,WAAKl0D,kBAAL,CAAwBnX,IAAxB,CAA6B,mDAA7B,EAAkF;AAAEgrE,YAAI,EAAEI;AAAR,OAAlF,EAAkGlzE,SAAlG,CAA4G;AAC1GgC,YAAI,EAAE3B,GAAG,IAAG;AACV,cAAIA,GAAG,CAAC+I,MAAJ,KAAe,CAAnB,EAAsB;AACpB,gBAAI/I,GAAG,CAAC8E,IAAJ,IAAY,KAAhB,EAAuB;AACrB,mBAAKktE,gBAAL,CAAsB15B,SAAtB,CAAgC;AAAEy0B,2BAAW,EAAE;AAAf,eAAhC;AACA;AACD;;AACD,iBAAKgG,SAAL;AACD;AACF,SATyG;AAU1Gp5D,aAAK,EAAEiuB,GAAG,IAAG;AACX,eAAKxiC,KAAL,CAAWuU,KAAX,CAAiB,QAAjB,EAA2BiuB,GAA3B;AACD;AAZyG,OAA5G;AAcD,KAfD,MAeO;AACL,WAAKmrC,SAAL;AACD,KAtBY,CAwBb;;AACD;;AAEiC,MAA9B1J,8BAA8B;AAChC,WAAO,KAAK8I,OAAL,CAAajpE,GAAb,CAAiB,gCAAjB,CAAP;AACD;;AAED6pE,WAAS;;;AACP,SAAKpK,8BAAL,GAAsC,EAAtC;AACA,SAAKyB,eAAL,CAAqBpoE,aAArB;AACA,SAAKgwE,gBAAL,CAAsBhwE,aAAtB;AACA,SAAKgpE,WAAL,CAAiBhpE,aAAjB;AACA,SAAK0qE,iBAAL,CAAuB1qE,aAAvB;AACA,SAAKqnE,8BAAL,CAAoCrnE,aAApC;AACA,UAAMooE,eAAe,GAAG,KAAKA,eAAL,CAAqBtpE,KAA7C;AACA,UAAMkqE,WAAW,GAAG,KAAKA,WAAL,CAAiBlqE,KAArC;;AACA,QAAIkqE,WAAW,KAAK,GAApB,EAAyB;AACvB,iBAAK7hC,KAAL,MAAU,IAAV,IAAUvnC,aAAV,GAAU,MAAV,GAAUA,GAAEI,aAAF,EAAV;AACD,KAFD,MAEO,IAAIgpE,WAAW,KAAK,GAApB,EAAyB;AAC9B,iBAAKE,OAAL,MAAY,IAAZ,IAAYrpE,aAAZ,GAAY,MAAZ,GAAYA,GAAEG,aAAF,EAAZ;AACD,KAFM,MAEA;AACL,WAAKgpE,WAAL,CAAiBhpE,aAAjB;AACD;;AACD,UAAMutE,wBAAwB,GAAG,IAAIhK,uGAAJ,EAAjC;AACAgK,4BAAwB,CAACxE,SAAzB,GAAqCX,eAArC;;AACA,QAAI,KAAKgC,YAAT,EAAuB;AACrB,UAAI,KAAKC,GAAL,CAASxF,cAAT,CAAwBhyB,MAA5B,EAAoC;AAClC,aAAKw3B,GAAL,CAASxF,cAAT,CAAwB/kE,WAAxB;AACA;AACD;AACF;;AACD,QAAI,KAAKmtE,iBAAL,EAAJ,EAA8B;AAC5B;AACD;;AACD,QAAI,KAAKkD,OAAL,CAAajtE,MAAb,KAAwB,OAA5B,EAAqC;AACnC,YAAM4sE,cAAc,GAAG,KAAKA,cAAL,CAAoBhxE,KAA3C;;AACA,UAAIgxE,cAAc,IAAIA,cAAc,CAACpwD,IAAf,OAA0B,EAAhD,EAAoD;AAClD,YAAI,KAAK41C,kBAAL,KAA4Bwa,cAAc,CAACpwD,IAAf,EAAhC,EAAuD;AACrD,eAAKowD,cAAL,CAAoBx5B,SAApB,CAA8B;AAAE0wB,iCAAqB,EAAE;AAAzB,WAA9B;AACA;AACD;;AACD,aAAKpqD,kBAAL,CACGnX,IADH,CAMK,uDANL,EAM8D;AAC1DsZ,mBAAS,EAAEpF,2EAAsB,CAACm2D,cAAc,CAACpwD,IAAf,EAAD;AADyB,SAN9D,EASG/hB,SATH,CASa;AACTgC,cAAI,EAAE3B,GAAG,IAAG;AACV,gBAAIA,GAAG,CAAC+I,MAAJ,KAAe,CAAnB,EAAsB;AACpB,mBAAKq9D,UAAL,CAAgBjjC,YAAhB,CAA6B2uC,cAAc,CAACpwD,IAAf,EAA7B;AACD,aAFD,MAEO;AACL,mBAAKowD,cAAL,CAAoB9vE,aAApB;AACA,mBAAK8vE,cAAL,CAAoBx5B,SAApB,CAA8B;AAAE0wB,qCAAqB,EAAE;AAAzB,eAA9B;AACD;AACF,WARQ;AASTrvD,eAAK,EAAEiuB,GAAG,IAAG;AACX,iBAAKxiC,KAAL,CAAWuU,KAAX,CAAiB,QAAjB,EAA2BiuB,GAA3B;AACD;AAXQ,SATb;AAsBD,OA3BD,MA2BO;AACL,aAAK2oC,+BAAL;AACD;AACF;AACF,GAppBiC,CAspBlC;AACA;;;AACAd,wBAAsB,CAAC5uE,WAAD,EAA6B;AACjD;AACA,WAAO,IAAIwJ,OAAJ,CAAiBC,OAAO,IAAG;AAChC,YAAMolE,SAAS,GAAW7uE,WAAW,CAACC,KAAtC;;AACA,UAAI,CAAC,KAAK6uE,gBAAL,CAAsBD,SAAtB,CAAL,EAAuC;AACrCplE,eAAO,CAAC;AAAEslE,wBAAc,EAAE;AAAlB,SAAD,CAAP;AACD,OAFD,MAEO;AACLtlE,eAAO,CAAC,IAAD,CAAP;AACD;AACF,KAPM,CAAP;AAQD;;AAEDulE,mBAAiB,CAAChvE,WAAD,EAA6B;AAC5C,UAAM6uE,SAAS,GAAW7uE,WAAW,CAACC,KAAtC;;AACA,QAAI,CAAC,KAAK6uE,gBAAL,CAAsBD,SAAtB,CAAL,EAAuC;AACrC,aAAO;AAAEE,sBAAc,EAAE;AAAlB,OAAP;AACD,KAFD,MAEO;AACL,aAAO,IAAP;AACD;AACF;;AAEDD,kBAAgB,CAACvS,GAAD,EAAY;AAC1B,QAAI,eAAej8D,IAAf,CAAoBi8D,GAAG,GAAG,EAA1B,CAAJ,EAAmC;AACjC,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAED0S,mBAAiB,CAAC1S,GAAD,EAAY;AAC3B,QAAI,cAAcj8D,IAAd,CAAmBi8D,GAAG,GAAG,EAAzB,CAAJ,EAAkC;AAChC,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDkR,oCAAkC,CAACn8B,SAAD,EAA2B;;;AAC3D,UAAM64B,WAAW,GAAG,eAAS,CAAC9hE,GAAV,CAAc,aAAd,OAA4B,IAA5B,IAA4BtH,aAA5B,GAA4B,MAA5B,GAA4BA,GAAEd,KAAlD;;AACA,QAAIkqE,WAAW,KAAK,GAApB,EAAyB;AACvB,YAAMlU,WAAW,GAAG,eAAS,CAAC5tD,GAAV,CAAc,aAAd,OAA4B,IAA5B,IAA4BrH,aAA5B,GAA4B,MAA5B,GAA4BA,GAAEf,KAAlD;AACA,YAAMoqE,OAAO,GAAG,eAAS,CAAChiE,GAAV,CAAc,SAAd,OAAwB,IAAxB,IAAwBnH,aAAxB,GAAwB,MAAxB,GAAwBA,GAAEjB,KAA1C,CAFuB,CAGvB;;AACA,UAAIoqE,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAKtiD,SAApC,EAA+C;AAC7C,eAAO;AAAEqoB,kBAAQ,EAAE;AAAZ,SAAP;AACD,OAFD,MAEO,IAAK6lB,WAAW,KAAK,IAAhB,IAAwB,CAAC,KAAKgZ,iBAAL,CAAuB5E,OAAvB,CAA1B,IAA+DpU,WAAW,KAAK,KAAhB,IAAyB,CAAC,KAAK6Y,gBAAL,CAAsBzE,OAAtB,CAA7F,EAA8H;AACnI,eAAO;AAAE0E,wBAAc,EAAE;AAAlB,SAAP;AACD;AACF;;AACD,WAAO,IAAP;AACD;;AAGDG,qBAAmB,CAACnwE,GAAD,EAAY;AAC7B,SAAK8sE,iBAAL,CAAuBnrE,QAAvB,CAAgCqnB,SAAhC;;AACA,QAAIhpB,GAAG,KAAK,GAAZ,EAAiB;AACf,WAAKuyE,OAAL,CAAanC,aAAb,CAA2B,aAA3B;AACA,WAAKmC,OAAL,CAAanC,aAAb,CAA2B,SAA3B;AACA,WAAKC,gBAAL,GAAwB,IAAIvkD,wDAAJ,CAAgB,IAAhB,EAAsB,CAAC8jB,gEAAD,EAAsBA,6DAAtB,CAAtB,CAAxB;AACA,WAAK2iC,OAAL,CAAajC,UAAb,CAAwB,OAAxB,EAAiC,KAAKD,gBAAtC;AACA,WAAKpB,uBAAL,GAA+B;AAC7BjvD,eAAO,EAAE,CACP;AACEzU,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SADO,EAMP;AACEn8D,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SANO;AADoB,OAA/B;AAcD,KAnBD,MAmBO,IAAI1nE,GAAG,KAAK,GAAZ,EAAiB;AACtB,WAAKuyE,OAAL,CAAanC,aAAb,CAA2B,OAA3B;AACA,YAAMG,sBAAsB,GAAG,IAAIzkD,wDAAJ,CAAgB,IAAhB,EAAsB,CAAC8jB,gEAAD,CAAtB,CAA/B;AACA,YAAM4gC,kBAAkB,GAAG,IAAI1kD,wDAAJ,CAAgB,IAAhB,EAAsB,CAAC8jB,gEAAD,CAAtB,CAA3B;AACA,WAAK2iC,OAAL,CAAajC,UAAb,CAAwB,aAAxB,EAAuCC,sBAAvC;AACA,WAAKgC,OAAL,CAAajC,UAAb,CAAwB,SAAxB,EAAmCE,kBAAnC;AACA,WAAK+B,OAAL,CAAar9D,UAAb,CAAwB;AAAEgiD,mBAAW,EAAE;AAAf,OAAxB;AACA,WAAK+X,uBAAL,GAA+B;AAC7BjvD,eAAO,EAAE,CACP;AACEzU,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SADO,EAMP;AACEn8D,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SANO;AADoB,OAA/B;AAcD;;AACD,SAAKwH,wBAAL,CAA8BC,aAA9B;AACD;;AAUDiE,eAAa;AACX,SAAK/J,YAAL,GAAoB,CAApB;AACD,GAnwBiC,CAqwBlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAqH,eAAa;;;AACX,UAAMtF,WAAW,GAAG,KAAKA,WAAL,CAAiBlqE,KAArC;;AACA,QAAIkqE,WAAW,KAAK,GAApB,EAAyB;AACvB,iBAAK7hC,KAAL,MAAU,IAAV,IAAUvnC,aAAV,GAAU,MAAV,GAAUA,GAAEI,aAAF,EAAV;AACD,KAFD,MAEO,IAAIgpE,WAAW,KAAK,GAApB,EAAyB;AAC9B,iBAAKE,OAAL,MAAY,IAAZ,IAAYrpE,aAAZ,GAAY,MAAZ,GAAYA,GAAEG,aAAF,EAAZ;AACD,KAFM,MAEA;AACL,WAAKgpE,WAAL,CAAiBhpE,aAAjB;AACD;;AACD,SAAKuuE,+BAAL;AACD;;AAE+B,MAA5BC,4BAA4B;AAC9B,WACEC,OAAO,CAAC,KAAKnH,oBAAL,IAA6B,KAAKX,8BAAL,KAAwC,GAArE,IAA4E,CAAC,KAAKkD,4BAAnF,CAAP,IACC,KAAKxC,8BAAL,CAAoCvoE,KAApC,IAA6C,KAAKwoE,oBAAL,KAA8B1gD,SAF9E;AAID;;AAED8nD,uBAAqB;AACnB,QAAI,KAAKF,4BAAT,EAAuC;AACrC;AACD;;AACD,SAAKvH,YAAL,GAAoB,CAApB;AACD;;AAIDC,gCAA8B,CAACtpE,GAAD,EAAY;;;AACxC,SAAKisE,4BAAL,GAAoCjjD,SAApC;;AACA,QAAIhpB,GAAG,KAAK,GAAZ,EAAiB;AACf,WAAK8oE,8BAAL,GAAsC,KAAKH,uBAA3C;AACA,WAAKoI,kCAAL,GAA0C;AACxC/wD,eAAO,EAAE,CACP;AACEzU,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SADO,EAMP;AACEn8D,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SANO;AAD+B,OAA1C;AAcD,KAhBD,MAgBO,IAAI1nE,GAAG,KAAK,GAAZ,EAAiB;AACtB,WAAK8oE,8BAAL,GAAsC,KAAKF,uBAA3C;AACA,WAAKmI,kCAAL,GAA0C;AACxC/wD,eAAO,EAAE,CACP;AACEzU,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SADO,EAMP;AACEn8D,eAAK,EAAE,gBADT;AAEErK,eAAK,EAAE+kE,8EAFT;AAGEyB,iBAAO,EAAE;AAHX,SANO;AAD+B,OAA1C;AAcD;;AACD,eAAKsJ,mCAAL,MAAwC,IAAxC,IAAwChvE,aAAxC,GAAwC,MAAxC,GAAwCA,GAAEmtE,aAAF,EAAxC;AACD;;AAEDgC,sBAAoB;AAClB,SAAK9H,YAAL,GAAoB,CAApB;AACD;;AAEDsH,iCAA+B;AAC7B,UAAMnG,eAAe,GAAG,KAAKA,eAAL,CAAqBtpE,KAA7C;AACA,UAAMyuE,wBAAwB,GAAG,IAAIhK,uGAAJ,EAAjC;AACAgK,4BAAwB,CAACxE,SAAzB,GAAqCX,eAArC;AACAmF,4BAAwB,CAACC,UAAzB,GAAsC,QAAtC;AACA,SAAKpJ,UAAL,CAAgB6M,iBAAhB,CAAkC1D,wBAAlC;AACD;;AAID0B,yBAAuB;;;AACrB,SAAK3G,gBAAL,GAAwB,IAAxB;AACA,SAAKsC,qBAAL,GAA6B,KAA7B,CAFqB,CAGrB;;AACA,UAAMrC,YAAY,GAAG,EAArB;AACA,UAAMtnC,SAAS,GAAG,IAAIuiC,oFAAJ,EAAlB;AACAviC,aAAS,CAACunC,eAAV,GAA4B,KAAKC,gBAAjC;AACA,UAAMC,cAAc,GAAG,KAAKrB,8BAAL,CAAoCvoE,KAA3D;AACAmiC,aAAS,CAAC0nC,YAAV,GAAyBD,cAAc,KAAK,IAAnB,IAA2BA,cAAc,KAAK9hD,SAA9C,GAA0D,KAA1D,GAAkE8hD,cAA3F;AACAznC,aAAS,CAAC2nC,wBAAV,GAAqC,EAArC;AACA3nC,aAAS,CAAC4nC,YAAV,GAAyB,IAAzB;AACAN,gBAAY,CAACx5D,IAAb,CAAkBkyB,SAAlB;AACA,UAAM6nC,sBAAsB,GAAG,IAAIrF,iGAAJ,EAA/B;AACAqF,0BAAsB,CAACC,SAAvB,GAAmC,KAAKX,eAAL,CAAqBtpE,KAAxD,CAbqB,CAcrB;;AACAgqE,0BAAsB,CAACmB,UAAvB,GAAoCnG,gFAApC,CAfqB,CAgBrB;;AACAgF,0BAAsB,CAACkH,gBAAvB,GAA0C,KAAKA,gBAAL,CAAsBlxE,KAAhE;AACAgqE,0BAAsB,CAACmH,MAAvB,GAAgC,KAAKC,yBAAL,CAA+BpxE,KAA/D,CAlBqB,CAmBrB;;AACAgqE,0BAAsB,CAACrvB,OAAvB,GAAiC,KAAKuvB,WAAL,CAAiBlqE,KAAlD;AACAgqE,0BAAsB,CAACrQ,kBAAvB,GAA4C,WAAK3D,WAAL,MAAgB,IAAhB,IAAgBl1D,aAAhB,GAAgB,MAAhB,GAAgBA,GAAEd,KAA9D;AACAgqE,0BAAsB,CAACG,QAAvB,GAAkC,WAAKC,OAAL,MAAY,IAAZ,IAAYrpE,aAAZ,GAAY,MAAZ,GAAYA,GAAEf,KAAhD;AACAgqE,0BAAsB,CAACK,SAAvB,GAAmC,WAAKhiC,KAAL,MAAU,IAAV,IAAUpnC,aAAV,GAAU,MAAV,GAAUA,GAAEjB,KAA/C;AACAgqE,0BAAsB,CAACM,SAAvB,GAAmC,KAAnC;;AACA,QAAI,KAAKd,gBAAT,EAA2B;AACzB,YAAMmB,UAAU,GAAG,IAAIjG,oFAAJ,EAAnB;AACAiG,gBAAU,CAACC,OAAX,GAAqB,WAAK/D,eAAL,MAAoB,IAApB,IAAoB7yC,aAApB,GAAoB,MAApB,GAAoBA,GAAE62C,OAA3C;AACAF,gBAAU,CAACd,YAAX,GAA0B,KAAKrB,oBAAL,KAA8B,IAA9B,IAAsC,KAAKA,oBAAL,KAA8B1gD,SAApE,GAAgF,KAAhF,GAAwF,KAAK0gD,oBAAvH;AACA,WAAKsD,qBAAL,GAA6BnB,UAAU,CAACd,YAAxC;AACAc,gBAAU,CAACb,wBAAX,GAAsC,KAAKjC,8BAA3C;AACA8C,gBAAU,CAACZ,YAAX,GAA0B,KAA1B;;AACA,UAAIY,UAAU,CAACd,YAAX,IAA2B,KAAKhC,8BAAL,KAAwC,GAAvE,EAA4E;AAC1E8C,kBAAU,CAACG,WAAX,GAAyB,KAAKC,4BAAL,KAAsChG,8EAAtC,GAAsE,CAAtE,GAA0E,CAAnG;AACD;;AACD0E,kBAAY,CAACx5D,IAAb,CAAkB06D,UAAlB;AACAX,4BAAsB,CAACM,SAAvB,GAAmC,IAAnC;AACD;;AACDN,0BAAsB,CAACkB,UAAvB,GAAoCzB,YAApC;;AAEA,QAAI,KAAKzlE,IAAL,CAAUstE,MAAV,KAAqBtM,yEAAzB,EAAmD;AACjDgF,4BAAsB,CAACmB,UAAvB,GAAoCnG,yEAApC;AACAgF,4BAAsB,CAACqB,WAAvB,GAAqCrG,yEAArC;AACD;;AACD,QAAI,KAAKsG,YAAT,EAAuB;AACrBtB,4BAAsB,CAACuB,GAAvB,GAA6B;AAC3BC,uBAAe,EAAE,KAAKD,GAAL,CAASxF,cAAT,CAAwB/lE,KADd;AAE3ByrE,qBAAa,EAAE,KAAKF,GAAL,CAAStF,eAAT,CAAyBjmE,KAFb;AAG3B0rE,qBAAa,EAAE,KAAKH,GAAL,CAASlF,YAAT,CAAsBrmE,KAHV;AAI3B2rE,mBAAW,EAAE,KAAKJ,GAAL,CAASpF,UAAT,CAAoBnmE;AAJN,OAA7B;AAMD;;AAED,QAAIgqE,sBAAsB,CAACrvB,OAAvB,KAAmC,GAAvC,EAA4C;AAC1CqvB,4BAAsB,CAACc,WAAvB,GAAqC,KAAKc,iBAAL,CAAuB5rE,KAAvB,KAAiC+kE,8EAAjC,GAAiE,CAAjE,GAAqE,CAA1G;AACD;;AAED,SAAKO,UAAL,CAAgBuG,eAAhB,CAAgC7B,sBAAhC;AACD;;AAODoG,YAAU;AACR,SAAKjI,YAAL,GAAoB,CAApB;AACD;;AAEe,MAAZmD,YAAY;AACd,WAAO,KAAK9F,mBAAL,CAAyB7qB,OAAzB,KAAqC7B,yFAA5C;AACD;;AAEa,MAAV23B,UAAU;;;AACZ,QAAI,KAAKjL,mBAAL,CAAyB7qB,OAAzB,KAAqC7B,yFAAzC,EAA2D;AACzD,aAAO,IAAP;AACD;;AACD,QAAI,KAAK0sB,mBAAL,CAAyB7qB,OAAzB,KAAqC7B,+FAArC,KAA+D,WAAK0sB,mBAAL,CAAyBvlD,SAAzB,MAAkC,IAAlC,IAAkCnf,aAAlC,GAAkC,MAAlC,GAAkCA,GAAE27B,UAAF,CAAa,KAAb,CAAjG,CAAJ,EAA0H;AACxH,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AA77BiC;;;mBAAvBs0C,yBAAuBhzE,gEAAAA,CAAAA,mEAAAA,GAAAA,gEAAAA,CAAAA,0EAAAA,GAAAA,gEAAAA,CAAAA,yFAAAA,GAAAA,gEAAAA,CAAAA,6DAAAA,GAAAA,gEAAAA,CAAAA,0EAAAA,GAAAA,gEAAAA,CAAAA,gGAAAA,GAAAA,gEAAAA,CAAAA,8DAAAA,GAAAA,gEAAAA,CAiGxB6yE,yEAjGwB,GAiGV7yE,gEAAAA,CAAAA,mGAAAA,GAAAA,gEAAAA,CAAAA,6FAAAA;AAAA;;;QAjGbgzE;AAAuBzvE;AAAAC;AAAA;;;;;;;;;;;;;;;;;;;ACpCpCxD,MAAAA,6DAAAA,cAA6B,CAA7B,EAA6B,KAA7B,EAA6B,CAA7B,EAA6B,CAA7B,EAA6B,UAA7B,EAA6B,CAA7B;AAE8DA,MAAAA,yDAAAA;AAAA,eAASwX,uBAAT;AAA4B,OAA5B;AAA8BxX,MAAAA,2DAAAA;AAG1FA,MAAAA,6DAAAA,WAAK,CAAL,EAAK,KAAL,EAAK,CAAL,EAAK,CAAL,EAAK,KAAL,EAAK,CAAL,EAAK,CAAL,EAAK,KAAL,EAAK,CAAL,EAAK,CAAL,EAAK,KAAL,EAAK,CAAL,EAAK,CAAL,EAAK,KAAL,EAAK,CAAL,EAAK,CAAL,EAAK,KAAL,EAAK,EAAL,EAAK,KAAL,EAAK,CAAL;AAOyDA,MAAAA,qDAAAA;AAAWA,MAAAA,2DAAAA;AAG1DA,MAAAA,6DAAAA,eAAoB,EAApB,EAAoB,MAApB;AACQA,MAAAA,qDAAAA;AAAyDA,MAAAA,2DAAAA;AAC/DA,MAAAA,6DAAAA;AAAMA,MAAAA,qDAAAA;AAAgEA,MAAAA,2DAAAA;AACtEA,MAAAA,6DAAAA;AAAMA,MAAAA,qDAAAA;AAA0DA,MAAAA,2DAAAA;AAChEA,MAAAA,6DAAAA;AAAMA,MAAAA,qDAAAA;AAA2DA,MAAAA,2DAAAA;AAEnEA,MAAAA,6DAAAA;AACEA,MAAAA,wDAAAA;AACFA,MAAAA,2DAAAA;AAINA,MAAAA,6DAAAA,gBAAwB,EAAxB,EAAwB,YAAxB,EAAwB,EAAxB;AAC6BA,MAAAA,yDAAAA;AAAA,eAASwX,gBAAT;AAAqB,OAArB;AAA8CxX,MAAAA,2DAAAA;AAG7EA,MAAAA,6DAAAA,gBAAiF,EAAjF,EAAiF,KAAjF,EAAiF,EAAjF,EAAiF,EAAjF,EAAiF,MAAjF,EAAiF,EAAjF;AAEkCA,MAAAA,qDAAAA;;AAAiCA,MAAAA,2DAAAA;AAEjEA,MAAAA,6DAAAA,oBAAqC,EAArC,EAAqC,KAArC,EAAqC,EAArC,EAAqC,EAArC,EAAqC,MAArC,EAAqC,EAArC;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA,WAAM,EAAN,EAAM,IAAN;AAEAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA,WAAM,EAAN,EAAM,IAAN;AAEAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA,WAAM,EAAN,EAAM,IAAN;AAEAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA,YAAM,GAAN,EAAM,IAAN;AAEAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA,YAAM,GAAN,EAAM,IAAN;AAEAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAA4D,GAA5D,EAA4D,YAA5D,EAA4D,EAA5D;AAC4DA,MAAAA,yDAAAA;AAAA,eAASwX,eAAT;AAAoB,OAApB;;AAA2ExX,MAAAA,2DAAAA;AAGzIA,MAAAA,6DAAAA,aAA6D,GAA7D,EAA6D,MAA7D,EAA6D,EAA7D;AAC8BA,MAAAA,yDAAAA;AAAA,eAAYwX,qBAAZ;AAA6B,OAA7B;AAC1BxX,MAAAA,6DAAAA,iBAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB;AAEIA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AACAA,MAAAA,6DAAAA,iBAAuB,GAAvB,EAAuB,MAAvB,EAAuB,EAAvB;AAEIA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAGJA,MAAAA,6DAAAA,iBAA2D,GAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,GAA3D,EAA2D,KAA3D,EAA2D,EAA3D;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAiC,GAAjC,EAAiC,KAAjC,EAAiC,EAAjC,EAAiC,GAAjC,EAAiC,OAAjC,EAAiC,EAAjC;AAQMA,MAAAA,yDAAAA;AAAA,eAAQwX,8BAAR;AAAkC,OAAlC;;AANFxX,MAAAA,2DAAAA;AAQAA,MAAAA,yDAAAA;AAQFA,MAAAA,2DAAAA;AACAA,MAAAA,6DAAAA,iBAA6B,GAA7B,EAA6B,UAA7B,EAA6B,EAA7B;AACoDA,MAAAA,yDAAAA;AAAA,eAASwX,qBAAT;AAA0B,OAA1B;AAA4BxX,MAAAA,2DAAAA;AAIpFA,MAAAA,6DAAAA,iBAA2B,GAA3B,EAA2B,KAA3B,EAA2B,EAA3B;AAEIA,MAAAA,wDAAAA;AAMAA,MAAAA,yDAAAA;AAMFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB,EAAiB,GAAjB,EAAiB,MAAjB,EAAiB,EAAjB;AAEiDA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAEjFA,MAAAA,6DAAAA,iBAAqE,GAArE,EAAqE,cAArE,EAAqE,EAArE;AAC0FA,MAAAA,yDAAAA;AAAA,eAAiBwX,0BAAjB;AAAuC,OAAvC;AAAyCxX,MAAAA,2DAAAA;AACjIA,MAAAA,yDAAAA;AASFA,MAAAA,2DAAAA;AACAA,MAAAA,6DAAAA,iBAA6F,GAA7F,EAA6F,OAA7F,EAA6F,EAA7F;AAMIA,MAAAA,yDAAAA;AAAA,eAAQwX,+BAAR;AAAmC,OAAnC;;AALFxX,MAAAA,2DAAAA;AAOAA,MAAAA,yDAAAA;AAmBFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAA2D,GAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,GAA3D,EAA2D,KAA3D,EAA2D,GAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGmCA,MAAAA,qDAAAA;;AAAuCA,MAAAA,2DAAAA;AAEtEA,MAAAA,6DAAAA,aAAK,GAAL,EAAK,MAAL,EAAK,EAAL;AAC+BA,MAAAA,qDAAAA;;AAAuCA,MAAAA,2DAAAA;AACpEA,MAAAA,6DAAAA;AAA0EA,MAAAA,qDAAAA;AAACA,MAAAA,2DAAAA;AAAOA,MAAAA,qDAAAA;AACpFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,WAAtB,EAAsB,EAAtB;AAiBMA,MAAAA,yDAAAA;AAAA,eAAawX,+BAAb;AAAwC,OAAxC;;;AACiBxX,MAAAA,2DAAAA;AACnBA,MAAAA,yDAAAA;AAGFA,MAAAA,2DAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,yDAAAA;AAsBAA,MAAAA,yDAAAA;AAeFA,MAAAA,2DAAAA;AAEFA,MAAAA,yDAAAA;AAuFAA,MAAAA,6DAAAA,iBAA2D,GAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,GAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAE2EA,MAAAA,qDAAAA;;AAA4CA,MAAAA,2DAAAA;AAGvHA,MAAAA,6DAAAA,iBAA2D,GAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,GAA3D,EAA2D,KAA3D,EAA2D,GAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGoCA,MAAAA,qDAAAA;;AAAwDA,MAAAA,2DAAAA;AAG1FA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,cAAtB,EAAsB,EAAtB,EAAsB,EAAtB;AAIIA,MAAAA,yDAAAA;AAAA;AAAA,0BAAewX,gBAAY,mBAAZ,CAAf,KAA+C,IAA/C,GAA+C,IAA/C,GAAeo7D,wBAAf;AAAiE,OAAjE;AAEmC5yE,MAAAA,2DAAAA;AAGzCA,MAAAA,yDAAAA;AASAA,MAAAA,6DAAAA,iBAA2D,GAA3D,EAA2D,KAA3D,EAA2D,EAA3D,EAA2D,GAA3D,EAA2D,KAA3D,EAA2D,GAA3D,EAA2D,MAA3D,EAA2D,EAA3D;AAGoCA,MAAAA,qDAAAA;;AAAuCA,MAAAA,2DAAAA;AAGzEA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,OAAtB,EAAsB,EAAtB;AAUMA,MAAAA,yDAAAA;AAAA,eAAQwX,6BAAR;AAAiC,OAAjC;;AARFxX,MAAAA,2DAAAA;AAWFA,MAAAA,yDAAAA;AAOFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAA8B,GAA9B,EAA8B,KAA9B,EAA8B,EAA9B,EAA8B,GAA9B,EAA8B,YAA9B,EAA8B,EAA9B;AAEiDA,MAAAA,yDAAAA;AAAA,eAASwX,kBAAT;AAAuB,OAAvB;;AAAkDxX,MAAAA,2DAAAA;AAEjGA,MAAAA,yDAAAA;AASAA,MAAAA,yDAAAA;AASFA,MAAAA,2DAAAA;AAGJA,MAAAA,6DAAAA,aAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D,EAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D,EAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D;AAIQA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAoC,GAApC,EAAoC,+BAApC,EAAoC,EAApC;;AAEIA,MAAAA,6DAAAA,gBAA0B,GAA1B,EAA0B,IAA1B,EAA0B,GAA1B,EAA0B,MAA1B,EAA0B,EAA1B;AAE8BA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAE9DA,MAAAA,6DAAAA,YAAI,GAAJ,EAAI,MAAJ,EAAI,EAAJ;AAC4BA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAE9DA,MAAAA,6DAAAA,YAAI,GAAJ,EAAI,MAAJ,EAAI,EAAJ;AAC4BA,MAAAA,qDAAAA;;AAA0CA,MAAAA,2DAAAA;AACpEA,MAAAA,6DAAAA;AAAmCA,MAAAA,qDAAAA;;AAAyCA,MAAAA,2DAAAA;AAC5EA,MAAAA,6DAAAA;AAA0BA,MAAAA,qDAAAA;;AAAyCA,MAAAA,2DAAAA;AAM7EA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAEqCA,MAAAA,qDAAAA;AAAmCA,MAAAA,2DAAAA;AAEtEA,MAAAA,6DAAAA;AACEA,MAAAA,wDAAAA;AAMFA,MAAAA,2DAAAA;AAGJA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAEhEA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAEqCA,MAAAA,qDAAAA;AAAqCA,MAAAA,2DAAAA;AAI5EA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAEqCA,MAAAA,qDAAAA;AAE/BA,MAAAA,2DAAAA;AAIRA,MAAAA,yDAAAA;AAaAA,MAAAA,yDAAAA;AAkCAA,MAAAA,6DAAAA,iBAA8B,GAA9B,EAA8B,KAA9B,EAA8B,EAA9B,EAA8B,GAA9B,EAA8B,YAA9B,EAA8B,EAA9B;AAEgDA,MAAAA,yDAAAA;AAAA,eAASwX,mBAAT;AAAwB,OAAxB;;AAAmDxX,MAAAA,2DAAAA;AAEjGA,MAAAA,6DAAAA,iBAAoB,GAApB,EAAoB,YAApB,EAAoB,EAApB;AAC0DA,MAAAA,yDAAAA;AAAA,eAASwX,mBAAT;AAAwB,OAAxB;;AAAkDxX,MAAAA,2DAAAA;AAC1GA,MAAAA,6DAAAA,iBAAoB,GAApB,EAAoB,oBAApB,EAAoB,EAApB;AACmCA,MAAAA,qDAAAA;;AAA8CA,MAAAA,2DAAAA;AAMvFA,MAAAA,6DAAAA,aAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D,EAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB;AAEIA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAEiCA,MAAAA,qDAAAA;AAAkCA,MAAAA,2DAAAA;AAIrEA,MAAAA,6DAAAA,iBAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB,EAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAEiCA,MAAAA,qDAAAA;AAAmCA,MAAAA,2DAAAA;AAItEA,MAAAA,6DAAAA,iBAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB,EAAiB,GAAjB,EAAiB,0BAAjB,EAAiB,EAAjB,EAAiB,EAAjB;AAMMA,MAAAA,yDAAAA;AAAA;AAAA;AACiBA,MAAAA,2DAAAA;AAGvBA,MAAAA,yDAAAA;AAyCAA,MAAAA,6DAAAA,iBAA8B,GAA9B,EAA8B,KAA9B,EAA8B,EAA9B,EAA8B,GAA9B,EAA8B,YAA9B,EAA8B,EAA9B;AAEgDA,MAAAA,yDAAAA;AAAA,eAASwX,mBAAT;AAAwB,OAAxB;;AAAmDxX,MAAAA,2DAAAA;AAEjGA,MAAAA,6DAAAA,iBAAoB,GAApB,EAAoB,YAApB,EAAoB,EAApB;AAIIA,MAAAA,yDAAAA;AAAA,eAASwX,2BAAT;AAAgC,OAAhC;;AACwBxX,MAAAA,2DAAAA;AAKhCA,MAAAA,6DAAAA,aAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D,EAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D,EAA6D,GAA7D,EAA6D,KAA7D,EAA6D,EAA7D;AAIQA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAGFA,MAAAA,6DAAAA,iBAAwC,GAAxC,EAAwC,+BAAxC,EAAwC,EAAxC;;AAEIA,MAAAA,6DAAAA,gBAA0B,GAA1B,EAA0B,IAA1B,EAA0B,GAA1B,EAA0B,MAA1B,EAA0B,EAA1B;AAE8BA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAE9DA,MAAAA,6DAAAA,YAAI,GAAJ,EAAI,MAAJ,EAAI,EAAJ;AAC4BA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAE9DA,MAAAA,6DAAAA,YAAI,GAAJ,EAAI,MAAJ,EAAI,EAAJ;AAC4BA,MAAAA,qDAAAA;;AAA0CA,MAAAA,2DAAAA;AACpEA,MAAAA,6DAAAA;AAAmCA,MAAAA,qDAAAA;;AAAyCA,MAAAA,2DAAAA;AAC5EA,MAAAA,6DAAAA;AAA0BA,MAAAA,qDAAAA;;AAAyCA,MAAAA,2DAAAA;AAM7EA,MAAAA,6DAAAA,iBAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB,EAAiB,GAAjB,EAAiB,KAAjB,EAAiB,EAAjB;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,MAAAA,qDAAAA;AAAmCA,MAAAA,2DAAAA;AAIpEA,MAAAA,6DAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,wDAAAA;AAMFA,MAAAA,2DAAAA;AAGFA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAEgCA,MAAAA,qDAAAA;;AAAkCA,MAAAA,2DAAAA;AAEhEA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,KAAtB,EAAsB,EAAtB,EAAsB,GAAtB,EAAsB,MAAtB;AAEUA,MAAAA,qDAAAA;AAAqCA,MAAAA,2DAAAA;AAIjDA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB;AAGMA,MAAAA,qDAAAA;;AACFA,MAAAA,2DAAAA;AAEFA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,MAAAA,qDAAAA;AAE3BA,MAAAA,2DAAAA;AAGNA,MAAAA,yDAAAA;AAaAA,MAAAA,yDAAAA;AAkCAA,MAAAA,6DAAAA,iBAAwB,GAAxB,EAAwB,KAAxB,EAAwB,EAAxB,EAAwB,GAAxB,EAAwB,KAAxB,EAAwB,GAAxB,EAAwB,MAAxB,EAAwB,EAAxB;AAGmCA,MAAAA,qDAAAA;;AAAmCA,MAAAA,2DAAAA;AAGpEA,MAAAA,6DAAAA,iBAAsB,GAAtB,EAAsB,MAAtB,EAAsB,EAAtB;AAC+BA,MAAAA,qDAAAA;AAAsCA,MAAAA,2DAAAA;AACnEA,MAAAA,6DAAAA,iBAAqF,GAArF,EAAqF,MAArF,EAAqF,EAArF;AAC+BA,MAAAA,qDAAAA;AAAmCA,MAAAA,2DAAAA;AAItEA,MAAAA,yDAAAA;AAmCAA,MAAAA,6DAAAA,iBAAoB,GAApB,EAAoB,KAApB,EAAoB,EAApB;AAEIA,MAAAA,wDAAAA;AACAA,MAAAA,6DAAAA;AACEA,MAAAA,wDAAAA;AAMFA,MAAAA,2DAAAA;AAGJA,MAAAA,6DAAAA,iBAA8B,GAA9B,EAA8B,KAA9B,EAA8B,EAA9B,EAA8B,GAA9B,EAA8B,YAA9B,EAA8B,EAA9B;AAEgDA,MAAAA,yDAAAA;AAAA,eAASwX,0BAAT;AAA+B,OAA/B;;AAA0DxX,MAAAA,2DAAAA;AAExGA,MAAAA,6DAAAA,iBAAmC,GAAnC,EAAmC,YAAnC,EAAmC,EAAnC;AAC0DA,MAAAA,yDAAAA;AAAA,eAASwX,6BAAT;AAAkC,OAAlC;;AAA4DxX,MAAAA,2DAAAA;AACpHA,MAAAA,6DAAAA,iBAAoB,GAApB,EAAoB,oBAApB,EAAoB,EAApB;AACmCA,MAAAA,qDAAAA;;AAA8CA,MAAAA,2DAAAA;;;;;;;;;;;;;;;;;AAl4B/BA,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAsBFA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAG7BA,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAESA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAK1BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAMQA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAoEA,MAAAA,yDAAAA,kCAA4B,QAA5B,EAA4BwX,gBAA5B;AAG/ExX,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AACGA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAIEA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAOAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AASEA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,gBAAAA,0DAAAA;AAFAA,MAAAA,yDAAAA;AAMmBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAUXA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,uBAAiB,QAAjB,EAAiBwX,cAAjB;AASVxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAKCA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAQ0CA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAG/BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,qCAA+B,aAA/B,EAA+BwX,6BAA/B;AAGXxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAaDA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,gBAAAA,0DAAAA;AAGmBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAwBUA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAQ3BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,WAAAA,8DAAAA,WAAAA,8DAAAA,WAAAA,8DAAAA,WAAAA,0DAAAA,qCAAAA,8DAAAA,WAAAA,0DAAAA;AAemBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAKjBA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAsBAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAiBKA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAyF4DA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAMvCA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAQ9BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,6FAAiD,QAAjD,EAAiDwX,2BAAjD;AAKHxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAWiCA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAW5BA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,gBAAAA,0DAAAA;AALAA,MAAAA,yDAAAA,YAAAA,8DAAAA,mEAA+D,WAA/D,EAA+D,CAA/D;AAIAA,MAAAA,0DAAAA;AAMEA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAWMA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAA0DA,MAAAA,yDAAAA;AAEnDA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AASAA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAYtBA,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAIGA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAI6BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,iBAAe,OAAf,EAAeA,0DAAAA,6BAAf;AAGCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACSA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACTA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAS9BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKiCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAM/BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,kBAAgB,OAAhB,EAAgB,8FAAhB;AAQwBA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAIOA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA;AAOjCA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKiCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAMjCA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAaSA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAoCCA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAA0DA,MAAAA,yDAAAA;AAG1DA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAsEA,MAAAA,yDAAAA;AAE/CA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAMpCA,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAGCA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAKAA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAMEA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAK6BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAO7BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAK6BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAS7BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,iHAAiE,OAAjE,EAAiEwX,wBAAjE;AAKuBxX,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AA2CbA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAA0DA,MAAAA,yDAAAA;AAKpEA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AADAA,MAAAA,yDAAAA,+CAAyC,QAAzC,EAAyCwX,gBAAzC;AAQHxX,MAAAA,wDAAAA;AAAAA,MAAAA,0DAAAA;AAIGA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAK6BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,iBAAe,OAAf,EAAeA,0DAAAA,6BAAf;AAGCA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAGAA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACSA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AACTA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;AAS9BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAI2BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAU3BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,kBAAgB,OAAhB,EAAgB,gGAAhB;AAQ0BA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAIpBA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA;AAONA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,MAAAA,0DAAAA;AAI2BA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAK3BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAaSA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAqCoBA,MAAAA,wDAAAA;AAAAA,MAAAA,iEAAAA,KAAAA,0DAAAA;AAIFA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAEEA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA;AAI7BA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA;AAyCEA,MAAAA,wDAAAA;AAAAA,MAAAA,yDAAAA,oCAA8B,SAA9B,EAA8B,IAA9B;AASQA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAiEA,MAAAA,yDAAAA;AAGjEA,MAAAA,wDAAAA;AAAAA,MAAAA,oEAAAA,UAAAA,0DAAAA;AAAgFA,MAAAA,yDAAAA;AAEzDA,MAAAA,wDAAAA;AAAAA,MAAAA,gEAAAA,CAAAA,0DAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/3BtC,MAAM,sBAAsB;IAOjC,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;QANnE,yBAAoB,GAAoB;YACtC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC;IAEoE,CAAC;IAEvE,QAAQ,KAAU,CAAC;IAEnB,YAAY;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;;4FAbU,sBAAsB;oHAAtB,sBAAsB;QCTnC,yEAAoB;QAES,uDAAmC;;QAAA,4DAAM;QAEpE,yEAAoB;QAC0B,kJAAS,kBAAc,IAAC;;QAAiC,4DAAa;;QAHzF,0DAAmC;QAAnC,wJAAmC;QAGS,0DAA+B;QAA/B,yJAA+B;QAAxF,4FAA+B;;;;;;;;;;;;;;;;;;;;;;;;;ACIxC,MAAM,yBAAyB;IAWpC,YAAoB,SAAkD;QAAlD,cAAS,GAAT,SAAS,CAAyC;QAVtE,yBAAoB,GAAoB;YACtC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,sBAAiB,GAAoB;YACnC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACuE,CAAC;IAE1E,QAAQ,KAAU,CAAC;IACnB,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;;kGAnBU,yBAAyB;uHAAzB,yBAAyB;QCTtC,yEAAoB;QAEhB,uDACF;;QAAA,4DAAM;QAEN,sEAAK;QACyC,qJAAS,cAAU,IAAC;;QAAmC,4DAAa;QAChH,gFAAgH;QAAxD,qJAAS,WAAO,IAAC;;QAAuC,4DAAa;;QAL7H,0DACF;QADE,kKACF;QAGmE,0DAAiC;QAAjC,2JAAiC;QAAtF,4FAA+B;QAC+B,0DAAqC;QAArC,+JAAqC;QAApF,yFAA4B;;;;;;;;;;;;;;;;;;;;;;;;;ACHb;AACgB;;;;;;;AAOvD,MAAM,+BAA+B;IAW1C,YACU,SAAwD,EAEzD,IAEN;QAJO,cAAS,GAAT,SAAS,CAA+C;QAEzD,SAAI,GAAJ,IAAI,CAEV;QAfH,iBAAY,GAAoB;YAC9B,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,wBAAmB,GAAkB;YACnC,IAAI,EAAE,IAAI;SACX,CAAC;QACF,cAAS,GAAG,8DAAkB,CAAC;IAO5B,CAAC;IAEJ,QAAQ,KAAU,CAAC;IAEnB,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;;8GAvBU,+BAA+B,uMAahC,wEAAc;6HAbb,+BAA+B;QCZ5C,yEAAoB;QAEhB,yEAAmE;QACrE,4DAAM;QACN,yEAAoB;QAEhB,uDACF;QAAA,4DAAM;QAGR,yEAAoB;QACe,uDAA8C;;QAAA,4DAAqB;QAEtG,0EAAoB;QACkB,4JAAS,WAAO,IAAC;;QAAkC,4DAAa;;QARlG,0DACF;QADE,4FACF;QAIiC,0DAA8C;QAA9C,mKAA8C;QAGzB,0DAAgC;QAAhC,2JAAgC;QAA1E,oFAAuB;;;;;;;;;;;;;;;;;;;;;ACZqC;;;;AAQrE,MAAM,oCAAoC;IAC/C,YACU,SAA6D,EAE9D,IASN;QAXO,cAAS,GAAT,SAAS,CAAoD;QAE9D,SAAI,GAAJ,IAAI,CASV;QAEH,gBAAW,GAAoB;YAC7B,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,yBAAoB,GAIhB,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAVzD,CAAC;IAWJ,QAAQ;QACN,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,WAAW,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAChD;aAAM,IAAI,WAAW,KAAK,KAAK,EAAE;YAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SACjD;aAAM,IAAI,WAAW,KAAK,KAAK,EAAE;YAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SACjD;aAAM,IAAI,WAAW,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAChD;aAAM,IAAI,WAAW,KAAK,KAAK,EAAE;YAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SACjD;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;;wHAzCU,oCAAoC,2MAGrC,wEAAc;kIAHb,oCAAoC;QCVjD,yEAAmE;QAEb,yFAA8B;QAAA,4DAAI;QAEpF,sEAAK;QAC8B,uDAAsB;QAAA,4DAAO;QAEhE,yEAAoC;QAG9B,qEAAgC;QAClC,4DAAM;QACN,uEAAK;QACG,6EAAiB;QAAA,4DAAO;QAGlC,wEAAM;QAAA,wDAAsC;QAAA,4DAAO;QAErD,0EAAoC;QAG9B,qEAA+B;QACjC,4DAAM;QACN,uEAAK;QACG,yFAA6B;QAAA,4DAAO;QAG9C,wEAAM;QAAA,wDAA0C;QAAA,4DAAO;QAEzD,0EAAoC;QAG9B,qEAA8B;QAChC,4DAAM;QACN,uEAAK;QACG,+EAAmB;QAAA,4DAAO;QAGpC,wEAAM;QAAA,wDAAuC;QAAA,4DAAO;QAGtD,2EAA0D;QACxD,kEAAW;QACX,kFAAoE;QAAzC,iKAAS,WAAO,IAAC;QAAwB,4DAAa;;QAtChD,0DAAsB;QAAtB,qFAAsB;QAWjD,0DAAsC;QAAtC,qGAAsC;QAWtC,0DAA0C;QAA1C,yGAA0C;QAW1C,0DAAuC;QAAvC,sGAAuC;QAKA,0DAAsB;QAAtB,mFAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjClE,MAAM,4BAA4B;IAQvC,YAAoB,SAAqD;QAArD,cAAS,GAAT,SAAS,CAA4C;QAPzE,SAAI,GAAG,IAAI,CAAC;QACZ,mBAAc,GAAG,KAAK,CAAC;QACvB,iBAAY,GAAoB;YAC9B,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,SAAS;SACjB,CAAC;IAE0E,CAAC;IAE7E,QAAQ,KAAU,CAAC;IAEnB,iBAAiB;QACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACvC;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;;wGAxBU,4BAA4B;0HAA5B,4BAA4B;QCVzC,yEAAmC;QAED,sJAAS,uBAAmB,IAAC;QAAC,4DAAW;QAGzE,yEAAoE;QAG9D,uDACF;;QAAA,4DAAO;QAET,yEAA+F;QAAvE,+KAAwB,0BAAsB,IAAC;QACrE,0EAAoC;QAClC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QAEN,2EAAkD;QAChD,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QAEN,2EAAkD;QAChD,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAAkD;QAChD,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QAEN,2EAAkD;QAChD,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QAEN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QAEN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,iEAAM;QACN,2EAA2C;QACzC,wDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACR,4DAAM;QACN,4EAA4D;QACA,0JAAS,cAAU,IAAC;;QAAsD,4DAAa;QAIrJ,2EAAmE;QAG7D,yDACF;;QAAA,4DAAO;QAET,2EAA+F;QAAvE,iLAAwB,0BAAsB,IAAC;QACrE,4EAAoC;QAClC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QAEN,4EAAkD;QAChD,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QAEN,4EAAkD;QAChD,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAAkD;QAChD,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QAEN,4EAAkD;QAChD,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QAEN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QAEN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACN,4EAA2C;QACzC,yDACF;;QAAA,4DAAO;QACP,kEAAM;QACR,4DAAM;QACN,4EAA4D;QACA,0JAAS,cAAU,IAAC;;QAAsD,4DAAa;;QAhO5H,0DAA0C;QAA1C,kGAA0C;QAG7D,0DACF;QADE,kKACF;QAIE,0DACF;QADE,uKACF;QAGE,0DACF;QADE,uKACF;QAIE,0DACF;QADE,oKACF;QAGE,0DACF;QADE,uKACF;QAGE,0DACF;QADE,qKACF;QAGE,0DACF;QADE,qKACF;QAGE,0DACF;QADE,qKACF;QAGE,0DACF;QADE,qKACF;QAIE,0DACF;QADE,sKACF;QAGE,0DACF;QADE,uKACF;QAGE,0DACF;QADE,qKACF;QAGE,0DACF;QADE,qKACF;QAIE,0DACF;QADE,sKACF;QAGE,0DACF;QADE,wKACF;QAGE,0DACF;QADE,qKACF;QAGE,0DACF;QADE,qKACF;QAGE,0DACF;QADE,qKACF;QAIE,0DACF;QADE,0KACF;QAGE,0DACF;QADE,uKACF;QAIE,0DACF;QADE,4KACF;QAGE,0DACF;QADE,4KACF;QAGE,0DACF;QADE,6KAC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3D,iBAAiB,EAAE,8BAA8B;IACjD,gBAAgB,EAAE,sCAAsC;IACxD,UAAU,EAAE,kDAAmB;IAC/B,eAAe,EAAE,MAAM;IACvB,QAAQ,EAAE,sCAAsC;IAChD,WAAW,EAAE,sCAAsC;IACnD,oDAAoD;CACrD,CAAC;AAEF;;;;;;GAMG;AACH,sEAAsE;;;;;;;;;;;;;;;;;;AChDvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB;KACrB,eAAe,CAAC,sDAAS,CAAC;KAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACZpC;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;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;;;;;;;;;;ACvSA","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/accordion/cd-accordion-panel/cd-accordion-panel.component.ts","./src/app/components/accordion/cd-accordion-panel/cd-accordion-panel.component.html","./src/app/components/accordion/cd-accordion.module.ts","./src/app/components/accordion/cd-accordion/cd-accordion.component.ts","./src/app/components/accordion/cd-accordion/cd-accordion.component.html","./src/app/components/cd-input/cd-input.component.ts","./src/app/components/cd-input/cd-input.component.html","./src/app/components/cd-input/cd-input.module.ts","./src/app/components/row-item/row-item.component.directive.ts","./src/app/components/row-item/row-item.component.ts","./src/app/components/row-item/row-item.component.html","./src/app/components/row-item/row-item.module.ts","./src/app/components/table/expand-table.module.ts","./src/app/components/table/table-expand-col/table-expand-col.component.ts","./src/app/components/table/table-expand-col/table-expand-col.component.html","./src/app/components/table/table-expand.ts","./src/app/components/table/table-expand/table-expand.component.ts","./src/app/components/table/table-expand/table-expand.component.html","./src/app/components/trustee-details-popup/trustee-details-popup.component.ts","./src/app/components/trustee-details-popup/trustee-details-popup.component.html","./src/app/components/trustee-details-popup/trustee-details-popup.module.ts","./src/app/config/btn.config.ts","./src/app/config/datePicker.ts","./src/app/config/decline-reason.config.ts","./src/app/config/empf-app-status.config.ts","./src/app/config/iff-status.config.ts","./src/app/config/menu.config.ts","./src/app/config/month.config.ts","./src/app/config/role-access-table.config.ts","./src/app/config/transfer-status.config.ts","./src/app/config/widgets.config.ts","./src/app/core/interceptors/auth.http-interceptor.ts","./src/app/core/interceptors/commission-batch-status.interceptor.ts","./src/app/core/interceptors/dataPermission.interceptor.ts","./src/app/core/interceptors/default.interceptor.ts","./src/app/core/interceptors/error.interceptor.ts","./src/app/core/interceptors/jwt.interceptor.ts","./src/app/core/models/enum/account-type.enum.ts","./src/app/core/models/enum/accumulation-type.enum.ts","./src/app/core/models/enum/acl-user-type.enum.ts","./src/app/core/models/enum/action.enum.ts","./src/app/core/models/enum/agent-channel.enum.ts","./src/app/core/models/enum/annuncement.enum.ts","./src/app/core/models/enum/ape-type.enum.ts","./src/app/core/models/enum/claw-back-flag.enum.ts","./src/app/core/models/enum/commission-code.enum.ts","./src/app/core/models/enum/commission-pool-status.enum.ts","./src/app/core/models/enum/commission-rate.enum.ts","./src/app/core/models/enum/commission-scale.enum.ts","./src/app/core/models/enum/commission-scenario.enum.ts","./src/app/core/models/enum/customer-status.enum.ts","./src/app/core/models/enum/date-type.enum.ts","./src/app/core/models/enum/default-scale-type.enum.ts","./src/app/core/models/enum/delivery-channel-type.enum.ts","./src/app/core/models/enum/index.ts","./src/app/core/models/enum/permission.enum.ts","./src/app/core/models/enum/reporting-role.enum.ts","./src/app/core/models/enum/role.enum.ts","./src/app/core/models/enum/screen.enum.ts","./src/app/core/models/enum/sub-activity.ts","./src/app/core/models/enum/transaction-type.enum.ts","./src/app/core/models/enum/txn-code.enum.ts","./src/app/core/models/enum/upload-file-status.enum.ts","./src/app/core/models/request.ts","./src/app/core/models/response/http-status.ts","./src/app/core/models/response/response-result.ts","./src/app/core/models/salesjourney/salesjourney.model.ts","./src/app/core/models/user.ts","./src/app/core/services/add-md/add-md.service.ts","./src/app/core/services/agent-channel.service.ts","./src/app/core/services/authentication.service.ts","./src/app/core/services/commission-batch-status.service.ts","./src/app/core/services/commission/commission-adjustment.service.ts","./src/app/core/services/commission/commission-agent.service.ts","./src/app/core/services/commission/commission-appeal-case.service.ts","./src/app/core/services/commission/commission-common.service.ts","./src/app/core/services/commission/commission-error-log.service.ts","./src/app/core/services/commission/commission-hold-on-report.service.ts","./src/app/core/services/commission/commission-individual-transfer.service.ts","./src/app/core/services/commission/commission-journal.service.ts","./src/app/core/services/commission/commission-pool-scale.service.ts","./src/app/core/services/commission/commission-pool.service.ts","./src/app/core/services/commission/commission-related-parties.service.ts","./src/app/core/services/commission/commission-scale.service.ts","./src/app/core/services/commission/scheme-master.service.ts","./src/app/core/services/console-toogle-service.service.ts","./src/app/core/services/empf-app-status/empf-app-status.service.ts","./src/app/core/services/high-risk-file-upload-center/high-risk-file-upload-center.service.ts","./src/app/core/services/iff-status/iff-status.service.ts","./src/app/core/services/layout-header.service.ts","./src/app/core/services/notify.service.ts","./src/app/core/services/otp/otp.service.ts","./src/app/core/services/permission.service.ts","./src/app/core/services/report-extraction.service.ts","./src/app/core/services/reporting-role-service.service.ts","./src/app/core/services/role.service.ts","./src/app/core/services/screen-size/screen-size.service.ts","./src/app/core/services/transfer-status/transfer-status.service.ts","./src/app/core/services/upload-center/upload-center.service.ts","./src/app/core/services/validate/validate.service.ts","./src/app/core/validators/agent.validator.ts","./src/app/core/validators/common.validator.ts","./src/app/core/validators/date.validator.ts","./src/app/core/validators/index.ts","./src/app/core/validators/journal.validator.ts","./src/app/core/validators/letter-number.validator.ts","./src/app/core/validators/number.validator.ts","./src/app/core/validators/required.validator.ts","./src/app/core/validators/scale-code-async.validator.ts","./src/app/core/validators/uuid.validator.ts","./src/app/core/validators/white-space.validator.ts","./src/app/routes-routing.module.ts","./src/app/shared/alert-popup/alert-popup.component.ts","./src/app/shared/alert-popup/alert-popup.component.html","./src/app/shared/alert-popup/alert-popup.module.ts","./src/app/shared/autocomplete/autocomplate.component.ts","./src/app/shared/autocomplete/autocomplete.component.html","./src/app/shared/autocomplete/autocomplete-position.ts","./src/app/shared/autocomplete/autocomplete.module.ts","./src/app/shared/back-top/back-top.component.ts","./src/app/shared/back-top/back-top.component.html","./src/app/shared/back-top/back-top.module.ts","./src/app/shared/cd-autocomplete/cd-autocomplete-position.directive.ts","./src/app/shared/cd-autocomplete/cd-autocomplete.component.ts","./src/app/shared/cd-autocomplete/cd-autocomplete.component.html","./src/app/shared/cd-autocomplete/cd-autocomplete.module.ts","./src/app/shared/cd-back-text/cd-back-text.component.ts","./src/app/shared/cd-back-text/cd-back-text.component.html","./src/app/shared/cd-back-text/cd-back-text.module.ts","./src/app/shared/cd-carousel/cd-carousel.component.ts","./src/app/shared/cd-carousel/cd-carousel.component.html","./src/app/shared/cd-carousel/cd-carousel.module.ts","./src/app/shared/cd-crypto-js/cd-crypto-js.service.ts","./src/app/shared/cd-download-progress/cd-download-progress.component.ts","./src/app/shared/cd-download-progress/cd-download-progress.component.html","./src/app/shared/cd-download-progress/cd-download-progress.module.ts","./src/app/shared/cd-dropdown/cd-dropdown.component.ts","./src/app/shared/cd-dropdown/cd-dropdown.component.html","./src/app/shared/cd-dropdown/cd-dropdown.module.ts","./src/app/shared/cd-fake-link/cd-fake-link.component.ts","./src/app/shared/cd-fake-link/cd-fake-link.component.html","./src/app/shared/cd-fake-tabs/cd-fake-tabs.component.ts","./src/app/shared/cd-fake-tabs/cd-fake-tabs.component.html","./src/app/shared/cd-http-serve/cd-http-serve.service.ts","./src/app/shared/cd-inline-alert/cd-inline-alert.component.ts","./src/app/shared/cd-inline-alert/cd-inline-alert.component.html","./src/app/shared/cd-intragroup-transfer-checkbox/cd-intragroup-transfer-checkbox.component.ts","./src/app/shared/cd-intragroup-transfer-checkbox/cd-intragroup-transfer-checkbox.component.html","./src/app/shared/cd-multidropdown/cd-multidropdown.component.ts","./src/app/shared/cd-multidropdown/cd-multidropdown.component.html","./src/app/shared/cd-multiple-accordion/cd-multiple-accordion-panel/cd-multiple-accordion-panel.component.ts","./src/app/shared/cd-multiple-accordion/cd-multiple-accordion-panel/cd-multiple-accordion-panel.component.html","./src/app/shared/cd-multiple-accordion/cd-multiple-accordion.component.ts","./src/app/shared/cd-multiple-accordion/cd-multiple-accordion.component.html","./src/app/shared/cd-multiple-accordion/cd-multiple-accordion.module.ts","./src/app/shared/cd-page-title/cd-page-title.component.ts","./src/app/shared/cd-page-title/cd-page-title.component.html","./src/app/shared/cd-page-title/cd-page-title.module.ts","./src/app/shared/cd-popup/cd-popup-continue/cd-popup-continue.component.ts","./src/app/shared/cd-popup/cd-popup-continue/cd-popup-continue.component.html","./src/app/shared/cd-popup/cd-popup-delete/cd-popup-delete.component.ts","./src/app/shared/cd-popup/cd-popup-delete/cd-popup-delete.component.html","./src/app/shared/cd-popup/cd-popup-got/cd-popup-got.component.ts","./src/app/shared/cd-popup/cd-popup-got/cd-popup-got.component.html","./src/app/shared/cd-popup/cd-popup.module.ts","./src/app/shared/cd-popup/cd-popup.service.ts","./src/app/shared/cd-popup/cd-popup/cd-popup.component.ts","./src/app/shared/cd-popup/cd-popup/cd-popup.component.html","./src/app/shared/cd-popup/index.ts","./src/app/shared/cd-popup/public-api.ts","./src/app/shared/cd-radio/cd-radio.component.ts","./src/app/shared/cd-radio/cd-radio.component.html","./src/app/shared/cd-radio/cd-radio.module.ts","./src/app/shared/cd-realtime-search/cd-realtime-search.component.ts","./src/app/shared/cd-realtime-search/cd-realtime-search.component.html","./src/app/shared/cd-realtime-search/cd-realtime-search.module.ts","./src/app/shared/cd-search/cd-search.component.ts","./src/app/shared/cd-search/cd-search.component.html","./src/app/shared/cd-search/cd-search.module.ts","./src/app/shared/cd-stepper/cd-step/cd-step.component.ts","./src/app/shared/cd-stepper/cd-step/cd-step.component.html","./src/app/shared/cd-stepper/cd-stepper.component.ts","./src/app/shared/cd-stepper/cd-stepper.component.html","./src/app/shared/cd-stepper/cd-stepper.module.ts","./src/app/shared/cd-switch/cd-switch.component.ts","./src/app/shared/cd-switch/cd-switch.component.html","./src/app/shared/cd-table-title/cd-table-title.component.ts","./src/app/shared/cd-table-title/cd-table-title.component.html","./src/app/shared/cd-table-title/cd-table-title.module.ts","./src/app/shared/cd-textarea/cd-textarea.component.ts","./src/app/shared/cd-textarea/cd-textarea.component.html","./src/app/shared/cd-textarea/cd-textarea.module.ts","./src/app/shared/cd-textfield/cd-textfield.component.ts","./src/app/shared/cd-textfield/cd-textfield.component.html","./src/app/shared/cd-time-picker/cd-time-picker.component.ts","./src/app/shared/cd-time-picker/cd-time-picker.component.html","./src/app/shared/cd-warning-popup/cd-warning-popup.component.ts","./src/app/shared/cd-warning-popup/cd-warning-popup.component.html","./src/app/shared/cd-warning-popup/cd-warning-popup.module.ts","./src/app/shared/comm-batch-running/comm-batch-running.component.ts","./src/app/shared/comm-batch-running/comm-batch-running.component.html","./src/app/shared/comm-batch-running/comm-batch-running.module.ts","./src/app/shared/confirm-popup/confirm-popup.component.ts","./src/app/shared/confirm-popup/confirm-popup.component.html","./src/app/shared/confirm-popup/confirm-popup.module.ts","./src/app/shared/continue-popup/continue-popup.component.ts","./src/app/shared/continue-popup/continue-popup.component.html","./src/app/shared/continue-popup/continue-popup.module.ts","./src/app/shared/copy-button/copy-button.component.ts","./src/app/shared/copy-button/copy-button.component.html","./src/app/shared/data-table/data-table.component.directive.ts","./src/app/shared/data-table/data-table.component.ts","./src/app/shared/data-table/data-table.component.html","./src/app/shared/data-table/data-table.model.ts","./src/app/shared/data-table/data-table.module.ts","./src/app/shared/data-table/data-table.service.ts","./src/app/shared/data-table/index.ts","./src/app/shared/data-table/public-api.ts","./src/app/shared/date-range-box/date-range-box.component.ts","./src/app/shared/date-range-box/date-range-box.component.html","./src/app/shared/directive/bottom-detection/bottom-detection.directive.ts","./src/app/shared/directive/disable-formcontrol/disable-formcontrol.directive.ts","./src/app/shared/directive/mat-menu-close.directive.ts","./src/app/shared/directive/mat-select-close.directive.ts","./src/app/shared/directive/outside-close/outside-close.directive.ts","./src/app/shared/directive/text-ellipsis/text-ellipsis.directive.ts","./src/app/shared/directive/validators/date-validator/date-validator.directive.ts","./src/app/shared/directive/validators/description-validator/description.directive.ts","./src/app/shared/directive/validators/max-validator/max-validator.directive.ts","./src/app/shared/directive/validators/min-validator/min-validator.directive.ts","./src/app/shared/directive/validators/validators.module.ts","./src/app/shared/directive/widgetHost/widget-host.directive.ts","./src/app/shared/download-file/download-file.service.ts","./src/app/shared/dynamic-autocomplete/input-autocomplete.component.ts","./src/app/shared/dynamic-autocomplete/input-autocomplete.component.html","./src/app/shared/dynamic-autocomplete/input-autocomplete.module.ts","./src/app/shared/dynamic-autocomplete/input-autocomplete.service.ts","./src/app/shared/hide-text/hide-text.pipe.ts","./src/app/shared/icon-status/icon-status.component.ts","./src/app/shared/icon-status/icon-status.component.html","./src/app/shared/icon-status/icon-status.module.ts","./src/app/shared/language-change.service.ts","./src/app/shared/language-switch/language-switch.component.ts","./src/app/shared/language-switch/language-switch.component.html","./src/app/shared/language-switch/language-switch.module.ts","./src/app/shared/loading/loading.component.ts","./src/app/shared/loading/loading.component.html","./src/app/shared/loading/loading.modules.ts","./src/app/shared/matters-needing-attention/matters-needing-attention.component.ts","./src/app/shared/matters-needing-attention/matters-needing-attention.component.html","./src/app/shared/matters-needing-attention/matters-needing-attention.module.ts","./src/app/shared/no-result-found/no-result-found.component.ts","./src/app/shared/no-result-found/no-result-found.component.html","./src/app/shared/no-result-found/no-result-found.module.ts","./src/app/shared/pagination/pagination.component.ts","./src/app/shared/pagination/pagination.component.html","./src/app/shared/pagination/pagination.module.ts","./src/app/shared/permission/permission.component.ts","./src/app/shared/permission/permission.component.html","./src/app/shared/permission/permission.module.ts","./src/app/shared/pipe/date.pipe.ts","./src/app/shared/pipe/dateTime.pipe.ts","./src/app/shared/pipe/fn.pipe.ts","./src/app/shared/pipe/label.pipe.ts","./src/app/shared/pipe/number.pipe.ts","./src/app/shared/pipe/permission.pipe.ts","./src/app/shared/shared.module.ts","./src/app/shared/simple-popup/simple-popup.component.ts","./src/app/shared/simple-popup/simple-popup.component.html","./src/app/shared/simple-popup/simple-popup.module.ts","./src/app/shared/sw-update-ask/sw-update-ask.component.ts","./src/app/shared/sw-update-ask/sw-update-ask.component.html","./src/app/shared/sw-update-ask/sw-update-ask.module.ts","./src/app/shared/temp-cache/temp-cache.service.ts","./src/app/shared/toast-alert.service.ts","./src/app/shared/tooltip-icon/tooltip-icon.component.ts","./src/app/shared/tooltip-icon/tooltip-icon.component.html","./src/app/shared/tooltip-icon/tooltip-icon.module.ts","./src/app/shared/updated-successfully/updated-successfully.component.ts","./src/app/shared/updated-successfully/updated-successfully.component.html","./src/app/shared/validators/validators.ts","./src/app/shared/will-be-lose-input/will-be-lose-input.component.ts","./src/app/shared/will-be-lose-input/will-be-lose-input.component.html","./src/app/shared/will-be-lost/will-be-lost.component.ts","./src/app/shared/will-be-lost/will-be-lost.component.html","./src/app/utils/LocalStorage.ts","./src/app/utils/copy.ts","./src/app/utils/dateUtils.ts","./src/app/utils/indexdb.model.ts","./src/app/utils/indexdb.ts","./src/app/utils/pagination.utils.ts","./src/app/utils/permission-utils.ts","./src/app/utils/special-character.ts","./src/app/utils/utils.ts","./src/app/utils/uuid.ts","./src/app/utils/xlsx.ts","./src/app/views/agent-list/agent-list-add/agent-list-add.component.ts","./src/app/views/agent-list/agent-list-add/agent-list-add.component.html","./src/app/views/agent-list/agent-list-edit/agent-list-edit.component.ts","./src/app/views/agent-list/agent-list-edit/agent-list-edit.component.html","./src/app/views/agent-list/agent-list-routing.module.ts","./src/app/views/agent-list/agent-list.component.ts","./src/app/views/agent-list/agent-list.component.html","./src/app/views/agent-list/agent-list.module.ts","./src/app/views/agent-list/agent-list.service.ts","./src/app/views/agent-list/agent-list.ts","./src/app/views/agent-performance-enrolment/agent-performance-enrolment-routing.module.ts","./src/app/views/agent-performance-enrolment/agent-performance-enrolment.component.ts","./src/app/views/agent-performance-enrolment/agent-performance-enrolment.component.html","./src/app/views/agent-performance-enrolment/agent-performance-enrolment.module.ts","./src/app/views/agent-performance-enrolment/agent-performance-enrolment.service.ts","./src/app/views/agent-performance-enrolment/expand-item-mobile/expand-item-mobile.component.ts","./src/app/views/agent-performance-enrolment/expand-item-mobile/expand-item-mobile.component.html","./src/app/views/agent-performance/agent-performance-routing.module.ts","./src/app/views/agent-performance/agent-performance.component.ts","./src/app/views/agent-performance/agent-performance.component.html","./src/app/views/agent-performance/agent-performance.module.ts","./src/app/views/agent-performance/agent-performance.service.ts","./src/app/views/agent-performance/expand-item-mobile/expand-item-mobile.component.ts","./src/app/views/agent-performance/expand-item-mobile/expand-item-mobile.component.html","./src/app/views/agent/age-range.pipe.ts","./src/app/views/agent/agent-branch-pop/agent-branch-pop.component.ts","./src/app/views/agent/agent-branch-pop/agent-branch-pop.component.html","./src/app/views/agent/agent-employee-delegation.service.ts","./src/app/views/agent/agent-employer-delegation.service.ts","./src/app/views/agent/agent-employer-response.model.ts","./src/app/views/agent/agent-routing.module.ts","./src/app/views/agent/agent.module.ts","./src/app/views/agent/employee-delegation-change/employee-delegation-change-pop/employee-delegation-change-pop.component.ts","./src/app/views/agent/employee-delegation-change/employee-delegation-change-pop/employee-delegation-change-pop.component.html","./src/app/views/agent/employee-delegation-change/employee-delegation-change-request.model.ts","./src/app/views/agent/employee-delegation-change/employee-delegation-change.component.ts","./src/app/views/agent/employee-delegation-change/employee-delegation-change.component.html","./src/app/views/agent/employee-summary/employee-check-request.ts","./src/app/views/agent/employee-summary/employee-data.service.ts","./src/app/views/agent/employee-summary/employee-request.model.ts","./src/app/views/agent/employee-summary/employee-response.model.ts","./src/app/views/agent/employee-summary/employee-save-model.ts","./src/app/views/agent/employee-summary/employee-summary.component.ts","./src/app/views/agent/employee-summary/employee-summary.component.html","./src/app/views/agent/employer-history/employer-history.component.ts","./src/app/views/agent/employer-history/employer-history.component.html","./src/app/views/agent/employer-history/employer-histroy.service.ts","./src/app/views/agent/employer-history/history-response.ts","./src/app/views/agent/employer-summary/check-agent-code-request.ts","./src/app/views/agent/employer-summary/employer-summary.component.ts","./src/app/views/agent/employer-summary/employer-summary.component.html","./src/app/views/agent/employer-summary/submit-delegate-request.ts","./src/app/views/agent/er-change-summary-detail-pop/er-change-summary-detail-pop.component.ts","./src/app/views/agent/er-change-summary-detail-pop/er-change-summary-detail-pop.component.html","./src/app/views/agent/er-change-summary-detail-pop/er-change-summary-detail-response.ts","./src/app/views/agent/er-change-summary-detail-pop/er-change-summary-detail.service.ts","./src/app/views/agent/er-change-summary-detail-pop/er-chenge-summary-data.ts","./src/app/views/agent/er-delegation-change/add-to-item/add-to-item.component.ts","./src/app/views/agent/er-delegation-change/add-to-item/add-to-item.component.html","./src/app/views/agent/er-delegation-change/er-delegation-change.component.ts","./src/app/views/agent/er-delegation-change/er-delegation-change.component.html","./src/app/views/agent/gender.pipe.ts","./src/app/views/agent/reason-of-change.pipe.ts","./src/app/views/agent/screen-check/screen-check.service.ts","./src/app/views/agent/search-in-employee-delegation/search-in-employee-delegation.component.ts","./src/app/views/agent/search-in-employee-delegation/search-in-employee-delegation.component.html","./src/app/views/agent/update-delegation-emp-vali-resp-err-handle.helper.ts","./src/app/views/agent/user-confirm-pop/user-confirm-pop.component.ts","./src/app/views/agent/user-confirm-pop/user-confirm-pop.component.html","./src/app/views/agent/user-exit-editmode-pop/user-exit-editmode-pop.component.ts","./src/app/views/agent/user-exit-editmode-pop/user-exit-editmode-pop.component.html","./src/app/views/agent/user-success-submitted/user-success-submitted.component.ts","./src/app/views/agent/user-success-submitted/user-success-submitted.component.html","./src/app/views/annuncement/announcement-details/announcement-details.component.config.ts","./src/app/views/annuncement/announcement-details/announcement-details.component.ts","./src/app/views/annuncement/announcement-details/announcement-details.component.html","./src/app/views/annuncement/announcement-details/announcement-details.module.ts","./src/app/views/annuncement/annuncement-center/annuncement-center/annuncement-center.component.ts","./src/app/views/annuncement/annuncement-center/annuncement-center/annuncement-center.component.html","./src/app/views/annuncement/annuncement-center/annuncement-center/annuncement-center.module.ts","./src/app/views/annuncement/annuncement-routing.module.ts","./src/app/views/annuncement/annuncement.module.ts","./src/app/views/benefit-payment/benefit-payment-routing.module.ts","./src/app/views/benefit-payment/benefit-payment.module.ts","./src/app/views/benefit-payment/benefit-payment.ts","./src/app/views/benefit-payment/paymentPTW.service.ts","./src/app/views/benefit-payment/paymentSHKP.service.ts","./src/app/views/benefit-payment/ptw/bank-transfer/bank-transfer-ptw.component.ts","./src/app/views/benefit-payment/ptw/bank-transfer/bank-transfer-ptw.component.html","./src/app/views/benefit-payment/ptw/cheque-issuance/cheque-issuance-ptw.component.ts","./src/app/views/benefit-payment/ptw/cheque-issuance/cheque-issuance-ptw.component.html","./src/app/views/benefit-payment/ptw/cheque-printing-back-popup/cheque-printing-back-popup-ptw.component.ts","./src/app/views/benefit-payment/ptw/cheque-printing-back-popup/cheque-printing-back-popup-ptw.component.html","./src/app/views/benefit-payment/ptw/cheque-printing-list/cheque-printing-list-ptw.component.ts","./src/app/views/benefit-payment/ptw/cheque-printing-list/cheque-printing-list-ptw.component.html","./src/app/views/benefit-payment/ptw/cheque-printing-save-success/cheque-printing-save-success-ptw.component.ts","./src/app/views/benefit-payment/ptw/cheque-printing-save-success/cheque-printing-save-success-ptw.component.html","./src/app/views/benefit-payment/shkp/bank-transfer/bank-transfer.component.ts","./src/app/views/benefit-payment/shkp/bank-transfer/bank-transfer.component.html","./src/app/views/benefit-payment/shkp/cheque-issuance/cheque-issuance.component.ts","./src/app/views/benefit-payment/shkp/cheque-issuance/cheque-issuance.component.html","./src/app/views/benefit-payment/shkp/cheque-printing-back-popup/cheque-printing-back-popup.component.ts","./src/app/views/benefit-payment/shkp/cheque-printing-back-popup/cheque-printing-back-popup.component.html","./src/app/views/benefit-payment/shkp/cheque-printing-list/cheque-printing-list.component.ts","./src/app/views/benefit-payment/shkp/cheque-printing-list/cheque-printing-list.component.html","./src/app/views/benefit-payment/shkp/cheque-printing-save-success/cheque-printing-save-success.component.ts","./src/app/views/benefit-payment/shkp/cheque-printing-save-success/cheque-printing-save-success.component.html","./src/app/views/benefit-payment/shkp/scb-statement/scb-statement-upload-success/scb-statement-upload-success.component.ts","./src/app/views/benefit-payment/shkp/scb-statement/scb-statement-upload-success/scb-statement-upload-success.component.html","./src/app/views/benefit-payment/shkp/scb-statement/scb-statement-upload/scb-statement-upload.component.ts","./src/app/views/benefit-payment/shkp/scb-statement/scb-statement-upload/scb-statement-upload.component.html","./src/app/views/benefit-payment/shkp/scb-statement/scb-statement/scb-statement.component.ts","./src/app/views/benefit-payment/shkp/scb-statement/scb-statement/scb-statement.component.html","./src/app/views/campaign/add-campaign/add-campaign.component.ts","./src/app/views/campaign/add-campaign/add-campaign.component.html","./src/app/views/campaign/campaign-master-list-member/campaign-master-list-member.component.ts","./src/app/views/campaign/campaign-master-list-member/campaign-master-list-member.component.html","./src/app/views/campaign/campaign-master-list/campaign-master-list.component.ts","./src/app/views/campaign/campaign-master-list/campaign-master-list.component.html","./src/app/views/campaign/campaign-routing.module.ts","./src/app/views/campaign/campaign.module.ts","./src/app/views/campaign/campaign.ts","./src/app/views/campaign/upload-customer-list/upload-customer-list.component.ts","./src/app/views/campaign/upload-customer-list/upload-customer-list.component.html","./src/app/views/chatbot-admin/Layout/Components/footer/elements/footer-dots/footer-dots.component.ts","./src/app/views/chatbot-admin/Layout/Components/footer/elements/footer-dots/footer-dots.component.html","./src/app/views/chatbot-admin/Layout/Components/footer/elements/footer-menu/footer-menu.component.ts","./src/app/views/chatbot-admin/Layout/Components/footer/elements/footer-menu/footer-menu.component.html","./src/app/views/chatbot-admin/Layout/Components/footer/footer.component.ts","./src/app/views/chatbot-admin/Layout/Components/footer/footer.component.html","./src/app/views/chatbot-admin/Layout/Components/header/elements/dots/dots.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/elements/dots/dots.component.html","./src/app/views/chatbot-admin/Layout/Components/header/elements/drawer/drawer.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/elements/drawer/drawer.component.html","./src/app/views/chatbot-admin/Layout/Components/header/elements/mega-menu/elements/megapopover/megapopover.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/elements/mega-menu/elements/megapopover/megapopover.component.html","./src/app/views/chatbot-admin/Layout/Components/header/elements/mega-menu/mega-menu.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/elements/mega-menu/mega-menu.component.html","./src/app/views/chatbot-admin/Layout/Components/header/elements/search-box/search-box.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/elements/search-box/search-box.component.html","./src/app/views/chatbot-admin/Layout/Components/header/elements/user-box/user-box.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/elements/user-box/user-box.component.html","./src/app/views/chatbot-admin/Layout/Components/header/header.component.ts","./src/app/views/chatbot-admin/Layout/Components/header/header.component.html","./src/app/views/chatbot-admin/Layout/Components/sidebar/elements/logo/logo.component.ts","./src/app/views/chatbot-admin/Layout/Components/sidebar/elements/logo/logo.component.html","./src/app/views/chatbot-admin/Layout/Components/sidebar/sidebar.component.ts","./src/app/views/chatbot-admin/Layout/Components/sidebar/sidebar.component.html","./src/app/views/chatbot-admin/Layout/apps-layout/apps-layout.component.ts","./src/app/views/chatbot-admin/Layout/apps-layout/apps-layout.component.html","./src/app/views/chatbot-admin/Layout/base-layout/base-layout.component.ts","./src/app/views/chatbot-admin/Layout/base-layout/base-layout.component.html","./src/app/views/chatbot-admin/Layout/pages-layout/pages-layout.component.ts","./src/app/views/chatbot-admin/Layout/pages-layout/pages-layout.component.html","./src/app/views/chatbot-admin/ThemeOptions/options-drawer/options-drawer.component.ts","./src/app/views/chatbot-admin/ThemeOptions/options-drawer/options-drawer.component.html","./src/app/views/chatbot-admin/ThemeOptions/store/config.actions.ts","./src/app/views/chatbot-admin/_common/alerts.ts","./src/app/views/chatbot-admin/_common/constant.ts","./src/app/views/chatbot-admin/_common/index.ts","./src/app/views/chatbot-admin/_common/tokenHelper.ts","./src/app/views/chatbot-admin/_guard/authGuard.ts","./src/app/views/chatbot-admin/_services/canned.service.ts","./src/app/views/chatbot-admin/_services/chat.service.ts","./src/app/views/chatbot-admin/_services/data.service.ts","./src/app/views/chatbot-admin/_services/idle.service.ts","./src/app/views/chatbot-admin/chatbot-admin-routing.module.ts","./src/app/views/chatbot-admin/chatbot-admin.module.ts","./src/app/views/chatbot-admin/chatbot-supervisor/chat-list/chat-list.component.ts","./src/app/views/chatbot-admin/chatbot-supervisor/chat-list/chat-list.component.html","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor-dashboard/supervisor-dashboard.component.ts","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor-dashboard/supervisor-dashboard.component.html","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor-history/supervisor-history.component.ts","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor-history/supervisor-history.component.html","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor-routing.module.ts","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor.component.ts","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor.component.html","./src/app/views/chatbot-admin/chatbot-supervisor/supervisor.module.ts","./src/app/views/chatbot-admin/main/chat-history/chat-history.component.ts","./src/app/views/chatbot-admin/main/chat-history/chat-history.component.html","./src/app/views/chatbot-admin/main/chat-history/view-chat/view-chat.component.ts","./src/app/views/chatbot-admin/main/chat-history/view-chat/view-chat.component.html","./src/app/views/chatbot-admin/main/reports/reports.component.ts","./src/app/views/chatbot-admin/main/reports/reports.component.html","./src/app/views/chatbot-admin/theme-options.ts","./src/app/views/chatbot/_common/alerts.ts","./src/app/views/chatbot/_common/constant.ts","./src/app/views/chatbot/_common/helper.ts","./src/app/views/chatbot/_service/chat.service.ts","./src/app/views/chatbot/_service/message.service.ts","./src/app/views/chatbot/angent/agent-dashboard.component.ts","./src/app/views/chatbot/angent/agent-dashboard.component.html","./src/app/views/chatbot/angent/agent/agent.component.ts","./src/app/views/chatbot/angent/agent/agent.component.html","./src/app/views/chatbot/angent/angent-routing.module.ts","./src/app/views/chatbot/angent/angent.module.ts","./src/app/views/chatbot/angent/close-chat/close-chat.component.ts","./src/app/views/chatbot/angent/close-chat/close-chat.component.html","./src/app/views/chatbot/angent/cso-canned-msg/cso-canned-msg.component.ts","./src/app/views/chatbot/angent/cso-canned-msg/cso-canned-msg.component.html","./src/app/views/chatbot/angent/transfer-chat/transfer-chat.component.ts","./src/app/views/chatbot/angent/transfer-chat/transfer-chat.component.html","./src/app/views/chatbot/close-chat-confirm/close-chat-confirm.component.ts","./src/app/views/chatbot/close-chat-confirm/close-chat-confirm.component.html","./src/app/views/chatbot/user/user.component.ts","./src/app/views/chatbot/user/user.component.html","./src/app/views/commission/adjustment/ad-individual-transfer/ad-individual-transfer.component.ts","./src/app/views/commission/adjustment/ad-individual-transfer/ad-individual-transfer.component.html","./src/app/views/commission/adjustment/ad-individual-transfer/ad-individual-transfer.model.ts","./src/app/views/commission/adjustment/adjustment.component.config.ts","./src/app/views/commission/adjustment/adjustment.component.ts","./src/app/views/commission/adjustment/adjustment.component.html","./src/app/views/commission/adjustment/adjustment.validator.ts","./src/app/views/commission/adjustment/appeal-case/appeal-case.component.ts","./src/app/views/commission/adjustment/appeal-case/appeal-case.component.html","./src/app/views/commission/adjustment/appeal-case/appeal-case.config.ts","./src/app/views/commission/adjustment/appeal-case/appeal-case.validators.ts","./src/app/views/commission/adjustment/appeal-case/search-record-transaction/search-record-transaction.component.config.ts","./src/app/views/commission/adjustment/appeal-case/search-record-transaction/search-record-transaction.component.ts","./src/app/views/commission/adjustment/appeal-case/search-record-transaction/search-record-transaction.component.html","./src/app/views/commission/adjustment/normal-compensation/normal-compensation.component.ts","./src/app/views/commission/adjustment/normal-compensation/normal-compensation.component.html","./src/app/views/commission/adjustment/normal-compensation/normal-compensation.model.ts","./src/app/views/commission/ape-journal/ape-journal.component.ts","./src/app/views/commission/ape-journal/ape-journal.component.html","./src/app/views/commission/ape-journal/ape-journal.config.ts","./src/app/views/commission/ape-journal/ape-journal.module.ts","./src/app/views/commission/ape-manual/ape-manual.component.ts","./src/app/views/commission/ape-manual/ape-manual.component.html","./src/app/views/commission/ape-manual/ape-manual.model.ts","./src/app/views/commission/ape-manual/ape-manual.module.ts","./src/app/views/commission/ape-manual/commission-ape-manual.service.ts","./src/app/views/commission/ape-manual/manual-adjustment/ape-upload-file/ape-upload-file.component.ts","./src/app/views/commission/ape-manual/manual-adjustment/ape-upload-file/ape-upload-file.component.html","./src/app/views/commission/ape-manual/manual-adjustment/manual-adjustment.component.ts","./src/app/views/commission/ape-manual/manual-adjustment/manual-adjustment.component.html","./src/app/views/commission/ape-manual/manual-adjustment/request-format/request-format.component.ts","./src/app/views/commission/ape-manual/manual-adjustment/request-format/request-format.component.html","./src/app/views/commission/ape-manual/nbv-ratio/nbv-ratio.component.ts","./src/app/views/commission/ape-manual/nbv-ratio/nbv-ratio.component.html","./src/app/views/commission/ape-manual/nbv-ratio/nbv-ratio.config.ts","./src/app/views/commission/batch-upload-adjustment/batch-upload-adjustment.component.ts","./src/app/views/commission/batch-upload-adjustment/batch-upload-adjustment.component.html","./src/app/views/commission/batch-upload-adjustment/batch-upload-adjustment.model.ts","./src/app/views/commission/batch-upload-adjustment/batch-upload-adjustment.module.ts","./src/app/views/commission/batch-upload-adjustment/batch-upload-adjustment.service.ts","./src/app/views/commission/batch-upload-adjustment/upload-adjustment-data/upload-adjustment-data.component.ts","./src/app/views/commission/batch-upload-adjustment/upload-adjustment-data/upload-adjustment-data.component.html","./src/app/views/commission/batch-upload-adjustment/upload-file-format/upload-file-format.component.ts","./src/app/views/commission/batch-upload-adjustment/upload-file-format/upload-file-format.component.html","./src/app/views/commission/commission-default-scale/commission-default-scale.component.ts","./src/app/views/commission/commission-default-scale/commission-default-scale.component.html","./src/app/views/commission/commission-default-scale/commission-default-scale.config.ts","./src/app/views/commission/commission-default-scale/commission-default-scale.module.ts","./src/app/views/commission/commission-default-scale/commission-default-scale.service.ts","./src/app/views/commission/commission-default-scale/commission-default-scale.validators.ts","./src/app/views/commission/commission-default-scale/individual-transfer-mpf/individual-transfer-mpf.component.ts","./src/app/views/commission/commission-default-scale/individual-transfer-mpf/individual-transfer-mpf.component.html","./src/app/views/commission/commission-default-scale/new-business-macau/auto-change-list/auto-change-list.component.ts","./src/app/views/commission/commission-default-scale/new-business-macau/auto-change-list/auto-change-list.component.html","./src/app/views/commission/commission-default-scale/new-business-macau/new-business-macau.component.ts","./src/app/views/commission/commission-default-scale/new-business-macau/new-business-macau.component.html","./src/app/views/commission/commission-default-scale/new-business-mpf/new-business-mpf.component.ts","./src/app/views/commission/commission-default-scale/new-business-mpf/new-business-mpf.component.html","./src/app/views/commission/commission-routing.module.ts","./src/app/views/commission/commission.module.ts","./src/app/views/commission/error-log/error-log.component.ts","./src/app/views/commission/error-log/error-log.component.html","./src/app/views/commission/error-log/error-log.config.ts","./src/app/views/commission/error-log/error-log.module.ts","./src/app/views/commission/hold-on-report/hold-on-report.component.ts","./src/app/views/commission/hold-on-report/hold-on-report.component.html","./src/app/views/commission/hold-on-report/hold-on-report.config.ts","./src/app/views/commission/hold-on-report/hold-on-report.module.ts","./src/app/views/commission/journal/journal.component.ts","./src/app/views/commission/journal/journal.component.html","./src/app/views/commission/journal/journal.config.ts","./src/app/views/commission/journal/journal.module.ts","./src/app/views/commission/scale/commission-breakpoint/commission-breakpoint.component.ts","./src/app/views/commission/scale/commission-breakpoint/commission-breakpoint.component.html","./src/app/views/commission/scale/commission-record-detail/commission-record-detail.component.ts","./src/app/views/commission/scale/commission-record-detail/commission-record-detail.component.html","./src/app/views/commission/scale/commission-scale-info/commission-scale-info.component.ts","./src/app/views/commission/scale/commission-scale-info/commission-scale-info.component.html","./src/app/views/commission/scale/commission-scale-list.component.ts","./src/app/views/commission/scale/commission-scale-list.component.html","./src/app/views/commission/scale/commission-scale.config.ts","./src/app/views/commission/scale/commission-scale.validator.ts","./src/app/views/commission/scale/shared/drop-down/drop-down.component.ts","./src/app/views/commission/scale/shared/drop-down/drop-down.component.html","./src/app/views/commission/scale/shared/icon-button/icon-button.component.ts","./src/app/views/commission/scale/shared/icon-button/icon-button.component.html","./src/app/views/commission/scheme-master/scheme-master-create/scheme-master-create.component.ts","./src/app/views/commission/scheme-master/scheme-master-create/scheme-master-create.component.html","./src/app/views/commission/scheme-master/scheme-master-edit/scheme-master-edit.component.ts","./src/app/views/commission/scheme-master/scheme-master-edit/scheme-master-edit.component.html","./src/app/views/commission/scheme-master/scheme-master.component.ts","./src/app/views/commission/scheme-master/scheme-master.component.html","./src/app/views/commission/scheme-master/scheme-master.config.ts","./src/app/views/commission/scheme-master/scheme-master.module.ts","./src/app/views/commission/scheme-master/scheme-master.validators.ts","./src/app/views/commission/summary/agent/agent-record-add/agent-add-alert.component.ts","./src/app/views/commission/summary/agent/agent-record-add/agent-add-alert.component.html","./src/app/views/commission/summary/agent/agent-record-add/agent-record-add.component.ts","./src/app/views/commission/summary/agent/agent-record-add/agent-record-add.component.html","./src/app/views/commission/summary/agent/agent-record-edit/agent-record-edit.component.ts","./src/app/views/commission/summary/agent/agent-record-edit/agent-record-edit.component.html","./src/app/views/commission/summary/agent/agent.component.ts","./src/app/views/commission/summary/agent/agent.component.html","./src/app/views/commission/summary/individual-transfer/individual-transfer.component.ts","./src/app/views/commission/summary/individual-transfer/individual-transfer.component.html","./src/app/views/commission/summary/pool-info.component.ts","./src/app/views/commission/summary/pool-info.component.html","./src/app/views/commission/summary/pool-info.model.ts","./src/app/views/commission/summary/pool-list.component.ts","./src/app/views/commission/summary/pool-list.component.html","./src/app/views/commission/summary/record-details/add-scale-records/add-scale-records.component.ts","./src/app/views/commission/summary/record-details/add-scale-records/add-scale-records.component.html","./src/app/views/commission/summary/record-details/add-scale-records/add-scale-records.config.ts","./src/app/views/commission/summary/record-details/add-scale-records/add-scale-records.validators.ts","./src/app/views/commission/summary/record-details/record-details.component.ts","./src/app/views/commission/summary/record-details/record-details.component.html","./src/app/views/commission/summary/record-details/record-details.model.ts","./src/app/views/commission/summary/related-parties/related-parties-add.component.ts","./src/app/views/commission/summary/related-parties/related-parties-add.component.html","./src/app/views/commission/summary/related-parties/related-parties-list.component.ts","./src/app/views/commission/summary/related-parties/related-parties-list.component.html","./src/app/views/commission/summary/related-parties/related-parties.model.ts","./src/app/views/commission/user-agreement-popup.component.ts","./src/app/views/commission/user-agreement-popup.component.html","./src/app/views/dynamic-content/dynamic-content.component.ts","./src/app/views/dynamic-content/dynamic-content.component.html","./src/app/views/dynamic-content/dynamic-content.module.ts","./src/app/views/empf-workflow/close-popup/close-popup.component.ts","./src/app/views/empf-workflow/close-popup/close-popup.component.html","./src/app/views/empf-workflow/empf-workflow.component.ts","./src/app/views/empf-workflow/empf-workflow.component.html","./src/app/views/empf-workflow/empf-workflow.module.ts","./src/app/views/employee/address-type-definition-popup/address-type-definition-popup.component.ts","./src/app/views/employee/address-type-definition-popup/address-type-definition-popup.component.html","./src/app/views/employee/agent-info/agent-info.component.ts","./src/app/views/employee/agent-info/agent-info.component.html","./src/app/views/employee/amount-table/amount-table.component.ts","./src/app/views/employee/amount-table/amount-table.component.html","./src/app/views/employee/bill-reference/bill-reference.component.ts","./src/app/views/employee/bill-reference/bill-reference.component.html","./src/app/views/employee/campaign-information/campaign-information.component.ts","./src/app/views/employee/campaign-information/campaign-information.component.html","./src/app/views/employee/contact-persion/contact-persion.component.ts","./src/app/views/employee/contact-persion/contact-persion.component.html","./src/app/views/employee/contribution-records/contribution-records.component.ts","./src/app/views/employee/contribution-records/contribution-records.component.html","./src/app/views/employee/ee-profile-agent-info/ee-profile-agent-info.component.ts","./src/app/views/employee/ee-profile-agent-info/ee-profile-agent-info.component.html","./src/app/views/employee/ee-profile-detail-plus/ee-profile-detail-plus.component.ts","./src/app/views/employee/ee-profile-detail-plus/ee-profile-detail-plus.component.html","./src/app/views/employee/ee-profile-detail/ee-profile-detail.component.ts","./src/app/views/employee/ee-profile-detail/ee-profile-detail.component.html","./src/app/views/employee/ee-profile-employment-info/ee-profile-employment-info.component.ts","./src/app/views/employee/ee-profile-employment-info/ee-profile-employment-info.component.html","./src/app/views/employee/ee-profile-fund-info/ee-profile-fund-info.component.ts","./src/app/views/employee/ee-profile-fund-info/ee-profile-fund-info.component.html","./src/app/views/employee/ee-profile-list/ee-profile-list.component.ts","./src/app/views/employee/ee-profile-list/ee-profile-list.component.html","./src/app/views/employee/ee-profile-list/ee-profile-list.service.ts","./src/app/views/employee/ee-profile-others/ee-profile-others.component.ts","./src/app/views/employee/ee-profile-others/ee-profile-others.component.html","./src/app/views/employee/employee-default-contribution/employee-default-contribution.component.ts","./src/app/views/employee/employee-default-contribution/employee-default-contribution.component.html","./src/app/views/employee/employee-list/employee-list.component.ts","./src/app/views/employee/employee-list/employee-list.component.html","./src/app/views/employee/employee-profile-title/employee-profile-title.component.ts","./src/app/views/employee/employee-profile-title/employee-profile-title.component.html","./src/app/views/employee/employee-routing.module.ts","./src/app/views/employee/employee.module.ts","./src/app/views/employee/employee.service.ts","./src/app/views/employee/employee.ts","./src/app/views/employee/employment-info/employment-info.component.ts","./src/app/views/employee/employment-info/employment-info.component.html","./src/app/views/employee/fund-info/fund-info.component.ts","./src/app/views/employee/fund-info/fund-info.component.html","./src/app/views/employee/fund-info/payment-transaction-pop/payment-transaction-pop.component.ts","./src/app/views/employee/fund-info/payment-transaction-pop/payment-transaction-pop.component.html","./src/app/views/employee/policy-detail/policy-detail.component.ts","./src/app/views/employee/policy-detail/policy-detail.component.html","./src/app/views/employee/policy-termination/policy-termination.component.ts","./src/app/views/employee/policy-termination/policy-termination.component.html","./src/app/views/employee/policy-transfer-details/policy-transfer-details.component.ts","./src/app/views/employee/policy-transfer-details/policy-transfer-details.component.html","./src/app/views/employee/policy-transfer/policy-transfer.component.ts","./src/app/views/employee/policy-transfer/policy-transfer.component.html","./src/app/views/employee/policy-withdrawal-details/policy-withdrawal-details.component.ts","./src/app/views/employee/policy-withdrawal-details/policy-withdrawal-details.component.html","./src/app/views/employee/policy-withdrawal/policy-withdrawl.component.ts","./src/app/views/employee/policy-withdrawal/policy-withdrawal.component.html","./src/app/views/employee/related-policy-detail/related-policy-detail.component.ts","./src/app/views/employee/related-policy-detail/related-policy-detail.component.html","./src/app/views/employee/related-policy/related-policy.component.ts","./src/app/views/employee/related-policy/related-policy.component.html","./src/app/views/employer/activity-records/activity-records.component.ts","./src/app/views/employer/activity-records/activity-records.component.html","./src/app/views/employer/add-activity/add-activity.component.ts","./src/app/views/employer/add-activity/add-activity.component.html","./src/app/views/employer/agent-sep-add/agent-sep-add.component.ts","./src/app/views/employer/agent-sep-add/agent-sep-add.component.html","./src/app/views/employer/agent-sep-edit/agent-sep-edit.component.ts","./src/app/views/employer/agent-sep-edit/agent-sep-edit.component.html","./src/app/views/employer/agent-sep/agent-sep.component.ts","./src/app/views/employer/agent-sep/agent-sep.component.html","./src/app/views/employer/commonts-history/comments-history.component.ts","./src/app/views/employer/commonts-history/comments-history.component.html","./src/app/views/employer/commonts-popup/commonts-popup.component.ts","./src/app/views/employer/commonts-popup/commonts-popup.component.html","./src/app/views/employer/commonts-success/commonts-success.component.ts","./src/app/views/employer/commonts-success/commonts-success.component.html","./src/app/views/employer/dividend-rate/dividend-rate-add-popup/dividend-rate-add-popup.component.ts","./src/app/views/employer/dividend-rate/dividend-rate-add-popup/dividend-rate-add-popup.component.html","./src/app/views/employer/dividend-rate/dividend-rate/dividend-rate.component.ts","./src/app/views/employer/dividend-rate/dividend-rate/dividend-rate.component.html","./src/app/views/employer/edit-completed-activity/edit-completed-activity.component.ts","./src/app/views/employer/edit-completed-activity/edit-completed-activity.component.html","./src/app/views/employer/employer-detail-quick-access/employer-detail-quick-access.component.ts","./src/app/views/employer/employer-detail-quick-access/employer-detail-quick-access.component.html","./src/app/views/employer/employer-list/employer-list.component.ts","./src/app/views/employer/employer-list/employer-list.component.html","./src/app/views/employer/employer-profile-billing-class/employer-profile-billing-class.component.ts","./src/app/views/employer/employer-profile-billing-class/employer-profile-billing-class.component.html","./src/app/views/employer/employer-profile-company-list/edit-company-list/edit-company-list.component.ts","./src/app/views/employer/employer-profile-company-list/edit-company-list/edit-company-list.component.html","./src/app/views/employer/employer-profile-company-list/employer-profile-company-list.component.ts","./src/app/views/employer/employer-profile-company-list/employer-profile-company-list.component.html","./src/app/views/employer/employer-profile-company-list/employer-profile-company-list.service.ts","./src/app/views/employer/employer-profile-company-list/employer-profile-company-list.ts","./src/app/views/employer/employer-profile-company-list/inline-alert/inline-alert.component.ts","./src/app/views/employer/employer-profile-company-list/inline-alert/inline-alert.component.html","./src/app/views/employer/employer-profile-detail/employer-profile-detail.component.ts","./src/app/views/employer/employer-profile-detail/employer-profile-detail.component.html","./src/app/views/employer/employer-profile-information/employer-profile-information.component.ts","./src/app/views/employer/employer-profile-information/employer-profile-information.component.html","./src/app/views/employer/employer-profile-invested/employer-profile-invested.component.ts","./src/app/views/employer/employer-profile-invested/employer-profile-invested.component.html","./src/app/views/employer/employer-profile-payment-notice/employer-profile-payment-notice.component.ts","./src/app/views/employer/employer-profile-payment-notice/employer-profile-payment-notice.component.html","./src/app/views/employer/employer-profile-special-quote/add-special-quote/add-special-quote.component.ts","./src/app/views/employer/employer-profile-special-quote/add-special-quote/add-special-quote.component.html","./src/app/views/employer/employer-profile-special-quote/employer-profile-special-quote.component.ts","./src/app/views/employer/employer-profile-special-quote/employer-profile-special-quote.component.html","./src/app/views/employer/employer-profile-title/employer-profile-title.component.ts","./src/app/views/employer/employer-profile-title/employer-profile-title.component.html","./src/app/views/employer/employer-profile/employer-profile.component.ts","./src/app/views/employer/employer-profile/employer-profile.component.html","./src/app/views/employer/employer-routing.module.ts","./src/app/views/employer/employer.module.ts","./src/app/views/employer/employer.service.ts","./src/app/views/employer/employer.ts","./src/app/views/employer/fund-benifit/fund-benifit.component.ts","./src/app/views/employer/fund-benifit/fund-benifit.component.html","./src/app/views/employer/interest-rate.service.ts","./src/app/views/employer/interest-rate/interest-rate-add-popup/interest-rate-add-popup.component.ts","./src/app/views/employer/interest-rate/interest-rate-add-popup/interest-rate-add-popup.component.html","./src/app/views/employer/interest-rate/interest-rate-history-popup/interest-rate-history-popup.component.ts","./src/app/views/employer/interest-rate/interest-rate-history-popup/interest-rate-history-popup.component.html","./src/app/views/employer/interest-rate/interest-rate/interest-rate.component.ts","./src/app/views/employer/interest-rate/interest-rate/interest-rate.component.html","./src/app/views/employer/more-info-details/more-info-details.component.ts","./src/app/views/employer/more-info-details/more-info-details.component.html","./src/app/views/employer/payroll-group-activity-record/payroll-group-activity-record.component.ts","./src/app/views/employer/payroll-group-activity-record/payroll-group-activity-record.component.html","./src/app/views/employer/payroll-group-info/account-info/account-info.component.ts","./src/app/views/employer/payroll-group-info/account-info/account-info.component.html","./src/app/views/employer/payroll-group-info/agent-info/agent-info.component.ts","./src/app/views/employer/payroll-group-info/agent-info/agent-info.component.html","./src/app/views/employer/payroll-group-info/amount-table/amount-table.component.ts","./src/app/views/employer/payroll-group-info/amount-table/amount-table.component.html","./src/app/views/employer/payroll-group-info/bill-reference/bill-reference.component.ts","./src/app/views/employer/payroll-group-info/bill-reference/bill-reference.component.html","./src/app/views/employer/payroll-group-info/charge-info/charge-info.component.ts","./src/app/views/employer/payroll-group-info/charge-info/charge-info.component.html","./src/app/views/employer/payroll-group-info/contact-persion/contact-persion.component.ts","./src/app/views/employer/payroll-group-info/contact-persion/contact-persion.component.html","./src/app/views/employer/payroll-group-info/formula-class/formula-class.component.ts","./src/app/views/employer/payroll-group-info/formula-class/formula-class.component.html","./src/app/views/employer/payroll-group-info/invested-funds-info/invested-funds-info.component.ts","./src/app/views/employer/payroll-group-info/invested-funds-info/invested-funds-info.component.html","./src/app/views/employer/payroll-group-info/member-level/member-level.component.ts","./src/app/views/employer/payroll-group-info/member-level/member-level.component.html","./src/app/views/employer/payroll-group-info/outstanding-amount-of-payment-popup/outstanding-amount-of-payment-popup.component.ts","./src/app/views/employer/payroll-group-info/outstanding-amount-of-payment-popup/outstanding-amount-of-payment-popup.component.html","./src/app/views/employer/payroll-group-info/payment-details/payment-details.component.ts","./src/app/views/employer/payroll-group-info/payment-details/payment-details.component.html","./src/app/views/employer/payroll-group-info/payment-record-details/payment-record-details.component.ts","./src/app/views/employer/payroll-group-info/payment-record-details/payment-record-details.component.html","./src/app/views/employer/payroll-group-info/payment-record/payment-record.component.ts","./src/app/views/employer/payroll-group-info/payment-record/payment-record.component.html","./src/app/views/employer/payroll-group-info/payroll-group-info.component.ts","./src/app/views/employer/payroll-group-info/payroll-group-info.component.html","./src/app/views/employer/payroll-group-info/scheme-info/scheme-info.component.ts","./src/app/views/employer/payroll-group-info/scheme-info/scheme-info.component.html","./src/app/views/employer/payroll-group-info/suspense-record/suspense-record.component.ts","./src/app/views/employer/payroll-group-info/suspense-record/suspense-record.component.html","./src/app/views/employer/payroll-group-info/vesting-scale/vesting-scale.component.ts","./src/app/views/employer/payroll-group-info/vesting-scale/vesting-scale.component.html","./src/app/views/employer/special-management-popup/special-management-popup.component.ts","./src/app/views/employer/special-management-popup/special-management-popup.component.html","./src/app/views/employer/sq-log-master-list/sq-log-master-list.component.ts","./src/app/views/employer/sq-log-master-list/sq-log-master-list.component.html","./src/app/views/employer/unit-price/unit-price.component.ts","./src/app/views/employer/unit-price/unit-price.component.html","./src/app/views/employer/upload-agent-sep-list-file/upload-agent-sep-list-file.component.ts","./src/app/views/employer/upload-agent-sep-list-file/upload-agent-sep-list-file.component.html","./src/app/views/employer/upload-unit-price-list-file/upload-unit-price-list-file.component.ts","./src/app/views/employer/upload-unit-price-list-file/upload-unit-price-list-file.component.html","./src/app/views/enrolment/enrolment-list/enrolment-list.component.ts","./src/app/views/enrolment/enrolment-list/enrolment-list.component.html","./src/app/views/enrolment/enrolment-list/expand-item-mobile/expand-item-mobile.component.ts","./src/app/views/enrolment/enrolment-list/expand-item-mobile/expand-item-mobile.component.html","./src/app/views/enrolment/enrolment-list/expand-item/expand-item.component.ts","./src/app/views/enrolment/enrolment-list/expand-item/expand-item.component.html","./src/app/views/enrolment/enrolment-routing.module.ts","./src/app/views/enrolment/enrolment.module.ts","./src/app/views/enrolment/enrolment.service.ts","./src/app/views/enrolment/enrolment.ts","./src/app/views/error/error-routing.module.ts","./src/app/views/error/error.module.ts","./src/app/views/error/permission-error/permission-error.component.ts","./src/app/views/error/permission-error/permission-error.component.html","./src/app/views/error/response-error/response-error.component.ts","./src/app/views/error/response-error/response-error.component.html","./src/app/views/error/timeout/timeout.component.ts","./src/app/views/error/timeout/timeout.component.html","./src/app/views/high-risk-file-upload-center/high-risk-file-upload-center-routing.module.ts","./src/app/views/high-risk-file-upload-center/high-risk-file-upload-center.model.ts","./src/app/views/high-risk-file-upload-center/high-risk-file-upload-center.module.ts","./src/app/views/high-risk-file-upload-center/high-risk-file-upload-center/high-risk-file-upload-center.component.ts","./src/app/views/high-risk-file-upload-center/high-risk-file-upload-center/high-risk-file-upload-center.component.html","./src/app/views/high-risk-file-upload-center/upload-document/upload-document.component.ts","./src/app/views/high-risk-file-upload-center/upload-document/upload-document.component.html","./src/app/views/layout/admin-layout/admin-header/admin-header.component.ts","./src/app/views/layout/admin-layout/admin-header/admin-header.component.html","./src/app/views/layout/admin-layout/admin-layout.component.ts","./src/app/views/layout/admin-layout/admin-layout.component.html","./src/app/views/layout/auth-layout/auth-layout.component.ts","./src/app/views/layout/auth-layout/auth-layout.component.html","./src/app/views/layout/cds-navigation-footer/cds-navigation-footer.component.ts","./src/app/views/layout/cds-navigation-footer/cds-navigation-footer.component.html","./src/app/views/mobile-subscription/cd-form-assistive/cd-form-assistive.component.ts","./src/app/views/mobile-subscription/cd-form-assistive/cd-form-assistive.component.html","./src/app/views/mobile-subscription/confirm-dialog/confirm-dialog.component.ts","./src/app/views/mobile-subscription/confirm-dialog/confirm-dialog.component.html","./src/app/views/mobile-subscription/manage-audience-list/manage-audience-list.component.ts","./src/app/views/mobile-subscription/manage-audience-list/manage-audience-list.component.html","./src/app/views/mobile-subscription/mobile-subscription.module.ts","./src/app/views/mobile-subscription/notification.module.ts","./src/app/views/mobile-subscription/notificationlist/notification-data.service.ts","./src/app/views/mobile-subscription/notificationlist/notificationlist.component.ts","./src/app/views/mobile-subscription/notificationlist/notificationlist.component.html","./src/app/views/mobile-subscription/notififacionpopup/notififacionpopup.component.ts","./src/app/views/mobile-subscription/notififacionpopup/notififacionpopup.component.html","./src/app/views/mobile-subscription/preview-audience-list-popup/preview-audience-list-popup.component.ts","./src/app/views/mobile-subscription/preview-audience-list-popup/preview-audience-list-popup.component.html","./src/app/views/mobile-subscription/summary-confirm/summary-confirm.component.ts","./src/app/views/mobile-subscription/summary-confirm/summary-confirm.component.html","./src/app/views/mobile-subscription/summary-create/summary-create.component.ts","./src/app/views/mobile-subscription/summary-create/summary-create.component.html","./src/app/views/mobile-subscription/summary.service.ts","./src/app/views/mobile-subscription/upload-audience-list-file/upload-audience-list-file.component.ts","./src/app/views/mobile-subscription/upload-audience-list-file/upload-audience-list-file.component.html","./src/app/views/payment/details/details.component.ts","./src/app/views/payment/details/details.component.html","./src/app/views/payment/details/details.config.ts","./src/app/views/payment/details/details.module.ts","./src/app/views/payment/financial-journal/financial-journal.component.ts","./src/app/views/payment/financial-journal/financial-journal.component.html","./src/app/views/payment/financial-journal/financial-journal.config.ts","./src/app/views/payment/financial-journal/financial-journal.module.ts","./src/app/views/payment/payment.module.ts","./src/app/views/payment/payment.routing.ts","./src/app/views/payment/shared/financial-journal.service.ts","./src/app/views/payment/shared/payment-details.service.ts","./src/app/views/report-center/agent-profile-list/agent-profile-list.component.ts","./src/app/views/report-center/agent-profile-list/agent-profile-list.component.html","./src/app/views/report-center/agent-profile-list/agent-profile-list.service.ts","./src/app/views/report-center/agent-profile-list/agent-profile-response.model.ts","./src/app/views/report-center/agent-profile-list/agent-profile.config.ts","./src/app/views/report-center/agent-profile-list/narrow-search-popup/narrow-search-popup.component.ts","./src/app/views/report-center/agent-profile-list/narrow-search-popup/narrow-search-popup.component.html","./src/app/views/report-center/payment-report-shkp/payment-report-shkp.component.ts","./src/app/views/report-center/payment-report-shkp/payment-report-shkp.component.html","./src/app/views/report-center/report-center-routing.module.ts","./src/app/views/report-center/report-center.module.ts","./src/app/views/report-center/report-center/report-center.component.ts","./src/app/views/report-center/report-center/report-center.component.html","./src/app/views/report-center/report-center/report-filter/report-filter.component.config.ts","./src/app/views/report-center/report-center/report-filter/report-filter.component.ts","./src/app/views/report-center/report-center/report-filter/report-filter.component.html","./src/app/views/report-center/report-commission/report-commission.component.ts","./src/app/views/report-center/report-commission/report-commission.component.html","./src/app/views/report-center/report-commission/report-commission.config.ts","./src/app/views/report-center/report-commission/report-commission.service.ts","./src/app/views/report-center/report-extraction/report-extraction.component.ts","./src/app/views/report-center/report-extraction/report-extraction.component.html","./src/app/views/report-center/report-mflub/report-mflub.component.ts","./src/app/views/report-center/report-mflub/report-mflub.component.html","./src/app/views/report-center/report-mflub/report-mflub.config.ts","./src/app/views/report-center/report-mflub/report-mflub.service.ts","./src/app/views/salesjourney/add-md-reference-number-popup/add-md-reference-number-popup.component.ts","./src/app/views/salesjourney/add-md-reference-number-popup/add-md-reference-number-popup.component.html","./src/app/views/salesjourney/add-mpf-reference-number-popup/add-mpf-reference-number-popup.component.ts","./src/app/views/salesjourney/add-mpf-reference-number-popup/add-mpf-reference-number-popup.component.html","./src/app/views/salesjourney/agent-confirmation/agent-confirmation.component.ts","./src/app/views/salesjourney/agent-confirmation/agent-confirmation.component.html","./src/app/views/salesjourney/agent-confirmation/split-agent-notification-info-error/split-agent-notification-info-error.component.ts","./src/app/views/salesjourney/agent-confirmation/split-agent-notification-info-error/split-agent-notification-info-error.component.html","./src/app/views/salesjourney/agent-confirmation/split-agent-notification-info-resolve/split-agent-notification-info-resolve.service.ts","./src/app/views/salesjourney/agent-confirmation/split-agent-notification-info-success/split-agent-notification-info-success.component.ts","./src/app/views/salesjourney/agent-confirmation/split-agent-notification-info-success/split-agent-notification-info-success.component.html","./src/app/views/salesjourney/case-details-er/case-details-er.component.ts","./src/app/views/salesjourney/case-details-er/case-details-er.component.html","./src/app/views/salesjourney/case-details/case-details.component.ts","./src/app/views/salesjourney/case-details/case-details.component.html","./src/app/views/salesjourney/case-details/case-details.model.ts","./src/app/views/salesjourney/case-summary/advise-empfref/advise-empfref.component.ts","./src/app/views/salesjourney/case-summary/advise-empfref/advise-empfref.component.html","./src/app/views/salesjourney/case-summary/advise-empfstatus/advise-empfstatus.component.ts","./src/app/views/salesjourney/case-summary/advise-empfstatus/advise-empfstatus.component.html","./src/app/views/salesjourney/case-summary/advise-iffstatus/advise-iffstatus.component.ts","./src/app/views/salesjourney/case-summary/advise-iffstatus/advise-iffstatus.component.html","./src/app/views/salesjourney/case-summary/advise-transfer-status/advise-transfer-status.component.ts","./src/app/views/salesjourney/case-summary/advise-transfer-status/advise-transfer-status.component.html","./src/app/views/salesjourney/case-summary/case-summary.component.ts","./src/app/views/salesjourney/case-summary/case-summary.component.html","./src/app/views/salesjourney/case-summary/case-summary.config.ts","./src/app/views/salesjourney/case-summary/case-summary.enum.ts","./src/app/views/salesjourney/case-summary/case-summary.model.ts","./src/app/views/salesjourney/case-summary/casesummary-response.model.ts","./src/app/views/salesjourney/case-summary/casesummary.service.ts","./src/app/views/salesjourney/case-summary/declaration-iff-er/declaration-iff-er.component.ts","./src/app/views/salesjourney/case-summary/declaration-iff-er/declaration-iff-er.component.html","./src/app/views/salesjourney/case-summary/declaration-iff-er/empf-declaration-form.config.ts","./src/app/views/salesjourney/case-summary/declaration-iff/declaration-iff.component.ts","./src/app/views/salesjourney/case-summary/declaration-iff/declaration-iff.component.html","./src/app/views/salesjourney/case-summary/declaration-iff/e-mpf-ref-no-used/e-mpf-ref-no-used.component.ts","./src/app/views/salesjourney/case-summary/declaration-iff/e-mpf-ref-no-used/e-mpf-ref-no-used.component.html","./src/app/views/salesjourney/case-summary/declaration-iff/exit-iff-warn-popup/exit-iff-warn-popup.component.ts","./src/app/views/salesjourney/case-summary/declaration-iff/exit-iff-warn-popup/exit-iff-warn-popup.component.html","./src/app/views/salesjourney/case-summary/declaration-iff/iff-submission-succ-popup/iff-submission-succ-popup.component.ts","./src/app/views/salesjourney/case-summary/declaration-iff/iff-submission-succ-popup/iff-submission-succ-popup.component.html","./src/app/views/salesjourney/case-summary/display-details-by-product-type/display-details-by-product-type.component.ts","./src/app/views/salesjourney/case-summary/display-details-by-product-type/display-details-by-product-type.component.html","./src/app/views/salesjourney/case-summary/ggi-declaration-popup/ggi-declaration-popup.component.ts","./src/app/views/salesjourney/case-summary/ggi-declaration-popup/ggi-declaration-popup.component.html","./src/app/views/salesjourney/case-summary/status-light/status-light.component.ts","./src/app/views/salesjourney/case-summary/status-light/status-light.component.html","./src/app/views/salesjourney/different-agent-status/different-agent-status.component.ts","./src/app/views/salesjourney/different-agent-status/different-agent-status.component.html","./src/app/views/salesjourney/edit-agent-details/add-new-commission-popup/add-new-commission-popup.component.ts","./src/app/views/salesjourney/edit-agent-details/add-new-commission-popup/add-new-commission-popup.component.html","./src/app/views/salesjourney/edit-agent-details/edit-agent-details.component.ts","./src/app/views/salesjourney/edit-agent-details/edit-agent-details.component.html","./src/app/views/salesjourney/edit-agent-details/least-one-warning/least-one-warning.component.ts","./src/app/views/salesjourney/edit-agent-details/least-one-warning/least-one-warning.component.html","./src/app/views/salesjourney/empf-app-status-popup/empf-app-status-popup.component.ts","./src/app/views/salesjourney/empf-app-status-popup/empf-app-status-popup.component.html","./src/app/views/salesjourney/empf-case-details/empf-case-details.component.ts","./src/app/views/salesjourney/empf-case-details/empf-case-details.component.html","./src/app/views/salesjourney/empf-declaration-confirmation/empf-declaration-confirmation.component.ts","./src/app/views/salesjourney/empf-declaration-confirmation/empf-declaration-confirmation.component.html","./src/app/views/salesjourney/empf-declaration-form/agentinfo-response.ts","./src/app/views/salesjourney/empf-declaration-form/agentinfo.service.ts","./src/app/views/salesjourney/empf-declaration-form/eiff-request.model.ts","./src/app/views/salesjourney/empf-declaration-form/empf-declaration-form.component.ts","./src/app/views/salesjourney/empf-declaration-form/empf-declaration-form.component.html","./src/app/views/salesjourney/er-empf-case-details/er-empf-case-details.component.ts","./src/app/views/salesjourney/er-empf-case-details/er-empf-case-details.component.html","./src/app/views/salesjourney/er-send-iff-in-batch-summary/er-send-iff-in-batch-summary.component.ts","./src/app/views/salesjourney/er-send-iff-in-batch-summary/er-send-iff-in-batch-summary.component.html","./src/app/views/salesjourney/er-send-iff-in-batch-summary/er-submit-success/er-submit-success.component.ts","./src/app/views/salesjourney/er-send-iff-in-batch-summary/er-submit-success/er-submit-success.component.html","./src/app/views/salesjourney/generate-md/employer-for-md/employer-for-md.component.ts","./src/app/views/salesjourney/generate-md/employer-for-md/employer-for-md.component.html","./src/app/views/salesjourney/generate-md/has-been-sent-customer-popup/has-been-sent-customer-popup.component.ts","./src/app/views/salesjourney/generate-md/has-been-sent-customer-popup/has-been-sent-customer-popup.component.html","./src/app/views/salesjourney/generate-md/individual/individual.component.ts","./src/app/views/salesjourney/generate-md/individual/individual.component.html","./src/app/views/salesjourney/generate-md/pending-split-agent-confir-popup/pending-split-agent-confir-popup.component.ts","./src/app/views/salesjourney/generate-md/pending-split-agent-confir-popup/pending-split-agent-confir-popup.component.html","./src/app/views/salesjourney/generate-md/select-product-type-for-md/select-product-type-for-md.component.ts","./src/app/views/salesjourney/generate-md/select-product-type-for-md/select-product-type-for-md.component.html","./src/app/views/salesjourney/iff-completion-steps-popup/iff-completion-steps-popup.component.ts","./src/app/views/salesjourney/iff-completion-steps-popup/iff-completion-steps-popup.component.html","./src/app/views/salesjourney/iff-declined-dashboard/iff-declined-dashboard.component.ts","./src/app/views/salesjourney/iff-declined-dashboard/iff-declined-dashboard.component.html","./src/app/views/salesjourney/iff-declined-dashboard/iff-declined-dashboard.config.ts","./src/app/views/salesjourney/iff-declined-dashboard/iff-declined-dashboard.service.ts","./src/app/views/salesjourney/iff-declined-dashboard/resolve-popup/resolve-popup.component.ts","./src/app/views/salesjourney/iff-declined-dashboard/resolve-popup/resolve-popup.component.html","./src/app/views/salesjourney/iff-paper-form/employer/employer.component.ts","./src/app/views/salesjourney/iff-paper-form/employer/employer.component.html","./src/app/views/salesjourney/iff-paper-form/individuals/individuals.component.ts","./src/app/views/salesjourney/iff-paper-form/individuals/individuals.component.html","./src/app/views/salesjourney/iff-paper-form/individuals/individuals.model.ts","./src/app/views/salesjourney/iff-paper-form/reset-warning/reset-warning.component.ts","./src/app/views/salesjourney/iff-paper-form/reset-warning/reset-warning.component.html","./src/app/views/salesjourney/iff-paper-form/select-product-type/select-product-type.component.ts","./src/app/views/salesjourney/iff-paper-form/select-product-type/select-product-type.component.html","./src/app/views/salesjourney/iff-status-flow-popup/iff-status-flow-popup.component.ts","./src/app/views/salesjourney/iff-status-flow-popup/iff-status-flow-popup.component.html","./src/app/views/salesjourney/md-iff-summary/empf-agent-er/empf-agent-er.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-agent-er/empf-agent-er.component.html","./src/app/views/salesjourney/md-iff-summary/empf-agent-ind/empf-agent-ind.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-agent-ind/empf-agent-ind.component.html","./src/app/views/salesjourney/md-iff-summary/empf-agent-sep/empf-agent-sep.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-agent-sep/empf-agent-sep.component.html","./src/app/views/salesjourney/md-iff-summary/empf-salessupport-er/empf-salessupport-er.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-salessupport-er/empf-salessupport-er.component.html","./src/app/views/salesjourney/md-iff-summary/empf-salessupport-ind/empf-salessupport-ind.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-salessupport-ind/empf-salessupport-ind.component.html","./src/app/views/salesjourney/md-iff-summary/empf-salessupport-sep/empf-salessupport-sep.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-salessupport-sep/empf-salessupport-sep.component.html","./src/app/views/salesjourney/md-iff-summary/empf-superadmin-er/empf-superadmin-er.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-superadmin-er/empf-superadmin-er.component.html","./src/app/views/salesjourney/md-iff-summary/empf-superadmin-ind/empf-superadmin-ind.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-superadmin-ind/empf-superadmin-ind.component.html","./src/app/views/salesjourney/md-iff-summary/empf-superadmin-sep/empf-superadmin-sep.component.ts","./src/app/views/salesjourney/md-iff-summary/empf-superadmin-sep/empf-superadmin-sep.component.html","./src/app/views/salesjourney/md-iff-summary/md-iff-select-product-type/md-iff-select-product-type.component.ts","./src/app/views/salesjourney/md-iff-summary/md-iff-select-product-type/md-iff-select-product-type.component.html","./src/app/views/salesjourney/md-iff-summary/md-iff-summary.component.ts","./src/app/views/salesjourney/md-iff-summary/md-iff-summary.component.html","./src/app/views/salesjourney/md-iff-summary/md-iff-summary.model.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-agent-er/mdiff-agent-er.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-agent-er/mdiff-agent-er.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-agent-ind/mdiff-agent-ind.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-agent-ind/mdiff-agent-ind.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-agent-sep/mdiff-agent-sep.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-agent-sep/mdiff-agent-sep.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-salessupport-er/mdiff-salessupport-er.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-salessupport-er/mdiff-salessupport-er.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-salessupport-ind/mdiff-salessupport-ind.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-salessupport-ind/mdiff-salessupport-ind.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-salessupport-sep/mdiff-salessupport-sep.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-salessupport-sep/mdiff-salessupport-sep.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-superadmin-er/mdiff-superadmin-er.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-superadmin-er/mdiff-superadmin-er.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-superadmin-ind/mdiff-superadmin-ind.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-superadmin-ind/mdiff-superadmin-ind.component.html","./src/app/views/salesjourney/md-iff-summary/mdiff-superadmin-sep/mdiff-superadmin-sep.component.ts","./src/app/views/salesjourney/md-iff-summary/mdiff-superadmin-sep/mdiff-superadmin-sep.component.html","./src/app/views/salesjourney/md-iff-summary/product-type-count-details-popup/product-type-count-details-popup.component.ts","./src/app/views/salesjourney/md-iff-summary/product-type-count-details-popup/product-type-count-details-popup.component.html","./src/app/views/salesjourney/new-resend-eiff/new-resend-eiff.component.ts","./src/app/views/salesjourney/new-resend-eiff/new-resend-eiff.component.html","./src/app/views/salesjourney/new-resend-eiff/sent-eiff-popup/sent-eiff-popup.component.ts","./src/app/views/salesjourney/new-resend-eiff/sent-eiff-popup/sent-eiff-popup.component.html","./src/app/views/salesjourney/paper-summary/paper-summary.component.ts","./src/app/views/salesjourney/paper-summary/paper-summary.component.html","./src/app/views/salesjourney/product-type-summary/product-type-summary.component.ts","./src/app/views/salesjourney/product-type-summary/product-type-summary.component.html","./src/app/views/salesjourney/product-type-summary/product-type-summary.model.ts","./src/app/views/salesjourney/product-type-summary/producttype-response.ts","./src/app/views/salesjourney/product-type-summary/producttype-summary.service.ts","./src/app/views/salesjourney/regulated-activities/regulated-activities.component.ts","./src/app/views/salesjourney/regulated-activities/regulated-activities.component.html","./src/app/views/salesjourney/resend-eiff/resend-eiff-submit-success/resend-eiff-submit-success.component.ts","./src/app/views/salesjourney/resend-eiff/resend-eiff-submit-success/resend-eiff-submit-success.component.html","./src/app/views/salesjourney/resend-eiff/resend-eiff.component.ts","./src/app/views/salesjourney/resend-eiff/resend-eiff.component.html","./src/app/views/salesjourney/resend-eiff/resend-eiff.model.ts","./src/app/views/salesjourney/sales-support-summary/sales-support-summary/sales-support-summary.component.ts","./src/app/views/salesjourney/sales-support-summary/sales-support-summary/sales-support-summary.component.html","./src/app/views/salesjourney/sales-support-summary/void-eiff-popup/void-eiff-popup.component.ts","./src/app/views/salesjourney/sales-support-summary/void-eiff-popup/void-eiff-popup.component.html","./src/app/views/salesjourney/salesjourney-routing.module.ts","./src/app/views/salesjourney/salesjourney.guard.ts","./src/app/views/salesjourney/salesjourney.module.ts","./src/app/views/salesjourney/salesjourney.service.ts","./src/app/views/salesjourney/send-iff-in-batch-summary/send-iff-in-batch-summary.component.ts","./src/app/views/salesjourney/send-iff-in-batch-summary/send-iff-in-batch-summary.component.html","./src/app/views/salesjourney/send-iff-in-batch-summary/submit-success/submit-success.component.ts","./src/app/views/salesjourney/send-iff-in-batch-summary/submit-success/submit-success.component.html","./src/app/views/salesjourney/service/case-details.service.ts","./src/app/views/salesjourney/service/iff.service.ts","./src/app/views/salesjourney/service/model/agent-submission-request.model.ts","./src/app/views/salesjourney/service/model/validate-empf-ref-no-request.model.ts","./src/app/views/salesjourney/super-admin/super-admin.component.ts","./src/app/views/salesjourney/super-admin/super-admin.component.html","./src/app/views/salesjourney/wsm-case-summary/add-new-case/add-new-case.component.ts","./src/app/views/salesjourney/wsm-case-summary/add-new-case/add-new-case.component.html","./src/app/views/salesjourney/wsm-case-summary/wsm-case-summary.component.ts","./src/app/views/salesjourney/wsm-case-summary/wsm-case-summary.component.html","./src/app/views/salesjourney/wsm-case-summary/wsm-case-summary.service.ts","./src/app/views/shk/agent-performance-head-enrolment/agent-performance-head-enrolment.component.ts","./src/app/views/shk/agent-performance-head-enrolment/agent-performance-head-enrolment.component.html","./src/app/views/shk/agent-performance-head/agent-performance-head.component.ts","./src/app/views/shk/agent-performance-head/agent-performance-head.component.html","./src/app/views/shk/agent-reassignment/agent-reassignment.component.ts","./src/app/views/shk/agent-reassignment/agent-reassignment.component.html","./src/app/views/shk/auto-rollover/auto-rollover-list/auto-rollover-list.component.ts","./src/app/views/shk/auto-rollover/auto-rollover-list/auto-rollover-list.component.html","./src/app/views/shk/auto-rollover/auto-rollover-payment-list/auto-rollover-payment-list.component.ts","./src/app/views/shk/auto-rollover/auto-rollover-payment-list/auto-rollover-payment-list.component.html","./src/app/views/shk/shk-routing.module.ts","./src/app/views/shk/shk.module.ts","./src/app/views/shk/shk.service.ts","./src/app/views/shk/shk.ts","./src/app/views/system/audit-history/audit-history.component.ts","./src/app/views/system/audit-history/audit-history.component.html","./src/app/views/system/audit-history/audit-history.config.ts","./src/app/views/system/audit-history/audit-history.module.ts","./src/app/views/system/audit-history/audit-log.service.ts","./src/app/views/system/calendar/approve-event/approve-event.component.ts","./src/app/views/system/calendar/approve-event/approve-event.component.html","./src/app/views/system/calendar/calendar/calendar.component.ts","./src/app/views/system/calendar/calendar/calendar.component.html","./src/app/views/system/calendar/day-card.component.ts","./src/app/views/system/calendar/day-card.component.html","./src/app/views/system/calendar/day-card.module.ts","./src/app/views/system/calendar/declined-commission-event/declined-commission-event.component.ts","./src/app/views/system/calendar/declined-commission-event/declined-commission-event.component.html","./src/app/views/system/calendar/event-add/event-add.component.ts","./src/app/views/system/calendar/event-add/event-add.component.html","./src/app/views/system/calendar/event-details/event-details.component.ts","./src/app/views/system/calendar/event-details/event-details.component.html","./src/app/views/system/calendar/event-edit-list/event-edit-list.component.ts","./src/app/views/system/calendar/event-edit-list/event-edit-list.component.html","./src/app/views/system/calendar/shared/approve-commission-event/approve-commission-event.component.ts","./src/app/views/system/calendar/shared/approve-commission-event/approve-commission-event.component.html","./src/app/views/system/calendar/shared/calendar.config.ts","./src/app/views/system/calendar/shared/calendar.model.ts","./src/app/views/system/calendar/shared/calendar.service.ts","./src/app/views/system/calendar/shared/calendar.validators.ts","./src/app/views/system/calendar/shared/event-check/event-check.component.ts","./src/app/views/system/calendar/shared/event-check/event-check.component.html","./src/app/views/system/calendar/shared/report-no-event/report-no-event.component.ts","./src/app/views/system/calendar/shared/report-no-event/report-no-event.component.html","./src/app/views/system/calendar/shared/review-dividend-rate/review-dividend-rate.component.ts","./src/app/views/system/calendar/shared/review-dividend-rate/review-dividend-rate.component.html","./src/app/views/system/calendar/shared/update-commission-event/update-commission-event.component.ts","./src/app/views/system/calendar/shared/update-commission-event/update-commission-event.component.html","./src/app/views/system/reporting-role/reporting-role-create/reporting-role-create.component.ts","./src/app/views/system/reporting-role/reporting-role-create/reporting-role-create.component.html","./src/app/views/system/reporting-role/reporting-role-form/reporting-role-form.component.ts","./src/app/views/system/reporting-role/reporting-role-form/reporting-role-form.component.html","./src/app/views/system/reporting-role/reporting-role-info/reporting-role-info.component.ts","./src/app/views/system/reporting-role/reporting-role-info/reporting-role-info.component.html","./src/app/views/system/reporting-role/reporting-role.component.ts","./src/app/views/system/reporting-role/reporting-role.component.html","./src/app/views/system/reporting-role/reporting-role.module.ts","./src/app/views/system/reporting-role/role-assign-users/role-assign-users.component.ts","./src/app/views/system/reporting-role/role-assign-users/role-assign-users.component.html","./src/app/views/system/reporting-role/role-assign-users/role-assign-users.module.ts","./src/app/views/system/role/role-create/role-create.component.ts","./src/app/views/system/role/role-create/role-create.component.html","./src/app/views/system/role/role-info/role-info.component.ts","./src/app/views/system/role/role-info/role-info.component.html","./src/app/views/system/role/role-list/role-list.component.ts","./src/app/views/system/role/role-list/role-list.component.html","./src/app/views/system/role/shared/role-info-access-table/role-info-access-table.component.ts","./src/app/views/system/role/shared/role-info-access-table/role-info-access-table.component.html","./src/app/views/system/role/shared/role-info-form/role-info-form.component.ts","./src/app/views/system/role/shared/role-info-form/role-info-form.component.html","./src/app/views/system/role/shared/role-info-user/role-info-user.component.ts","./src/app/views/system/role/shared/role-info-user/role-info-user.component.html","./src/app/views/system/system-routing.module.ts","./src/app/views/system/system.module.ts","./src/app/views/termination/termination-list/expand-item-mobile/expand-item-mobile.component.ts","./src/app/views/termination/termination-list/expand-item-mobile/expand-item-mobile.component.html","./src/app/views/termination/termination-list/expand-item/expand-item.component.ts","./src/app/views/termination/termination-list/expand-item/expand-item.component.html","./src/app/views/termination/termination-list/termination-list.component.ts","./src/app/views/termination/termination-list/termination-list.component.html","./src/app/views/termination/termination-routing.module.ts","./src/app/views/termination/termination.module.ts","./src/app/views/termination/termination.service.ts","./src/app/views/termination/termination.ts","./src/app/views/upload-center/upload-abm-list-popup/upload-abm-list-popup.service.ts","./src/app/views/upload-center/upload-center-routing.module.ts","./src/app/views/upload-center/upload-center.module.ts","./src/app/views/upload-center/upload-center/upload-center.component.ts","./src/app/views/upload-center/upload-center/upload-center.component.html","./src/app/views/upload-center/upload-customer-data/service-agent-async.validators.ts","./src/app/views/upload-center/upload-customer-data/upload-customer-data.component.ts","./src/app/views/upload-center/upload-customer-data/upload-customer-data.component.html","./src/app/views/upload-center/upload-customer-data/upload-customer-data.module.ts","./src/app/views/upload-center/upload-customer-data/upload-customer-data.service.ts","./src/app/views/upload-center/upload-document/upload-document.component.ts","./src/app/views/upload-center/upload-document/upload-document.component.html","./src/app/views/user/login/login.component.ts","./src/app/views/user/login/login.component.html","./src/app/views/user/login/my-string.pipe.ts","./src/app/views/user/login/otp-channel.enum.ts","./src/app/views/user/login/time-out.component.ts","./src/app/views/user/login/time-out.component.html","./src/app/views/user/user-routing.module.ts","./src/app/views/user/user.module.ts","./src/app/views/welcome/welcome.component.ts","./src/app/views/welcome/welcome.component.html","./src/app/views/welcome/welcome.module.ts","./src/app/views/widgets/widgets-campaign-overview/widgets-campaign-overview.component.ts","./src/app/views/widgets/widgets-campaign-overview/widgets-campaign-overview.component.html","./src/app/views/widgets/widgets-campaign-result/widgets-campaign-result.component.ts","./src/app/views/widgets/widgets-campaign-result/widgets-campaign-result.component.html","./src/app/views/widgets/widgets-pending-iff/widgets-pending-iff.component.ts","./src/app/views/widgets/widgets-pending-iff/widgets-pending-iff.component.html","./src/app/views/widgets/widgets-production-credit-by-district/widgets-production-credit-by-district.component.ts","./src/app/views/widgets/widgets-production-credit-by-district/widgets-production-credit-by-district.component.html","./src/app/views/widgets/widgets-production-credit/widgets-production-credit.component.ts","./src/app/views/widgets/widgets-production-credit/widgets-production-credit.component.html","./src/app/views/widgets/widgets-quick-links/widgets-quick-links.component.ts","./src/app/views/widgets/widgets-quick-links/widgets-quick-links.component.html","./src/app/views/widgets/widgets.module.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|/app/jenkins/workspace/b-ssms-service-portal_CI_develop/node_modules/crypto-js|crypto"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { Meta } from '@angular/platform-browser';\nimport packageInfo from '../../package.json';\nimport { ActivatedRoute, NavigationEnd, NavigationError, Router } from '@angular/router';\nimport { SwUpdate } from '@angular/service-worker';\nimport { AuthenticationService } from './core/services/authentication.service';\nimport { ConsoleToogleServiceService } from './core/services/console-toogle-service.service';\nimport { LayoutHeaderService } from './core/services/layout-header.service';\nimport { PermissionService } from './core/services/permission.service';\nimport { NotifyService } from './core/services/notify.service';\nimport { CommissionBatchStatusService } from './core/services/commission-batch-status.service';\n\n@Component({\n selector: 'app-root',\n template: `\n
\n \n
\n \n \n \n `,\n styles: [\n `\n ::ng-deep cds-table {\n cds-header-cell {\n vertical-align: middle;\n }\n .cds-sort-header .cds-sort-header-container {\n justify-content: unset;\n .cds-sort-header-arrow svg.none {\n opacity: unset;\n }\n .cds-sort-header-arrow svg {\n width: 20px;\n }\n }\n }\n\n ::ng-deep .cdk-overlay-pane:has(.mat-select-panel-wrap > .cds-dropdown-panel),\n ::ng-deep .cdk-overlay-pane:has(.mat-select-panel-wrap > .mat-select-panel) {\n transform: translateX(-16px) translateY(6px) !important;\n\n .mat-select-panel {\n margin-top: 2.25rem !important;\n }\n }\n\n ::ng-deep cds-link.cds-link.hyperlink a > span:nth-child(2) {\n color: var(--cds-text-main);\n }\n\n ::ng-deep cds-link.cds-link.hyperlink.no-action {\n cursor: text;\n\n a {\n pointer-events: none;\n\n & > span:nth-child(2) {\n color: var(--cds-text-main);\n cursor: auto;\n border-bottom: unset;\n }\n }\n }\n\n .screen-loading {\n width: 100vw;\n position: absolute;\n height: 100vh;\n z-index: 9999;\n display: flex;\n text-align: center;\n justify-content: center;\n background-color: hsl(0deg 0% 0% / 60%);\n }\n `,\n ],\n})\nexport class AppComponent implements OnInit {\n title = 'Manulife - SSMS';\n isShowSwUpdate = false;\n isScreenLoading = false;\n\n constructor(\n private consoleToogleService: ConsoleToogleServiceService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private layoutHeaderService: LayoutHeaderService,\n private authService: AuthenticationService,\n private permissionService: PermissionService,\n private swUpdate: SwUpdate,\n private metaService: Meta,\n private notifyService: NotifyService,\n public commissionBatchStatusService: CommissionBatchStatusService\n ) {\n // the lang to use, if the lang isn't available, it will use the current loader to get them\n this.consoleToogleService.disableConsoleInProduction();\n this.metaService.updateTag({\n name: 'version',\n content: packageInfo.version,\n });\n }\n\n ngOnInit() {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationError) {\n this.router.navigate(['/error/response-error']);\n } else if (event instanceof NavigationEnd) {\n const rt = this.getChild(this.activatedRoute);\n rt.data.subscribe(data => {\n this.layoutHeaderService.setTitle(data['title']);\n if (this.permissionService.getMenuExclusions().includes(event.url)) {\n this.router.navigate(['/error/response-error']);\n }\n this.permissionService.permissionFilterAsync(data['roles']).then(has => {\n if (!has) {\n this.router.navigate(['/permission-error']);\n }\n });\n if (event && event.url.indexOf('/user/session-time-out') == -1 && event.url.indexOf('/user/login')) {\n this.authService.currentUserValue().then(data => {\n if (data.token === undefined) {\n this.authService.setRouterUrl(event.url);\n this.router.navigate(['/user/login']);\n } else {\n this.authService.workerRefresh();\n }\n });\n }\n });\n }\n });\n this.swUpdate.versionUpdates.subscribe(evt => {\n switch (evt.type) {\n case 'VERSION_READY':\n case 'VERSION_INSTALLATION_FAILED':\n this.isShowSwUpdate = true;\n break;\n }\n });\n\n if (this.swUpdate.isEnabled) {\n let checkTimes = 0;\n this.swUpdate.checkForUpdate();\n const interval = setInterval(() => {\n checkTimes++;\n this.swUpdate.checkForUpdate();\n if (checkTimes >= 1) {\n clearInterval(interval);\n }\n }, 5000);\n }\n\n this.notifyService.screenLoadingSubject.subscribe((boo: boolean) => {\n setTimeout(() => {\n this.isScreenLoading = boo;\n }, 0);\n });\n }\n\n getChild(activatedRoute: ActivatedRoute): ActivatedRoute {\n if (activatedRoute.firstChild) {\n return this.getChild(activatedRoute.firstChild);\n } else {\n return activatedRoute;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { DefaultInterceptor } from './core/interceptors/default.interceptor';\nimport { ErrorInterceptor } from './core/interceptors/error.interceptor';\nimport { JwtInterceptor } from './core/interceptors/jwt.interceptor';\n\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport {\n MsalBroadcastService,\n MsalGuard,\n MsalGuardConfiguration,\n MsalInterceptor,\n MsalInterceptorConfiguration,\n MsalService,\n MSAL_GUARD_CONFIG,\n MSAL_INSTANCE,\n MSAL_INTERCEPTOR_CONFIG,\n} from '@azure/msal-angular';\nimport { BrowserCacheLocation, InteractionType, IPublicClientApplication, LogLevel, PublicClientApplication } from '@azure/msal-browser';\nimport { CdsLangService, CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDatepickerModule, CDS_DATE_FORMATS, DateAdapter } from '@cds/ng-web-components/datepicker';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsNavigationModule } from '@cds/ng-web-components/navigation';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsStepperModule } from '@cds/ng-web-components/stepper';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { RoutesRoutingModule } from './routes-routing.module';\nimport { SharedModule } from './shared/shared.module';\nimport { AgentModule } from './views/agent/agent.module';\nimport { CommissionModule } from './views/commission/commission.module';\nimport { ErrorModule } from './views/error/error.module';\nimport { UserModule } from './views/user/user.module';\n\nimport { environment } from 'src/environments/environment';\nimport { AppComponent } from './app.component';\n\nimport { WelcomeModule } from './views/welcome/welcome.module';\nimport { LocalStorage } from './utils/LocalStorage';\nimport { AdminHeaderComponent } from './views/layout/admin-layout/admin-header/admin-header.component';\nimport { AdminLayoutComponent } from './views/layout/admin-layout/admin-layout.component';\nimport { AuthLayoutComponent } from './views/layout/auth-layout/auth-layout.component';\nimport { CdsNavigationFooterLocalComponent } from './views/layout/cds-navigation-footer/cds-navigation-footer.component';\n\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { ShkModule } from 'src/app/views/shk/shk.module';\nimport { MY_FORMATS } from './config/datePicker';\nimport { AgentListModule } from './views/agent-list/agent-list.module';\nimport { AgentPerformanceModule } from './views/agent-performance/agent-performance.module';\nimport { AgentPerformanceEnrolmentModule } from './views/agent-performance-enrolment/agent-performance-enrolment.module';\nimport { EmployeeModule } from './views/employee/employee.module';\nimport { EmployerModule } from './views/employer/employer.module';\nimport { NotificationModule } from './views/mobile-subscription/notification.module';\nimport { SalesjourneyModule } from './views/salesjourney/salesjourney.module';\nimport { SystemModule } from './views/system/system.module';\nimport { TerminationModule } from './views/termination/termination.module';\nimport { EnrolmentModule } from './views/enrolment/enrolment.module';\nimport { TimeOutComponent } from './views/user/login/time-out.component';\nimport { ReportCenterModule } from './views/report-center/report-center.module';\nimport { TrusteeDetailsPopupModule } from './components/trustee-details-popup/trustee-details-popup.module';\nimport { AngentModule } from './views/chatbot/angent/angent.module';\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { ChatbotAdminModule } from './views/chatbot-admin/chatbot-admin.module';\nimport { CampaignModule } from './views/campaign/campaign.module';\nimport { PaymentModule } from './views/payment/payment.module';\nimport { AuthHttpInterceptor } from './core/interceptors/auth.http-interceptor';\nimport { BenefitPaymentModule } from './views/benefit-payment/benefit-payment.module';\nimport { AnnuncementModule } from './views/annuncement/annuncement.module';\nimport { UploadCenterModule } from './views/upload-center/upload-center.module';\nimport { DataPermissionInterceptor } from './core/interceptors/dataPermission.interceptor';\nimport { SupervisorModule } from './views/chatbot-admin/chatbot-supervisor/supervisor.module';\nimport { CommissionBatchStatusInterceptor } from './core/interceptors/commission-batch-status.interceptor';\nimport { AgentDashboardComponent } from './views/chatbot/angent/agent-dashboard.component';\nimport { HighRiskFileUploadCenterModule } from './views/high-risk-file-upload-center/high-risk-file-upload-center.module';\n\n@NgModule({\n declarations: [\n AppComponent,\n AdminLayoutComponent,\n AuthLayoutComponent,\n TimeOutComponent,\n CdsNavigationFooterLocalComponent,\n AdminHeaderComponent,\n AgentDashboardComponent,\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n RoutesRoutingModule,\n MatMenuModule,\n WelcomeModule,\n MatSelectModule,\n CdsLinkModule,\n CdsNavigationModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsButtonModule,\n CdsTextfieldModule,\n CdsPaginationModule,\n CdsTableModule,\n CdsStepperModule,\n CdsCheckboxModule,\n CdsSearchModule,\n CdsPopupModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsDropdownModule,\n CdsProgressModule,\n CdsTabsModule,\n CdsRadioModule,\n CdsDatepickerModule,\n CdsSortModule,\n UserModule,\n ErrorModule,\n NotificationModule,\n AgentModule,\n CommissionModule,\n PaymentModule,\n SharedModule,\n EmployeeModule,\n EmployerModule,\n SalesjourneyModule,\n ReportCenterModule,\n TerminationModule,\n EnrolmentModule,\n AgentListModule,\n ShkModule,\n SystemModule,\n AgentPerformanceModule,\n AgentPerformanceEnrolmentModule,\n MatSnackBarModule,\n MatDialogModule,\n TrusteeDetailsPopupModule,\n AngentModule,\n UiSwitchModule,\n CampaignModule,\n BenefitPaymentModule,\n ServiceWorkerModule.register('ngsw-worker.js', {\n enabled: environment.profile !== 'dev',\n // enabled: environment.production,\n // Register the ServiceWorker as soon as the application is stable\n // or after 30 seconds (whichever comes first).\n registrationStrategy: 'registerWhenStable:30000',\n }),\n ChatbotAdminModule,\n AnnuncementModule,\n UploadCenterModule,\n SupervisorModule,\n HighRiskFileUploadCenterModule,\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MsalInterceptor,\n multi: true,\n },\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALInstanceFactory,\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALGuardConfigFactory,\n },\n {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useFactory: MSALInterceptorConfigFactory,\n },\n // { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthHttpInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CommissionBatchStatusInterceptor,\n multi: true,\n },\n { provide: HTTP_INTERCEPTORS, useClass: DataPermissionInterceptor, multi: true },\n MsalService,\n MsalGuard,\n MsalBroadcastService,\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: INIT_LANG_DATA,\n deps: [CdsLangService],\n },\n LocalStorage,\n\n { provide: CDS_DATE_FORMATS, useValue: MY_FORMATS },\n { provide: DateAdapter, useClass: MomentDateAdapter },\n ],\n bootstrap: [AppComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class AppModule {}\n\nexport function loggerCallback(logLevel: LogLevel, message: string) {\n console.log(message);\n}\n\nexport function MSALInstanceFactory(): IPublicClientApplication {\n return new PublicClientApplication({\n auth: {\n clientId: environment.clientId, // PPE testing environment\n authority: 'https://login.microsoftonline.com/5d3e2773-e07f-4432-a630-1a0f68a28a05',\n redirectUri: '/',\n postLogoutRedirectUri: '/',\n },\n cache: {\n cacheLocation: BrowserCacheLocation.LocalStorage,\n // storeAuthStateInCookie: isIE, // set to true for IE 11. Remove this line to use Angular Universal\n },\n system: {\n loggerOptions: {\n loggerCallback,\n logLevel: LogLevel.Info,\n piiLoggingEnabled: false,\n },\n },\n });\n}\n\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\n const protectedResourceMap = new Map>();\n protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']); // Prod environment. Uncomment to use.\n //protectedResourceMap.set('https://graph.microsoft-ppe.com/v1.0/me', ['user.read']);\n\n return {\n interactionType: InteractionType.Redirect,\n protectedResourceMap,\n };\n}\n\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\n return {\n interactionType: InteractionType.Redirect,\n authRequest: {\n scopes: ['user.read'],\n },\n loginFailedRoute: '/login-failed',\n };\n}\n\nexport function INIT_LANG_DATA(langService: CdsLangService) {\n return () => {\n return Promise.all([\n langService.init([\n './assets/i18n/common.json',\n './assets/i18n/common-business.json',\n './assets/i18n/common-month.json',\n './assets/i18n/home.json',\n './assets/i18n/login.json',\n './assets/i18n/agent.json',\n './assets/i18n/summary.json',\n './assets/i18n/report-center.json',\n './assets/i18n/commission/commission-scale.json',\n './assets/i18n/commission/scheme-master.json',\n './assets/i18n/commission/commission-journal.json',\n './assets/i18n/commission/commission-hold-on-report.json',\n './assets/i18n/commission/commission-individual-transfer.json',\n './assets/i18n/commission/commission-make-appeal.json',\n './assets/i18n/commission/commission-error-log.json',\n './assets/i18n/commission/commission-default-scale.json',\n './assets/i18n/commission/commission-report-extraction.json',\n './assets/i18n/commission/commission-withdrawal-claw-back.json',\n './assets/i18n/commission/commission-ape.json',\n './assets/i18n/commission-pool/payout.json',\n './assets/i18n/commission-pool/common.json',\n './assets/i18n/commission-pool/create.json',\n './assets/i18n/commission-pool/summary.json',\n './assets/i18n/commission-pool/related-parties/related-list.json',\n './assets/i18n/commission-pool/related-parties/related-add.json',\n './assets/i18n/commission-pool/scale/record-details.json',\n './assets/i18n/commission-pool/scale/record-create.json',\n './assets/i18n/commission-pool/scale/options.json',\n './assets/i18n/commission-pool/agent/agent.json',\n './assets/i18n/commission-pool/agent/agent-add-alert.json',\n './assets/i18n/commission-pool/agent/agent-record-add.json',\n './assets/i18n/setting/audit-history.json',\n './assets/i18n/setting/role.json',\n './assets/i18n/setting/calendar.json',\n './assets/i18n/employ.json',\n './assets/i18n/product-summary.json',\n './assets/i18n/employee.json',\n './assets/i18n/termination.json',\n './assets/i18n/sales-journey.json',\n './assets/i18n/shk.json',\n './assets/i18n/agent-profile.json',\n './assets/i18n/sales-journey/iff-declined-dashboard.json',\n './assets/i18n/payment-journal.json',\n './assets/i18n/annuncement/annuncement-center.json',\n './assets/i18n/generate-md/generate-md.json',\n './assets/i18n/md-iff-summary.json',\n './assets/i18n/sales-journey/case-details.json',\n ]),\n ]);\n };\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\n\n@Component({\n selector: 'app-cd-accordion-panel',\n templateUrl: './cd-accordion-panel.component.html',\n styleUrls: ['./cd-accordion-panel.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n paddingBottom: 'var(--cds-spacing-04)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n ]),\n ],\n})\nexport class CdAccordionPanelComponent implements OnInit {\n constructor() {}\n\n @Input() title?: string;\n @Input() longTitle = true;\n @Input() miniTitle?: string;\n @Input() titleTip?: string;\n @Input() subTitle?: string;\n @Input() subTitleTip?: string;\n @Input() right?: string;\n @Input() upIcon = 'action:button_down_outlined';\n @Input() downIcon = 'action:button_down_filled';\n @Input() color = '#EC6453';\n @Input() mouseColor = '#D03A39';\n @Input() size = '20px';\n @Input() statusColor?: string;\n @Input() titleClass = 'cds-h5-demibold';\n @Input() miniTitleClass = 'cds-body2-demibold';\n @Input() subTitleClass = '';\n @Input() subTitleOutClass = 'col-xs-12';\n @Input() rightDesTitle?: string;\n @Input() rightDesValue?: string | null;\n @Input() borderStyle = false;\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detaiClass = 'detail-collapsed';\n _expand? = false;\n borderClass = '';\n borderNone = '';\n\n ngOnInit(): void {\n if (this.borderStyle) {\n this.borderClass = 'border-class';\n this.borderNone = 'border-none';\n }\n }\n\n mouseenterFun() {\n this.size = '24px';\n this._config = {\n color: this.mouseColor,\n };\n }\n mouseleaveFun() {\n this.size = '20px';\n this._config = {\n color: this.color,\n };\n }\n\n @Input()\n set expand(val: boolean | undefined) {\n this._expand = val;\n this._detaiClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n setTimeout(() => {\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }, 5);\n }\n\n get expand() {\n return this._expand;\n }\n\n trigger() {\n this.expand = !this.expand;\n }\n}\n","
\n \n
\n
\n \n \n
\n
\n
\n
\n {{ title }}\n \n \n {{ miniTitle }}\n
\n
\n
\n \n {{ subTitle }}\n \n \n
\n
\n
\n
\n
\n {{ right }}\n
\n
\n\n
\n
{{ rightDesTitle }}
\n     \n
\n {{ rightDesValue }}\n
\n
\n
\n
\n\n
\n \n
\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdAccordionComponent } from './cd-accordion/cd-accordion.component';\nimport { CdAccordionPanelComponent } from './cd-accordion-panel/cd-accordion-panel.component';\nimport { TooltipIconModule } from 'src/app/shared/tooltip-icon/tooltip-icon.module';\n\n@NgModule({\n declarations: [CdAccordionComponent, CdAccordionPanelComponent],\n imports: [CommonModule, CdsIconModule, TooltipIconModule],\n exports: [CdAccordionComponent, CdAccordionPanelComponent],\n})\nexport class CdAccordionModule {}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-cd-accordion',\n templateUrl: './cd-accordion.component.html',\n styleUrls: ['./cd-accordion.component.scss'],\n})\nexport class CdAccordionComponent implements OnInit {\n @Input() noTopLine = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n
\n\n","import { OnInit, OnDestroy, AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'app-cd-input',\n templateUrl: './cd-input.component.html',\n styleUrls: ['./cd-input.component.scss'],\n})\nexport class CdInputComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() group!: FormGroup;\n @Input() controlName = '';\n @Input() value = '';\n @Output() valueChange = new EventEmitter();\n @Input() formControl?: FormControl;\n @ViewChild('theInput', { static: false })\n theInput!: ElementRef;\n @Input() label = '';\n @Input() placeholder = '';\n @Input() disable = false;\n @Input() type: 'text' | 'number' = 'text';\n @Input() regExpLimit?: string;\n @Input() maxlength: number | string | null = null;\n @Input() validator: ((val: string) => string | null) | null = null;\n @Input() asyncValidator: ((val: string) => Observable | null) | null = null;\n @Input() isHasErrors = false;\n @Output() blurEvent = new EventEmitter();\n isFocus = false;\n changeSubject = new Subject();\n private _asyncValidatorLoading = false;\n get asyncValidatorLoading() {\n return this._asyncValidatorLoading;\n }\n\n errorInfo = '';\n asyncErrorInfo = '';\n\n constructor() {}\n\n ngOnInit() {\n this.changeSubject.pipe(debounceTime(300), distinctUntilChanged()).subscribe(val => {\n this.changeSubjecthandle(val);\n });\n }\n\n changeSubjecthandle(val: string) {\n if (this.asyncValidator) {\n this._asyncValidatorLoading = true;\n const ob = this.asyncValidator(val);\n if (ob) {\n ob.pipe(take(1)).subscribe(res => {\n if (res) {\n this.asyncErrorInfo = res;\n } else {\n this.asyncErrorInfo = '';\n }\n this._asyncValidatorLoading = false;\n });\n } else {\n this._asyncValidatorLoading = false;\n this.asyncErrorInfo = '';\n }\n }\n }\n\n onBlur() {\n this.blurEvent.emit();\n }\n\n ngOnDestroy() {\n this.changeSubject.unsubscribe();\n }\n\n ngAfterViewInit() {\n if (this.theInput && this.theInput.nativeElement) {\n this.theInput.nativeElement.onfocus = () => {\n this.isFocus = true;\n };\n this.theInput.nativeElement.onblur = () => {\n this.isFocus = false;\n };\n }\n\n if (this.formControl) {\n if (this.formControl.value != null) {\n this.value = this.formControl.value;\n }\n this.formControl.valueChanges.subscribe(val => {\n this.value = val;\n });\n }\n }\n\n change(val: string) {\n if (this.regExpLimit && !new RegExp(this.regExpLimit).test(val)) {\n this.theInput.nativeElement.value = this.value;\n if (this.group) {\n this.group.controls[this.controlName].setValue(this.value);\n }\n return;\n }\n\n if (this.type === 'number' && isNaN(+val)) {\n this.theInput.nativeElement.value = this.value;\n if (this.group) {\n this.group.controls[this.controlName].setValue(this.value);\n }\n return;\n }\n\n this.value = val;\n this.valueChange.emit(this.value);\n this.changeSubject.next(this.value);\n this.formControl?.setValue(this.value);\n this.formControl?.markAsDirty();\n this.formControl?.markAsTouched();\n\n if (this.validator) {\n const val = this.validator(this.value);\n if (val) {\n this.errorInfo = val;\n } else {\n this.errorInfo = '';\n }\n }\n }\n\n clearErrorInfo() {\n this.errorInfo = '';\n this.asyncErrorInfo = '';\n }\n}\n","
\n \n
\n 0\">\n
\n {{ errorInfo }}\n
\n
\n 0\">\n
\n {{ asyncErrorInfo | lang }}\n
\n
\n \n
\n\n
\n \n
\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\n\nimport { CdInputComponent } from './cd-input.component';\n@NgModule({\n declarations: [CdInputComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CdsLanguageModule, CdsAssistiveTextModule, CdsProgressModule],\n exports: [CdInputComponent],\n})\nexport class CdInputModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[appRowItemLabelDef]',\n})\nexport class RowItemLabelDefDirective {\n constructor(public templateRef: TemplateRef) {}\n}\n\n@Directive({\n selector: '[appRowItemContentDef]',\n})\nexport class RowItemContentDefDirective {\n constructor(public templateRef: TemplateRef) {}\n}\n","import { Component, ContentChild, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { RowItemContentDefDirective, RowItemLabelDefDirective } from './row-item.component.directive';\n\n@Component({\n selector: 'app-row-item',\n templateUrl: './row-item.component.html',\n styleUrls: ['./row-item.component.scss'],\n})\nexport class RowItemComponent implements OnInit {\n @Input() label = '';\n @Input() data?: string | number | null = '';\n @Input() icon?: string;\n @Output() funCall = new EventEmitter();\n @Input() checked?: boolean;\n @Input() toolTipString = '';\n @Input() iconColor = '#282B3E';\n\n @ContentChild(RowItemLabelDefDirective) labelRef!: RowItemLabelDefDirective;\n @ContentChild(RowItemContentDefDirective) contentRef!: RowItemContentDefDirective;\n\n noCheckConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: false,\n };\n\n checkedConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n constructor() {}\n\n ngOnInit(): void {}\n\n call() {\n this.funCall.emit();\n }\n\n onCanDelegateAmtToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n}\n","
\n \n
\n
\n {{ label | lang }}\n
\n \n
\n
\n {{ label | lang }}\n
\n
\n\n \n
\n \n
\n\n \n
\n {{ data }}\n \n \n
\n
\n {{ data || ' ' }}\n
\n
\n \n \n
\n
\n\n \n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { RowItemComponent } from './row-item.component';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { RowItemContentDefDirective, RowItemLabelDefDirective } from './row-item.component.directive';\n\n@NgModule({\n declarations: [RowItemComponent, RowItemLabelDefDirective, RowItemContentDefDirective],\n imports: [CommonModule, CdsLanguageModule, CdsIconModule, CdsCheckboxModule, CdsTooltipModule],\n exports: [RowItemComponent, RowItemLabelDefDirective, RowItemContentDefDirective],\n})\nexport class RowItemModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableExpandComponent } from './table-expand/table-expand.component';\nimport { TableExpandColComponent } from './table-expand-col/table-expand-col.component';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\n\n@NgModule({\n declarations: [TableExpandComponent, TableExpandColComponent],\n imports: [CommonModule, CdsLanguageModule, CdsIconModule, CdsProgressModule],\n exports: [TableExpandComponent, TableExpandColComponent],\n})\nexport class ExpandTableModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { Sort } from '../table-expand';\n\n@Component({\n selector: 'app-table-expand-col',\n templateUrl: './table-expand-col.component.html',\n styleUrls: ['./table-expand-col.component.scss'],\n})\nexport class TableExpandColComponent implements OnInit {\n constructor() {}\n\n @Input() label = '';\n @Input() prop = '';\n @Input() width?: string;\n @Input() sort?: Sort;\n @Input() template?: TemplateRef;\n\n ngOnInit(): void {}\n}\n","\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface ColumnItem {\n label: string;\n prop: string;\n width?: string;\n val?: string;\n sort?: Sort;\n sortString?: string;\n template?: any;\n}\n\nexport interface RowInfo {\n expand: boolean;\n mouseIn: boolean;\n data: ColumnItem[];\n expandClass: string;\n}\n\nexport enum Sort {\n DEFAULT = 'none',\n UP = 'asc',\n DOWN = 'desc',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ColumnItem, RowInfo, Sort } from '../table-expand';\nimport { TableExpandColComponent } from '../table-expand-col/table-expand-col.component';\n\n@Component({\n selector: 'app-table-expand',\n templateUrl: './table-expand.component.html',\n styleUrls: ['./table-expand.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expanded',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-05)',\n paddingBottom: 'var(--cds-spacing-05)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '0deg',\n })\n ),\n transition('detail-expanded <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class TableExpandComponent implements OnInit, OnChanges, AfterContentInit {\n @ContentChildren(TableExpandColComponent)\n cols?: QueryList;\n\n @Input() expandIcon = true;\n public Sort = Sort;\n public ColumnItem?: ColumnItem;\n\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data?: any[];\n @Input() progress = false;\n @Input() expandTemplate?: TemplateRef;\n @Input() multiSort = false;\n @Input() noResultMsg?: string;\n\n @Output() expandChange = new EventEmitter();\n @Output() sortChange = new EventEmitter();\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n\n notfoundConfig: CdsIconConfig = { color: '#8e90a2', size: 'md' };\n\n _rowInfoList?: RowInfo[];\n _headerList?: ColumnItem[];\n _sortMap = new Map();\n\n constructor() {}\n\n ngAfterContentInit(): void {\n this.initData();\n }\n\n initData() {\n if (!this.cols) {\n return;\n }\n const _rowListTemp: RowInfo[] = [];\n\n this.data?.forEach(item => {\n const _columnList: ColumnItem[] = [];\n const _rowMap = new Map(Object.entries(item));\n this.cols?.forEach(col => {\n const mapVal = _rowMap.get(col.prop);\n const _item: ColumnItem = {\n label: col.label,\n prop: col.prop,\n width: col.width,\n template: col.template,\n sort: col.sort,\n val: mapVal != undefined || mapVal != null ? String(_rowMap.get(col.prop)) : undefined,\n };\n _columnList.push(_item);\n });\n if (!this._headerList) {\n this._headerList = [..._columnList];\n }\n const _rowInfo: RowInfo = {\n expand: false,\n mouseIn: false,\n data: _columnList,\n expandClass: 'detail-collapsed',\n };\n _rowListTemp.push(_rowInfo);\n });\n this._rowInfoList = _rowListTemp;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data']) {\n this.initData();\n }\n }\n\n sortChangeFun(sort: Sort, index: number) {\n if (this._headerList) {\n if (!this.multiSort) {\n this._headerList.forEach(item => {\n if (item.sort !== undefined) {\n item.sort = Sort.DEFAULT;\n }\n });\n }\n this._headerList[index].sort = sort;\n const _headItem = this._headerList[index];\n this._sortMap.set(_headItem.prop, _headItem.prop + ',' + _headItem.sort);\n let _sortString = '';\n this._sortMap.forEach(val => {\n _sortString += _sortString == '' ? val : '&sort=' + val;\n });\n _headItem.sortString = _sortString;\n this.sortChange.emit(_headItem);\n }\n }\n\n mouseenterFun(index: number) {\n if (!this._rowInfoList) {\n return;\n }\n this._rowInfoList[index].mouseIn = true;\n }\n\n mouseleaveFun(index: number) {\n if (!this._rowInfoList) {\n return;\n }\n this._rowInfoList[index].mouseIn = false;\n }\n\n trigger(index: number) {\n if (!this._rowInfoList) {\n return;\n }\n if (!this._rowInfoList[index].expand && !this.data?.[index]?.expandData) {\n this.expandChange.emit(index);\n }\n this._rowInfoList[index].expand = !this._rowInfoList[index].expand;\n setTimeout(() => {\n if (!this._rowInfoList) {\n return;\n }\n this._rowInfoList[index].expandClass = this._rowInfoList[index].expand ? 'detail-expanded' : 'detail-collapsed';\n }, 5);\n }\n\n ngOnInit(): void {}\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 {{ item.label }}\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n
\n \n \n \n \n {{ cell.val || '' }}\n \n
\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n {{ noResultMsg || 'common.noResultFound' | lang }}\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-trustee-details-popup',\n templateUrl: './trustee-details-popup.component.html',\n styleUrls: ['./trustee-details-popup.component.scss'],\n})\nexport class TrusteeDetailsPopupComponent implements OnInit {\n items = [\n {\n shortForm: 'AIA',\n definition: 'AIA Company (Trustee) Limited',\n },\n {\n shortForm: 'BCT',\n definition: 'Bank Consortium Trust Company Limited',\n },\n {\n shortForm: 'BCOM',\n definition: 'Bank of Communications Trustee Limited',\n },\n {\n shortForm: 'BOCI',\n definition: 'BOCI-Prudential Trustee Limited',\n },\n {\n shortForm: 'CHNL',\n definition: 'China Life Trustees Limited',\n },\n {\n shortForm: 'HSBC',\n definition: 'HSBC Provident Fund Trustee (Hong Kong) Limited',\n },\n {\n shortForm: 'HTHK',\n definition: 'HSBC Institutional Trust Services (Asia) Limited',\n },\n {\n shortForm: 'MANL',\n definition: 'Manulife Provident Funds Trust Company Limited',\n },\n {\n shortForm: 'PRIN',\n definition: 'Principal Trust Company (Asia) Limited',\n },\n {\n shortForm: 'DEX',\n definition: 'Standard Chartered Trustee (Hong Kong) Limited',\n },\n {\n shortForm: 'SUN',\n definition: 'Sun Life Trustee Company Limited',\n },\n {\n shortForm: 'FWD',\n definition: 'Sun Life Pension Trust Limited',\n },\n {\n shortForm: 'MASS',\n definition: 'YF Life Trustees Limited',\n },\n ];\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close();\n }\n}\n","
\n
\n Trustee Definition:\n
\n
\n
\n
\n Short Form\n
\n
\n Definition\n
\n
\n
\n
\n {{ item.shortForm }}\n
\n
\n {{ item.definition }}\n
\n
\n
\n
\n {{ 'common.mingBai' | lang }}\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TrusteeDetailsPopupComponent } from './trustee-details-popup.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [TrusteeDetailsPopupComponent],\n imports: [CommonModule, CdsButtonModule, CdsLanguageModule, SharedModule],\n})\nexport class TrusteeDetailsPopupModule {}\n","import { CdsButtonConfig } from '@cds/ng-core/button';\n\nexport const BTN_CONFIG_PRIMARY: CdsButtonConfig = {\n style: 'primary',\n};\n\nexport const BTN_CONFIG_SECONDARY: CdsButtonConfig = {\n style: 'secondary',\n};\n\nexport const BTN_CONFIG_TERTIARY: CdsButtonConfig = {\n style: 'tertiary',\n};\n","export const MY_FORMATS = {\n parse: {\n dateInput: 'DD/MM/YYYY',\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n },\n};\n","export enum DeclineReason {\n CaseCannotMatchWithEMPFData = 1,\n ClientHKIDPassportNoMismatchedWithEMPFData = 2,\n EmployerNameMismatchedWithEMPFData = 3,\n BRNoMismatchedWithEMPFData = 4,\n AuthorizedPersonNameMismatchedWithEMPFData = 5,\n AgentInformationMismatchedWithEMPFData = 6,\n ContactInfoMismatchedWithEMPFData = 7,\n DeclinedDueToRejectApplicationInEMPFPortal = 8,\n PendingToSend = 91,\n PendingSplitAgents = 92,\n PendingCustomerSubmission = 93,\n}\n\nexport const DECLINE_REASON = [\n {\n text: 'Case CANNOT match with eMPF data',\n value: DeclineReason.CaseCannotMatchWithEMPFData,\n },\n {\n text: 'Client HKID/ Passport No. mismatched with eMPF data',\n value: DeclineReason.ClientHKIDPassportNoMismatchedWithEMPFData,\n },\n {\n text: 'Employer Name mismatched with eMPF data',\n value: DeclineReason.EmployerNameMismatchedWithEMPFData,\n },\n {\n text: 'BR No. mismatched with eMPF data',\n value: DeclineReason.BRNoMismatchedWithEMPFData,\n },\n {\n text: 'Authorized person name mismatched with eMPF data',\n value: DeclineReason.AuthorizedPersonNameMismatchedWithEMPFData,\n },\n {\n text: 'Agent information mismatched with eMPF data',\n value: DeclineReason.AgentInformationMismatchedWithEMPFData,\n },\n {\n text: 'Contact info mismatched with eMPF data, an acknowledgement e-alert had been sent to the member.',\n value: DeclineReason.ContactInfoMismatchedWithEMPFData,\n },\n {\n text: 'Declined due to reject application in eMPF portal',\n value: DeclineReason.DeclinedDueToRejectApplicationInEMPFPortal,\n },\n {\n text: 'Pending to Send',\n value: DeclineReason.PendingToSend,\n },\n {\n text: 'Pending Split Agent(s)',\n value: DeclineReason.PendingSplitAgents,\n },\n {\n text: 'Pending Customer Submission',\n value: DeclineReason.PendingCustomerSubmission,\n },\n];\n","export enum EMPF_App_Status_Value {\n eMPF_Processing = 10,\n eMPF_Follow_up = 20,\n eMPF_Application_cancelled = 50,\n eMPF_Completed = 30,\n eMPF_Rejected = 40,\n Pending_eMPF_Return_Data = 0,\n Partially_Completed = 31,\n Not_Applicable = 99,\n}\n\nexport const EMPF_APP_STATUS = [\n {\n text: 'eMPF Processing',\n info: 'The record is currently under progress in eMPF',\n color: 'var(--cds-color-turquoise)',\n value: EMPF_App_Status_Value.eMPF_Processing,\n },\n {\n text: 'eMPF Follow-up',\n info: 'The record is currently under follow-up in eMPF',\n color: 'var(--cds-color-jh-blue)',\n value: EMPF_App_Status_Value.eMPF_Follow_up,\n },\n {\n text: 'eMPF Application cancelled',\n info: 'The record is canclled in eMPF',\n color: 'var(--cds-color-dark-2-coral)',\n value: EMPF_App_Status_Value.eMPF_Application_cancelled,\n },\n {\n text: 'eMPF Completed',\n info: 'The record and onboarding are completed in eMPF',\n color: 'var(--cds-color-dark-1-green)',\n value: EMPF_App_Status_Value.eMPF_Completed,\n },\n {\n text: 'eMPF Rejected',\n info: 'The record is being rejected in eMPF',\n color: 'var(--cds-color-light-4-dark-navy)',\n value: EMPF_App_Status_Value.eMPF_Rejected,\n },\n {\n text: 'Pending eMPF Return Data',\n info: 'The record is pending for eMPF data feed',\n color: 'var(--cds-color-gold)',\n value: EMPF_App_Status_Value.Pending_eMPF_Return_Data,\n },\n {\n text: 'Partially Completed',\n info: 'The record and onboarding are partially completed in eMPF',\n color: 'var(--cds-color-coral)',\n value: EMPF_App_Status_Value.Partially_Completed,\n },\n {\n text: 'Not Applicable',\n info: undefined,\n color: 'var(--cds-color-violet)',\n value: EMPF_App_Status_Value.Not_Applicable,\n },\n];\n","export enum MdStatusValue {\n Pending_MD_eIFF_Record = 0,\n Pending_eMPF_Reference_No = 1,\n Pending_Split_Agent = 10,\n Pending_Customer_Submission = 12,\n Completed = 30,\n Declined = 99,\n Declined_Agent_SEP_Staff_CA = 98,\n Expired = 40,\n Void = 97,\n}\n\nexport const IFF_STATUS = [\n {\n text: 'Pending MD_eIFF Record',\n info: undefined,\n color: 'var(--cds-color-light-1-violet)',\n value: MdStatusValue.Pending_MD_eIFF_Record,\n },\n {\n text: 'Pending Split Agent(s)',\n info: 'The IFF is pending for split agent acknowledgement',\n color: 'var(--cds-color-turquoise)',\n value: MdStatusValue.Pending_Split_Agent,\n },\n {\n text: 'Pending Customer Submission',\n info: 'The IFF is sent and pending for customer submission',\n color: 'var(--cds-color-jh-blue)',\n value: MdStatusValue.Pending_Customer_Submission,\n },\n {\n text: 'Completed',\n info: 'The IFF form is received from customer',\n color: 'var(--cds-color-dark-1-green)',\n value: MdStatusValue.Completed,\n },\n {\n text: 'Declined',\n info: undefined,\n color: 'var(--cds-color-dark-1-coral)',\n value: MdStatusValue.Declined,\n },\n {\n text: 'Declined (Agent SEP/ Staff CA)',\n info: undefined,\n color: 'var(--cds-color-coral)',\n value: MdStatusValue.Declined_Agent_SEP_Staff_CA,\n },\n {\n text: 'Expired',\n info: undefined,\n color: 'var(--cds-color-light-4-dark-navy)',\n value: MdStatusValue.Expired,\n },\n {\n text: 'Void',\n info: undefined,\n color: 'var(--cds-color-dark-navy)',\n value: MdStatusValue.Void,\n },\n];\n\nexport const eMPF_IFF_STATUS = [\n {\n text: 'Pending MD_eIFF Record',\n info: undefined,\n color: 'var(--cds-color-light-1-violet)',\n value: MdStatusValue.Pending_MD_eIFF_Record,\n },\n {\n text: 'Pending Split Agent(s)',\n info: 'The IFF is pending for split agent acknowledgement',\n color: 'var(--cds-color-turquoise)',\n value: MdStatusValue.Pending_Split_Agent,\n },\n {\n text: 'Pending Customer Submission',\n info: 'The IFF is sent and pending for customer submission',\n color: 'var(--cds-color-jh-blue)',\n value: MdStatusValue.Pending_Customer_Submission,\n },\n {\n text: 'Completed',\n info: 'The IFF form is received from customer',\n color: 'var(--cds-color-dark-1-green)',\n value: MdStatusValue.Completed,\n },\n {\n text: 'Declined',\n info: undefined,\n color: 'var(--cds-color-dark-1-coral)',\n value: MdStatusValue.Declined,\n },\n {\n text: 'Declined (Agent SEP/ Staff CA)',\n info: undefined,\n color: 'var(--cds-color-coral)',\n value: MdStatusValue.Declined_Agent_SEP_Staff_CA,\n },\n {\n text: 'Expired',\n info: undefined,\n color: 'var(--cds-color-light-4-dark-navy)',\n value: MdStatusValue.Expired,\n },\n {\n text: 'Void',\n info: undefined,\n color: 'var(--cds-color-dark-navy)',\n value: MdStatusValue.Void,\n },\n];\n\nexport const MD_IFF_STATUS = [\n {\n text: 'Pending Split Agent(s)',\n info: 'The IFF is pending for split agent acknowledgement',\n color: 'var(--cds-color-turquoise)',\n value: MdStatusValue.Pending_Split_Agent,\n },\n {\n text: 'Pending Customer Submission',\n info: 'The IFF is sent and pending for customer submission',\n color: 'var(--cds-color-jh-blue)',\n value: MdStatusValue.Pending_Customer_Submission,\n },\n {\n text: 'Completed',\n info: 'The IFF form is received from customer',\n color: 'var(--cds-color-dark-1-green)',\n value: MdStatusValue.Completed,\n },\n {\n text: 'Void',\n info: undefined,\n color: 'var(--cds-color-dark-navy)',\n value: MdStatusValue.Void,\n },\n];\n","import { Menu } from '../core/models/menu';\n\nexport const MENUS: Menu[] = [\n // { icon: 'general:home_1', label: 'Home', subMenu: [{ subLabel: 'Role Manage', subLink: '/system/role-list' }, { subLabel: 'Commission Scale Set up', subLink: '/commission/commission-scale-list' }, { subLabel: 'Scheme Master', subLink: '/home/scheme-list' }] },\n // { icon: 'form:id', label: 'Pofile enquiry', subMenu: [{ subLabel: 'Submenu 3' }, { subLabel: 'Submenu 4' }] },\n // { icon: 'finance:bonus', label: 'Bonus rebate' },\n {\n icon: 'contact:advisor_1',\n label: 'Agent maintenance',\n subMenu: [\n { subLabel: 'Agent Delegation', subLink: '/agent/employer-summary' },\n {\n subLabel: 'Agent Profile List',\n subLink: '/report-center/agent-profile-list',\n },\n ],\n },\n {\n icon: 'contact:advisor_1',\n label: 'Announcement',\n id: 'announcement',\n subMenu: [\n {\n subLabel: 'Announcement Center',\n subLink: '/annuncement/announcement-center',\n },\n ],\n },\n\n {\n icon: 'contact:advisor_1',\n label: 'Chatbot',\n id: 'chatbot',\n subMenu: [\n { subLabel: 'Chatbot CSO Portal', subLink: '/chatbot/cso' },\n { subLabel: 'Chatbot Admin', subLink: '/chatbot-admin' },\n { subLabel: 'Chatbot Supervisor', subLink: '/chatbot-supervisor' },\n ],\n },\n\n {\n icon: 'finance:transfer_of_existing_assets',\n label: 'Commission',\n id: 'commission',\n subMenu: [\n { subLabel: 'APE & VSF, AUM & Trailer Fee Journal', subLink: '/commission/ape-journal' },\n { subLabel: 'APE Manual Adjustment & NBV Ratio', subLink: '/commission/ape-manual' },\n { subLabel: 'Batch Upload For Commission Adjustment', subLink: '/commission/batch-upload-adjustment' },\n { subLabel: 'Commission Adjustment', subLink: '/commission/adjustment' },\n {\n subLabel: 'Commission Adjustment Amount',\n subLink: '/commission/adjustment-amount',\n },\n {\n subLabel: 'Commission Default Scale',\n subLink: '/commission/default-scale-list',\n },\n { subLabel: 'Commission Error Log', subLink: '/commission/error-log' },\n {\n subLabel: 'Commission Info Maintenance',\n subLink: '/commission/pool-list',\n },\n { subLabel: 'Commission Journal', subLink: '/commission/journal' },\n {\n subLabel: 'Commission Scale Set up',\n subLink: '/commission/scale-list',\n },\n { subLabel: 'Hold on Compensation Report', subLink: '/commission/hold-on-report' },\n {\n subLabel: 'Scheme Master Maintenance',\n subLink: '/commission/scheme-list',\n },\n { subLabel: 'Withdrawal claw back', subLink: '/commission/withdrawal-claw-back' },\n ],\n },\n {\n icon: 'investment:accumulate',\n label: 'Mobile Subscription',\n subMenu: [\n {\n subLabel: 'MobileSubscriptionList',\n subLink: '/mobile-subscription/list',\n },\n ],\n },\n {\n icon: 'finance:payment',\n label: 'Payment journey',\n subMenu: [\n {\n subLabel: 'Payment detail',\n subLink: '/payment/details',\n },\n {\n subLabel: 'Financial journal',\n subLink: '/payment/financial',\n },\n ],\n },\n\n {\n id: 'profileList',\n icon: 'finance:transfer_of_existing_assets',\n label: 'ProfileList',\n subMenu: [\n {\n subLabel: 'EEProfileList',\n subLink: '/employee/list',\n },\n {\n subLabel: 'ERProfileList',\n subLink: '/employer/list',\n },\n {\n subLabel: 'Activity Record List',\n subLink: '/employer/activity-record',\n },\n {\n subLabel: 'SQ Log Master List',\n subLink: '/employer/sq-log-master-list',\n },\n {\n subLabel: 'Agent SEP Enrolment List',\n subLink: '/employer/agent-sep',\n },\n {\n subLabel: 'Enquiry and upload page on interest rate/ dividend rate/ unit price',\n subLink: '/employer/fund-benifit',\n },\n {\n subLabel: 'Campaign Master List',\n subLink: '/campaign/list',\n },\n ],\n },\n {\n icon: 'contact:advisor_1',\n label: 'Report Center',\n id: 'reportCenter',\n subMenu: [\n {\n subLabel: 'Report Center',\n subLink: '/report-center',\n },\n {\n subLabel: 'Fund and Contribution related report Extraction',\n subLink: '/report-center/report-extraction',\n },\n {\n subLabel: 'Report - Commission',\n subLink: '/report-center/report-commission',\n },\n {\n subLabel: 'Report - MLFUB',\n subLink: '/report-center/report-mlfub',\n },\n {\n subLabel: 'Report - SHKP Payment Issuance',\n subLink: '/report-center/payment-report-shkp',\n },\n ],\n },\n {\n icon: 'contact:advisor_1',\n label: 'Sales Journey',\n id: 'salesJourney',\n subMenu: [\n {\n subLabel: 'product type summary',\n subLink: '/salesjourney/product-type-summary/select-product-type',\n },\n {\n subLabel: 'sales support summary',\n subLink: '/salesjourney/sales-support-summary',\n },\n {\n subLabel: 'IFF Paper Form',\n subLink: '/salesjourney/iff-paper-form/select-product-type',\n },\n {\n subLabel: 'Super Admin',\n subLink: '/salesjourney/super-admin',\n },\n {\n subLabel: 'All eIFF Summary',\n subLink: '/salesjourney/app-paper-summary',\n },\n {\n subLabel: 'WSM Case Summary Page',\n subLink: '/salesjourney/wsm-case-summary',\n },\n {\n subLabel: 'IFF Declined Dashboard',\n subLink: '/salesjourney/iff-declined-dashboard',\n },\n {\n subLabel: 'MD_IFF summary',\n subLink: '/salesjourney/md-iff-summary/select-product-type',\n },\n {\n subLabel: 'MD_IFF summary',\n subLink: '/salesjourney/support-md-iff-summary',\n },\n ],\n },\n {\n icon: 'investment:roll_over_plan',\n label: 'SHKP',\n subMenu: [\n {\n subLabel: 'Agent Performance Report for staff - Termination Case',\n subLink: '/agent-performance/list',\n },\n {\n subLabel: 'Agent Performance Report for staff - Enrolment Case',\n subLink: '/agent-performance-enrolment/list',\n },\n {\n subLabel: 'Agent Performance Report for Head - Termination Case',\n subLink: '/agent-performance/head',\n },\n {\n subLabel: 'Agent Performance Report for Head - Enrolment Case',\n subLink: '/agent-performance-enrolment/head',\n },\n {\n subLabel: 'Agent Follow Up List – Termination Case',\n subLink: '/termination/list',\n },\n {\n subLabel: 'Agent Follow Up List – Enrolment Case',\n subLink: '/enrolment/list',\n },\n {\n subLabel: 'SHKP Company and Pre-assigned Agent List',\n subLink: '/agentList/list',\n },\n {\n subLabel: 'SHKP Benefit Payment',\n subLink: '/shkp/benefit-payment/list',\n },\n {\n subLabel: 'SCB Statement Upload',\n subLink: '/shkp/scb-statement-upload',\n },\n {\n subLabel: 'PTW Benefit Payment',\n subLink: '/ptw/benefit-payment/list',\n },\n {\n subLabel: 'SHKP Auto Rollover Member Record',\n subLink: '/shk/auto-rollover/list',\n },\n {\n subLabel: 'SHKP Auto Rollover Payment Record',\n subLink: '/shk/auto-rollover-payment/list',\n },\n {\n subLabel: 'SHKP Agent Case Re-assignment',\n subLink: '/shk/agent-reassignment',\n },\n ],\n },\n {\n icon: 'contact:advisor_1',\n label: 'Upload Center',\n id: 'uploadCenter',\n subMenu: [\n {\n subLabel: 'AML Upload Center',\n subLink: '/high-risk-file-upload-center',\n },\n {\n subLabel: 'Upload Center',\n subLink: '/upload-center',\n },\n {\n subLabel: 'Upload MPF Comm Pool',\n subLink: '/upload-center/customer-data',\n },\n ],\n },\n\n {\n icon: 'action:gear',\n label: 'Settings',\n subMenu: [\n { subLabel: 'Role Manage', subLink: '/system/role-list' },\n { subLabel: 'Report Permission', subLink: '/system/reporting-role-list' },\n { subLabel: 'Calendar', subLink: '/system/calendar' },\n {\n subLabel: 'Audit History',\n subLink: '/system/audit-history',\n },\n ],\n },\n];\n","import { CdsOption } from '@cds/ng-core/configuration';\n\nexport interface MonthConfig extends CdsOption {\n month: string;\n days: number;\n}\n\nexport const MONTH_OPTS: MonthConfig[] = [\n { label: 'common.month.january', value: 0, month: '01', days: 31 },\n { label: 'common.month.february', value: 1, month: '02', days: 28 },\n { label: 'common.month.march', value: 2, month: '03', days: 31 },\n { label: 'common.month.april', value: 3, month: '04', days: 30 },\n { label: 'common.month.may', value: 4, month: '05', days: 31 },\n { label: 'common.month.june', value: 5, month: '06', days: 30 },\n { label: 'common.month.july', value: 6, month: '07', days: 31 },\n { label: 'common.month.august', value: 7, month: '08', days: 31 },\n { label: 'common.month.september', value: 8, month: '09', days: 30 },\n { label: 'common.month.october', value: 9, month: '10', days: 31 },\n { label: 'common.month.november', value: 10, month: '11', days: 30 },\n { label: 'common.month.december', value: 11, month: '12', days: 31 },\n];\n","import { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { RolePermissionGroup, RolePermissionGroupList } from '../core/models/enum/role.enum';\n\nexport const enum PermissionCheckedStatus {\n TOTAL,\n PARTIALLY,\n NONE,\n}\nexport interface PermissionDto {\n parentId?: RolePermissionGroup;\n groupItem?: RolePermissionGroup;\n permissionItem?: PermissionItem;\n expand?: boolean;\n}\nconst permissionList: PermissionDto[] = [];\n\nfor (const [key, value] of RolePermissionGroupList) {\n permissionList.push({\n groupItem: key,\n expand: true,\n });\n value.forEach(p => {\n permissionList.push({\n parentId: key,\n permissionItem: p,\n });\n });\n}\nexport const PermissionList: PermissionDto[] = permissionList;\nexport class RoleAccessTableData extends DataSource {\n constructor(private tableData: PermissionDto[]) {\n super();\n }\n data = new BehaviorSubject(this.tableData);\n connect(): Observable {\n return this.data;\n }\n disconnect() {}\n}\n","export enum TransferStatusValue {\n TRANSFER_PROCESSING = 0,\n TRANSFER_SUBMITTED = 0,\n TRANSFER_ACCEPTED = 0,\n TRANSFER_RECEIVED = 0,\n TRANSFER_PENDING = 0,\n TRANSFER_PEND_PAYMT_SETTLE = 0,\n TRANSFER_NIGHT_BATCH_PEND = 0,\n TRANSFER_ORDER_IN_PROGRESS = 0,\n TRANSFER_FOLLOW_UP = 10,\n TRANSFER_COMPLETED = 20,\n TRANSFER_CANCELLED = 30,\n TRANSFER_REJECTED = 40,\n}\n\nexport const TRANSFER_STATUS = [\n {\n text: 'Transfer Processing',\n value: TransferStatusValue.TRANSFER_PROCESSING,\n color: '#f49600',\n },\n {\n text: 'Transfer Submitted',\n value: TransferStatusValue.TRANSFER_SUBMITTED,\n color: '#0000c1',\n },\n {\n text: 'Transfer Accepted',\n value: TransferStatusValue.TRANSFER_ACCEPTED,\n color: '#0000c1',\n },\n {\n text: 'Transfer Received',\n value: TransferStatusValue.TRANSFER_RECEIVED,\n color: '#0000c1',\n },\n {\n text: 'Transfer Pending',\n value: TransferStatusValue.TRANSFER_PENDING,\n color: '#0000c1',\n },\n {\n text: 'Transfer Pend Paymt Settle',\n value: TransferStatusValue.TRANSFER_PEND_PAYMT_SETTLE,\n color: '#0000c1',\n },\n {\n text: 'Transfer Night Batch Pend',\n value: TransferStatusValue.TRANSFER_NIGHT_BATCH_PEND,\n color: '#0000c1',\n },\n {\n text: 'Transfer Order In Progress',\n value: TransferStatusValue.TRANSFER_ORDER_IN_PROGRESS,\n color: '#0000c1',\n },\n {\n text: 'Transfer Follow up',\n value: TransferStatusValue.TRANSFER_FOLLOW_UP,\n color: '#0000c1',\n },\n {\n text: 'Transfer Completed',\n value: TransferStatusValue.TRANSFER_COMPLETED,\n color: '#00a758',\n },\n {\n text: 'Transfer Cancelled',\n value: TransferStatusValue.TRANSFER_CANCELLED,\n color: '#a00e18',\n },\n {\n text: 'Transfer Rejected',\n value: TransferStatusValue.TRANSFER_REJECTED,\n color: '#8e90a2',\n },\n];\n","type JsonKeys = T extends object ? keyof T : never;\n\nexport const WIDGETS_VIEW_ALL_GOAL = {\n WidgetsQuickLinksComponent: undefined,\n WidgetsProductionCreditComponent: undefined,\n WidgetsCampaignResultComponent: undefined,\n WidgetsCampaignOverviewComponent: undefined,\n WidgetsProductionCreditByDistrictComponent: undefined,\n WidgetsPendingIffComponent: '/salesjourney/md-iff-summary/select-product-type',\n};\n\nexport type WIDGETS_COMPONENT_NAME = JsonKeys;\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpResponse,\n HttpDownloadProgressEvent,\n HttpErrorResponse,\n HttpHeaders,\n} from '@angular/common/http';\nimport { Observable, throwError, EMPTY, from } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { PermissionService } from '../services/permission.service';\n\n@Injectable()\nexport class AuthHttpInterceptor implements HttpInterceptor {\n userInfo: any;\n\n constructor(private router: Router, public permission: PermissionService) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return from(this.permission.getUserInfo()).pipe(\n switchMap(userInfo => {\n if (req.url && req.url.includes('/chatbot-service')) {\n this.userInfo = userInfo;\n var d = new Date();\n var timeZoneName = d.toLocaleString('en', { timeZoneName: 'short' }).split(' ').pop();\n\n let authReq = req.clone({\n headers: req.headers\n .set('Content-Type', 'application/json')\n .set('Time-Zone', d.getTimezoneOffset().toString())\n .set('app-prefix', 'backend')\n .set('language', 'en')\n .set('DisplayName', encodeURIComponent(userInfo?.displayName))\n .set('username', encodeURIComponent(userInfo?.displayName))\n .set('Email', userInfo?.email || '')\n .set('Id', userInfo?.id || '')\n .set('CurrentLastUpdate', userInfo?.currentLastUpdate?.toString() || '')\n .set('Permissions', JSON.stringify(userInfo?.permissions || '')),\n });\n\n let token = 'secret';\n if (token) {\n authReq = authReq.clone({\n headers: authReq.headers.set('Authorization', userInfo?.token || ''),\n });\n }\n\n return next.handle(authReq);\n } else {\n return next.handle(req);\n }\n })\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CommissionBatchStatusService } from '../services/commission-batch-status.service';\n\n@Injectable()\nexport class CommissionBatchStatusInterceptor implements HttpInterceptor {\n constructor(private commissionBatchStatusService: CommissionBatchStatusService) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (\n request.url &&\n request.url.indexOf('/login') == -1 &&\n request.url.indexOf('/auth/ad/logout') == -1 &&\n request.url.indexOf('/auth/mcf/token') == -1 &&\n request.url.indexOf('/refresh-token') == -1 &&\n request.url.indexOf('/auth/token') == -1 &&\n request.url.indexOf(this.commissionBatchStatusService.apiPath) == -1 &&\n request.url.indexOf('/ext/eb-ssms') !== -1\n ) {\n this.commissionBatchStatusService.refreshCommBatchStatus();\n }\n return next.handle(request);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class DataPermissionInterceptor implements HttpInterceptor {\n constructor(private router: Router) {}\n\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n map(event => {\n if (event instanceof HttpResponse) {\n if (event && event.body && event.body.message && event.body.result === 4) {\n if (event.body.message === 'Can not access this employer data' || event.body.message === 'Can not access this Member Account data') {\n this.router.navigate(['/error/permission-error']);\n }\n }\n return event;\n }\n return event; //Fixme: It should be return nothing\n })\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable()\nexport class DefaultInterceptor implements HttpInterceptor {\n constructor(private authenticationService: AuthenticationService) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (\n req.url &&\n req.url.indexOf('/login') == -1 &&\n req.url.indexOf('/auth/mcf/token') == -1 &&\n req.url.indexOf('/refresh-token') == -1 &&\n req.url.indexOf('/auth/token') == -1 &&\n req.url.indexOf(`${environment.apiPrefix}`) !== -1\n ) {\n this.authenticationService.workerRefresh();\n }\n return next.handle(req);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { catchError, map, Observable, throwError } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { environment } from 'src/environments/environment';\nimport { HttpStatus } from '../models/response/http-status';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n constructor(private router: Router, private authenticationService: AuthenticationService, private toastAlert: ToastAlertService) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request).pipe(\n map(evt => {\n if (evt instanceof HttpResponse) {\n return evt;\n }\n return evt; //Fixme: It should be return nothing\n }),\n catchError(err => {\n if (err.status === HttpStatus.SESSION_TIMEOUT) {\n if (\n request.url &&\n request.url.indexOf('/auth/token') === -1 &&\n request.url.indexOf('/auth/otp/token') === -1 &&\n request.url.indexOf('/authority/otp/request') === -1 &&\n request.url.indexOf('/authority/otp/verify') === -1\n ) {\n this.authenticationService.sessionTimeOut();\n }\n } else if (err.status === HttpStatus.UNAUTHORIZED) {\n this.authenticationService.setRouterUrl(this.router.url);\n this.router.navigate(['/error/permission-error']);\n } else if (\n err.status === HttpStatus.INTERNAL_SERVICE_ERROR ||\n err.status === HttpStatus.BAD_GATEWAY ||\n err.status === HttpStatus.BAD_REQUEST ||\n err.status === HttpStatus.SERVICE_UNAVAILABLE ||\n err.status === HttpStatus.BAD_GATEWAY_TIMEOUT\n ) {\n const msg: string = err.error?.message || err.message;\n if (msg.includes('for assets/') && msg.includes('.svg')) {\n return throwError(() => new Error(error));\n }\n this.router.navigate(['/error/response-error'], {\n queryParams: {\n status: err.status,\n message: err.error?.message || err.message,\n },\n });\n } else if (err.status === HttpStatus.SYSTEM_EDITABLE_LOCKED) {\n let errorMsg = err.error?.message || err.message;\n if (request.url.indexOf(environment.commissionServiceExt)) {\n errorMsg = 'Restricted editing before the Night Batch Process is completed.';\n }\n this.toastAlert.show('error', 'common.error', errorMsg, 5000);\n } else if (err.status !== HttpStatus.SUCCESS) {\n if (environment.profile !== 'dev') {\n const msg: string = err.error?.message || err.message;\n if (msg.includes('for assets/') && msg.includes('.svg')) {\n return throwError(() => new Error(error));\n }\n this.router.navigate(['/error/response-error'], {\n queryParams: {\n status: err.status,\n message: err.error?.message || err.message,\n },\n });\n } else {\n this.toastAlert.show('error', 'common.error', err.error?.message || err.message, 5000);\n }\n }\n const error = err.message || err.statusText;\n return throwError(() => new Error(error));\n })\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable, from, lastValueFrom } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { getSessionByKey } from '../../utils/indexdb';\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n constructor() {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return from(this.handle(request, next));\n }\n\n async handle(req: HttpRequest, next: HttpHandler) {\n if (\n req.url &&\n req.url.indexOf('/login') == -1 &&\n req.url.indexOf('/auth/mcf/token') == -1 &&\n req.url.indexOf('/refresh-token') == -1 &&\n req.url.indexOf('/auth/token') == -1 &&\n (req.url.indexOf(`${environment.apiPrefix}`) !== -1 || req.url.indexOf(`localhost`) !== -1)\n ) {\n // if your getAuthToken() function declared as \"async getAuthToken() {}\"await this.auth.getAuthToken()\n return getSessionByKey().then(session => {\n if (session && session.token) {\n //fix me Authorization header name\n const authReq = req.clone({\n setHeaders: {\n Authorization: session.token,\n // 'access-token':\n // 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJvcmdhbml6ZVR5cGUiOiJBR0VOQ1kiLCJpZGVudGl0eVR5cGUiOiJTWVNURU0iLCJvcmdhbml6ZSI6Im9yZ2FuaXplaWQiLCJpZGVudGl0eSI6IjM3ZTJhZmM3LTRlZGUtNDM0ZS05ZjkzLWQwZGFiNjZmMWE2YiIsIm5hbWUiOiJNYW51bGlmZSIsInBlcm1pdCI6eyJTWVNfSURFTlRJVFlfQUdFTlRfTUFOQUdFIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX1NVQlNJRElBUlkiOiJFIiwiU1lTX0lERU5USVRZX1NUQUZGX01BTkFHRSI6IkUiLCJDVVNUT01FUl9NRU1CRVIiOiJFIiwiQ09NTUlTU0lPTl9TQ0hFTUVfTUFTVEVSX1JFQ09SRCI6IkUiLCJDT01NX0lORk9fTUFJTl9QQVJUSUVTX0NPTlRfQURKIjoiRSIsIlNZU19DQUxFTkRBUiI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9TUEVDSUFMX09GRkVSIjoiRSIsIlNZU19DQUxFTkRBUl9SRVZJRVdFUiI6IkUiLCJDT01NSVNTSU9OX0pPVVJOQUwiOiJFIiwiQ1VTVE9NRVJfTU9CSUxFX1NVQlNDUklQVElPTiI6IkUiLCJDT01NSVNTSU9OX1NDQUxFX01BTkFHRU1FTlQiOiJFIiwiU0hLX0FHRU5UX0FTU0lHTk1FTlRfU1RBRkYiOiJFIiwiQ09NTV9JTkZPX01BSU5fQ09NTV9TVU1NQVJZIjoiRSIsIkNVU1RPTUVSX1NFUlZJQ0lOR19BR0VOVCI6IkUiLCJDT01NX0lORk9fSU5ESVZJRFVBTF9UUkYiOiJFIiwiU1lTX0NPTU1JU1NJT05fREVGQVVMVF9TQ0FMRSI6IkUiLCJDT01NX0lORk9fQUdFTlRfQ0hBTkdFIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX1NRIjoiRSIsIlNZU19ST0xFX01BTkFHRSI6IkUiLCJDT01NX0lORk9fTUFJTl9QQVJUSUVTX09USEVSUyI6IkUiLCJDT01NX0lORk9fQUdFTlRfQ09NUCI6IkUiLCJDT01NX0lORk9fU0NBTEVfUkVDT1JEIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSIjoiRSJ9LCJzdGF0dXMiOiJBQ1RJVkUiLCJleHAiOjE3NjU1MzQ1NzF9.S3Ur8KC4leGcxbzUhkOecXwBuL6DCiVFbJv_EhTALdHPzoQuFThJ6fx2MEFnwkCdfIDyafHUln3OaSYY-bD9yw'\n },\n });\n return lastValueFrom(next.handle(authReq));\n }\n return lastValueFrom(next.handle(req));\n });\n }\n return lastValueFrom(next.handle(req));\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport enum AccountType {\n MPF_ER = 'MPF_ER',\n MPF_EER = 'MPF_EER',\n MPF_EEC = 'MPF_EEC',\n MPF_SEP = 'MPF_SEP',\n MPF_SEP_AGENT = 'MPF_SEP_AGENT',\n MPF_TVC = 'MPF_TVC',\n MPF_PAP = 'MPF_PAP',\n MPF_FRC = 'MPF_FRC',\n ORSO_ER = 'ORSO_ER',\n ORSO_EE = 'ORSO_EE',\n // MACAU_PPS = 'MACAU_PPS',\n MACAU_PPS_ER = 'MACAU_PPS_ER',\n MACAU_PPS_EE = 'MACAU_PPS_EE',\n CPF_EE = 'CPF_EE',\n // MACAU_CPF = 'MACAU_CPF',\n MACAU_CPF_ER = 'MACAU_CPF_ER',\n MACAU_CPF_EE = 'MACAU_CPF_EE',\n MACAU_PAP = 'MACAU_CPF_PAP',\n MACAU_IVC = 'MACAU_CPF_IVC',\n}\n\nexport const AccountTypes: any[] = [\n { label: 'MPF-ER', value: AccountType.MPF_ER },\n { label: 'MPF-EE(R)', value: AccountType.MPF_EER },\n { label: 'MPF-EE(C)', value: AccountType.MPF_EEC },\n { label: 'MPF-SEP', value: AccountType.MPF_SEP },\n { label: 'MPF-SEP(AGENT)', value: AccountType.MPF_SEP_AGENT },\n { label: 'MPF-TVC', value: AccountType.MPF_TVC },\n { label: 'MPF-PAP', value: AccountType.MPF_PAP },\n { label: 'MPF-FRC', value: AccountType.MPF_FRC },\n { label: 'ORSO-ER', value: AccountType.ORSO_ER },\n { label: 'ORSO-EE', value: AccountType.ORSO_EE },\n { label: 'MACAU-ER(PPS)', value: AccountType.MACAU_PPS_ER },\n { label: 'MACAU-EE(PPS)', value: AccountType.MACAU_PPS_EE },\n { label: 'MACAU-ER(CPF)', value: AccountType.MACAU_CPF_ER },\n { label: 'MACAU-EE(CPF)', value: AccountType.MACAU_CPF_EE },\n { label: 'MACAU-PAP', value: AccountType.MACAU_PAP },\n { label: 'Macau-EE', value: AccountType.CPF_EE },\n { label: 'MACAU-IVC', value: AccountType.MACAU_IVC },\n];\n\nexport const AccountTypesCommissionpool = [\n { label: 'MPF-ER', value: AccountType.MPF_ER },\n { label: 'ORSO-ER', value: AccountType.ORSO_ER },\n { label: 'MACAU-ER(PPS)', value: AccountType.MACAU_PPS_ER },\n { label: 'MPF-SEP', value: AccountType.MPF_SEP },\n { label: 'MPF-SEP(AGENT)', value: AccountType.MPF_SEP_AGENT },\n];\n\nexport const AccountTypesNormalCompensation = [\n { label: 'MPF-ER', value: AccountType.MPF_ER },\n { label: 'MPF-SEP', value: AccountType.MPF_SEP },\n { label: 'MPF-SEP (AGENT)', value: AccountType.MPF_SEP_AGENT },\n { label: 'MPF-FRC', value: AccountType.MPF_FRC },\n { label: 'MPF-TVC', value: AccountType.MPF_TVC },\n { label: 'ORSO-ER', value: AccountType.ORSO_ER },\n { label: 'MACAU-ER(PPS)', value: AccountType.MACAU_PPS_ER },\n { label: 'MACAU-ER(CPF)', value: AccountType.MACAU_CPF_ER },\n { label: 'MACAU-IVC', value: AccountType.MACAU_IVC },\n];\n\nexport const AccountTypesIndividual = [\n { label: 'MPF-ER', value: AccountType.MPF_ER },\n { label: 'MPF-SEP', value: AccountType.MPF_SEP },\n { label: 'MPF-SEP (AGENT)', value: AccountType.MPF_SEP_AGENT },\n { label: 'MPF-TVC', value: AccountType.MPF_TVC },\n { label: 'MPF-PAP', value: AccountType.MPF_PAP },\n { label: 'MACAU-ER(CPF)', value: AccountType.MACAU_CPF_ER },\n { label: 'MACAU-PAP', value: AccountType.MACAU_PAP },\n { label: 'MACAU-IVC', value: AccountType.MACAU_IVC },\n];\n\nexport const AccountTypesJournal: any[] = [\n { label: 'MPF-ER', value: AccountType.MPF_ER },\n { label: 'MPF-SEP', value: AccountType.MPF_SEP },\n { label: 'MPF-SEP(AGENT)', value: AccountType.MPF_SEP_AGENT },\n { label: 'MPF-FRC', value: AccountType.MPF_FRC },\n { label: 'MPF-TVC', value: AccountType.MPF_TVC },\n { label: 'MPF-PAP', value: AccountType.MPF_PAP },\n { label: 'ORSO-ER', value: AccountType.ORSO_ER },\n { label: 'MACAU-ER(PPS)', value: AccountType.MACAU_PPS_ER },\n { label: 'MACAU-ER(CPF)', value: AccountType.MACAU_CPF_ER },\n { label: 'MACAU-PAP', value: AccountType.MACAU_PAP },\n { label: 'MACAU-IVC', value: AccountType.MACAU_IVC },\n];\n\nexport const AccountTypesHoldOnReport: any[] = [\n { label: 'All', value: 'all' },\n { label: 'MPF-ER', value: AccountType.MPF_ER },\n { label: 'MPF-SEP', value: AccountType.MPF_SEP },\n { label: 'MPF-SEP(AGENT)', value: AccountType.MPF_SEP_AGENT },\n { label: 'MPF-TVC', value: AccountType.MPF_TVC },\n { label: 'MPF-PAP', value: AccountType.MPF_PAP },\n { label: 'MPF-FRC', value: AccountType.MPF_FRC },\n { label: 'ORSO-ER', value: AccountType.ORSO_ER },\n { label: 'MACAU-ER(PPS)', value: AccountType.MACAU_PPS_ER },\n { label: 'MACAU-ER(CPF)', value: AccountType.MACAU_CPF_ER },\n { label: 'MACAU-PAP', value: AccountType.MACAU_PAP },\n { label: 'MACAU-IVC', value: AccountType.MACAU_IVC },\n];\n\nexport const MPFAccountTypes = [\n {\n label: 'MPF-ER',\n value: AccountType.MPF_ER,\n },\n {\n label: 'MPF-SEP',\n value: AccountType.MPF_SEP,\n },\n {\n label: 'MPF-SEP AGENT',\n value: AccountType.MPF_SEP_AGENT,\n },\n {\n label: 'MPF-TVC',\n value: AccountType.MPF_TVC,\n },\n {\n label: 'MPF-PAP',\n value: AccountType.MPF_PAP,\n },\n {\n label: 'MPF-FRC',\n value: AccountType.MPF_FRC,\n },\n];\n\nexport const MacauAccountTypes = [\n {\n label: 'ORSO-ER',\n value: AccountType.ORSO_ER,\n },\n {\n label: 'MACAU-ER(PPS)',\n value: AccountType.MACAU_PPS_ER,\n },\n {\n label: 'MACAU-ER(CPF)',\n value: AccountType.MACAU_CPF_ER,\n },\n {\n label: 'MACAU-PAP',\n value: AccountType.MACAU_PAP,\n },\n {\n label: 'MACAU-IVC',\n value: AccountType.MACAU_IVC,\n },\n];\n","export enum AccumulationType {\n PLAN_HIGH = 'PLAN_HIGH',\n RELEASED_CYTD = 'RELEASED_CYTD',\n ANNUAL_PREM_CYTD = 'ANNUAL_PREM_CYTD',\n PREMIUM_CYTD = 'PREMIUM_CYTD',\n PREMIUM_PTD = 'PREMIUM_PTD',\n GROSS_PREM_CYTD = 'GROSS_PREM_CYTD',\n CYTD = 'CYTD',\n PTD = 'PTD',\n CAL_YTD = 'CAL_YTD',\n}\n","export enum AclUserType {\n INTERNAL_STAFF = 'INTERNAL_STAFF',\n AGENT = 'AGENT',\n}\n","export enum ActionEnum {\n CREATE = 'CREATE',\n UPDATE = 'UPDATE',\n DELETE = 'DELETE',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport enum AgentChannel {\n DBS = 'DBS',\n SCB = 'SCB',\n BROKER = 'BROKER',\n IA_BROKER = 'IA_BROKER',\n CORPORATE = 'CORPORATE',\n AGENCY = 'AGENCY',\n INTERNAL_TRANSFER = 'INTERNAL_TRANSFER',\n NULL = 'NULL',\n}\n\nexport const CommissionAgentChannelMap = new Map([\n [AgentChannel.DBS, 'DBS'],\n [AgentChannel.SCB, 'SCB'],\n [AgentChannel.BROKER, 'BROKER'],\n [AgentChannel.IA_BROKER, 'BROKER'],\n [AgentChannel.CORPORATE, 'CORPORATE'],\n [AgentChannel.AGENCY, 'AGENCY'],\n [AgentChannel.INTERNAL_TRANSFER, 'INTERNAL_TRANSFER'],\n [AgentChannel.NULL, 'NULL'],\n]);\n\nexport const ApeJournalChannels: any[] = [\n { label: 'AGENCY', value: AgentChannel.AGENCY },\n { label: 'IA BROKER', value: AgentChannel.IA_BROKER },\n { label: 'BROKER', value: AgentChannel.BROKER },\n { label: 'SCB', value: AgentChannel.SCB },\n { label: 'DBS', value: AgentChannel.DBS },\n { label: 'CORPORATE', value: AgentChannel.CORPORATE },\n];\n","export enum AnnuncementStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n}\n","export enum ApeType {\n MPF_ER_AC = 'MPF_ER_AC',\n MPF_ER_TA = 'MPF_ER_TA',\n MPF_ER_IT_MPF_PAP = 'MPF_ER_IT_MPF_PAP',\n MPF_TVC = 'MPF_TVC',\n MPF_SEP = 'MPF_SEP',\n MPF_FRC = 'MPF_FRC',\n OR_MA_PPS_AC = 'OR_MA_PPS_AC',\n OR_MA_PPS_TA = 'OR_MA_PPS_TA',\n MA_CPF_AC = 'MA_CPF_AC',\n MA_CPF_TA = 'MA_CPF_TA',\n MA_CPF_IT = 'MA_CPF_IT',\n MA_PAP = 'MA_PAP',\n MA_IVC = 'MA_IVC',\n}\n\nexport const ApeTypeLabel = new Map([\n [ApeType.MPF_ER_AC, 'MPF-ER AC'],\n [ApeType.MPF_ER_TA, 'MPF-ER TA'],\n [ApeType.MPF_ER_IT_MPF_PAP, 'MPF_ER_IT & MPF_PAP '],\n [ApeType.MPF_TVC, 'MPF-TVC'],\n [ApeType.MPF_SEP, 'MPF-SEP'],\n [ApeType.MPF_FRC, 'MPF-FRC'],\n [ApeType.OR_MA_PPS_AC, 'OR MA(PPS) AC'],\n [ApeType.OR_MA_PPS_TA, 'OR MA(PPS) TA'],\n [ApeType.MA_CPF_AC, 'MA(CPF) AC'],\n [ApeType.MA_CPF_TA, 'MA(CPF) TA'],\n [ApeType.MA_CPF_IT, 'MA(CPF) IT'],\n [ApeType.MA_PAP, 'MA-PAP'],\n [ApeType.MA_IVC, 'MA-IVC'],\n]);\n","export enum ClawBackFlag {\n C = 'C',\n P = 'P',\n}\n\nexport const ClawBackFlagMap = new Map([\n [ClawBackFlag.C, '[COMPLETED]'],\n [ClawBackFlag.P, '[IN PROGRESS]'],\n]);\n","export enum CommissionCode {\n TRANSFER_COMMISSION = 112,\n FIRST_YEAR_COMMISSION = 115,\n SERVICE_FEE = 133,\n MANUAL_ADJUSTMENT_OR_CLAWBACK = 140,\n NEW_BUSINESS_PC = 141,\n RENEWAL_PC = 142,\n CLAW_BACK_CORE_PC = 143,\n CASE_COUNT = 148,\n TRANSFER_PC = 149,\n APE_VSF = 123,\n TRAILER_FEE = 136,\n}\n\nexport enum CommissionPCCode {\n MANUAL_ADJUSTMENT_OR_CLAWBACK = 140,\n NEW_BUSINESS_PC = 141,\n RENEWAL_PC = 142,\n CLAW_BACK_CORE_PC = 143,\n TRANSFER_PC = 149,\n}\n","export enum CommissionPoolStatus {\n PREVIOUS = 'PREVIOUS',\n CURRENT = 'CURRENT',\n FUTURE = 'FUTURE',\n DELETED = 'DELETED',\n}\n","export enum CommissionRate {\n FULL_COMM = 'FULL_COMM',\n PARTIAL_COMM1 = 'PARTIAL_COMM1',\n PARTIAL_COMM2 = 'PARTIAL_COMM2',\n PARTIAL_COMM3 = 'PARTIAL_COMM3',\n NO_COMM = 'NO_COMM',\n WSM_PARTIAL_COMM1 = 'WSM_PARTIAL_COMM1',\n WSM_PARTIAL_COMM2 = 'WSM_PARTIAL_COMM2',\n WSM_PARTIAL_COMM3 = 'WSM_PARTIAL_COMM3',\n WSM_PARTIAL_COMM4 = 'WSM_PARTIAL_COMM4',\n SHKP_PARTIAL_COMM1 = 'SHKP_PARTIAL_COMM1',\n SHKP_PARTIAL_COMM2 = 'SHKP_PARTIAL_COMM2',\n SHKP_PARTIAL_COMM3 = 'SHKP_PARTIAL_COMM3',\n}\n","export enum ScaleType {\n FS_PC = 'FS_PC',\n TRF_SP_PC = 'TRF_SP_PC',\n FY = 'FY',\n FS_SF = 'FS_SF',\n PS = 'PS',\n PS_SF = 'PS_SF',\n PS_PC = 'PS_PC',\n TRF_SP = 'TRF_SP',\n RY_PC = 'RY_PC',\n IND_TRF_SP_PC = 'IND_TRF_SP_PC',\n IND_TRF_SP = 'IND_TRF_SP',\n IND_FS_PC = 'IND_FS_PC',\n}\n\nexport enum ScalePattern {\n SLIDING = 'SLIDING',\n FLAT = 'FLAT',\n}\n\nexport enum CalculationType {\n FY = 'FY',\n PH = 'PH',\n}\n\nexport enum BreakpointType {\n P = 'POLICY_TO_DATE',\n Y = 'YEARLY_RENEWABLE',\n}\n","export enum CommissionScenario {\n MPF_ERPAC_IND = 'MPF_ERPAC_IND',\n MPF_ERPAC_MC = 'MPF_ERPAC_MC',\n MPF_SEP_IND = 'MPF_SEP_IND',\n MPF_SEP_PAC_MC = 'MPF_SEP_PAC_MC',\n MPF_TVC_IND = 'MPF_TVC_IND',\n MPF_PAP_IND = 'MPF_PAP_IND',\n MPF_PAP_MC = 'MPF_PAP_MC',\n MPF_ASEP_IND = 'MPF_ASEP_IND',\n MPF_ASEP_PAC_MC = 'MPF_ASEP_PAC_MC',\n MPF_ERPAC_MIN_BENEFIT = 'MPF_ERPAC_MIN_BENEFIT',\n MPF_PAP_MIN_BENEFIT = 'MPF_PAP_MIN_BENEFIT',\n MACAU_CPF_PAP_IND = 'MACAU_CPF_PAP_IND',\n}\n","export enum CustomerStatus {\n VALID = 'VALID',\n INVALID = 'INVALID',\n TERMINATED = 'TERMD',\n RECEIVE = 'RECEIVE',\n FOLLOW_UP_IN_PRGRESS = 'FOLLOW_UP_IN_PRGRESS',\n ACTIVE = 'ACTIVE',\n TERMG = 'TERMG',\n TR_REJECT = 'TR_REJECT',\n CANCEL = 'CANCEL',\n RETAIN = 'RETAIN',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport enum DateTypeEnum {\n RUN_DATE = 'RUN_DATE',\n TXN_EFFECTIVE_DATE = 'TXN_EFFECTIVE_DATE',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport enum DefaultScaleType {\n MPF_IND = 'MPF_IND',\n MPF_NB = 'MPF_NB',\n IFAST_NB = 'IFAST_NB',\n}\n","export enum DeliveryChannelType {\n Email = 'Email',\n SMS = 'SMS',\n}\n","export * from './account-type.enum';\nexport * from './accumulation-type.enum';\nexport * from './acl-user-type.enum';\nexport * from './agent-channel.enum';\nexport * from './annuncement.enum';\nexport * from './claw-back-flag.enum';\nexport * from './commission-code.enum';\nexport * from './commission-pool-status.enum';\nexport * from './commission-rate.enum';\nexport * from './commission-scale.enum';\nexport * from './commission-scenario.enum';\nexport * from './date-type.enum';\nexport * from './default-scale-type.enum';\nexport * from './delivery-channel-type.enum';\nexport * from './ape-type.enum';\nexport * from './permission.enum';\nexport * from './reporting-role.enum';\nexport * from './role.enum';\nexport * from './screen.enum';\nexport * from './tab.enum';\nexport * from './transaction-type.enum';\nexport * from './txn-code.enum';\nexport * from './sub-activity';\nexport * from './action.enum';\nexport * from './customer-status.enum';\n","export enum PermissionAccess {\n R = 'R',\n W = 'W',\n E = 'E',\n}\n\nexport enum PermissionItem {\n SYS_ROLE_MANAGE = 'SYS_ROLE_MANAGE',\n SYS_IDENTITY_AGENT_MANAGE = 'SYS_IDENTITY_AGENT_MANAGE',\n SYS_IDENTITY_STAFF_MANAGE = 'SYS_IDENTITY_STAFF_MANAGE',\n SYS_CALENDAR = 'SYS_CALENDAR',\n SYS_CALENDAR_REVIEWER = 'SYS_CALENDAR_REVIEWER',\n SYS_CALENDAR_APPROVE = 'SYS_CALENDAR_APPROVE',\n SYS_AUDIT_LOG = 'SYS_AUDIT_LOG',\n CUSTOMER_EMPLOYER = 'CUSTOMER_EMPLOYER',\n CUSTOMER_EMPLOYER_SQ = 'CUSTOMER_EMPLOYER_SQ',\n CUSTOMER_EMPLOYER_SUBSIDIARY = 'CUSTOMER_EMPLOYER_SUBSIDIARY',\n CUSTOMER_MEMBER = 'CUSTOMER_MEMBER',\n CUSTOMER_MOBILE_SUBSCRIPTION = 'CUSTOMER_MOBILE_SUBSCRIPTION',\n CUSTOMER_SERVICING_AGENT = 'CUSTOMER_SERVICING_AGENT',\n CUSTOMER_EMPLOYER_INTERMEDIARY = 'CUSTOMER_EMPLOYER_INTERMEDIARY',\n COMMISSION_SCHEME_MASTER_RECORD = 'COMMISSION_SCHEME_MASTER_RECORD',\n COMMISSION_SCALE_MANAGEMENT = 'COMMISSION_SCALE_MANAGEMENT',\n COMM_INFO_MAIN_COMM_SUMMARY = 'COMM_INFO_MAIN_COMM_SUMMARY',\n COMM_INFO_MAIN_PARTIES_CONT_ADJ = 'COMM_INFO_MAIN_PARTIES_CONT_ADJ',\n COMM_INFO_MAIN_PARTIES_OTHERS = 'COMM_INFO_MAIN_PARTIES_OTHERS',\n COMM_INFO_SCALE_RECORD = 'COMM_INFO_SCALE_RECORD',\n COMM_INFO_AGENT_COMP = 'COMM_INFO_AGENT_COMP',\n COMM_INFO_AGENT_CHANGE = 'COMM_INFO_AGENT_CHANGE',\n COMM_INFO_INDIVIDUAL_TRF = 'COMM_INFO_INDIVIDUAL_TRF',\n COMMISSION_JOURNAL = 'COMMISSION_JOURNAL',\n COMM_HOLD_ON_COMPENSATION_REPORT = 'COMM_HOLD_ON_COMPENSATION_REPORT',\n COMMISSION_ERROR_LOG = 'COMMISSION_ERROR_LOG',\n COMM_ADJ_BATCH_UPLOAD = 'COMM_ADJ_BATCH_UPLOAD',\n COMM_APE_JOURNAL = 'COMM_APE_JOURNAL',\n COMMISSION_DEFAULT_SCALE = 'COMMISSION_DEFAULT_SCALE',\n COMM_APE_MANUAL_ADJ_NBV_RATIO = 'COMM_APE_MANUAL_ADJ_NBV_RATIO',\n\n CUSTOMER_EMPLOYEE = 'CUSTOMER_EMPLOYEE',\n CUSTOMER_EMPLOYEE_INTERMEDIARY = 'CUSTOMER_EMPLOYEE_INTERMEDIARY',\n\n SHK_AGENT_ASSIGNMENT_AGENT = 'SHK_AGENT_ASSIGNMENT_AGENT',\n CUSTOMER_EMPLOYER_ADDITIONAL_INFORMATION = 'CUSTOMER_EMPLOYER_ADDITIONAL_INFORMATION',\n CUSTOMER_EMPLOYER_ACTIVITY_CODE = 'CUSTOMER_EMPLOYER_ACTIVITY_CODE',\n\n SALES_JOURNEY_SALES_SUPPORT = 'SALES_JOURNEY_SALES_SUPPORT',\n SALES_JOURNEY_AGENT = 'SALES_JOURNEY_AGENT',\n SALES_JOURNEY_SUPER_USER = 'SALES_JOURNEY_SUPER_USER',\n SALES_JOURNEY_SUPER_ADMIN = 'SALES_JOURNEY_SUPER_ADMIN',\n SALES_JOURNEY_BRANCH_LEVEL = 'SALES_JOURNEY_BRANCH_LEVEL',\n\n SHK_AGENT_ASSIGNMENT_MAPPING = 'SHK_AGENT_ASSIGNMENT_MAPPING',\n SHK_AGENT_ASSIGNMENT_REPORT = 'SHK_AGENT_ASSIGNMENT_REPORT',\n SHK_AGENT_ASSIGNMENT_REPORT_AGENT_HEAD = 'SHK_AGENT_ASSIGNMENT_REPORT_AGENT_HEAD',\n SHK_AUTO_ROLLOVER_OPS_STAFF = 'SHK_AUTO_ROLLOVER_OPS_STAFF',\n SHK_AGENT_ASSIGNMENT_REASSIGN = 'SHK_AGENT_ASSIGNMENT_REASSIGN',\n SHK_PAYMENT_ISSUANCE_PAYMENT_ADMIN = 'SHK_PAYMENT_ISSUANCE_PAYMENT_ADMIN',\n SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF = 'SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF',\n SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER = 'SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER',\n\n ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_ADMIN = 'ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_ADMIN',\n ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF = 'ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF',\n ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER = 'ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER',\n\n COMM_ADJ_NORMAL = 'COMM_ADJ_NORMAL',\n COMM_ADJ_INDIVIDUAL = 'COMM_ADJ_INDIVIDUAL',\n COMM_ADJ_APPEAL = 'COMM_ADJ_APPEAL',\n\n CHATBOT_CSO = 'CHATBOT_CSO',\n CHATBOT_ADMIN = 'CHATBOT_ADMIN',\n CHATBOT_SUPERVISOR = 'CHATBOT_SUPERVISOR',\n CHATBOT_AGENT = 'CHATBOT_AGENT',\n\n PAYMENT_DETAIL_ENQUIRY_EXPORT = 'PAYMENT_DETAIL_ENQUIRY_EXPORT',\n FINANCIAL_JOURNAL_ENQUIRY_EXPORT = 'FINANCIAL_JOURNAL_ENQUIRY_EXPORT',\n}\nexport enum ReportingPermissionItem {\n MPF_GENERAL_REPORTS = 'MPF_GENERAL_REPORTS',\n MPF_STAFF_REPORTS = 'MPF_STAFF_REPORTS',\n MPF_MIS_REPORTS = 'MPF_MIS_REPORTS',\n MPF_MLFUB_REPORTS = 'MPF_MLFUB_REPORTS',\n\n ORSO_GENERAL_REPORTS = 'ORSO_GENERAL_REPORTS',\n ORSO_STAFF_REPORTS = 'ORSO_STAFF_REPORTS',\n ORSO_MIS_REPORTS = 'ORSO_MIS_REPORTS',\n ORSO_MLFUB_REPORTS = 'ORSO_MLFUB_REPORTS',\n\n MACAU_GENERAL_REPORTS = 'MACAU_GENERAL_REPORTS',\n MACAU_STAFF_REPORTS = 'MACAU_STAFF_REPORTS',\n MACAU_MIS_REPORTS = 'MACAU_MIS_REPORTS',\n MACAU_MLFUB_REPORTS = 'MACAU_MLFUB_REPORTS',\n\n SHK_GENERAL_REPORTS = 'SHK_GENERAL_REPORTS',\n SHK_STAFF_REPORTS = 'SHK_STAFF_REPORTS',\n SHK_MIS_REPORTS = 'SHK_MIS_REPORTS',\n SHK_MLFUB_REPORTS = 'SHK_MLFUB_REPORTS',\n}\n","import { ReportingPermissionItem } from './permission.enum';\n\nexport const enum ReportingRolePermissionGroup {\n MPF = 'MPF',\n ORSO = 'ORSO',\n MACAU = 'MACAU',\n SHK = 'SHK',\n}\n\nexport const ReportingRolePermissionGroupList: Map> = new Map([\n [\n ReportingRolePermissionGroup.MPF,\n new Set([\n ReportingPermissionItem.MPF_GENERAL_REPORTS,\n ReportingPermissionItem.MPF_STAFF_REPORTS,\n ReportingPermissionItem.MPF_MIS_REPORTS,\n ReportingPermissionItem.MPF_MLFUB_REPORTS,\n ]),\n ],\n [\n ReportingRolePermissionGroup.ORSO,\n new Set([\n ReportingPermissionItem.ORSO_GENERAL_REPORTS,\n ReportingPermissionItem.ORSO_STAFF_REPORTS,\n ReportingPermissionItem.ORSO_MIS_REPORTS,\n ReportingPermissionItem.ORSO_MLFUB_REPORTS,\n ]),\n ],\n [\n ReportingRolePermissionGroup.MACAU,\n new Set([\n ReportingPermissionItem.MACAU_GENERAL_REPORTS,\n ReportingPermissionItem.MACAU_STAFF_REPORTS,\n ReportingPermissionItem.MACAU_MIS_REPORTS,\n ReportingPermissionItem.MACAU_MLFUB_REPORTS,\n ]),\n ],\n [\n ReportingRolePermissionGroup.SHK,\n new Set([\n ReportingPermissionItem.SHK_GENERAL_REPORTS,\n ReportingPermissionItem.SHK_STAFF_REPORTS,\n ReportingPermissionItem.SHK_MIS_REPORTS,\n ReportingPermissionItem.SHK_MLFUB_REPORTS,\n ]),\n ],\n]);\n","import { PermissionItem } from './permission.enum';\n\nexport const enum RolePermissionGroup {\n SYSTEM = 'SYSTEM',\n CUSTOMER = 'CUSTOMER',\n COMMISSION = 'COMMISSION',\n SHK = 'SHK',\n ORSO = 'ORSO',\n SALES_JOURNEY = 'SALES_JOURNEY',\n CHATBOT = 'CHATBOT',\n PAYMENT_JOURNEY = 'PAYMENT_JOURNEY',\n}\n\nexport const RolePermissionGroupList: Map> = new Map([\n [\n RolePermissionGroup.SYSTEM,\n new Set([\n PermissionItem.SYS_ROLE_MANAGE,\n PermissionItem.SYS_IDENTITY_AGENT_MANAGE,\n PermissionItem.SYS_IDENTITY_STAFF_MANAGE,\n PermissionItem.SYS_CALENDAR,\n PermissionItem.SYS_CALENDAR_REVIEWER,\n PermissionItem.SYS_CALENDAR_APPROVE,\n PermissionItem.SYS_AUDIT_LOG,\n ]),\n ],\n [\n RolePermissionGroup.CUSTOMER,\n new Set([\n PermissionItem.CUSTOMER_EMPLOYER,\n PermissionItem.CUSTOMER_EMPLOYER_SQ,\n PermissionItem.CUSTOMER_EMPLOYER_SUBSIDIARY,\n PermissionItem.CUSTOMER_EMPLOYER_ADDITIONAL_INFORMATION,\n PermissionItem.CUSTOMER_EMPLOYER_ACTIVITY_CODE,\n PermissionItem.CUSTOMER_MEMBER,\n PermissionItem.CUSTOMER_MOBILE_SUBSCRIPTION,\n PermissionItem.CUSTOMER_SERVICING_AGENT,\n PermissionItem.CUSTOMER_EMPLOYER_INTERMEDIARY,\n PermissionItem.CUSTOMER_EMPLOYEE,\n PermissionItem.CUSTOMER_EMPLOYEE_INTERMEDIARY,\n ]),\n ],\n [\n RolePermissionGroup.COMMISSION,\n new Set([\n PermissionItem.COMMISSION_SCALE_MANAGEMENT,\n PermissionItem.COMMISSION_SCHEME_MASTER_RECORD,\n PermissionItem.COMM_INFO_AGENT_CHANGE,\n PermissionItem.COMM_INFO_AGENT_COMP,\n PermissionItem.COMM_INFO_INDIVIDUAL_TRF,\n PermissionItem.COMM_INFO_MAIN_COMM_SUMMARY,\n PermissionItem.COMM_INFO_MAIN_PARTIES_CONT_ADJ,\n PermissionItem.COMM_INFO_MAIN_PARTIES_OTHERS,\n PermissionItem.COMM_INFO_SCALE_RECORD,\n PermissionItem.COMMISSION_JOURNAL,\n PermissionItem.COMM_HOLD_ON_COMPENSATION_REPORT,\n PermissionItem.COMMISSION_ERROR_LOG,\n PermissionItem.COMM_ADJ_NORMAL,\n PermissionItem.COMM_ADJ_INDIVIDUAL,\n PermissionItem.COMM_ADJ_APPEAL,\n PermissionItem.COMM_ADJ_BATCH_UPLOAD,\n PermissionItem.COMM_APE_JOURNAL,\n PermissionItem.COMM_APE_MANUAL_ADJ_NBV_RATIO,\n PermissionItem.COMMISSION_DEFAULT_SCALE,\n ]),\n ],\n [\n RolePermissionGroup.SHK,\n new Set([\n PermissionItem.SHK_AGENT_ASSIGNMENT_AGENT,\n PermissionItem.SHK_AUTO_ROLLOVER_OPS_STAFF,\n PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_ADMIN,\n PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF,\n PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER,\n PermissionItem.SHK_AGENT_ASSIGNMENT_MAPPING,\n PermissionItem.SHK_AGENT_ASSIGNMENT_REPORT,\n PermissionItem.SHK_AGENT_ASSIGNMENT_REPORT_AGENT_HEAD,\n PermissionItem.SHK_AGENT_ASSIGNMENT_REASSIGN,\n ]),\n ],\n [\n RolePermissionGroup.ORSO,\n new Set([\n PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_ADMIN,\n PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF,\n PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER,\n ]),\n ],\n [\n RolePermissionGroup.SALES_JOURNEY,\n new Set([\n PermissionItem.SALES_JOURNEY_SALES_SUPPORT,\n PermissionItem.SALES_JOURNEY_AGENT,\n PermissionItem.SALES_JOURNEY_SUPER_USER,\n PermissionItem.SALES_JOURNEY_SUPER_ADMIN,\n PermissionItem.SALES_JOURNEY_BRANCH_LEVEL,\n ]),\n ],\n [\n RolePermissionGroup.CHATBOT,\n new Set([PermissionItem.CHATBOT_CSO, PermissionItem.CHATBOT_ADMIN, PermissionItem.CHATBOT_SUPERVISOR, PermissionItem.CHATBOT_AGENT]),\n ],\n [\n RolePermissionGroup.PAYMENT_JOURNEY,\n new Set([PermissionItem.PAYMENT_DETAIL_ENQUIRY_EXPORT, PermissionItem.FINANCIAL_JOURNAL_ENQUIRY_EXPORT]),\n ],\n]);\n","export enum ScreenType {\n PC = 'PC',\n PAD = 'PAD',\n Mobile = 'Mobile',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport enum SubActivity {\n CONTR_REGULAR = 'CONTR_REGULAR',\n CONTR_LUMPSUM = 'CONTR_LUMPSUM',\n CONTR_SURCHG = 'CONTR_SURCHG',\n CONTR_SUBSEQUENT = 'CONTR_SUBSEQUENT',\n TRF_IN_PP = 'TRF_IN_PP',\n TRF_IN_PM = 'TRF_IN_PM',\n TRF_IN_PC = 'TRF_IN_PC',\n TRF_IN_PT = 'TRF_IN_PT',\n TRF_IN_PE = 'TRF_IN_PE',\n TRF_IN_MMB = 'TRF_IN_MMB',\n TRF_IN_INTRAGROUP = 'TRF_IN_INTRAGROUP',\n TRF_IN_MMB_PE = 'TRF_IN_MMB_PE',\n TRF_IN_MMB_INTRA_GRP = 'TRF_IN_MMB_INTRA_GRP',\n TRF_IN_SUBSEQUENT = 'TRF_IN_SUBSEQUENT',\n}\n\nexport const SubActivityOpts: any[] = [\n { label: 'CONTR_LUMPSUM', value: SubActivity.CONTR_LUMPSUM },\n { label: 'CONTR_REGULAR', value: SubActivity.CONTR_REGULAR },\n { label: 'CONTR_SUBSEQUENT', value: SubActivity.CONTR_SUBSEQUENT },\n { label: 'CONTR_SURCHG', value: SubActivity.CONTR_SURCHG },\n { label: 'TRF_IN_PE', value: SubActivity.TRF_IN_PE },\n { label: 'TRF_IN_PM', value: SubActivity.TRF_IN_PM },\n { label: 'TRF_IN_PC', value: SubActivity.TRF_IN_PC },\n { label: 'TRF_IN_PP', value: SubActivity.TRF_IN_PP },\n { label: 'TRF_IN_PT', value: SubActivity.TRF_IN_PT },\n { label: 'TRF_IN_INTRAGROUP', value: SubActivity.TRF_IN_INTRAGROUP },\n { label: 'TRF_IN_MMB', value: SubActivity.TRF_IN_MMB },\n { label: 'TRF_IN_MMB_PE', value: SubActivity.TRF_IN_MMB_PE },\n { label: 'TRF_IN_MMB_INTRA_GRP', value: SubActivity.TRF_IN_MMB_INTRA_GRP },\n { label: 'TRF_IN_SUBSEQUENT', value: SubActivity.TRF_IN_SUBSEQUENT },\n];\n","export enum TransactionType {\n APE_ANN_PREM = 'APE_ANN_PREM',\n SYS_ADJ_APE_RECON = 'SYS_ADJ_APE_RECON',\n SYS_ADJ_APE_REJOIN = 'SYS_ADJ_APE_REJOIN',\n SYS_ADJ_APE_TERM = 'SYS_ADJ_APE_TERM',\n SYS_TRAILER_FEE = 'SYS_TRAILER_FEE',\n APE_PLAN_TRF = 'APE_PLAN_TRF',\n APE_IND_TRF = 'APE_IND_TRF',\n APE_CONTR_112 = 'APE_CONTR_112',\n APE_COMM_ADJ_112 = 'APE_COMM_ADJ_112',\n APE_COMM_ADJ_112P = 'APE_COMM_ADJ_112P',\n APE_COMM_ADJ_112I = 'APE_COMM_ADJ_112I',\n MAN_ADJ_112 = 'MAN_ADJ_112',\n MAN_ADJ_112P = 'MAN_ADJ_112P',\n MAN_ADJ_112I = 'MAN_ADJ_112I',\n APE_CONTR_133 = 'APE_CONTR_133',\n APE_COMM_ADJ_133 = 'APE_COMM_ADJ_133',\n MAN_ADJ_133 = 'MAN_ADJ_133',\n APE_CONTR_115 = 'APE_CONTR_115',\n MAN_ADJ_115 = 'MAN_ADJ_115',\n APE_COMM_ADJ_115 = 'APE_COMM_ADJ_115',\n MAN_ADJ_141ANN = 'MAN_ADJ_141ANN',\n MAN_ADJ_935ANN = 'MAN_ADJ_935ANN',\n MAN_ADJ_136FEE = 'MAN_ADJ_136FEE',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport enum TxnCode {\n COMMISSION_ADJUSTMENT = 'COMMISSION_ADJUSTMENT',\n DISCONTINUOUS = 'DISCONTINUOUS',\n MONTHLY_CLAW_BACK = 'MONTHLY_CLAW_BACK',\n ORSO_INVESTMENT_ONLY = 'ORSO_INVESTMENT_ONLY',\n TRANSFER_CASE_LUMP_SUM_CONTRIBUTION = 'TRANSFER_CASE_LUMP_SUM_CONTRIBUTION',\n ANNUALIZE_PREMIUM = 'ANNUALIZE_PREMIUM',\n REGULAR_CONTRIBUTION = 'REGULAR_CONTRIBUTION',\n MEMBER_TRANSFER_OUT = 'MEMBER_TRANSFER_OUT',\n EMPLOYEE_TRANSFER_OUT = 'EMPLOYEE_TRANSFER_OUT',\n WITHDRAWAL_ON_ORSO_INVESTMENT_ONLY = 'WITHDRAWAL_ON_ORSO_INVESTMENT_ONLY',\n NEW_BUSINESS = 'NEW_BUSINESS',\n WITHDRAWAL = 'WITHDRAWAL',\n}\n\nexport const TxnCodeMap = new Map([\n [TxnCode.COMMISSION_ADJUSTMENT, '027'],\n [TxnCode.DISCONTINUOUS, '050'],\n [TxnCode.MONTHLY_CLAW_BACK, '101'],\n [TxnCode.ORSO_INVESTMENT_ONLY, '105'],\n [TxnCode.TRANSFER_CASE_LUMP_SUM_CONTRIBUTION, '241'],\n [TxnCode.ANNUALIZE_PREMIUM, '300'],\n [TxnCode.REGULAR_CONTRIBUTION, '395'],\n [TxnCode.MEMBER_TRANSFER_OUT, '405'],\n [TxnCode.WITHDRAWAL_ON_ORSO_INVESTMENT_ONLY, '410'],\n [TxnCode.EMPLOYEE_TRANSFER_OUT, '402'],\n [TxnCode.NEW_BUSINESS, '010'],\n [TxnCode.WITHDRAWAL, '401'],\n]);\nexport const TxnCodeOpts = [\n { label: '027: Commission Adjustment', value: TxnCode.COMMISSION_ADJUSTMENT },\n { label: '050: Discontinuous', value: TxnCode.DISCONTINUOUS },\n { label: '101: Monthly Claw Back', value: TxnCode.MONTHLY_CLAW_BACK },\n { label: '105: ORSO Investment Only', value: TxnCode.ORSO_INVESTMENT_ONLY },\n {\n label: '241: Transfer In/ Lump Sum',\n value: TxnCode.TRANSFER_CASE_LUMP_SUM_CONTRIBUTION,\n },\n {\n label: '300: Annualize Premium',\n value: TxnCode.ANNUALIZE_PREMIUM,\n },\n { label: '395: Regular Contribution', value: TxnCode.REGULAR_CONTRIBUTION },\n { label: '405: Member Transfer Out', value: TxnCode.MEMBER_TRANSFER_OUT },\n {\n label: '410: Withdrawal on ORSO',\n value: TxnCode.WITHDRAWAL_ON_ORSO_INVESTMENT_ONLY,\n },\n {\n label: '402: Employee Transfer Out',\n value: TxnCode.EMPLOYEE_TRANSFER_OUT,\n },\n {\n label: '010: New Business',\n value: TxnCode.NEW_BUSINESS,\n },\n {\n label: '401: Withdrawal',\n value: TxnCode.WITHDRAWAL,\n },\n];\n\nexport const TxnCodeJournalOpts = [\n { label: '027: Commission Adjustment', value: TxnCode.COMMISSION_ADJUSTMENT },\n { label: '050: Discontinuous', value: TxnCode.DISCONTINUOUS },\n { label: '101: Monthly Claw Back', value: TxnCode.MONTHLY_CLAW_BACK },\n { label: '105: ORSO Investment Only', value: TxnCode.ORSO_INVESTMENT_ONLY },\n {\n label: '241: Transfer In/ Lump Sum',\n value: TxnCode.TRANSFER_CASE_LUMP_SUM_CONTRIBUTION,\n },\n {\n label: '300: Annualize Premium',\n value: TxnCode.ANNUALIZE_PREMIUM,\n },\n { label: '395: Regular Contribution', value: TxnCode.REGULAR_CONTRIBUTION },\n { label: '405: Member Transfer Out', value: TxnCode.MEMBER_TRANSFER_OUT },\n {\n label: '410: Withdrawal on ORSO ',\n value: TxnCode.WITHDRAWAL_ON_ORSO_INVESTMENT_ONLY,\n },\n];\n","export enum UploadFileStatus {\n PENDING_VERIFICATION = 'PENDING_VERIFICATION',\n VALIDATED_PENDING_UPDATED = 'VALIDATED_PENDING_UPDATED',\n SUCCESS_UPDATE = 'SUCCESS_UPDATE',\n}\n\nexport const UploadFileStatusText = new Map([\n [UploadFileStatus.PENDING_VERIFICATION, 'Pending Verification'],\n [UploadFileStatus.VALIDATED_PENDING_UPDATED, 'Validated,Pending Updated'],\n [UploadFileStatus.SUCCESS_UPDATE, 'Success Updated'],\n]);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { SortDirection } from '@angular/material/sort';\n\nexport interface ISortObj {\n sort: string;\n sortDirection: SortDirection;\n}\n\n// request\nexport interface IPageableRequest {\n page: number;\n size: number;\n sort?: string;\n sortDirection?: SortDirection;\n sortExtra?: ISortObj[];\n filter?: string;\n}\n\nexport function filterParams(iObj?: any): HttpParams {\n if (iObj) {\n Object.keys(iObj).forEach(key => (iObj[key] === undefined || iObj[key] === '' || iObj[key] === null) && delete iObj[key]);\n return new HttpParams({\n fromObject: iObj as any,\n });\n }\n return new HttpParams();\n}\n","export enum HttpStatus {\n SUCCESS = 200,\n BAD_REQUEST = 400,\n SESSION_TIMEOUT = 401,\n UNAUTHORIZED = 403,\n NOT_FOUND = 404,\n SYSTEM_EDITABLE_LOCKED = 423,\n INTERNAL_SERVICE_ERROR = 500,\n BAD_GATEWAY = 502,\n SERVICE_UNAVAILABLE = 503,\n BAD_GATEWAY_TIMEOUT = 504,\n}\n","export enum ResponseResult {\n SUCCESS = 0,\n DECLINED = 1,\n ERROR = 2,\n NOT_FOUND = 3,\n INVALID_PARAMETER = 4,\n TIMEOUT = 5,\n DATABASE_ERROR = 6,\n UNKNOWN = 7,\n ENCRYPTION_ERROR = 8,\n DECRYPTION_ERROR = 9,\n PROCESSING = 11,\n PREPARE_REQUEST_ERRO = 12,\n INVALID_DATE_RANGE = 13,\n INVALID_FORMAT = 14,\n ALREADY_EXISTS = 15,\n REQUEST_INVALID_RESPONSE = 16,\n SYSTEM_BAD_REQUEST = 400,\n SYSTEM_UNAUTHORIZED = 401,\n SYSTEM_ACCESS_DENIED = 403,\n SYSTEM_404_NOT_FOUND = 404,\n SYSTEM_INTERNAL_SERVICE_ERROR = 500,\n AZURE_BLOB_ERROR = 1001,\n AZURE_BLOB_INVALID_PATH = 1002,\n AZURE_SERVICE_BUS_SEND_MESSAGE_ERROR = 1103,\n AGENT_ERROR = 2100,\n AGENT_NO_EXIST = 2101,\n AGENT_NOT_ACTIVE = 2102,\n AGENT_NOT_IN_SAME_DISTRICT = 2103,\n AGENT_MORE_THAN_LIMIT = 2104,\n AGENT_IN_DELEGATED = 2105,\n EMPLOYER_NO_EXIST = 21015,\n EMPLOYEE_NO_EXIST = 21016,\n LOGIN_FAILED = 2000,\n LOGIN_FAILED_USERNAME_PASSWORD_BLANK = 2001,\n LOGIN_FAILED_ACCOUNT_LOCKED = 2002,\n LOGIN_FAILED_INACTIVATE_AGT_PIN = 2003,\n LOGIN_FAILED_INVALIDATE_AGT_PIN = 2004,\n LOGIN_FAILED_UNAUTHORIZED_USER = 2005,\n LOGIN_DUPLICATE = 2006,\n LOGIN_PHONE_NUM_INVALID = 2007,\n LOGIN_FAILED_INACTIVATE_USER = 2008,\n LOGIN_FAILED_WITH_SCB_TEMPORARILY_BAN_EXCEPTION = 2009,\n LOGIN_FAILED_NO_VALID_MPF_LICENSE = 2010,\n LOGIN_FAILED_WITH_UNEXPECTED_EXCEPTION = 2011,\n OTP_ERROR_NO_EFFECTIVE_CONTACT_WAY = 2012,\n OTP_REQUEST_LIMIT = 2013,\n OTP_VERIFY_FAILED = 2014,\n OTP_VERIFY_EXPIRED = 2015,\n OTP_VERIFY_LIMIT = 2016,\n OTP_SERVICE_UNAVAILABLE = 2017,\n OTP_VERIFY_WITH_UNEXPECTED_EXCEPTION = 2018,\n RESPONSE_ERROR = -99,\n LOGIN_FAILED_INVALID_MCF_USER = 2019,\n}\n","export const TRANSFER_DETAILS_DECLINED_REASON_OPTIONS = [\n { label: 'Missing / Incorrect HKID or passport number', value: '01' },\n { label: 'Missing / Incorrect name of scheme member', value: '02' },\n { label: 'Incorrect membership number under Original Scheme', value: '03' },\n { label: 'Incorrect Original Scheme Registration Number', value: '04' },\n { label: 'Missing / Mismatch member signature', value: '05' },\n { label: 'No such member record in Original Scheme', value: '06' },\n { label: 'Member account terminated', value: '07' },\n { label: 'Preserved to a personal account', value: '09' },\n { label: 'Transfer request has been cancelled by the member', value: '10' },\n { label: 'Member has multiple accounts in Original Scheme', value: '11' },\n { label: 'Missing / Invalid option in arrangement of voluntary contributions', value: '12' },\n { label: 'Missing Notice of Termination', value: '13' },\n { label: 'No selection of which Sub-account(s) to be transferred out', value: '14' },\n { label: 'Member has ceased employment', value: '15' },\n { label: 'Unmatched data and image file', value: '16' },\n { label: 'Member still under employment', value: '17' },\n { label: 'Missing page of transfer form', value: '18' },\n { label: 'No Member Signature Specimen', value: '19' },\n { label: 'Other-please specify', value: '99' },\n { label: 'EEMC_In excess of number election allowed', value: '20' },\n { label: 'EEMC_Account contained nil balance', value: '21' },\n { label: 'EEVC_VC not allow to transfer out because not fulfill the transfer conditions in the governing rules', value: '22' },\n { label: 'EEVC_Account contained nil balance', value: '23' },\n { label: 'FRMC_Account contained nil balance', value: '24' },\n { label: 'FR VC_ VC not allowed to transfer out because not fulfill the transfer conditions in governing rules', value: '25' },\n { label: 'FRVC_Account contained nil balance', value: '26' },\n { label: 'All selected sub accounts contained nil balance', value: '27' },\n { label: \"Member's account is a contribution account / self-employed account but P(C) form is received\", value: '28' },\n { label: \"Member's account is a personal account / self-employed account but P(P) form is received Original\", value: '29' },\n];\n","import { PermissionAccess, PermissionItem } from './enum/permission.enum';\n\nexport class Session {\n id!: string;\n mcfId!: string;\n microsoftId!: string;\n displayName!: string;\n email!: string;\n givenName!: string;\n surname!: string;\n userPrincipalName!: string;\n permissions?: Map;\n token!: string;\n refreshToken!: string;\n currentLastUpdate!: number;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from '../../models/response/response';\nimport { AddMdIFFReferenceNumberOption } from 'src/app/views/salesjourney/md-iff-summary/md-iff-summary.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AddMdService {\n constructor(private http: HttpClient) {}\n\n mdNoLike(query: string, page: number, size: number) {\n return this.http.post>(`${environment.apiPrefix}/ext/eb-ssms-sales-journey-service/md/mdNoLike`, {\n mdNo: query,\n pageIndex: page,\n pageSize: size,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AgentChannel } from '../models/enum/agent-channel.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentChannelService {\n channel?: AgentChannel;\n agentCode?: string;\n\n constructor() {}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\nimport { PopupRequest } from '@azure/msal-browser';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { getSessionByKey, deleteSessionByKey } from 'src/app/utils/indexdb';\nimport { UserAgreementPopupComponent } from '../../views/commission/user-agreement-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\n\nimport { map, Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { LoginType } from '../../views/user/login/login.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService {\n public worker: Worker;\n\n constructor(\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\n private authService: MsalService,\n private router: Router,\n private http: HttpClient,\n private cdsPopup: CdsPopupService,\n public dialog: MatDialog,\n private langService: CdsLangService\n ) {\n this.worker = new Worker(new URL('src/app/utils/refresh-token.worker', import.meta.url));\n }\n\n public workerRefresh() {\n this.worker.onmessage = ({ data }) => {\n if (data) {\n const response = JSON.parse(data);\n if (response && response.status == 401) {\n this.sessionTimeOut();\n } else if (response && response.alert) {\n const popupRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: 'login.logout.alert',\n continue: 'common.gotItWithExclamation',\n type: 'alert',\n params: { minutes: response.minutes },\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm) {\n this.worker.postMessage(null);\n }\n });\n }\n }\n };\n this.worker.postMessage(null);\n }\n\n public currentUserValue() {\n return getSessionByKey();\n }\n\n setRouterUrl(url: string) {\n if (\n !['/'].includes(url) &&\n url.indexOf('/session-time-out') == -1 &&\n url.indexOf('/permission-error') == -1 &&\n url.indexOf('/response-error') == -1 &&\n url.indexOf('/user/login') == -1\n ) {\n sessionStorage.setItem('targetUrl', url);\n }\n if (window.location.href.includes('/salesjourney/split-agent-notification?id=')) {\n const s = window.location.href.indexOf('/salesjourney/split-agent-notification');\n const path = window.location.href.substring(s);\n sessionStorage.setItem('targetUrl', path);\n\n const summaryIdStartIndex = window.location.href.indexOf('?id=') + 4;\n const summaryIdEndIndex = window.location.href.indexOf('&iffId');\n let id = window.location.href.substring(summaryIdStartIndex, summaryIdEndIndex);\n\n const iffIdStartIndex = window.location.href.indexOf('&iffId=') + 7;\n const iffIdEndIndex = window.location.href.indexOf('&iffVersionNo');\n let iffId = window.location.href.substring(iffIdStartIndex, iffIdEndIndex);\n\n const iffVersionNoStartIndex = window.location.href.indexOf('&iffVersionNo=') + 14;\n const iffVersionNoEndIndex = window.location.href.indexOf('&language');\n let iffVersionNo = window.location.href.substring(iffVersionNoStartIndex, iffVersionNoEndIndex);\n\n if (id.includes('%') && id.lastIndexOf('%') !== id.indexOf('%') && sessionStorage.getItem('num')) {\n id = sessionStorage.getItem('summaryId') || '';\n iffId = sessionStorage.getItem('iffId') || '';\n iffVersionNo = sessionStorage.getItem('iffVersionNo') || '';\n }\n\n sessionStorage.setItem('num', '1');\n sessionStorage.setItem('summaryId', id);\n sessionStorage.setItem('iffId', iffId);\n sessionStorage.setItem('iffVersionNo', iffVersionNo);\n }\n }\n\n authenticateToken(apiSuffix: string, accessToken: string, mcfRefreshToken?: string): Observable {\n const headers: any = { Authorization: accessToken };\n if (mcfRefreshToken) {\n headers['Mcf-Refresh-Token'] = mcfRefreshToken;\n }\n return this.http.post(environment.apiPrefix.concat(environment.identityServiceExt).concat(apiSuffix), null, {\n headers: new HttpHeaders(headers),\n });\n }\n\n loginWithSSO() {\n if (this.msalGuardConfig.authRequest) {\n return this.authService.loginPopup({\n ...this.msalGuardConfig.authRequest,\n } as PopupRequest);\n }\n\n return this.authService.loginPopup();\n }\n\n logout(loginType: LoginType, router: any) {\n switch (loginType) {\n case 'sso':\n this.SSOlogoutLogging();\n this.authService.logoutPopup().subscribe(async () => {\n this.redirect(router);\n });\n break;\n case 'mcf':\n this.clearSsoPopup(router);\n break;\n default:\n this.redirect(router);\n }\n }\n\n SSOlogoutLogging() {\n this.currentUserValue().then(res => {\n const logRes = this.http.post(`${environment.apiPrefix}${environment.identityServiceExt}/auth/ad/logout`, { microsoftId: res.microsoftId });\n logRes.subscribe(() => {});\n });\n }\n\n getLoadingDialogRef(): MatDialogRef {\n return this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n type: 'loading',\n },\n });\n }\n\n logoutMcfPost(mcfId: string): Observable> {\n return this.http.post(`${environment.apiPrefix}${environment.identityServiceExt}/auth/mcf/logout`, { mcfId: mcfId }).pipe(\n map(res => {\n return res;\n })\n );\n }\n\n logoutMcf(router: any, b?: boolean) {\n getSessionByKey().then(session => {\n const loading = this.getLoadingDialogRef();\n this.logoutMcfPost(session.mcfId).subscribe(res => {\n loading.close();\n if (res && res.result == 0) {\n this.redirect(router, b);\n } else {\n this.catchMcfError(router, res.message);\n }\n });\n });\n }\n\n validateMcfToken(mcfId: string): Observable> {\n const params = { mcfId: mcfId };\n return this.http.get(`${environment.apiPrefix}${environment.identityServiceExt}/auth/mcf/valid-tokens`, { params: params }).pipe(\n map(res => {\n return res;\n })\n );\n }\n\n en =\n '
System detected that you are accessing other agency tools with same user account, do you want to cancel the single sign-on function in this browser?

' +\n '
If \"Yes\", it means that you will have to re-enter your username and password in this browser for accessing to the agency tools.
' +\n '
If \"No\", to avoid others using your username and password for login, please ensure you have logout to all your agency tools on all browser(s)/device(s) before you close this browser (especially on public area / using shared PC).

';\n\n zh =\n '
系統顯示您正在使用同一用戶名稱登入了其他經銷工具,您想取消在此瀏覽器上的單一登入功能嗎?

' +\n '
如「是」,即代表您在下一次使用此瀏覽器登入經銷工具時需要重新輸入您的用戶名稱及密碼作登入。
' +\n '
如「否」,請確保在離開此瀏覽器前已登出所有瀏覽器/裝置上的所有經銷工具(特別在公共地方 / 共用的電子裝置上),以避免其他人可以你的用戶名稱及密碼作登入。

';\n\n async clearSsoPopup(router: any) {\n getSessionByKey().then(session => {\n const popupRef = this.getLoadingDialogRef();\n this.validateMcfToken(session.mcfId).subscribe(res => {\n if (res && res.result == 0) {\n const arr: string[] = res.data;\n if (arr && arr.length > 1 && arr.includes(`${environment.mcfClientId}`)) {\n this.langService.addLangEntries({\n logoutMsg: {\n en: this.en,\n zh: this.zh,\n },\n });\n popupRef.close();\n const popupRef2: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'lg',\n data: {\n message: 'logoutMsg',\n cancel: 'common.no',\n continue: 'common.yes',\n type: 'confirm',\n },\n });\n popupRef2.afterClosed().subscribe(confirm => {\n if (confirm) {\n if (confirm.agree) {\n this.logoutMcf(router, true);\n } else {\n this.logoutMcf(router);\n }\n }\n });\n } else if (arr && arr.length == 1 && arr.includes(`${environment.mcfClientId}`)) {\n this.logoutMcf(router, true);\n } else {\n this.redirect(router);\n }\n } else {\n this.catchMcfError(router, res.message);\n }\n });\n });\n }\n\n catchMcfError(router: any, message: string) {\n const msg = message ? message : 'Unknown Error';\n const popupRef2: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: '' + msg + '',\n continue: 'Got it',\n type: 'alert',\n },\n });\n popupRef2.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.redirect(router);\n }\n });\n }\n\n redirect(router: any, redirect?: boolean) {\n this.dialog.closeAll();\n this.deleteSession(true).then(res => {\n if (res) {\n if (redirect) {\n window.location.href = `${environment.ssoLogoutUrl}` + window.location.origin;\n } else {\n router.navigate(['/user/login']);\n }\n }\n });\n }\n\n sessionTimeOut() {\n this.dialog.closeAll();\n this.setRouterUrl(this.router.url);\n if (localStorage.getItem('loginType') == 'mcf') {\n window.location.href = `${environment.ssoLogoutUrl}` + window.location.origin + `/user/session-time-out`;\n } else {\n this.router.navigate(['/user/session-time-out']);\n }\n }\n\n deleteSession(b: boolean) {\n return new Promise(resolve => {\n deleteSessionByKey().then(() => {\n this.dialog.closeAll();\n if (b) {\n localStorage.removeItem('loginType');\n sessionStorage.removeItem('targetUrl');\n sessionStorage.removeItem('summaryId');\n sessionStorage.removeItem('iffId');\n localStorage.removeItem('case-summary-search-params');\n localStorage.removeItem('case-summary-selected-data');\n localStorage.removeItem('store');\n }\n resolve(true);\n });\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from '../models/response/response';\nimport { ResponseResult } from '../models/response/response-result';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionBatchStatusService {\n timeout: any;\n isDone = true;\n on = false;\n apiPath = '/batch/query/status?serviceName=commission-service';\n\n constructor(private http: HttpClient, private router: Router) {}\n\n refreshCommBatchStatus() {\n if (!this.on) {\n return;\n }\n if (this.timeout) {\n return;\n }\n this.timeout = true;\n const timer = setTimeout(() => {\n this.getBatchStatus().subscribe(res => {\n const isCommissionPage = this.router.url.includes('commission') || this.router.url.includes('default-scale-list');\n this.isDone = res.result !== ResponseResult.SUCCESS || !isCommissionPage || res.data === CommissionBatchStatus.DONE;\n this.timeout = false;\n clearTimeout(timer);\n });\n }, 5000);\n }\n\n getBatchStatus(): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.identityServiceExt}${this.apiPath}`);\n }\n}\n\nexport enum CommissionBatchStatus {\n DONE = 'DONE',\n RUNNING = 'RUNNING',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse, EnhanceResponse } from 'src/app/core/models/response/response';\n//import { map, timeout } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AdjustmentService {\n constructor(private http: HttpClient) {}\n\n addAdjustment(params: any): Observable> {\n return this.http.post(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-adjustment/add-adjustment`, params);\n }\n\n check(params: any): Observable> {\n return this.http.post(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-adjustment/check`, params).pipe(\n map(res => {\n if (params.requestId) {\n res.requestId = params.requestId;\n }\n return res;\n })\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { map, timeout } from 'rxjs/operators';\nimport { CommissionPoolStatus } from 'src/app/core/models/enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionAgentService {\n constructor(private http: HttpClient) {}\n\n addAgent(isAdd: boolean, params: any): Observable> {\n if (isAdd) {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/add`, params);\n } else {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/update`, params);\n }\n }\n\n getRegularList(page: number, commissionPoolId: string): Observable> {\n const params = {\n page: page,\n size: 9999,\n commissionPoolId: commissionPoolId,\n sort: 'effectiveDate',\n order: 'asc',\n all: true,\n };\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/list-regular`, {\n params: params,\n });\n }\n\n getRegularItems(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/list-regular-items`, {\n params: params,\n });\n }\n\n getAgentRecordCurrentInfo(commissionPoolId: string): Observable {\n return this.http.get(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/currentInfo/${commissionPoolId}`, {\n observe: 'response',\n responseType: 'text',\n });\n }\n\n getAgentByCode(agentCode: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/agent/${agentCode}`).pipe(\n timeout(10000),\n map(evt => {\n return evt;\n })\n );\n }\n\n delete(id: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-agent/delete/${id}`);\n }\n\n listRegular(commissionPoolId: string, p?: number, records?: any[]) {\n const agentRecord = { id: '', millis: 0, createBy: { name: '' } };\n let recordList: any[] = records ? records : [];\n const page: number = p ? p : 0;\n let totalPages = 0;\n return new Promise(resolve => {\n this.getRegularList(page, commissionPoolId).subscribe(resp => {\n if (resp && resp.result == 0 && resp.data.content) {\n totalPages = resp.data.totalPages;\n recordList = recordList.concat(resp.data.content);\n recordList.forEach(item => {\n if (item.status == CommissionPoolStatus.CURRENT && item.active) {\n agentRecord.id = item.id;\n agentRecord.millis = item.millis;\n agentRecord.createBy = item.createBy;\n }\n if (!item.active) {\n item.status = CommissionPoolStatus.DELETED;\n if (item.lastUpdateBy) {\n item.lastUpdateName = item.lastUpdateBy.name;\n }\n }\n });\n }\n resolve({\n totalPages: totalPages,\n recordList: recordList,\n agentRecord: agentRecord,\n });\n });\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\n\nimport { BasicResponse, IPageResponse } from '../../models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionAppealCaseService {\n constructor(private http: HttpClient) {}\n\n getPendingTransationData(params: any): Observable>> {\n return this.http.get>>(\n `${environment.apiPrefix}${environment.commissionServiceExt}${'/customer-transaction/pending/list'}`,\n {\n params: params,\n }\n );\n }\n\n saveMakeAppeal(params: any): Observable>> {\n return this.http.post>>(\n `${environment.apiPrefix}${environment.commissionServiceExt}${'/commission-adjustment/appeal-case-adj'}`,\n params\n );\n }\n}\nexport interface MakeAppealItem {\n receivedDate: string;\n referenceNo: string;\n accountNo: string;\n accountType: string;\n formType: string;\n commFlag: string;\n trfsppcCode: string;\n trfspCode: string;\n fshkpcCode: string;\n cancelledOrRejectedDate?: string;\n appealDate?: string;\n details: Array;\n}\nexport interface MakeAppealAgentItem {\n agentChannel: string;\n agentCode: string;\n sharingComm: number;\n sharingPC: number;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionCommonService {\n // Observable string sources\n private applySummarySource = new Subject();\n private summarySource = new Subject();\n private relatedPartiesSource = new Subject();\n private scaleSource = new Subject();\n\n // Observable string streams\n applySummary$ = this.applySummarySource.asObservable();\n summary$ = this.summarySource.asObservable();\n relatedParties$ = this.relatedPartiesSource.asObservable();\n scale$ = this.scaleSource.asObservable();\n\n applySummaryInfo(obj: any) {\n this.applySummarySource.next(obj);\n }\n\n // Service message commands\n announceSummary(obj: any) {\n this.summarySource.next(obj);\n }\n\n announceRelatedParties(obj: any) {\n this.relatedPartiesSource.next(obj);\n }\n\n announceScale(obj: any) {\n this.scaleSource.next(obj);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\n\nimport { BasicResponse, IPageResponse } from '../../models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionErrorLogService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable>> {\n return this.http.get>>(\n `${environment.apiPrefix}${environment.commissionServiceExt}${'/commission-error-log/list'}`,\n {\n params: params,\n }\n );\n }\n}\n\nexport interface CommissionErrorLogItem {\n id: string;\n occurDate: string;\n errSign: string;\n errMsg: string;\n referenceNo: string;\n commissionPoolId?: string;\n employerAccountCode?: string;\n memberAccountCode?: string;\n accountType: string;\n payRollGroupNo?: string;\n contStartDate?: string;\n vipCode?: string;\n txnCode?: string;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\n\nimport { BasicResponse } from '../../models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionHoldOnReportService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/customer-transaction/hold-on/list'}`, {\n params: params,\n });\n }\n}\n\nexport interface HoldOnReportItem {\n referenceNo: string;\n accountType: string;\n subActivityCd: string;\n accountNo: string;\n memberNo: string;\n totalPremium: boolean;\n commissionPoolNo: string;\n processId: string;\n holdOnReason: string;\n freezeDate: string;\n efctvDate: string;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IndividualTransferService {\n constructor(private http: HttpClient) {}\n\n getTransaction(id: string): Observable> {\n const url = `${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-individual-transfer/transaction-records/${id}`;\n return this.http.get>(url);\n }\n\n getAgent(id: string): Observable> {\n const url = `${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-individual-transfer/individual-agent-records/${id}`;\n return this.http.get>(url);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { BasicResponse, IPageResponse } from '../../models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionJournalService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable>> {\n return this.http.get>>(\n `${environment.apiPrefix}${environment.commissionServiceExt}${'/commission-journal/list'}`,\n { params: params }\n );\n }\n\n download(params: any): Observable>> {\n return this.http.get>>(\n `${environment.apiPrefix}${environment.commissionServiceExt}${'/commission-journal/list-all'}`,\n {\n params: params,\n }\n );\n }\n\n getApeData(params: any): Observable>> {\n return this.http.get>>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/ape-journal/list'}`, {\n params: params,\n });\n }\n}\n\nexport interface CommissionJournalItem {\n runDate: string;\n employerAccountCode?: string;\n memberAccountCode?: string;\n accountType: string;\n payRollGroupId: string;\n subActivityCd: string;\n contStart?: string;\n contEnd?: string;\n transactionReferenceNo?: string;\n groupReferenceNo?: string;\n payReferenceNo?: string;\n commissionPoolNo: string;\n txnCode: string;\n txnEffectiveDate?: string;\n contributionFrequency?: string;\n totalPremiumReceived?: string;\n commFlag?: string;\n pacFlag?: string;\n processor?: Processor;\n commissionableAmount?: string;\n list: Array;\n}\nexport interface CommissionJournalAgentItem {\n agentCode: string;\n share: number;\n scaleRate?: string;\n commissionCode: string;\n amount: number;\n amountPremium: number;\n agentName: string;\n [propName: string]: any;\n}\n\nexport interface Processor {\n name: string;\n}\nexport interface ApeJournalItem {\n runDate: string;\n txnEffectiveDate?: string;\n employerAccountCode?: string;\n memberAccountCode?: string;\n accountType: string;\n transactionType?: string;\n paySubmitRefNo?: string;\n groupTransRefNo?: string;\n pacFlag?: string;\n processor?: Processor;\n specialIndicator?: string;\n agentChannel?: string;\n branch?: string;\n agentCode?: string;\n share?: number;\n commissionCode?: string;\n apeType?: string;\n apeAmount?: number;\n apeSystemAdjust?: number;\n vsfAmount?: number;\n averageAumAmount?: number;\n trailerFee?: number;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionPoolScaleService {\n constructor(private http: HttpClient) {}\n\n createScaleDetails(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/add`, params);\n }\n\n getScaleRecordList(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/list`, { params: params });\n }\n\n getPoolAccumulations(params: any): Observable {\n return this.http.get(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/list-commission-pool-accumulations`, {\n params: params,\n observe: 'response',\n responseType: 'text',\n });\n }\n\n getScaleRecordInfo(id: string): Observable {\n return this.http.get(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/info/${id}`, {\n observe: 'response',\n responseType: 'text',\n });\n }\n\n getScaleRecordCurrentInfo(commissionPoolId: string): Observable {\n return this.http.get(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/currentInfo/${commissionPoolId}`, {\n observe: 'response',\n responseType: 'text',\n });\n }\n\n editScaleInfo(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/update`, params);\n }\n\n deleteHistory(id: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-scale/delete/${id}`);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { CommissionRelatedPartiesService } from 'src/app/core/services/commission/commission-related-parties.service';\n\nimport { BasicResponse, SimpleResponse } from 'src/app/core/models/response/response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionPoolService {\n baseUrl: string = environment.apiPrefix.concat(environment.commissionServiceExt).concat('/commission-pool-agent/list-pool-agents');\n constructor(private http: HttpClient, private relatedPartiesService: CommissionRelatedPartiesService) {}\n\n selectList(params: any): Observable> {\n return this.http\n .get>(\n `${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool/list`,\n //`http://localhost:8085/commission-pool/list`\n { params: params }\n )\n .pipe(\n map(res => {\n if (res && res.data && res.result == 0) {\n if (res.data.content) {\n const content: any[] = res.data.content;\n content.forEach(item => {\n if (item.commissionPoolCustomers) {\n const filterParams = {\n limit: 10,\n accountCode: params.accountCode,\n accountName: params.accountName,\n currentEffective: params.currentEffective,\n };\n const list: any[] = item.commissionPoolCustomers;\n item.commissionPoolCustomers = this.relatedPartiesService.convertList(list, filterParams).list;\n }\n });\n res.data.content = content;\n }\n }\n return res;\n })\n );\n }\n // https://eas-hk-dev-api.ap.manulife.com/ext/eb-ssms/commission-service/commission-scale/list?page=1&size=10\n // https://eas-hk-dev-api.ap.manulife.com/ext/eb-ssms/commission-service/commission-scale/list?page=0&size=20\n\n deleteById(id: string): Observable {\n return this.http.get(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool/delete/${id}`);\n }\n\n getById(scaleId: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool/info/${scaleId}`);\n }\n\n saveOrUpdate(id: string, params: any): Observable {\n if (id) {\n return this.http.post(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool/update/${id}`, params);\n } else {\n return this.http.post(environment.apiPrefix.concat(environment.commissionServiceExt).concat('/commission-pool/add'), params);\n }\n }\n\n addSeparateCommissionPool(params: any): Observable {\n return this.http.post(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool/add-separate-pool`, params);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { AccountTypes, AccountType } from 'src/app/core/models/enum/account-type.enum';\nimport { str2Obj } from 'src/app/utils/utils';\nimport Big from 'big.js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionRelatedPartiesService {\n accountTypes = new Map();\n constructor(private http: HttpClient) {\n AccountTypes.forEach(item => {\n this.accountTypes.set(item.value, item.label);\n });\n }\n\n addRelatedParties(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-related-parties/add`, params);\n }\n\n editRelatedParties(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-related-parties/update`, params);\n }\n\n list(params: any): Observable {\n return this.http.get(\n `${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-related-parties/list`,\n //`http://localhost:8085/commission-pool-related-parties/list`\n {\n params: params,\n observe: 'response',\n responseType: 'text',\n }\n );\n }\n\n searchRelatedParties(params: any): Observable> {\n return this.http\n .get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-pool-related-parties/searchRelatedParties`, {\n params: params,\n })\n .pipe(\n map(res => {\n let accounts: any[] = [];\n if (res && res.data && res.data.length > 0) {\n accounts = res.data;\n const filterArrs = [\n AccountType.MPF_EER,\n AccountType.MPF_EEC,\n AccountType.CPF_EE,\n AccountType.ORSO_EE,\n AccountType.MACAU_PPS_EE,\n AccountType.MACAU_CPF_EE,\n ];\n accounts = accounts.filter(item => filterArrs.indexOf(item.accountType) == -1);\n accounts.forEach(item => {\n item.accountTypeStr = this.accountTypes.get(item.accountType);\n });\n }\n const data = {\n accounts: accounts,\n queryPara: params.queryPara,\n };\n res.data = data;\n return res;\n })\n );\n }\n\n typesValidateAdd(commissionPoolId: string, addType: string, summaryInfo: any): Promise {\n const params = { commissionPoolId: commissionPoolId };\n return new Promise(resolve => {\n const canAddAccountTypes = [AccountType.MPF_ER, AccountType.ORSO_ER];\n // const disableAccountTypes = [AccountType.MPF_SEP,AccountType.MPF_SEP_AGENT,AccountType.MACAU_PPS_ER,AccountType.MACAU_CPF_ER];\n if (summaryInfo.waiveMonthlyBonus && canAddAccountTypes.indexOf(addType as any) == -1) {\n resolve({\n validate: false,\n msg: 'Claw Back / Waive Bonus is Y, Only MPF-ER & ORSO-ER can add',\n });\n } else {\n const errorMsg = 'Only MPF-ER, MPF-SEP, MPF-SEP AGENT, ORSO-ER, MACAU-ER(PPS), MACAU-ER(CPF) are allowed to be grouped in one Pool';\n // const unGroupedAccounts = [AccountType.MPF_TVC, AccountType.MPF_PAP, AccountType.MPF_FRC];\n const groupedAccounts = [\n AccountType.MPF_ER,\n AccountType.MPF_SEP,\n AccountType.MPF_SEP_AGENT,\n AccountType.ORSO_ER,\n AccountType.MACAU_PPS_ER,\n AccountType.MACAU_CPF_ER,\n ];\n if (groupedAccounts.indexOf(addType as any) == -1) {\n resolve({\n validate: false,\n msg: errorMsg,\n });\n }\n this.getRelatedList(params).then(res => {\n let list: any[] = res.list;\n list = list.filter(item => item.active);\n let hasUnGroupedAccount = false;\n let isAllMacauPPS = true;\n let hasRelatedParties = false;\n list.forEach(item => {\n hasRelatedParties = true;\n if (groupedAccounts.indexOf(item.accountType) == -1) {\n hasUnGroupedAccount = true;\n }\n if (item.accountType !== AccountType.MACAU_PPS_ER) {\n isAllMacauPPS = false;\n }\n });\n\n if ((hasRelatedParties && isAllMacauPPS && addType !== AccountType.MACAU_PPS_ER) || (!isAllMacauPPS && addType === AccountType.MACAU_PPS_ER)) {\n resolve({\n validate: false,\n msg: 'MACAU-ER(PPS) is only allowed to be grouped with same account type',\n });\n }\n if (hasUnGroupedAccount) {\n resolve({\n validate: false,\n msg: errorMsg,\n });\n }\n resolve({\n validate: true,\n });\n });\n }\n });\n }\n\n typesValidate(commissionPoolId: string, typeStr: string): Promise {\n const params = { commissionPoolId: commissionPoolId };\n return new Promise(resolve => {\n this.getRelatedList(params).then(res => {\n let list: any[] = res.list;\n list = list.filter(item => item.active);\n list.forEach(item => {\n // if (typeStr == 'fcMonthNotEdit') {\n // const allowEditScenario = [\n // AccountType.MPF_ER,\n // AccountType.ORSO_ER,\n // AccountType.MACAU_PPS_ER,\n // AccountType.MPF_SEP,\n // AccountType.MPF_TVC,\n // AccountType.MACAU_CPF_ER,\n // AccountType.MACAU_IVC,\n // ];\n // if (allowEditScenario.indexOf(item.accountType) === -1) {\n // resolve({\n // validate: false,\n // msg: 'Not allow to edit “First Contribution month” if the account type is MPF-FRC, MPF-PAP, MACAU-PAP',\n // });\n // }\n // }\n if (typeStr == 'frozen') {\n const notAllowEditScenario = [AccountType.MPF_PAP, AccountType.MACAU_PAP];\n if (notAllowEditScenario.indexOf(item.accountType) !== -1) {\n resolve({\n validate: false,\n msg: 'Account Type: MPF-PAP/MACAU-PAP aren’t allowed to tick the Frozen',\n });\n }\n }\n if (typeStr == 'wmBonus') {\n const canAddAccountTypes = [AccountType.MPF_ER, AccountType.ORSO_ER, AccountType.MPF_TVC];\n if (canAddAccountTypes.indexOf(item.accountType) == -1) {\n resolve({\n validate: false,\n msg: 'Claw Back / Waive Bonus is Y, but not MPF-ER / ORSO-ER/ MPF-TVC case in this commission pool.',\n });\n }\n }\n });\n resolve({\n validate: true,\n relatedParties: list,\n });\n });\n });\n }\n\n async getRelatedList(params: any): Promise {\n return new Promise(resolve => {\n this.list(params).subscribe(res => {\n const resp = str2Obj(res.body, ['contAdjPend']);\n let dataSource: any[] = [];\n let lastUpdateTime = '';\n let lastUpdateBy = '';\n if (resp && resp.result == 0 && resp.data && resp.data.content) {\n const content: any[] = resp.data.content;\n const convert = this.convertList(content, null);\n dataSource = convert.list;\n lastUpdateTime = convert.lastUpdateTime;\n lastUpdateBy = convert.lastUpdateBy;\n }\n resolve({\n list: dataSource,\n number: resp?.data?.number,\n totalPages: resp?.data?.totalPages,\n lastUpdateTime: lastUpdateTime,\n lastUpdateBy: lastUpdateBy,\n });\n });\n });\n }\n\n convertList(content: any[], params: any): any {\n if (!content) {\n return {\n list: [],\n lastUpdateTime: '',\n lastUpdateBy: '',\n };\n }\n const dataSource: any[] = [];\n let lastUpdateTime = '';\n let lastUpdateBy = '';\n\n content.forEach(item => {\n const i: any = {\n mainParty: '',\n id: item.id,\n accountCode: '',\n customerId: '',\n customerType: '',\n accountType: '',\n accountName: '',\n customerStatus: '',\n servicingAgents: '',\n rejoin: false,\n contAdjPend: '0.0',\n offset: '0.00',\n earlyBenefitStartDate: '',\n earlyBirdBonusSignal: '',\n lastDate: '',\n active: false,\n };\n i.id = item.id;\n i.mainParty = item.mainParty;\n i.accountCode = item.accountCode;\n i.customerId = item.customerId;\n i.customerType = item.customerType;\n i.accountType = item.accountType;\n i.accountTypeStr = this.accountTypes.get(item.accountType);\n i.accountName = item.accountName;\n i.customerStatus = item.customerStatus;\n i.commencementDate = item.commencementDate;\n i.rejoin = item.rejoinIntraGroup;\n i.isRejoinDisable = item.rejoinIntraGroup;\n i.servicingAgents = item.servicingAgents;\n i.earlyBenefitStartDate = item.earlyBenefitStartDate;\n i.earlyBirdBonusSignal = item.earlyBirdBonusSignal;\n i.contAdjPend = item.contAdjPend ? new Big(item.contAdjPend).toFixed(2) : parseFloat('0').toFixed(2);\n i.contAdjPendEdit = i.accountType && i.accountType.indexOf(AccountType.MPF_ER) !== -1 ? true : false;\n i.offset = item.offset ? parseFloat(item.offset).toFixed(2) : '0.00';\n i.active = item.active;\n i.lastDate = !item.active ? item.lastUpdateTime : '';\n i.firstContributionDate = item.firstContributionDate;\n i.firstPcReleaseDate = item.firstPcReleaseDate;\n i.sysAdjustmentDate = item.sysAdjustmentDate;\n i.sysAdjustmentFlag = item.sysAdjustmentFlag;\n i.apeDependAccount = item.apeDependAccount;\n if (item.createBy && item.createTime) {\n const t2 = new Date(item.createTime).getTime();\n if (!lastUpdateTime) {\n lastUpdateTime = item.createTime;\n lastUpdateBy = item.createBy.name;\n } else {\n const t = new Date(lastUpdateTime).getTime();\n if (t2 > t) {\n lastUpdateTime = item.createTime;\n lastUpdateBy = item.createBy.name;\n }\n }\n }\n\n if (item.lastUpdateTime && item.lastUpdateBy) {\n const t2 = new Date(item.lastUpdateTime).getTime();\n if (!lastUpdateTime) {\n lastUpdateTime = item.lastUpdateTime;\n lastUpdateBy = item.lastUpdateBy.name;\n } else {\n const t = new Date(lastUpdateTime).getTime();\n if (t2 > t) {\n lastUpdateTime = item.lastUpdateTime;\n lastUpdateBy = item.lastUpdateBy.name;\n }\n }\n }\n let b = true;\n if (params) {\n if (params.currentEffective && i.lastDate) {\n b = false;\n }\n if (params.accountCode && i.accountCode && i.accountCode.toLowerCase().indexOf(params.accountCode.toLowerCase()) == -1) {\n b = false;\n }\n if (params.accountName && i.accountName && i.accountName.toLowerCase().indexOf(params.accountName.toLowerCase()) == -1) {\n b = false;\n }\n if (params.limit > 0 && dataSource.length >= params.limit) {\n b = false;\n }\n if (b) {\n dataSource.push(i);\n }\n } else {\n dataSource.push(i);\n }\n\n // if ('MPF_EER,MPF_EEC,CPF_EE,ORSO_EE'.indexOf(i.accountType) == -1) {\n //\n // }\n });\n return {\n list: dataSource,\n lastUpdateTime: lastUpdateTime,\n lastUpdateBy: lastUpdateBy,\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse, IPageResponse } from 'src/app/core/models/response/response';\nimport { BreakpointType, CalculationType, ScalePattern, ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionScaleService {\n constructor(private http: HttpClient) {}\n\n selectList(params: any): Observable>> {\n return this.http.get>(environment.apiPrefix.concat(environment.commissionServiceExt).concat('/commission-scale/list'), {\n params: params,\n });\n }\n\n getById2(scaleId: string) {\n const url = `${environment.apiPrefix}${environment.commissionServiceExt}/commission-scale/info/${scaleId}`;\n return this.http.get(url, {\n observe: 'response',\n responseType: 'text',\n });\n }\n\n saveOrUpdate(id: string | undefined, params: any): Observable> {\n if (id) {\n return this.updateScale(id, params);\n }\n return this.saveScale(params);\n }\n\n saveScale(params: any): Observable> {\n return this.http.post>(environment.apiPrefix.concat(environment.commissionServiceExt).concat('/commission-scale/add'), params);\n }\n\n updateScale(id: string, params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-scale/update/${id}`, params);\n }\n}\n\nexport interface ScaleCodeListItem {\n id: string;\n scaleCode: string;\n calculationType: CalculationType;\n breakpointType: BreakpointType;\n scalePattern: ScalePattern;\n scaleType: ScaleType;\n crfRate: number;\n status: string;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse, IPageResponse } from 'src/app/core/models/response/response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SchemeMasterService {\n constructor(private http: HttpClient) {}\n\n selectList(params: any): Observable>> {\n return this.http.get>>(\n environment.apiPrefix.concat(environment.commissionServiceExt).concat('/scheme-master/list'),\n { params: params }\n );\n }\n\n getById(id: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/scheme-master/info/${id}`);\n }\n\n update(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/scheme-master/update`, params);\n }\n\n save(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/scheme-master/add`, params);\n }\n}\n\nexport interface SchemeMasterListItem {\n id: string;\n name: string;\n registrationNo: string;\n schemeCode: string;\n type: string;\n schemeNo: string;\n status: string;\n currentInflation: SalaryInflation;\n}\n\nexport interface SalaryInflation {\n id: string;\n financialStartDateHkt: string;\n salaryInflationFactor: string | number;\n status: string;\n}\n\nexport interface SchemeMaster extends SchemeMasterListItem {\n currentInflation: SalaryInflationDetail;\n nextInflation: SalaryInflationDetail;\n createTime: string;\n lastUpdateTime: string;\n version: number;\n}\n\nexport interface SalaryInflationDetail extends SalaryInflation {\n createTime: string;\n version: number;\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConsoleToogleServiceService {\n constructor() {}\n\n disableConsoleInProduction(): void {\n console.log(environment.profile);\n if (environment.profile == 'uat' || environment.profile == 'prod') {\n console.log = function (): void {};\n console.debug = function (): void {};\n console.warn = function (): void {};\n console.info = function (): void {};\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EmpfAppStatusService {\n constructor() {}\n\n getEmpfAppStatusInfo(val: number) {\n return EMPF_APP_STATUS.find(item => item.value === val);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BasicResponse } from '../../models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { HighRiskFileType } from 'src/app/views/high-risk-file-upload-center/high-risk-file-upload-center.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighRiskFileUploadCenterService {\n constructor(private http: HttpClient) {}\n\n uploadFile(file: File, fileType: HighRiskFileType) {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post>(`${environment.apiPrefix}/ext/eb-ssms/reporting-service/aml-high-risk-list/upload`, formData, {\n params: { fileType },\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IFF_STATUS } from 'src/app/config/iff-status.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IffStatusService {\n constructor() {}\n\n getIFFStatusInfo(val: number) {\n return IFF_STATUS.find(item => item.value === val);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AdminHeaderConfig } from 'src/app/views/layout/admin-layout/admin-header/admin-header-config';\nimport { Router } from '@angular/router';\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutHeaderService {\n private title = new BehaviorSubject('');\n\n componentSource = new Subject();\n isShowButton = new Subject();\n isShowBackButton = new Subject();\n backButtonText = new Subject();\n buttonText = new Subject();\n iconType = new Subject();\n backUrl = '';\n detailText = new Subject();\n private fun: () => void | null = () => {};\n private backfun: () => void | null = () => {};\n constructor(public router: Router) {}\n\n setTitle(title: string): void {\n this.title.next(title);\n }\n\n getTitle(): BehaviorSubject {\n return this.title;\n }\n\n setHeaderButton(params: AdminHeaderConfig): void {\n if (params.rightButton?.method) {\n this.fun = params.rightButton.method;\n }\n if (params.backButton?.method) {\n this.backfun = params.backButton.method;\n }\n if (params.backButton?.url) {\n this.backUrl = params.backButton.url;\n this.isShowBackButton.next(true);\n this.backButtonText.next(params.backButton.text ?? '');\n }\n\n this.isShowButton.next(params.rightButton ? true : false);\n this.buttonText.next(params.rightButton?.text ?? '');\n this.iconType.next(params.rightButton?.icon?.type ?? '');\n this.title.next(params.title ?? '');\n this.detailText.next(params.titleDetail ?? '');\n }\n\n doHidenBackButton() {\n this.isShowBackButton.next(false);\n }\n\n doButtonMethod(): void {\n this.fun();\n }\n doBackButtonMethod(): void {\n if (this.backUrl !== '#') {\n this.router.navigate([this.backUrl]);\n } else {\n this.backfun();\n }\n //init\n this.isShowBackButton.next(false);\n this.detailText.next('');\n this.isShowButton.next(false);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotifyService {\n private hideNavigationLang = new Subject();\n screenLoadingSubject = new Subject();\n\n getHideNavigationLang() {\n return this.hideNavigationLang;\n }\n\n notifyHideNavigationLang() {\n this.hideNavigationLang.next(true);\n }\n\n notifyDisplayNavigationLang() {\n this.hideNavigationLang.next(false);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from '../../models/response/response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OtpService {\n constructor(private http: HttpClient) {}\n\n login(params: any): Observable> {\n return this.http.post>(environment.apiPrefix.concat(environment.manutouchServiceInt).concat('/authority/login'), params);\n }\n\n requestOTP(params: any): Observable> {\n return this.http.post>(environment.apiPrefix.concat(environment.manutouchServiceInt).concat('/authority/otp/request'), params);\n }\n\n verifyOTP(params: any): Observable> {\n return this.http.post>(environment.apiPrefix.concat(environment.manutouchServiceInt).concat('/authority/otp/verify'), params);\n }\n}\n","import { deepCopy } from 'src/app/utils/copy';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { MENUS } from 'src/app/config/menu.config';\nimport { PermissionAccess } from '../models/enum/permission.enum';\nimport { Item, Menu } from '../models/menu';\nimport { Session } from '../models/user';\nimport { AuthenticationService } from './authentication.service';\nimport { Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionService {\n constructor(private authService: AuthenticationService, private router: Router) {}\n\n menuFilter(menus: any[]) {\n const menuExclusion: string[] = environment.menuExclusion;\n const filterMenus: any[] = [];\n if (menus.length > 0) {\n menus.forEach(item => {\n if (item.subMenu && item.subMenu.length > 0) {\n item.subMenu = this.menuFilter(item.subMenu);\n }\n if ((!item.id && !item.subLink) || (item.id && !menuExclusion.includes(item.id) && item.subMenu.length > 0)) {\n filterMenus.push(item);\n }\n if (item.subLink && !menuExclusion.includes(item.subLink)) {\n filterMenus.push(item);\n }\n });\n }\n return filterMenus;\n }\n\n getMenuExclusions() {\n const menuExclusions: string[] = environment.menuExclusion;\n menuExclusions.forEach(menuExclusion => {\n MENUS.forEach(menu => {\n if (menuExclusion == menu.id) {\n menu.subMenu?.forEach(subMenu => {\n if (subMenu.subLink) menuExclusions.push(subMenu.subLink);\n });\n }\n });\n });\n return menuExclusions;\n }\n /**\n * init menus\n * @returns Promise\n */\n async initMenu(): Promise {\n return new Promise(resolve => {\n this.getUserInfo().then(userInfo => {\n const _MENUS: Menu[] = this.menuFilter(deepCopy(MENUS));\n _MENUS.forEach(m => {\n const subMenu: Item[] = [];\n m.subMenu?.forEach(sm => {\n this.router.config.forEach(route => {\n const pre = (route.path == '' ? '' : '/') + route.path;\n route.children?.forEach(c => {\n let tempPath = c.path;\n let smPath = sm.subLink;\n if (smPath?.indexOf('?') !== -1) {\n smPath = smPath?.substring(0, smPath.lastIndexOf('?'));\n }\n if (tempPath?.indexOf(':') !== -1) {\n const re = new RegExp('\\\\/\\\\:\\\\w+', 'g');\n tempPath = tempPath?.replace(re, '');\n }\n const path = pre + (tempPath == '' ? '' : '/') + tempPath;\n if (smPath == path) {\n const has = this.permissionFilter(c.data?.['roles'], userInfo);\n if (has) {\n subMenu.push(sm);\n }\n }\n });\n });\n });\n m.subMenu = subMenu;\n });\n const _menus = _MENUS.filter(m => (m.subMenu ? m.subMenu?.length > 0 : false));\n resolve(_menus);\n });\n });\n }\n\n /**\n * Judge whether there is permission\n * @param roles expect value\n * @param userInfo user login info\n * @returns Promise\n */\n hasPermission(role: string, permission: string): Promise {\n const roles = { [permission]: role };\n return new Promise(resolve => {\n this.getUserInfo().then((userInfo: Session) => {\n resolve(this.permissionFilter(roles, userInfo));\n });\n });\n }\n\n /**\n * getUserInfo\n * @returns userInfo\n */\n async getUserInfo(): Promise {\n return this.authService.currentUserValue();\n }\n\n /**\n * Check permissions, userInfo you can call getUserInfo()\n * @param roles expect value\n * @param userInfo user login info\n * @returns boolean\n */\n permissionFilter(roles: object, userInfo: Session): boolean {\n // if page not set permission,page will show\n if (!roles) {\n return true;\n }\n if (!userInfo || !userInfo.permissions) {\n return false;\n }\n\n let flag = false;\n const userAccess = new Map(Object.entries(userInfo.permissions));\n Object.entries(roles).forEach(([role, permission]) => {\n switch (permission as unknown as keyof typeof PermissionAccess) {\n case PermissionAccess.R:\n flag = flag || this.hasR(userAccess.get(role));\n break;\n case PermissionAccess.W:\n flag = flag || this.hasW(userAccess.get(role));\n break;\n case PermissionAccess.E:\n flag = flag || this.hasE(userAccess.get(role));\n break;\n }\n });\n return flag;\n }\n\n /**\n * Check permissions, with no need to get userInfo\n * @param roles expect value\n * @returns Promise\n */\n async permissionFilterAsync(roles: object): Promise {\n const userInfo = await this.getUserInfo();\n return this.permissionFilter(roles, userInfo);\n }\n\n hasR(role: string): boolean {\n return this.hasW(role) || role == PermissionAccess.R;\n }\n\n hasW(role: string): boolean {\n return this.hasE(role) || role == PermissionAccess.W;\n }\n\n hasE(role: string): boolean {\n return role == PermissionAccess.E;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { deepCopy } from 'src/app/utils/copy';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from '../models/response/response';\nimport { ReportExtraction } from 'src/app/views/report-center/report-extraction/report-extraction';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReportExtractionService {\n private fundContributionUurl = `${environment.apiPrefix}/ext/eb-ssms/reporting-service/api/v1/fund-contribution/`;\n private fundBalanceUrl = this.fundContributionUurl + 'fundBalance';\n private contributionHistoryUrl = this.fundContributionUurl + 'contribution-history';\n private certListUrl = this.fundContributionUurl + 'cert-list';\n private estimatedEmployeeyUrl = this.fundContributionUurl + 'estimated-employee';\n constructor(private http: HttpClient) {}\n\n getReport(params: ReportExtraction): Observable> {\n let url = '';\n switch (params.extractionType) {\n case 'FUND_BALANCE':\n url = this.fundBalanceUrl;\n break;\n case 'CONTRIBUTION_HISTORY':\n url = this.contributionHistoryUrl;\n break;\n case 'CERT_LIST':\n url = this.certListUrl;\n break;\n case 'ESTIMATED_EMPLOYEE':\n url = this.estimatedEmployeeyUrl;\n break;\n }\n\n const requestParams = deepCopy(params);\n delete requestParams.extractionType;\n\n // return this.http.get>(url, {\n // params: filterParams(requestParams),\n // });\n\n return this.http.post>(url, requestParams);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from '../models/response/response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReportingRoleServiceService {\n constructor(private http: HttpClient) {}\n\n getRoles(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.identityServiceExt}/report/role/list`, {\n params: params,\n });\n }\n\n createRole(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.identityServiceExt}/report/role/create`, params);\n }\n\n getRoleInfo(roleId: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.identityServiceExt}/role/query/${roleId}`);\n }\n\n updateRoleInfo(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.identityServiceExt}/report/role/update`, params);\n }\n\n deleteRole(roleId: string): Observable> {\n return this.http.delete>(`${environment.apiPrefix}${environment.identityServiceExt}/role/delete/${roleId}`);\n }\n\n getAclUsers(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.identityServiceExt}/user/search-all`, {\n params: params,\n });\n }\n\n addUserToRole(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.identityServiceExt}/user/assign`, params);\n }\n\n getIdentityByRoleId(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.identityServiceExt}/user/query/${params.roleId}`, {\n params: params,\n });\n }\n\n deleteUser(id: string): Observable> {\n return this.http.delete>(`${environment.apiPrefix}${environment.identityServiceExt}/user/delete/${id}`);\n }\n}\n","import { AclUserResponse } from './../models/permission';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { PermissionAccess, PermissionItem } from '../models/enum/permission.enum';\nimport { IPageableRequest } from '../models/request';\nimport { BasicResponse, PageResponse } from '../models/response/response';\nimport { IAclUserRequest, IRole, IRoleInfo, IRoleUserAssign } from '../models/role';\n\nconst filterParams = (iObj?: any): HttpParams => {\n if (iObj) {\n Object.keys(iObj).forEach(key => iObj[key] === undefined && delete iObj[key]);\n return new HttpParams({\n fromObject: iObj as any,\n });\n }\n return new HttpParams();\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleService {\n constructor(private http: HttpClient) {}\n\n private getApiPath(...strings: string[]) {\n return environment.apiPrefix.concat(environment.identityServiceExt).concat(...strings);\n }\n private getRoleApiPath(iStr: string) {\n return this.getApiPath('/role', iStr);\n }\n private getRoleUserApiPath(iStr: string) {\n return this.getApiPath('/user', iStr);\n }\n\n findAll(params: IPageableRequest): Observable> {\n return this.http.get>(this.getRoleApiPath('/list'), {\n params: filterParams(params),\n });\n }\n\n deleteById(roleId: string): Observable> {\n return this.http.delete>(this.getRoleApiPath(`/delete/${roleId}`));\n }\n\n getById(roleId: string): Observable> {\n return this.http.get>(this.getRoleApiPath(`/query/${roleId}`)).pipe(\n map(res => {\n if (res.result === 0 && !!res.data?.permissions) {\n const resMap = new Map();\n for (const [key, value] of Object.entries(res.data.permissions)) {\n const access = PermissionAccess[`${value}`.toUpperCase() as keyof typeof PermissionAccess];\n const permission = PermissionItem[`${key}`.toUpperCase() as keyof typeof PermissionItem];\n if (!!access && !!permission) {\n resMap.set(permission, access);\n }\n }\n res.data.permissions = resMap;\n }\n return res;\n })\n );\n }\n\n saveOrUpdate(params: IRoleInfo): Observable> {\n const postData: any = params;\n if (postData.permissions) {\n postData.permissions = Object.fromEntries(params.permissions);\n }\n return this.http.post>(this.getRoleApiPath(params.roleId ? '/update' : '/create'), postData);\n }\n\n searchAclUser(aclUserRequest: IAclUserRequest): Observable> {\n return this.http.get>(this.getRoleUserApiPath('/search-all'), {\n params: new HttpParams({ fromObject: aclUserRequest as any }),\n });\n }\n\n addUserToRole(iRoleUserAssign: IRoleUserAssign): Observable> {\n return this.http.post>(this.getRoleUserApiPath('/assign'), iRoleUserAssign);\n }\n\n getIdentityByRoleId(iRoleId: string, iPageableRequest: IPageableRequest): Observable> {\n return this.http.get>(this.getRoleUserApiPath(`/query/${iRoleId}`), {\n params: new HttpParams({ fromObject: iPageableRequest as any }),\n });\n }\n\n deleteByRoleUser(userRoleId: string): Observable> {\n return this.http.delete>(this.getRoleUserApiPath(`/delete/${userRoleId}`));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isLargeScreen = false;\n isSmallScreen = false;\n screenSizeChanged = new Subject();\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', () => {\n this.checkScreenSize();\n this.screenSizeChanged.next();\n });\n }\n\n private checkScreenSize() {\n this.isLargeScreen = window.innerWidth > 430;\n this.isSmallScreen = window.innerWidth <= 430;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TRANSFER_STATUS } from 'src/app/config/transfer-status.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TransferStatusService {\n constructor() {}\n\n getTransferStatusInfo(val: number) {\n return TRANSFER_STATUS.find(item => item.value === val);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BasicResponse } from '../../models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UploadCenterService {\n constructor(private http: HttpClient) {}\n\n uploadFile(file: File) {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post>(`${environment.apiPrefix}/ext/eb-ssms/agent-service/campaignList/upload`, formData);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValidateService {\n constructor(private cdHttpServeService: CdHttpServeService) {}\n\n agentValidate = (control: AbstractControl) => {\n return new Promise(resolve => {\n if (control.value === '' || control.value == undefined) {\n resolve(null);\n }\n\n if (control.value.length >= 4) {\n this.cdHttpServeService.post(`/ext/eb-ssms/customer-service/add-delegation/validate`, { agentCode: control.value }).subscribe({\n next: res => {\n if (res.result === 0) {\n resolve(null);\n }\n resolve({ invalid: true });\n },\n error: () => {\n resolve({ invalid: true });\n },\n });\n } else {\n resolve({ invalid: true });\n }\n });\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const agentCodeValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return null;\n }\n const reg = /^[0-9]{1,6}$/;\n if (!reg.test(value)) {\n return errors || { agentCodeValidator: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, FormControl, ValidationErrors } from '@angular/forms';\n\nexport const clientPhoneNumberVali = (countryCode: FormControl) => {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (typeof control.value === 'string') {\n if (['852', '853'].includes(countryCode.value)) {\n if (control.value.length === 8 && ['4', '5', '6', '7', '8', '9'].includes(control.value.substring(0, 1))) {\n return null;\n }\n }\n\n if (['86'].includes(countryCode.value)) {\n if (control.value.length === 11) {\n const e = /^1[345678]\\d{9}$/.test(control.value);\n if (e) {\n return null;\n }\n }\n }\n\n if (!['852', '853', '86'].includes(countryCode.value)) {\n return null;\n }\n }\n\n return { errorPhoneNumber: true };\n };\n};\n\nexport const atLeastOneQueryConditionValidator = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n let paramsNum = 0;\n for (const key in control.value) {\n if (Object.prototype.hasOwnProperty.call(control.value, key)) {\n const val = (control.value as any)[key];\n if (val !== undefined && val !== null && val !== '' && !(Object.prototype.toString.call(val) === '[object Array]' && val.length === 0)) {\n paramsNum++;\n }\n }\n }\n\n return paramsNum === 0 ? { atLeastOneQueryCondition: true } : null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, FormControl, ValidationErrors } from '@angular/forms';\nimport moment from 'moment';\n\nexport const dateValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const isDate = moment(control.value, 'DD/MM/YYYY', true).isValid();\n return isDate ? null : errors || { dateValidator: true };\n };\n};\n\nexport const dateRangeInCompleteValidator = (fromDateKey: string, toDateKey: string, errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const fromDate = control.get(fromDateKey) as FormControl;\n const toDate = control.get(toDateKey) as FormControl;\n if (!fromDate || !toDate) {\n return null;\n }\n if (!toDate.value && fromDate.value && fromDate.valid) {\n toDate.setValue(fromDate.value);\n }\n if (toDate.valid && toDate.value && !fromDate.value) {\n fromDate.setValue(toDate.value);\n }\n if ((!toDate.value && fromDate.value && fromDate.valid) || (toDate.valid && toDate.value && !fromDate.value)) {\n return errors || { dateRangeInCompleteValidator: true };\n }\n return null;\n };\n};\n\nexport const dateRangeInvalidValidator = (fromDateKey: string, toDateKey: string, errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const fromDate = control.get(fromDateKey) as FormControl;\n const toDate = control.get(toDateKey) as FormControl;\n if (!fromDate || !toDate) {\n return null;\n }\n if (fromDate.valid && toDate.valid && fromDate.value && toDate.value) {\n if (moment(fromDate.value, 'DD/MM/YYYY') > moment(toDate.value, 'DD/MM/YYYY')) {\n return errors || { dateRangeInvalidValidator: true };\n }\n }\n return null;\n };\n};\n\nexport const compareTime = (time1: string, time2: string) => {\n const [hours1, minutes1] = time1.split(':').map(Number);\n const [hours2, minutes2] = time2.split(':').map(Number);\n\n const totalMinutes1 = hours1 * 60 + minutes1;\n const totalMinutes2 = hours2 * 60 + minutes2;\n\n if (totalMinutes1 < totalMinutes2) {\n return -1;\n } else if (totalMinutes1 > totalMinutes2) {\n return 1;\n } else {\n return 0;\n }\n};\n\nexport const datetimeRangeInvalidValidator = (fromDateKey: string, toDateKey: string, fromTimeKey: string, toTimeKey: string, errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const fromDate = control.get(fromDateKey) as FormControl;\n const toDate = control.get(toDateKey) as FormControl;\n if (toDate.errors) {\n if (fromDate.errors && fromDate.errors['dateError']) {\n fromDate.setErrors(null);\n }\n return null;\n }\n if (fromDate.errors && !fromDate.errors['dateError']) {\n return null;\n }\n if (moment(fromDate.value, 'DD/MM/YYYY') > moment(toDate.value, 'DD/MM/YYYY')) {\n fromDate.setErrors(errors || null);\n } else if (moment(fromDate.value, 'DD/MM/YYYY').isSame(moment(toDate.value, 'DD/MM/YYYY'), 'day')) {\n fromDate.setErrors(null);\n const fromTime = control.get(fromTimeKey) as FormControl;\n const toTime = control.get(toTimeKey) as FormControl;\n if (fromTime.value && toTime.value) {\n const comparison = compareTime(fromTime.value, toTime.value);\n if (comparison !== -1) {\n fromDate.setErrors(errors || null);\n }\n }\n } else if (moment(fromDate.value, 'DD/MM/YYYY') < moment(toDate.value, 'DD/MM/YYYY')) {\n fromDate.setErrors(null);\n }\n return null;\n };\n};\n\nexport const addMinutesToTime = (time: string, minutesToAdd: number) => {\n const [hours, minutes] = time.split(':').map(Number);\n const totalMinutes = hours * 60 + minutes + minutesToAdd;\n\n const newHours = Math.floor(totalMinutes / 60) % 24;\n const newMinutes = totalMinutes % 60;\n\n const newTime = `${String(newHours).padStart(2, '0')}:${String(newMinutes).padStart(2, '0')}`;\n\n return newTime;\n};\n\nexport const isSameOrAfterToday = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const date = moment(control.value, 'DD/MM/YYYY', true);\n const today = moment().startOf('day');\n return date.isSameOrAfter(today) ? null : errors || { dateValidator: true };\n };\n};\n\nexport const isSameOrBeforeToday = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const date = moment(control.value, 'DD/MM/YYYY', true);\n const today = moment().endOf('day');\n return date.isSameOrBefore(today) ? null : errors || { dateValidator: true };\n };\n};\n","export * from './agent.validator';\nexport * from './date.validator';\nexport * from './number.validator';\nexport * from './scale-code-async.validator';\nexport * from './required.validator';\nexport * from './uuid.validator';\nexport * from './white-space.validator';\nexport * from './letter-number.validator';\nexport * from './journal.validator';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, FormControl, ValidationErrors } from '@angular/forms';\n\nexport const journalValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const accountType = control.get('accountType') as FormControl;\n const originalErMerCode = control.get('originalErMerCode') as FormControl;\n if (!accountType.value && originalErMerCode.value) {\n return errors || { journalValidator: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const letterAndNumberValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return null;\n }\n const reg = /^[a-zA-Z0-9]+$/; // eslint-disable-line\n if (!reg.test(value)) {\n return errors || { letterAndNumberValidator: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const numberValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return null;\n }\n const reg = /^[0-9]+$/; // eslint-disable-line\n if (!reg.test(value)) {\n return errors || { numberValidator: true };\n }\n return null;\n };\n};\n\nexport const demicalValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return null;\n }\n const reg = /^-?[1-9]*(\\.\\d*)?$|^-?0(\\.\\d*)?$/; // eslint-disable-line\n if (!reg.test(value)) {\n return errors || { demicalValidator: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const requiredValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.dirty) {\n return null;\n }\n const value = control.value?.trim();\n if (!value) {\n return errors || { required: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, AsyncValidator, ValidationErrors } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\n\nimport { CommissionScaleService } from 'src/app/core/services/commission/commission-scale.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ScaleCodeAsyncValidator implements AsyncValidator {\n constructor(private commissionScaleService: CommissionScaleService) {}\n\n validate(control: AbstractControl): Observable {\n const value = control.value?.trim();\n if (!value || !control.dirty) {\n return of(null);\n }\n if (value === 'NOCOMM') {\n return of(null);\n }\n const searchForm = {\n page: 0,\n size: 1,\n scaleCodeSpecify: value,\n };\n return this.commissionScaleService.selectList(searchForm).pipe(\n map(res => {\n if (res.data && res.data.content && res.data.content.length) {\n return null;\n }\n return { error: 'commission.common.scaleCode.invalid' };\n }),\n catchError(() => of(null))\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const uuidValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return null;\n }\n const reg = /^[a-zA-Z0-9\\-]+$/; // eslint-disable-line\n if (!reg.test(value)) {\n return errors || { uuidValidator: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const whitespaceValidator = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n const input = control.value || '';\n const trimInput = input.trim();\n const isValid = trimInput.length !== 0 && input == trimInput;\n return isValid ? null : { whitespaceValidator: true };\n };\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { WelcomeComponent } from './views/welcome/welcome.component';\n\nimport { ScreenCheckService } from './views/agent/screen-check/screen-check.service';\nimport { AdminLayoutComponent } from './views/layout/admin-layout/admin-layout.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'user/login', pathMatch: 'full' },\n {\n path: 'home',\n component: AdminLayoutComponent,\n children: [\n { path: 'welcome', component: WelcomeComponent },\n { path: '', component: WelcomeComponent },\n ],\n },\n {\n path: 'user',\n loadChildren: () => import('./views/user/user.module').then(m => m.UserModule),\n },\n {\n path: 'error',\n loadChildren: () => import('./views/error/error.module').then(m => m.ErrorModule),\n },\n {\n path: 'success',\n loadChildren: () => import('./views/success/success.module').then(m => m.SuccessModule),\n },\n {\n path: 'agent',\n canLoad: [ScreenCheckService],\n loadChildren: () => import('./views/agent/agent.module').then(m => m.AgentModule),\n },\n // {\n // path: 'system',\n // loadChildren: () => import('./views/system/system.module').then(m => m.SystemModule),\n // },\n {\n path: 'chatbot',\n loadChildren: () => import('./views/chatbot/angent/angent.module').then(m => m.AngentModule),\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { anchorScrolling: 'enabled' })],\n exports: [RouterModule],\n providers: [ScreenCheckService],\n})\nexport class RoutesRoutingModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\n@Component({\n selector: 'app-alert-popup',\n templateUrl: './alert-popup.component.html',\n styleUrls: ['./alert-popup.component.scss'],\n})\nexport class AlertPopupComponent {\n disagreeButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n agreeButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n buttonName: string;\n params: any;\n }\n ) {\n if (data.params) this.params = data.params;\n }\n params = {};\n\n close() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n {{ data.title | lang : params }}\n \n
\n
\n \n {{ 'common.close' | lang | titlecase }}\n {{ data.buttonName | lang }}\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\n\nimport { AlertPopupComponent } from './alert-popup.component';\n\n@NgModule({\n imports: [CommonModule, CdsPopupModule, CdsLanguageModule, CdsButtonModule],\n declarations: [AlertPopupComponent],\n exports: [AlertPopupComponent],\n})\nexport class AlertPopupModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { map, Observable, startWith } from 'rxjs';\n\n@Component({\n selector: 'app-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n})\nexport class AutocompleteComponent implements OnInit, AfterViewInit {\n @Input() group!: FormGroup;\n @Input() control: any;\n @Input()\n set nullable(value: boolean) {\n this._nullable = value;\n }\n get nullable() {\n return this._nullable;\n }\n\n @Input()\n set locked(value: boolean) {\n this._locked = value;\n }\n get locked() {\n return this._locked;\n }\n\n @Input()\n set disabled(value: boolean) {\n this._disabled = value;\n }\n get disabled() {\n return this._disabled;\n }\n\n @Input()\n set fieldErrMsg(value: any) {\n this._fieldErrMsg = value;\n }\n get fieldErrMsg() {\n return this._fieldErrMsg;\n }\n\n @Input()\n set controlName(value: string) {\n this._controlName = value;\n }\n get controlName() {\n return this._controlName;\n }\n\n @Input()\n set selectOptions(dataSource: Array | Observable) {\n this.GetControl().patchValue(this.GetControl().value);\n if (dataSource instanceof Observable) {\n dataSource.subscribe(result => {\n this._originalList = result;\n this.filterList = this.GetControl().valueChanges.pipe(\n startWith(''),\n map(name => this._filter(this._originalList, name))\n );\n });\n } else {\n this._originalList = dataSource;\n this.filterList = this.GetControl().valueChanges.pipe(\n startWith(''),\n map(name => this._filter(this._originalList, name))\n );\n }\n }\n\n @Output() valueChange = new EventEmitter();\n\n @ViewChild('inputBox') inputBox!: ElementRef;\n icon = 'action:button_down';\n filterList!: Observable;\n\n /**label & placeholder */\n controlLabel = '';\n controlPlaceholder = '';\n\n constructor(private langService: CdsLangService) {}\n\n private _originalList: CdsOption[] = [];\n private _nullable = true;\n private _locked = false;\n private _disabled = false;\n private _fieldErrMsg = '';\n private _controlName = '';\n\n private GetControl() {\n return this.group.controls[this.controlName];\n }\n\n private _filter(optionSource: CdsOption[], value: string) {\n const filterObj = optionSource.find(x => x.value === value);\n if (filterObj) return [filterObj];\n return optionSource.filter(x => this.langService.translate(x.label).toLowerCase().includes(value?.toLowerCase()));\n }\n\n ngOnInit(): void {\n this.controlLabel = this.control.label;\n this.controlPlaceholder = this.control.placeholder;\n }\n\n ngAfterViewInit(): void {\n if (this.inputBox && this.inputBox.nativeElement) {\n this.inputBox.nativeElement.oninput = () => {\n this.valueChange.emit(this.inputBox.nativeElement.value);\n };\n }\n }\n\n displayFn(value: any) {\n const filterObj = this._originalList?.find(x => x.value === value);\n if (filterObj) return this.langService.translate(filterObj.label);\n return value;\n }\n\n optionSelected(event: any) {\n this.valueChange.emit(event.option.value);\n }\n\n iconClick() {\n if (this.icon === 'action:button_down') {\n this.icon = 'action:button_up';\n //trigger panel open event\n if (this.inputBox && this.inputBox.nativeElement) {\n this.inputBox.nativeElement.focus();\n }\n } else {\n this.icon = 'action:button_down';\n }\n }\n\n clearInput() {\n this.icon = 'action:button_down';\n this.GetControl().patchValue('');\n this.GetControl().markAsTouched();\n this.valueChange.emit('');\n }\n}\n","
\n
\n {{ controlLabel | lang }}\n *\n
\n
\n \n \n \n {{ option.label | lang }}\n \n \n {{ fieldErrMsg }}\n \n \n \n
\n
\n","import { Directive, OnDestroy } from '@angular/core';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\n\n@Directive({\n selector: '[appAutocompletePosition]',\n exportAs: 'appAutocompletePosition',\n})\nexport class AutocompletePositionDirective implements OnDestroy {\n public constructor(private readonly matAutocompleteTrigger: MatAutocompleteTrigger) {\n window.addEventListener('scroll', this.scrollEvent, true);\n }\n\n public ngOnDestroy(): void {\n window.removeEventListener('scroll', this.scrollEvent, true);\n }\n\n private scrollEvent = (): void => {\n if (this.matAutocompleteTrigger == null) {\n return;\n }\n if (this.matAutocompleteTrigger.panelOpen) {\n this.matAutocompleteTrigger.updatePosition();\n }\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { AutocompleteComponent } from './autocomplate.component';\nimport { AutocompletePositionDirective } from './autocomplete-position';\n\n@NgModule({\n declarations: [AutocompletePositionDirective, AutocompleteComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MatAutocompleteModule, CdsAssistiveTextModule, CdsLanguageModule, CdsIconModule],\n exports: [AutocompletePositionDirective, AutocompleteComponent],\n})\nexport class AutocompleteModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-back-top',\n templateUrl: './back-top.component.html',\n styleUrls: ['./back-top.component.scss'],\n})\nexport class BackTopComponent implements OnInit {\n constructor() {}\n\n config: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n ngOnInit(): void {}\n\n backTop() {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTop = 0;\n }\n}\n","
\n
\n \n
\n
\n","import { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackTopComponent } from './back-top.component';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\n@NgModule({\n declarations: [BackTopComponent],\n imports: [CommonModule, CdsLanguageModule, CdsButtonModule],\n exports: [BackTopComponent],\n})\nexport class BackTopModule {}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\n\n@Directive({\n selector: '[appCdAutocompletePosition]',\n})\nexport class CdAutocompletePositionDirective implements OnDestroy {\n public constructor(private readonly matAutocompleteTrigger: MatAutocompleteTrigger) {\n window.addEventListener('scroll', this.scrollEvent, true);\n }\n\n public ngOnDestroy(): void {\n window.removeEventListener('scroll', this.scrollEvent, true);\n }\n\n private scrollEvent = (): void => {\n if (this.matAutocompleteTrigger == null) {\n return;\n }\n if (this.matAutocompleteTrigger.panelOpen) {\n this.matAutocompleteTrigger.updatePosition();\n }\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsLangService } from '@cds/ng-core/lang';\n\n@Component({\n selector: 'app-cd-autocomplete',\n templateUrl: './cd-autocomplete.component.html',\n styleUrls: ['./cd-autocomplete.component.scss'],\n})\nexport class CdAutocompleteComponent implements OnInit {\n @Input() placeholder?: string;\n @Input() label?: string;\n @Input() required = false;\n\n @Input() control?: FormControl;\n @Output() valueChange = new EventEmitter();\n\n @Input()\n set options(options: CdsOption[]) {\n this.optionsSource = options.map(option => {\n option.label = this.langService.translate(option.label);\n return option;\n });\n this.optionsDisplayed = this._filter('');\n }\n\n // @ViewChild('inputBox') inputBox!: ElementRef;\n optionsSource: CdsOption[] = [];\n optionsDisplayed: CdsOption[] = [];\n autoCompleteControl = new FormControl('');\n optionSelected: CdsOption | '' = '';\n isFocus = false;\n\n onBlur() {\n this.isFocus = false;\n const value = this.autoCompleteControl.value;\n if (typeof value === 'string' && !this.optionsDisplayed.length) {\n this.autoCompleteControl.setValue(this.optionSelected);\n }\n }\n\n onFocus() {\n this.isFocus = true;\n let value = this.autoCompleteControl.value;\n if (typeof value !== 'string') {\n value = value.label;\n }\n this.optionsDisplayed = value ? this._filter(value as string) : this.optionsSource.slice();\n }\n\n onClosed() {\n const value = this.autoCompleteControl.value;\n if (typeof value === 'string') {\n this.autoCompleteControl.setValue(this.optionSelected);\n }\n }\n\n optionSelectedFn(ev: any) {\n this.optionSelected = ev.option.value;\n this.valueChange.emit(ev.option.value);\n }\n\n constructor(private langService: CdsLangService) {}\n\n ngOnInit() {\n this.autoCompleteControl.valueChanges.subscribe(value => {\n let name = value;\n if (typeof value !== 'string') {\n if (this.control && this.control.value !== value.value) {\n this.control.setValue(value.value);\n }\n name = value?.label;\n }\n if (this.isFocus) {\n this.optionsDisplayed = value ? this._filter(name as string) : this.optionsSource.slice();\n }\n });\n if (this.control) {\n this.control.valueChanges.subscribe(value => {\n const opt = this.optionsSource.find(option => option.value === value);\n if (opt) {\n this.autoCompleteControl.setValue(opt);\n this.optionSelected = opt;\n } else {\n this.autoCompleteControl.setValue('');\n this.optionSelected = '';\n }\n });\n if (this.control.value) {\n const value = this.control.value;\n const opt = this.optionsSource.find(option => option.value === value);\n if (opt) {\n this.autoCompleteControl.setValue(opt);\n this.optionSelected = opt;\n }\n }\n }\n }\n\n private _filter(name: string): CdsOption[] {\n const filterValue = name.toLowerCase();\n return this.optionsSource.filter(option => option.label.toLowerCase().includes(filterValue));\n }\n\n displayFn(option: CdsOption) {\n return option ? option.label : '';\n }\n\n clearInput() {\n this.autoCompleteControl.patchValue('');\n this.optionSelected = '';\n if (this.control) {\n this.control.setValue(this.control.defaultValue);\n }\n this.valueChange.emit('');\n }\n}\n","
{{ label | lang }}*
\n
\n \n \n \n \n {{ option.label | lang }}\n \n \n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { CdAutocompleteComponent } from './cd-autocomplete.component';\nimport { CdAutocompletePositionDirective } from './cd-autocomplete-position.directive';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatAutocompleteModule, MatFormFieldModule, ReactiveFormsModule, CdsLanguageModule, CdsIconModule, MatInputModule],\n declarations: [CdAutocompleteComponent, CdAutocompletePositionDirective],\n exports: [CdAutocompleteComponent, CdAutocompletePositionDirective],\n})\nexport class CdAutocompleteModule {}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\n\n@Component({\n selector: 'app-cd-back-text',\n templateUrl: './cd-back-text.component.html',\n styleUrls: ['./cd-back-text.component.scss'],\n})\nexport class CdBackTextComponent implements OnInit {\n @Input() title?: string;\n @Output() backCall = new EventEmitter();\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onBack() {\n this.backCall.emit();\n }\n}\n","
\n
\n \n
\n
\n {{ title }}\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdBackTextComponent } from './cd-back-text.component';\n\n@NgModule({\n imports: [CommonModule, CdsIconModule, CdsLanguageModule],\n declarations: [CdBackTextComponent],\n exports: [CdBackTextComponent],\n})\nexport class CdBackTextModule {}\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'app-cd-carousel',\n templateUrl: './cd-carousel.component.html',\n styleUrls: ['./cd-carousel.component.scss'],\n})\nexport class CdCarouselComponent implements OnInit, AfterViewInit {\n @Input() list: unknown[] = [];\n @ViewChild('carouselBox', { static: true }) carouselBox!: ElementRef;\n currentIndexSlides = 0;\n slidesTouchStartX = 0;\n slidesTouchEndX = 0;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n // Auto slide\n setInterval(() => {\n this.nextSlide();\n }, 5000);\n }\n\n showSlide(index: number) {\n if (index < 0) {\n this.currentIndexSlides = this.list.length - 1;\n } else if (index >= this.list.length) {\n this.currentIndexSlides = 0;\n } else {\n this.currentIndexSlides = index;\n }\n\n const offset = -this.currentIndexSlides * (100 / this.list.length);\n this.carouselBox.nativeElement.style.transform = `translateX(${offset}%)`;\n }\n\n prevSlide() {\n this.showSlide(this.currentIndexSlides - 1);\n }\n\n nextSlide() {\n this.showSlide(this.currentIndexSlides + 1);\n }\n\n goSlide(index: number) {\n this.showSlide(index);\n }\n\n handleTouchStart(event: TouchEvent) {\n this.slidesTouchStartX = event.touches[0].clientX;\n }\n\n handleTouchMove(event: TouchEvent) {\n this.slidesTouchEndX = event.touches[0].clientX;\n }\n\n handleTouchEnd() {\n if (this.slidesTouchStartX - this.slidesTouchEndX > 50) {\n this.nextSlide();\n } else if (this.slidesTouchEndX - this.slidesTouchStartX > 50) {\n this.prevSlide();\n }\n }\n}\n","
\n
\n
\n \n
\n
\n\n
\n 0 }\">
\n
\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdCarouselComponent } from './cd-carousel.component';\n\n@NgModule({\n declarations: [CdCarouselComponent],\n exports: [CdCarouselComponent],\n imports: [CommonModule],\n})\nexport class CdCarouselModule {}\n","import { Injectable } from '@angular/core';\n/* eslint-disable @typescript-eslint/no-var-requires */\nconst CryptoJS = require('crypto-js');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CdCryptoJsService {\n constructor() {}\n\n encrypt(data: string) {\n const ciphertext = CryptoJS.AES.encrypt(data, '12272023').toString();\n return ciphertext;\n }\n\n decrypt(ciphertext: string): string {\n const bytes = CryptoJS.AES.decrypt(ciphertext, '12272023');\n const decryptedData = bytes.toString(CryptoJS.enc.Utf8);\n return decryptedData;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-cd-download-progress',\n templateUrl: './cd-download-progress.component.html',\n styleUrls: ['./cd-download-progress.component.scss'],\n})\nexport class CdDownloadProgressComponent implements OnInit {\n @Input() show = false;\n @Output() close1 = new EventEmitter();\n constructor() {}\n\n ngOnInit() {}\n\n btnXOnClick() {\n this.close1.emit();\n }\n}\n","
\n
\n \n
\n
File Downloading...
\n \n
\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\nimport { CdDownloadProgressComponent } from './cd-download-progress.component';\n\n@NgModule({\n imports: [CommonModule, CdsProgressModule, CdsIconModule, CdsLanguageModule],\n declarations: [CdDownloadProgressComponent],\n exports: [CdDownloadProgressComponent],\n})\nexport class CdDownloadProgressModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nexport interface CdDropdownTopping {\n label: string;\n value: string;\n}\n\n@Component({\n selector: 'app-cd-dropdown',\n templateUrl: './cd-dropdown.component.html',\n styleUrls: ['./cd-dropdown.component.scss'],\n})\nexport class CdDropdownComponent implements OnInit {\n @Input() group!: FormGroup;\n @Input() controlName = '';\n @Input() label = '';\n @Input() placeholder = '';\n @Input() toppingList: CdDropdownTopping[] = [];\n @Input() disabled = false;\n private _selected?: string;\n @Input()\n set selected(selected: string) {\n this._selected = selected;\n this.valueControl.setValue(this._selected);\n }\n @Output() selectedChange = new EventEmitter();\n valueControl = new FormControl('');\n open = false;\n toppings: CdDropdownTopping[] = [];\n constructor() {}\n\n ngOnInit(): void {\n this.valueControl.valueChanges.subscribe(() => {\n this.selectedChange.emit(this.valueControl.value);\n });\n\n if (this.group) {\n this.group.controls[this.controlName].valueChanges.subscribe(() => {\n this.selectedChange.emit(this.valueControl.value);\n });\n }\n }\n\n get showVaule() {\n const value = this.group ? this.group.controls[this.controlName].value : this.valueControl.value;\n const option = this.toppingList.filter(item => item.value === value);\n if (option.length > 0) {\n return option[0].label;\n }\n return '';\n }\n\n blur() {\n setTimeout(() => {\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement.blur();\n }\n }, 0);\n }\n\n clearValue() {\n this.valueControl.setValue('');\n }\n}\n","
\n
\n {{ label | lang }}\n
\n
\n \n 0 ? 'opacity' : '']\"\n [placeholder]=\"placeholder | lang\"\n matInput\n [matAutocomplete]=\"auto\"\n #trigger=\"matAutocompleteTrigger\"\n appCdAutocompletePosition=\"trigger\" />\n \n \n {{ option.label }}\n \n \n \n \n {{ showVaule }}\n \n
\n \n
\n
\n
\n\n
\n
\n {{ label | lang }}\n
\n
\n \n 0 ? 'opacity' : '']\"\n [placeholder]=\"placeholder | lang\"\n matInput\n [matAutocomplete]=\"auto\"\n #trigger=\"matAutocompleteTrigger\"\n appCdAutocompletePosition=\"trigger\" />\n \n \n {{ option.label }}\n \n \n \n \n {{ showVaule }}\n \n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdDropdownComponent } from './cd-dropdown.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { CdAutocompleteModule } from '../cd-autocomplete/cd-autocomplete.module';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MatAutocompleteModule, CdsIconModule, CdsLanguageModule, MatInputModule, CdAutocompleteModule],\n declarations: [CdDropdownComponent],\n exports: [CdDropdownComponent],\n})\nexport class CdDropdownModule {}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-cd-fake-link',\n templateUrl: './cd-fake-link.component.html',\n styleUrls: ['./cd-fake-link.component.scss'],\n})\nexport class CdFakeLinkComponent implements OnInit {\n @Input() text = 'N/A';\n @Output() callBack = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onClick() {\n this.callBack.emit();\n }\n}\n","{{ text }}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-cd-fake-tabs',\n templateUrl: './cd-fake-tabs.component.html',\n styleUrls: ['./cd-fake-tabs.component.scss'],\n})\nexport class CdFakeTabsComponent implements OnInit {\n @Input() options: string[] = [];\n @Input() selectedIndex = 0;\n @Output() selectedIndexChange = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onChange(index: number) {\n this.selectedIndex = index;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n}\n","
\n
\n \n {{ item }}\n \n
\n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\n\nimport { timeout, catchError } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\n\ninterface PostT {\n data: T;\n message: string;\n result: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CdHttpServeService {\n private readonly apiPrefix = environment.apiPrefix;\n\n constructor(private httpClient: HttpClient) {}\n\n get(url: string, params: any) {\n return this.httpClient.get>(`${this.apiPrefix}${url}`, { params }).pipe(\n timeout(environment.httpTimeout),\n catchError((err: HttpErrorResponse) => {\n return throwError(() => err.message);\n })\n );\n }\n\n post(url: string, body: object) {\n return this.httpClient\n .post>(`${this.apiPrefix}${url}`, body, {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n })\n .pipe(\n timeout(environment.httpTimeout),\n catchError((err: HttpErrorResponse) => {\n return throwError(() => err.message);\n })\n );\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-cd-inline-alert',\n templateUrl: './cd-inline-alert.component.html',\n styleUrls: ['./cd-inline-alert.component.scss'],\n})\nexport class CdInlineAlertComponent implements OnInit {\n type: 'error' | 'warning' = 'error';\n @Input() title?: string;\n @Input() text?: string;\n @Input() showCloseBtn = true;\n @Output() closeEvent = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onClose() {\n this.closeEvent.emit();\n }\n}\n","
\n
\n
\n \n
\n
\n
\n {{ title }}\n
\n
\n {{ text }}\n
\n
\n
\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'app-cd-intragroup-transfer-checkbox',\n templateUrl: './cd-intragroup-transfer-checkbox.component.html',\n styleUrls: ['./cd-intragroup-transfer-checkbox.component.scss'],\n})\nexport class CdIntragroupTransferCheckboxComponent implements OnInit {\n @Input() formControl?: FormControl;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n \n
\n
\n {{ 'intra-group-transfer' | lang }}\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges, OnChanges, forwardRef, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { CdMultidropdownTopping } from './cd-multidropdown.model';\n\n@Component({\n selector: 'app-cd-multidropdown',\n templateUrl: './cd-multidropdown.component.html',\n styleUrls: ['./cd-multidropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CdMultidropdownComponent),\n multi: true,\n },\n ],\n})\nexport class CdMultidropdownComponent implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor {\n @Input() placeholder = 'pleaseChoose';\n @Input() toppingList: CdMultidropdownTopping[] = [];\n @Input() disabled = false;\n @Input() selected?: CdMultidropdownTopping[] = [];\n @Input() formControl?: FormControl;\n @Input() label = '';\n @Output() selectedChange = new EventEmitter();\n open = false;\n toppings: CdMultidropdownTopping[] = [];\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n if (this.formControl) {\n if (this.formControl.value != null) {\n this.selected = this.formControl.value;\n }\n this.formControl.valueChanges.subscribe(val => {\n this.selected = val;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected']) {\n this.toppings = changes['selected'].currentValue;\n this.propagateOnChange(this.toppings);\n }\n }\n\n onOutsideEvent() {\n if (this.open) {\n this.open = false;\n }\n }\n\n onToggel() {\n if (this.disabled) {\n return;\n }\n\n this.open = !this.open;\n }\n\n getCheck(t: CdMultidropdownTopping) {\n return this.toppings.some(item => item.value === t.value);\n }\n\n refrushToppings(t: CdMultidropdownTopping) {\n if (this.getCheck(t)) {\n this.toppings = this.toppings.filter(item => item.value !== t.value);\n } else {\n this.toppings.push(t);\n }\n this.propagateOnChange(this.toppings);\n this.selectedChange.emit(this.toppings);\n this.formControl?.setValue(this.toppings);\n this.formControl?.markAsDirty();\n this.formControl?.markAsTouched();\n }\n\n get getTitle() {\n if (this.toppings.length > 0) {\n return `${this.toppings[0].label} ${this.toppings[0].subLabel ? this.toppings[0].subLabel : ''}${\n this.toppings.length > 1 ? ' (' + this.toppings.length + ')' : ''\n }`;\n }\n\n return null;\n }\n\n writeValue(value: CdMultidropdownTopping[]) {\n if (value) {\n this.toppings = value;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n propagateOnChange = (value: CdMultidropdownTopping[]) => {};\n\n propagateOnTouched = () => {};\n\n registerOnChange(fn: (value: CdMultidropdownTopping[]) => void) {\n this.propagateOnChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.propagateOnTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n}\n","
\n
\n {{ label }}\n
\n\n
\n \n \n
\n\n
\n\n
\n
\n \n
\n
{{ item.subLabel }}
\n
\n {{ item.exatraInfo }}\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-cd-multiple-accordion-panel',\n templateUrl: './cd-multiple-accordion-panel.component.html',\n styleUrls: ['./cd-multiple-accordion-panel.component.scss'],\n})\nexport class CdMultipleAccordionPanelComponent implements OnInit {\n @Input() upIcon = 'action:button_down_outlined';\n @Input() downIcon = 'action:button_down_filled';\n expand = false;\n\n ngOnInit(): void {}\n\n trigger() {\n this.expand = !this.expand;\n }\n}\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-cd-multiple-accordion',\n templateUrl: './cd-multiple-accordion.component.html',\n styleUrls: ['./cd-multiple-accordion.component.scss'],\n})\nexport class CdMultipleAccordionComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdMultipleAccordionComponent } from './cd-multiple-accordion.component';\nimport { CdMultipleAccordionPanelComponent } from './cd-multiple-accordion-panel/cd-multiple-accordion-panel.component';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\n@NgModule({\n declarations: [CdMultipleAccordionComponent, CdMultipleAccordionPanelComponent],\n exports: [CdMultipleAccordionComponent, CdMultipleAccordionPanelComponent],\n imports: [CommonModule, CdsIconModule],\n})\nexport class CdMultipleAccordionModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'app-cd-page-title',\n templateUrl: './cd-page-title.component.html',\n styleUrls: ['./cd-page-title.component.scss'],\n})\nexport class CdPageTitleComponent implements OnInit {\n @Input() title = '';\n @Input() showBack = false;\n @Output() backLanding = new EventEmitter();\n @Input() backLandingLabel = 'commission.pool.common.backToLanding';\n\n @ContentChild('rightContent', { static: true })\n rightContent!: TemplateRef;\n @ContentChild('pageAction', { static: true }) pageAction!: TemplateRef;\n\n constructor() {}\n\n ngOnInit() {}\n\n goBack() {\n this.backLanding.emit();\n }\n}\n","
\n
\n
\n \n \n {{ backLandingLabel | lang }}\n \n
\n
\n
\n
\n {{ title }}\n
\n \n
\n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\nimport { CdPageTitleComponent } from './cd-page-title.component';\n\n@NgModule({\n imports: [CommonModule, CdsIconModule, CdsLanguageModule],\n declarations: [CdPageTitleComponent],\n exports: [CdPageTitleComponent],\n})\nexport class CdPageTitleModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CDS_POPUP_DATA, MatDialogRef } from '../cd-popup.service';\n\n@Component({\n selector: 'app-cd-popup-continue',\n templateUrl: './cd-popup-continue.component.html',\n styleUrls: ['./cd-popup-continue.component.scss'],\n})\nexport class CdPopupContinueComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n subMessage: string;\n continue: string;\n params: any;\n }\n ) {}\n\n ngOnInit() {}\n\n cancle() {\n this.dialogRef.close({ continue: false });\n }\n\n continue() {\n this.dialogRef.close({ continue: true });\n }\n}\n","\n {{ data.title | lang }}\n \n
\n
\n
\n
\n \n {{ 'common.cancel' | lang }} \n {{ data.continue || 'common.continue' | lang }} \n \n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CDS_POPUP_DATA, MatDialogRef } from '../cd-popup.service';\n\n@Component({\n selector: 'app-cd-popup-delete',\n templateUrl: './cd-popup-delete.component.html',\n styleUrls: ['./cd-popup-delete.component.scss'],\n})\nexport class CdPopupDeleteComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n subMessage: string;\n params: any;\n }\n ) {}\n\n ngOnInit() {}\n\n cancle() {\n this.dialogRef.close({ delete: false });\n }\n\n delete() {\n this.dialogRef.close({ delete: true });\n }\n}\n","\n {{ data.title | lang }}\n \n
\n
\n
\n
\n \n {{ 'common.cancel' | lang }} \n {{ 'common.delete' | lang }} \n \n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CDS_POPUP_DATA, MatDialogRef } from '../cd-popup.service';\n\n@Component({\n selector: 'app-cd-popup-got',\n templateUrl: './cd-popup-got.component.html',\n styleUrls: ['./cd-popup-got.component.scss'],\n})\nexport class CdPopupGotComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n subMessage: string;\n params: any;\n }\n ) {}\n\n ngOnInit() {}\n\n gotIt() {\n this.dialogRef.close({ got: true });\n }\n}\n","\n {{ data.title | lang }}\n \n
\n
\n
\n
\n \n {{ 'common.gotIt' | lang }} \n \n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdPopupContinueComponent } from './cd-popup-continue/cd-popup-continue.component';\nimport { CdPopupGotComponent } from './cd-popup-got/cd-popup-got.component';\nimport { CdPopupComponent } from './cd-popup/cd-popup.component';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdPopupDeleteComponent } from './cd-popup-delete/cd-popup-delete.component';\n\n@NgModule({\n declarations: [CdPopupComponent, CdPopupGotComponent, CdPopupContinueComponent, CdPopupDeleteComponent],\n imports: [CommonModule, MatDialogModule, CdsIconModule, CdsPopupModule, CdsLanguageModule, CdsButtonModule],\n exports: [CdPopupComponent, CdsPopupModule, CdPopupGotComponent, CdPopupContinueComponent, CdPopupDeleteComponent],\n})\nexport class CdPopupModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { CdPopupContinueComponent } from './cd-popup-continue/cd-popup-continue.component';\nimport { CdPopupDeleteComponent } from './cd-popup-delete/cd-popup-delete.component';\nimport { CdPopupGotComponent } from './cd-popup-got/cd-popup-got.component';\n\nexport { MatDialogRef, MAT_DIALOG_DATA };\nexport const CDS_POPUP_DATA = MAT_DIALOG_DATA;\n\nexport interface CdPopupConfig {\n size?: string;\n isShowClose?: boolean;\n type?: string;\n panelClass?: string[];\n data?: { [key: string]: any };\n}\n\nexport enum CdPopupSize {\n SMALL = 'sm',\n MEDIUM = 'md',\n LARGE = 'lg',\n FULL = 'full',\n}\n\nexport enum CdPopupType {\n GOT = 'GOT',\n CONTINUE = 'CONTINUE',\n DELETE = 'DELETE',\n CONFIRM = 'CONFIRM',\n WARNING = 'WARNING',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CdPopupService {\n currentDialogRef: any;\n\n constructor(private dialog: MatDialog) {}\n\n open(component: any, config?: CdPopupConfig): MatDialogRef {\n const data = config ? config.data || {} : {};\n const isShowClose = config ? (config.isShowClose === undefined ? true : config.isShowClose) : true;\n const panelClass = config ? config.panelClass || [] : [];\n const size = config ? config.size || CdPopupSize.SMALL : CdPopupSize.SMALL;\n\n this.currentDialogRef = this.dialog.open(component, {\n disableClose: true,\n autoFocus: false,\n maxWidth: '100%',\n maxHeight: '100%',\n panelClass: ['cds-popup-container', `cds-popup-${size}`, ...panelClass],\n data: {\n ...data,\n isShowClose,\n __cdsPopupSize: size,\n },\n });\n\n return this.currentDialogRef;\n }\n openCommon(config?: CdPopupConfig): MatDialogRef {\n let component: any = CdPopupGotComponent;\n const data = config ? config.data || {} : {};\n const isShowClose = config ? (config.isShowClose === undefined ? true : config.isShowClose) : true;\n const panelClass = config ? config.panelClass || [] : [];\n const size = config ? config.size || CdPopupSize.SMALL : CdPopupSize.SMALL;\n const type = config ? config.type || CdPopupType.GOT : CdPopupType.GOT;\n\n if (type === CdPopupType.GOT) {\n component = CdPopupGotComponent;\n }\n\n if (type === CdPopupType.CONTINUE) {\n component = CdPopupContinueComponent;\n }\n\n if (type === CdPopupType.DELETE) {\n component = CdPopupDeleteComponent;\n }\n\n this.currentDialogRef = this.dialog.open(component, {\n disableClose: true,\n autoFocus: false,\n maxWidth: '100%',\n maxHeight: '100%',\n panelClass: ['cds-popup-container', `cds-popup-${size}`, ...panelClass],\n data: {\n ...data,\n isShowClose,\n __cdsPopupSize: size,\n },\n });\n\n return this.currentDialogRef;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, HostBinding, Inject, OnInit } from '@angular/core';\nimport { CdPopupService, CdPopupSize, MAT_DIALOG_DATA } from '../cd-popup.service';\n\n@Component({\n selector: 'app-cd-popup',\n templateUrl: './cd-popup.component.html',\n styleUrls: ['./cd-popup.component.scss'],\n})\nexport class CdPopupComponent implements OnInit {\n size: CdPopupSize = CdPopupSize.SMALL;\n dialog: any;\n isShowClose = true;\n\n @HostBinding('class.cds-popup') isCdsPopup = true;\n\n @HostBinding('class.cds-popup-sm') get isSmall(): boolean {\n return this.size === CdPopupSize.SMALL;\n }\n @HostBinding('class.cds-popup-md') get isMedium(): boolean {\n return this.size === CdPopupSize.MEDIUM;\n }\n @HostBinding('class.cds-popup-lg') get isLarge(): boolean {\n return this.size === CdPopupSize.LARGE;\n }\n\n constructor(private cdPopup: CdPopupService, @Inject(MAT_DIALOG_DATA) private data: any) {}\n\n ngOnInit(): void {\n this.size = this.data.__cdsPopupSize;\n this.isShowClose = this.data.isShowClose;\n this.dialog = this.cdPopup.currentDialogRef;\n }\n\n close() {\n this.dialog.close();\n }\n}\n","
\n \n
\n
\n

\n \n

\n\n
\n \n \n
\n\n
\n \n
\n
\n","export * from './public-api';\n","export * from './cd-popup.service';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit, AfterViewInit, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nimport { CdsOrientation } from '@cds/ng-core/configuration';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\n\nexport type CdRadioConfig = CdsRadioConfig & {\n options: {\n label: string;\n value: string | number | boolean;\n disable: boolean;\n }[];\n};\n\n@Component({\n selector: 'app-cd-radio',\n templateUrl: './cd-radio.component.html',\n styleUrls: ['./cd-radio.component.scss'],\n})\nexport class CdRadioComponent implements OnInit, AfterViewInit {\n @Input() value?: any;\n @Output() valueChange = new EventEmitter();\n @Input() orientation: CdsOrientation = 'horizontal';\n @Input() config!: CdRadioConfig;\n @Input() formControl?: FormControl;\n @ViewChild('cdRadio', { static: false }) cdRadio?: ElementRef;\n @Input() group!: FormGroup;\n @Input() controlName = '';\n\n disableList: boolean[] = [];\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n this.refreshConfig();\n }\n\n refreshConfig() {\n setTimeout(() => {\n this.disableList = this.config.options.map((item: { disable: boolean }) => item.disable);\n\n const tempList = this.cdRadio?.nativeElement.getElementsByTagName('mat-radio-button');\n if (tempList) {\n for (let i = 0; i < tempList.length; i++) {\n if (this.disableList[i]) {\n tempList.item(i)?.classList.add('disable');\n } else {\n tempList.item(i)?.classList.remove('disable');\n }\n }\n }\n }, 0);\n }\n}\n","
\n \n \n \n \n
\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\n\nimport { CdRadioComponent } from './cd-radio.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CdsLanguageModule, CdsRadioModule],\n declarations: [CdRadioComponent],\n exports: [CdRadioComponent],\n})\nexport class CdRadioModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { debounceTime, fromEvent, Observable, of, Subscription, switchMap } from 'rxjs';\n\n@Component({\n selector: 'app-cd-realtime-search',\n templateUrl: './cd-realtime-search.component.html',\n styleUrls: ['./cd-realtime-search.component.scss'],\n})\nexport class CdRealtimeSearchComponent implements OnInit {\n @Input() searchFunction!: (query: string, page: number, size: number) => Observable<{ label: string; value: string }[]>;\n @Output() resultSelected = new EventEmitter();\n @Input() placeholder = '';\n @Input() searchControl!: FormControl;\n\n results: { label: string; value: string }[] = [];\n page = 1;\n size = 20;\n loading = false;\n haveMore = true;\n private scrollSubscription?: Subscription;\n\n @ViewChild('auto', { static: true }) matAutocomplete!: MatAutocomplete;\n\n ngOnInit() {\n if (this.searchFunction) {\n this.searchControl.valueChanges\n .pipe(\n debounceTime(500),\n switchMap(query => {\n this.reset();\n this.loading = true;\n if (query === '') {\n return of([]);\n } else {\n return this.searchFunction(query, this.page, this.size);\n }\n })\n )\n .subscribe(data => {\n this.results = data;\n this.page++;\n this.loading = false;\n });\n }\n }\n\n onOpen() {\n setTimeout(() => {\n const panel = this.matAutocomplete.panel.nativeElement;\n this.scrollSubscription = fromEvent(panel, 'scroll')\n .pipe(debounceTime(200))\n .subscribe(() => this.onScroll());\n }, 50);\n }\n\n onClose() {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n }\n\n onScroll() {\n const panel = this.matAutocomplete.panel.nativeElement;\n const scrollTop = panel.scrollTop;\n const scrollHeight = panel.scrollHeight;\n const elementHeight = panel.clientHeight;\n\n if (scrollHeight - scrollTop === elementHeight && !this.loading && this.searchControl.value !== '' && this.haveMore) {\n this.loading = true;\n this.searchFunction(this.searchControl.value, this.page, this.size).subscribe(data => {\n this.results = [...this.results, ...data];\n this.page++;\n this.loading = false;\n if (data.length === 0) {\n this.haveMore = false;\n }\n });\n }\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent) {\n const selectedOption = this.results.find(item => item.label === event.option.value);\n this.resultSelected.emit(selectedOption?.value);\n }\n\n reset() {\n this.results = [];\n this.page = 1;\n this.haveMore = true;\n }\n\n clearInput() {\n this.searchControl.setValue('');\n }\n}\n","
\n \n \n \n \n {{ result.label }}\n \n {{ 'common.loading' | lang }}\n {{ 'common.noMore' | lang }}\n \n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { CdAutocompleteModule } from '../cd-autocomplete/cd-autocomplete.module';\nimport { CdRealtimeSearchComponent } from './cd-realtime-search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatAutocompleteModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CdsLanguageModule,\n CdsIconModule,\n MatInputModule,\n CdAutocompleteModule,\n ],\n declarations: [CdRealtimeSearchComponent],\n exports: [CdRealtimeSearchComponent],\n})\nexport class CdRealtimeSearchModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsOption } from '@cds/ng-core/configuration';\n\n@Component({\n selector: 'app-cd-search',\n templateUrl: './cd-search.component.html',\n styleUrls: ['./cd-search.component.scss'],\n})\nexport class CdSearchComponent implements OnInit, AfterViewInit {\n @ViewChild('iconLocationRightXIcon', { static: false }) iconLocationRightXIcon?: ElementRef;\n @ViewChild('iconLocationRightSearchIcon', { static: false }) iconLocationRightSearchIcon?: ElementRef;\n @Input() isAutoComplete = true;\n @Input() dynamic = false;\n @Input() iconLocation: 'between' | 'right' = 'between';\n\n @Input() placeholder = '';\n @Input()\n set options(options: CdsOption[]) {\n if (this.isAutoComplete) {\n this.optionsSource = options.map(option => {\n option.label = this.langService.translate(option.label);\n return option;\n });\n this.optionsDisplayed = this._filter('');\n }\n }\n\n @Output() search = new EventEmitter();\n @Input() control?: FormControl = new FormControl('');\n\n optionsSource: CdsOption[] = [];\n optionsDisplayed: CdsOption[] = [];\n autoCompleteControl = new FormControl('');\n isFocus = false;\n\n constructor(private langService: CdsLangService) {}\n\n ngAfterViewInit(): void {\n if (this.iconLocationRightXIcon) {\n this.iconLocationRightXIcon.nativeElement.onclick = e => {\n e.stopPropagation();\n };\n }\n\n if (this.iconLocationRightSearchIcon) {\n this.iconLocationRightSearchIcon.nativeElement.onclick = e => {\n e.stopPropagation();\n };\n }\n }\n\n ngOnInit() {\n this.autoCompleteControl.valueChanges.subscribe(value => {\n let name = value;\n if (this.isAutoComplete) {\n if (this.dynamic) {\n if (typeof value === 'string') {\n this.control?.setValue(value);\n }\n } else {\n if (typeof value !== 'string') {\n if (this.control && this.control.value !== value.value) {\n this.control.setValue(value.value);\n }\n name = value?.label;\n }\n if (this.isFocus) {\n this.optionsDisplayed = value ? this._filter(name as string) : this.optionsSource.slice();\n }\n }\n } else {\n this.control?.setValue(value);\n }\n });\n if (!this.isAutoComplete || this.dynamic) {\n this.optionsSource = [];\n this.optionsDisplayed = [];\n }\n if (this.control) {\n if (this.control.value) {\n this.autoCompleteControl.setValue(this.control.value);\n }\n this.control.valueChanges.subscribe(value => {\n if (!value && value !== this.autoCompleteControl.value) {\n this.autoCompleteControl.setValue('');\n }\n });\n }\n }\n\n onSearch() {\n if (this.isAutoComplete) {\n return;\n }\n this.search.emit(this.autoCompleteControl.value);\n }\n\n onBlur() {\n this.isFocus = false;\n }\n\n onFocus() {\n if (this.isAutoComplete) {\n this.isFocus = true;\n let value = this.autoCompleteControl.value;\n if (typeof value !== 'string') {\n value = value.label;\n }\n this.optionsDisplayed = value ? this._filter(value as string) : this.optionsSource.slice();\n } else {\n this.optionsSource = [];\n this.optionsDisplayed = [];\n }\n }\n\n optionSelectedFn(ev: any) {\n this.search.emit(ev.option.value);\n }\n\n displayFn(option: CdsOption) {\n return option ? option.label : '';\n }\n\n clearInput() {\n if (this.autoCompleteControl.value === '') {\n return;\n }\n this.autoCompleteControl.patchValue('');\n if (this.dynamic) {\n this.optionsSource = [];\n }\n this.optionsDisplayed = [];\n if (this.control) {\n this.control.setValue('');\n }\n this.search.emit('');\n }\n\n private _filter(name: string): CdsOption[] {\n const filterValue = name.toLowerCase();\n return this.optionsSource.filter(option => option.label.toLowerCase().includes(filterValue));\n }\n\n iconSearch() {\n const option = this.optionsSource.find(opt => opt.label === this.autoCompleteControl.value);\n this.search.emit(option || this.autoCompleteControl.value);\n }\n}\n","
\n \n
\n \n
\n \n \n \n {{ option.label | lang }}\n \n \n
\n \n
\n\n
\n \n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { CdAutocompleteModule } from '../cd-autocomplete/cd-autocomplete.module';\nimport { CdSearchComponent } from './cd-search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatAutocompleteModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CdsLanguageModule,\n CdsIconModule,\n MatInputModule,\n CdAutocompleteModule,\n ],\n declarations: [CdSearchComponent],\n exports: [CdSearchComponent],\n})\nexport class CdSearchModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-cd-step',\n templateUrl: './cd-step.component.html',\n styleUrls: ['./cd-step.component.scss'],\n})\nexport class CdStepComponent implements OnInit {\n @Input() label!: string;\n private isFinish = false;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n setLabel(val: string) {\n Promise.resolve().then(() => {\n this.label = val;\n });\n }\n\n setFinish() {\n this.isFinish = true;\n }\n\n setUnfinished() {\n this.isFinish = false;\n }\n\n get finishStatus() {\n return this.isFinish;\n }\n}\n","
\n
\n
\n {{ label }}\n
\n
\n \n
\n
\n
\n","import { AfterContentInit, AfterViewInit, Component, ContentChildren, OnInit, QueryList, Input } from '@angular/core';\n\nimport { CdStepComponent } from './cd-step/cd-step.component';\n\n@Component({\n selector: 'app-cd-stepper',\n templateUrl: './cd-stepper.component.html',\n styleUrls: ['./cd-stepper.component.scss'],\n})\nexport class CdStepperComponent implements OnInit, AfterViewInit, AfterContentInit {\n @ContentChildren(CdStepComponent) stepList!: QueryList;\n @Input() orientation: 'vertical' | 'horizontal' = 'horizontal';\n @Input() isFreeStyle = false;\n\n private lightsOutStepList: number[] = [];\n\n private currentFinishStep = 0;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {}\n\n ngAfterContentInit() {\n this.stepList.forEach((step, index) => {\n step.setLabel(step.label || String(index + 1));\n });\n }\n\n setStepList(stepList: QueryList) {\n this.stepList = stepList;\n this.ngAfterContentInit();\n }\n\n getFinishStep(): number {\n return this.currentFinishStep;\n }\n\n setFinishStep(index: number) {\n this.currentFinishStep = index;\n this.refreshStatus();\n }\n\n setLightsOutStep(index: number) {\n this.lightsOutStepList.push(index);\n this.lightsOutStepList = Array.from(new Set(this.lightsOutStepList));\n this.refreshStatus();\n }\n\n removeLightsOutStep(index: number) {\n this.lightsOutStepList = this.lightsOutStepList.filter(num => num !== index);\n this.refreshStatus();\n }\n\n clear() {\n this.setFinishStep(0);\n this.lightsOutStepList.length = 0;\n }\n\n next() {\n if (this.currentFinishStep < this.stepList.length) {\n this.currentFinishStep++;\n }\n\n this.refreshStatus();\n }\n\n last() {\n if (this.currentFinishStep > 0) {\n this.currentFinishStep--;\n }\n\n this.refreshStatus();\n }\n\n private refreshStatus() {\n for (let i = 0; i < this.currentFinishStep; i++) {\n if (!this.lightsOutStepList.includes(i - 1)) {\n this.stepList.get(i)?.setFinish();\n }\n }\n\n this.lightsOutStepList.forEach(element => {\n this.stepList.get(element - 1)?.setUnfinished();\n });\n\n this.stepList\n .toArray()\n .slice(this.currentFinishStep)\n .forEach(element => {\n element.setUnfinished();\n });\n }\n}\n","
\n
\n \n
\n
\n\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\nimport { CdStepperComponent } from './cd-stepper.component';\nimport { CdStepComponent } from './cd-step/cd-step.component';\n\n@NgModule({\n imports: [CommonModule, CdsLanguageModule],\n declarations: [CdStepperComponent, CdStepComponent],\n exports: [CdStepperComponent, CdStepComponent],\n})\nexport class CdStepperModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'app-cd-switch',\n templateUrl: './cd-switch.component.html',\n styleUrls: ['./cd-switch.component.scss'],\n})\nexport class CdSwitchComponent {\n _value!: boolean;\n @Input()\n set value(value: boolean | number) {\n this._value = Boolean(value);\n }\n get value() {\n return this._value;\n }\n\n @Output() valueChange = new EventEmitter();\n\n @Input() beforeChange = new Observable(observer => {\n observer.next(true);\n return () => {};\n });\n\n onModelChange(value: boolean) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'app-cd-table-title',\n templateUrl: './cd-table-title.component.html',\n styleUrls: ['./cd-table-title.component.scss'],\n})\nexport class CdTableTitleComponent implements OnInit {\n @Input() showSubTitle = true;\n @Input() total = 0;\n @Input() title = '';\n\n @ContentChild('tableAction', { static: true }) action!: TemplateRef;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n
\n
\n {{ title }}\n
\n
\n {{ 'common.total' | lang }} {{ total | number }}\n {{ 'common.records' | lang }}\n
\n
\n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\nimport { CdTableTitleComponent } from './cd-table-title.component';\n\n@NgModule({\n imports: [CommonModule, CdsLanguageModule],\n declarations: [CdTableTitleComponent],\n exports: [CdTableTitleComponent],\n})\nexport class CdTableTitleModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-cd-textarea',\n templateUrl: './cd-textarea.component.html',\n styleUrls: ['./cd-textarea.component.scss'],\n})\nexport class CdTextareaComponent implements OnInit {\n @Input() label = '';\n @Input() placeholder = '';\n @Input() maxlength?: number;\n @Input() minRows?: number;\n @Input() maxRows = 8;\n @Input() value = '';\n @Input() height?: string;\n @Input() fontSize?: string;\n @Output() valueChange = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n {{ label }}\n {{ value.length }}/{{ maxlength }}\n
\n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\nimport { CdTextareaComponent } from './cd-textarea.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CdsLanguageModule],\n declarations: [CdTextareaComponent],\n exports: [CdTextareaComponent],\n})\nexport class CdTextareaModule {}\n","import { FormControl } from '@angular/forms';\nimport { Component, OnInit, Input } from '@angular/core';\n\nimport { CdsInputTypes } from '@cds/ng-core/textfield';\n\n@Component({\n selector: 'app-cd-textfield',\n templateUrl: './cd-textfield.component.html',\n styleUrls: ['./cd-textfield.component.scss'],\n})\nexport class CdTextfieldComponent implements OnInit {\n @Input() placeholder = '';\n @Input() disable = false;\n @Input() formControl!: FormControl;\n @Input() type: CdsInputTypes = 'text';\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n","import { Component, EventEmitter, OnInit, Output, Input, AfterViewInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'app-cd-time-picker',\n templateUrl: './cd-time-picker.component.html',\n styleUrls: ['./cd-time-picker.component.scss'],\n})\nexport class CdTimePickerComponent implements OnInit, AfterViewInit {\n _max?: number[] | null;\n _min?: number[] | null;\n @Input() formControl?: FormControl;\n @Input()\n set max(max: number[] | null) {\n this._max = max;\n if (this._max) {\n this.maxHour = this._max[0];\n this.maxMinute = this._max[1];\n } else {\n this.maxHour = undefined;\n this.maxMinute = undefined;\n }\n }\n @Input()\n set min(min: number[] | null) {\n this._min = min;\n if (this._min) {\n this.minHour = this._min[0];\n this.minMinute = this._min[1];\n } else {\n this.minHour = undefined;\n this.minMinute = undefined;\n }\n }\n @Input() error = false;\n @Output() timeChange = new EventEmitter();\n @Output() openedCall = new EventEmitter();\n hourList: string[] = [];\n minList: string[] = [];\n hour = '';\n minute = '';\n open = false;\n maxHour?: number;\n maxMinute?: number;\n minHour?: number;\n minMinute?: number;\n isEnableMinuteDisable = false;\n\n constructor() {}\n\n ngOnInit(): void {\n for (let i = 0; i < 24; i++) {\n this.hourList.push(`${i < 10 ? '0' + i : i}`);\n }\n\n for (let i = 0; i < 60; i++) {\n this.minList.push(`${i < 10 ? '0' + i : i}`);\n }\n if (this.formControl && this.formControl.value != null) {\n const [hours, minutes] = this.formControl.value.split(':');\n this.hour = hours;\n this.minute = minutes;\n\n if (this.formControl.value.includes(':')) {\n this.formControl.valueChanges.subscribe(val => {\n const [hours, minutes] = val.split(':');\n this.hour = hours;\n this.minute = minutes;\n });\n } else {\n this.setformControlValue('');\n }\n }\n }\n\n ngAfterViewInit(): void {}\n\n onOutsideEvent() {\n if (this.open) {\n this.open = false;\n }\n }\n\n onToggel() {\n this.open = !this.open;\n if (this.open) {\n this.openedCall.emit();\n }\n }\n\n selectedHour(hour: string) {\n this.hour = hour;\n this.minute = '00';\n if (this.minMinute !== undefined && this.minHour !== undefined) {\n if (+this.hour === this.minHour) {\n if (this.minMinute < 59) {\n this.minMinute++;\n this.minute = this.minMinute < 10 ? `0${this.minMinute}` : `${this.minMinute}`;\n }\n }\n }\n\n this.timeChange.emit(this.time);\n this.setformControlValue(this.time);\n\n if (this.maxHour && +this.hour === this.maxHour) {\n this.isEnableMinuteDisable = true;\n } else if (this.minHour && +this.hour === this.minHour) {\n this.isEnableMinuteDisable = true;\n } else {\n this.isEnableMinuteDisable = false;\n }\n }\n\n selectedMin(min: string) {\n this.minute = min;\n\n if (this.hour === '') {\n this.hour = '00';\n }\n\n this.timeChange.emit(this.time);\n this.setformControlValue(this.time);\n }\n\n setformControlValue(value: string) {\n this.formControl?.setValue(value);\n this.formControl?.markAsDirty();\n this.formControl?.markAsTouched();\n }\n\n clearValue() {\n this.hour = '';\n this.minute = '';\n }\n\n get time() {\n if (this.hour === '' || this.minute === '') {\n return '';\n }\n return `${this.hour}:${this.minute}`;\n }\n}\n","
\n
\n \n \n
\n\n
\n\n
\n
\n maxHour) ||\n (minHour !== undefined && +item < minHour) ||\n (minHour !== undefined && minMinute === 59 && minHour === +item)\n }\"\n *ngFor=\"let item of hourList\"\n >{{ item }}\n
\n
\n = maxMinute) || (minMinute !== undefined && +item <= minMinute))\n }\"\n *ngFor=\"let item of minList\"\n >{{ item }}\n
\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\n\nimport { CdsSize, CdsStyle } from '@cds/ng-core/configuration';\nimport { CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\n\ninterface CdWarningPopupButton {\n style: CdsStyle;\n size: CdsSize;\n text: string;\n cb: () => void;\n}\n\n@Component({\n selector: 'app-cd-warning-popup',\n templateUrl: './cd-warning-popup.component.html',\n styleUrls: ['./cd-warning-popup.component.scss'],\n})\nexport class CdWarningPopupComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n isShowCloseIcon: boolean;\n title: string;\n buttons: CdWarningPopupButton[];\n messages: string[];\n closeCallBack?: () => void;\n }\n ) {}\n\n ngOnInit(): void {}\n\n close() {\n this.dialogRef.close();\n\n if (this.data.closeCallBack) {\n this.data.closeCallBack();\n }\n }\n}\n","
\n
\n {{ data.title | lang }}\n
\n
\n {{ msg }}\n
\n
\n
\n {{ button.text | lang }}\n
\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\n\nimport { CdWarningPopupComponent } from './cd-warning-popup.component';\n\n@NgModule({\n imports: [CommonModule, CdsPopupModule, CdsLanguageModule, CdsButtonModule],\n declarations: [CdWarningPopupComponent],\n exports: [CdWarningPopupComponent],\n})\nexport class CdWarningPopupModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-comm-batch-running',\n templateUrl: './comm-batch-running.component.html',\n styleUrls: ['./comm-batch-running.component.scss'],\n})\nexport class CommBatchRunningComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n
\n \n
\n
\n
\n {{\n '“ATTENTION: EDIT/UPDATE is disabled while the Commission Batch process is running.”' | lang\n }}\n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CommBatchRunningComponent } from './comm-batch-running.component';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\n@NgModule({\n imports: [CommonModule, CdsLanguageModule, CdsIconModule],\n declarations: [CommBatchRunningComponent],\n exports: [CommBatchRunningComponent],\n})\nexport class CommBatchRunningModule {}\n","import { Component, Inject } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\n@Component({\n selector: 'app-confirm-popup',\n templateUrl: './confirm-popup.component.html',\n styleUrls: ['./confirm-popup.component.scss'],\n})\nexport class ConfirmPopupComponent {\n disagreeButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n agreeButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n }\n ) {}\n agree() {\n this.dialogRef.close({ agree: true });\n }\n close() {\n this.dialogRef.close({ agree: false });\n }\n}\n","\n {{ data.title | lang }}\n \n
\n
\n \n {{ 'common.confirm' | lang }}\n {{ 'common.cancel' | lang }}\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\n\nimport { ConfirmPopupComponent } from './confirm-popup.component';\n\n@NgModule({\n imports: [CommonModule, CdsPopupModule, CdsLanguageModule, CdsButtonModule],\n declarations: [ConfirmPopupComponent],\n exports: [ConfirmPopupComponent],\n})\nexport class ConfirmPopupModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-continue-popup',\n templateUrl: './continue-popup.component.html',\n styleUrls: ['./continue-popup.component.scss'],\n})\nexport class ContinuePopupComponent implements OnInit {\n disagreeButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n agreeButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n cancelButtonName: string;\n continueButtonName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n closeFn: any;\n }\n ) {}\n\n ngOnInit(): void {}\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n close() {\n this.dialogRef.close({ agree: false });\n if (this.data.closeFn && typeof this.data.closeFn === 'function') {\n this.data.closeFn();\n }\n }\n}\n","\n {{ data.title }}\n \n
\n
\n \n \n {{ data.cancelButtonName }}\n {{ 'common.cancel' | lang }}\n \n \n {{ data.continueButtonName }}\n {{ 'common.continue' | lang }}\n \n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\n\nimport { ContinuePopupComponent } from './continue-popup.component';\n\n@NgModule({\n imports: [CommonModule, CdsPopupModule, CdsLanguageModule, CdsButtonModule],\n declarations: [ContinuePopupComponent],\n exports: [ContinuePopupComponent],\n})\nexport class ContinuePopupModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { copyText } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-copy-button',\n templateUrl: './copy-button.component.html',\n styleUrls: ['./copy-button.component.scss'],\n})\nexport class CopyButtonComponent implements OnInit {\n @Input() value = '';\n isShowCopied = false;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n copy() {\n if (this.isShowCopied) {\n return;\n }\n copyText(this.value);\n this.isShowCopied = true;\n setTimeout(() => {\n this.isShowCopied = false;\n }, 2000);\n }\n}\n","
\n
\n \n
\n
\n Copied\n
\n
\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-host-metadata-property */\n/* eslint-disable @angular-eslint/directive-selector */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Directive, Input, TemplateRef } from '@angular/core';\n\n/**\n * td Cell definition for the Appapp-dt-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[appDtHeaderCellDef]',\n})\nexport class DtHeaderCellDefDirective {\n @Input() appDtHeaderCellDef!: string;\n constructor(public templateRef: TemplateRef) {}\n}\n\n/**\n * th Cell definition for the Appapp-dt-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[appDtBodyCellDef]',\n})\nexport class DtBodyCellDefDirective {\n @Input() appDtBodyCellDef!: string;\n constructor(public templateRef: TemplateRef) {}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { debounceTime, fromEvent, Subscription } from 'rxjs';\n\nimport { DataTableService } from './data-table.service';\nimport { DtHeaderCellDefDirective, DtBodyCellDefDirective } from './data-table.component.directive';\n\nimport { IPaginationCount } from '../pagination/pagination.dto';\nimport { ColumnConfig, PageConfig, SortMode } from './data-table.model';\n\n@Component({\n selector: 'app-data-table',\n providers: [DataTableService],\n styleUrls: ['./data-table.component.scss'],\n templateUrl: './data-table.component.html',\n})\nexport class DataTableComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n @ViewChild('tablebox', { static: false })\n tablebox!: ElementRef;\n subscribeScoll!: Subscription;\n public sortMode = SortMode;\n public displayedColumns: string[] = [];\n public activeClounm: ColumnConfig | null = null;\n public pageCount: IPaginationCount = { current: 1, count: 1 };\n public pageSize = 5;\n public totalNum = 0;\n public tempData: Array = [];\n public disPlayData: Array = [];\n\n @Input() isLoading = false;\n @Input() fixed = false;\n @Input() overlay = false;\n @Input() pageConfig: PageConfig = {\n current: 1,\n pageSize: 5,\n totalCount: 0,\n };\n @Input() isShowPagination = true;\n @Input() fixedHeader = false;\n @Input() frontPagination = true;\n @Input() dataSource: Array = [];\n @Input() columnsConfig: Array = [];\n @Output() reloadTable = new EventEmitter();\n @Output() frontReloadTable = new EventEmitter();\n @ContentChildren(DtHeaderCellDefDirective)\n headerCellRefs!: QueryList;\n @ContentChildren(DtBodyCellDefDirective)\n bodyCellRefs!: QueryList;\n\n constructor(private dataTableService: DataTableService) {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['frontPagination']) {\n this.frontPaginationChange(changes['frontPagination'].currentValue);\n }\n if (changes['columnsConfig']) {\n this.setColumns(changes['columnsConfig'].currentValue);\n }\n if (changes['pageConfig']) {\n this.pageConfigChange(changes['pageConfig'].currentValue);\n }\n if (changes['dataSource']) {\n this.sourceDataChange(changes['dataSource'].currentValue);\n }\n }\n\n get tempBodyCellRefs() {\n const aObj: any = {};\n if (this.bodyCellRefs && this.bodyCellRefs.length) {\n this.bodyCellRefs.forEach(template => {\n const key: string = template.appDtBodyCellDef;\n aObj[key] = template;\n });\n }\n return aObj;\n }\n\n get tempHeaderCellRefs() {\n const aObj: any = {};\n if (this.headerCellRefs && this.headerCellRefs.length) {\n this.headerCellRefs.forEach(template => {\n const key: string = template.appDtHeaderCellDef;\n aObj[key] = template;\n });\n }\n return aObj;\n }\n\n frontPaginationChange(frontPagination: boolean) {\n this.frontPagination = frontPagination;\n }\n\n setColumns(columnsConfig: Array): void {\n this.displayedColumns = [];\n columnsConfig.forEach((item: ColumnConfig) => {\n if (!this.displayedColumns.includes(item.key)) {\n this.displayedColumns.push(item.key);\n }\n });\n }\n\n pageConfigChange(pageConfig: PageConfig) {\n if (!this.frontPagination && this.dataTableService.validateTotalCount(pageConfig.totalCount)) {\n this.pageCount.current = 1;\n // this.activeClounm = null;\n // this.initColumnsConfig();\n this.setTotalNum(pageConfig.totalCount as number);\n }\n if (this.dataTableService.validatePage(pageConfig.current)) {\n this.pageCount.current = pageConfig.current as number;\n }\n if (this.dataTableService.validatePage(pageConfig.pageSize)) {\n this.pageSize = pageConfig.pageSize as number;\n }\n this.setPagination(this.pageCount.current, this.pageSize, this.totalNum);\n this.setTable();\n }\n\n setTotalNum(num: number) {\n this.totalNum = num;\n }\n\n setPageSize(num: number) {\n this.pageSize = num;\n }\n\n setPagination(page: number, pageSize: number, total: number): void {\n this.pageCount = {\n current: page,\n count: Math.ceil(total / pageSize),\n };\n }\n\n sourceDataChange(newData: Array): void {\n if (this.frontPagination) {\n // this.activeClounm = null;\n // this.initColumnsConfig();\n this.pageCount.current = 1;\n this.setTotalNum(newData.length);\n this.setPagination(this.pageCount.current, this.pageSize, this.totalNum);\n }\n // this.checkAndcreateColumn();\n this.sort();\n this.setTable();\n }\n\n // checkAndcreateColumn() {\n // if (this.displayedColumns && this.displayedColumns.length) {\n // this.dataSource.forEach(item => {\n // this.displayedColumns.forEach(key => {\n // if (this.dataTableService.isUndefined(item[key])) {\n // const keys = key.split('+');\n // let str = '';\n // keys.forEach(a => {\n // if (!this.dataTableService.isUndefined(item[a])) {\n // str += item[a];\n // }\n // });\n // if (str !== '') {\n // item[key] = str;\n // }\n // }\n // });\n // });\n // }\n // }\n\n setTable(): void {\n if (this.frontPagination) {\n if (this.isShowPagination) {\n this.disPlayData = this.tempData.slice((this.pageCount.current - 1) * this.pageSize, this.pageCount.current * this.pageSize);\n } else {\n this.disPlayData = [...this.tempData];\n }\n } else {\n // this.tempData = [...this.dataSource];\n this.disPlayData = [...this.tempData];\n }\n }\n\n sortChange(column: ColumnConfig, sortType?: SortMode) {\n this.initColumnsConfig();\n column.sort = sortType ? sortType : column.sort;\n this.activeClounm = sortType === this.sortMode.DEFAULT ? null : column;\n\n if (this.frontPagination) {\n this.sort();\n this.setTable();\n return;\n }\n this.reloadTable.emit(this.createParam());\n }\n\n createParam() {\n const paramOnj: any = {\n pageSize: this.pageSize,\n ...this.pageCount,\n };\n if (this.activeClounm) {\n paramOnj.column = this.activeClounm;\n }\n return paramOnj;\n }\n\n initColumnsConfig(): void {\n this.columnsConfig.forEach(column => {\n if (column.sort) {\n column.sort = this.sortMode.DEFAULT;\n }\n });\n }\n\n sort() {\n const tempData = [...this.dataSource];\n if (!this.frontPagination) {\n this.tempData = tempData;\n return;\n }\n if (this.activeClounm) {\n const { key, sort } = this.activeClounm;\n this.tempData = this.dataTableService.sort(tempData, key, sort as string);\n } else {\n this.tempData = tempData;\n }\n this.frontReloadTable.emit(this.tempData);\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n if (this.frontPagination) {\n this.setTable();\n // return;\n }\n this.reloadTable.emit({\n pageSize: this.pageSize,\n ...this.pageCount,\n column: this.activeClounm,\n });\n }\n\n ngAfterViewInit() {\n this.subscribeScoll = fromEvent(this.tablebox.nativeElement, 'scroll')\n .pipe(debounceTime(50))\n .subscribe((event: any) => {\n if (event.target.scrollLeft) {\n event.target.classList.add('shadow');\n } else {\n event.target.classList.remove('shadow');\n }\n });\n }\n\n ngOnDestroy() {\n this.subscribeScoll.unsubscribe();\n }\n}\n","
\n \n
\n\n
\n 0 && (!isLoading || overlay)\">\n \n \n
\n \n
\n {{ item.title | lang }}\n
\n
\n \n \n \n
\n
\n
\n \n \n
\n {{ element[item.key] | lang }}\n
\n
\n \n \n \n
\n
\n
0 && (!isLoading || overlay) && isShowPagination\">\n \n
\n","export interface ColumnConfig {\n key: string;\n title: string;\n sort?: SortMode;\n sticky?: boolean;\n stickyEnd?: boolean;\n}\n\nexport interface PageConfig {\n pageSize?: number;\n totalCount?: number;\n current?: number;\n}\n\nexport enum SortMode {\n DEFAULT = 'none',\n UP = 'asc',\n DOWN = 'desc',\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { LoadingModule } from '../loading/loading.modules';\nimport { AppPaginationModule } from '../pagination/pagination.module';\nimport { NoResultFoundModule } from './../no-result-found/no-result-found.module';\n\nimport { DataTableComponent } from './data-table.component';\n\nimport { DtHeaderCellDefDirective, DtBodyCellDefDirective } from './data-table.component.directive';\n@NgModule({\n declarations: [DataTableComponent, DtHeaderCellDefDirective, DtBodyCellDefDirective],\n imports: [CommonModule, AppPaginationModule, LoadingModule, NoResultFoundModule, CdsTableModule, CdsIconModule, CdsLanguageModule],\n exports: [DataTableComponent, DtHeaderCellDefDirective, DtBodyCellDefDirective],\n})\nexport class DataTableModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { SortMode } from './data-table.model';\n@Injectable()\nexport class DataTableService {\n sort(array: Array, key: string, mode: string) {\n return array.sort((a: any, b: any) => {\n const aValue = a[key];\n const bValue = b[key];\n if (mode === SortMode.UP) {\n return this.compareStr(aValue, bValue);\n }\n if (mode === SortMode.DOWN) {\n return this.compareStr(bValue, aValue);\n }\n return 0;\n });\n }\n\n compareStr(a?: string | number, b?: string | number): number {\n let result = 0;\n if (!isNaN(Number(a)) && !isNaN(Number(b))) {\n result = Number(a) - Number(b);\n } else {\n const strA = a === undefined ? '' : a.toString();\n const strB = b === undefined ? '' : b.toString();\n const lengthStr = Math.max(strA.length, strB.length);\n for (let index = 0; index < lengthStr; index++) {\n result = this.compareChar(strA[index], strB[index]);\n if (result !== 0) {\n break;\n }\n }\n }\n console.log(a, result ? '>' : '<', b);\n return result;\n }\n\n compareChar(a: string | undefined, b: string | undefined) {\n if (typeof a === 'undefined') {\n return -1;\n }\n if (typeof b === 'undefined') {\n return 1;\n }\n if (this.isChineseChar(a) && this.isChineseChar(b)) {\n return a.localeCompare(b);\n }\n if (!this.isChineseChar(a) && this.isChineseChar(b)) {\n return -1;\n }\n if (this.isChineseChar(a) && !this.isChineseChar(b)) {\n return 1;\n }\n\n return a.charCodeAt(0) - b.charCodeAt(0);\n }\n\n isChineseChar(char: string) {\n return /^[\\u4E00-\\u9FA5]$/.test(char);\n }\n\n isUndefined(value: any): boolean {\n return typeof value == 'undefined';\n }\n\n validatePage(value: any): boolean {\n if (value === 0) {\n return false;\n }\n return /^[0-9]+$/.test(value);\n }\n\n validateTotalCount(value: any): boolean {\n return /^[0-9]+$/.test(value);\n }\n\n constructor() {}\n}\n","export * from './public-api';\n","export * from './data-table.model';\nexport * from './data-table.module';\nexport * from './data-table.service';\n// export * from './data-table.component.directive';\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-date-range-box',\n templateUrl: './date-range-box.component.html',\n styleUrls: ['./date-range-box.component.scss'],\n})\nexport class DateRangeBoxComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n \n
\n
\n -\n
\n
\n \n
\n
\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, OnDestroy, Output } from '@angular/core';\n\n@Directive({\n selector: '[appBottomDetection]',\n})\nexport class BottomDetectionDirective implements AfterViewInit, OnDestroy {\n private isHaveReachedTheBottom = false;\n @Output() arriveBottom = new EventEmitter();\n @Output() haveReachedTheBottom = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n this.el.nativeElement.addEventListener('scroll', this.onScroll);\n }\n\n onScroll = () => {\n const scrollHeight = this.el.nativeElement.scrollHeight;\n const clientHeight = this.el.nativeElement.clientHeight;\n\n if (this.el.nativeElement.scrollTop > scrollHeight - clientHeight - 10) {\n this.arriveBottom.emit();\n\n if (!this.isHaveReachedTheBottom) {\n this.isHaveReachedTheBottom = true;\n this.haveReachedTheBottom.emit();\n }\n }\n };\n\n ngOnDestroy(): void {\n this.el.nativeElement.removeEventListener('scroll', this.onScroll);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[appDisableFormControl]',\n exportAs: 'appDisableFormControl',\n})\nexport class DisableFormControlDirective {\n @Input() set appDisableFormControl(condition: boolean) {\n if (condition) {\n this.ngControl.control?.disable();\n } else {\n this.ngControl.control?.enable();\n }\n }\n\n constructor(private ngControl: NgControl) {}\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\n\n@Directive({\n selector: '[appMenuClose]',\n exportAs: 'appMenuClose',\n})\nexport class MatMenuCloseDirective implements OnDestroy {\n public constructor(private readonly matMenuTrigger: MatMenuTrigger) {\n window.addEventListener('touchmove', this.scrollEvent, true);\n }\n\n public ngOnDestroy(): void {\n window.removeEventListener('touchmove', this.scrollEvent, true);\n }\n\n private scrollEvent = (): void => {\n console.log('matMenuTrigger touchmove');\n if (this.matMenuTrigger == null) {\n return;\n }\n if (this.matMenuTrigger.menuOpen) {\n console.log('matSelect menuOpen');\n this.matMenuTrigger.closeMenu();\n }\n };\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { MatSelect } from '@angular/material/select';\n\n@Directive({\n selector: '[appSelectCloseDirective]',\n exportAs: 'appSelectCloseDirective',\n})\nexport class MatSelectCloseDirective implements OnDestroy {\n public constructor(private matSelect: MatSelect) {\n window.addEventListener('touchmove', this.scrollEvent, true);\n }\n\n public ngOnDestroy(): void {\n window.removeEventListener('touchmove', this.scrollEvent, true);\n }\n\n private scrollEvent = (): void => {\n console.log('matSelect touchmove');\n if (this.matSelect == null) {\n return;\n }\n if (this.matSelect.panelOpen) {\n console.log('matSelect panelOpen');\n this.matSelect.close();\n }\n };\n}\n","import { Directive, Output, EventEmitter, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\n\nimport { Subscription, fromEvent } from 'rxjs';\n\nimport { ParentElement } from 'src/app/views/salesjourney/case-summary/case-summary.model';\n\n@Directive({\n selector: '[appOutsideClose]',\n})\nexport class OutsideCloseDirective implements AfterViewInit, OnDestroy {\n @Output() outsideEvent = new EventEmitter();\n private unDocumentClick!: Subscription;\n private clickIsClose = true;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.unDocumentClick = fromEvent(document, 'click').subscribe(this.clickFun.bind(this));\n }, 0);\n }\n\n clickFun(event: Event) {\n this.clickIsClose = true;\n const newEvent = event as unknown as {\n target: { classList: DOMTokenList; parentElement: ParentElement };\n };\n this.checkStyle(newEvent.target, () => {\n this.clickIsClose = false;\n });\n if (this.clickIsClose) {\n this.outsideEvent.emit();\n }\n }\n\n private checkStyle(element: ParentElement, callback: () => void) {\n if (element !== this.el.nativeElement) {\n if (element.parentElement) {\n this.checkStyle(element.parentElement, callback);\n }\n } else {\n callback();\n }\n }\n\n ngOnDestroy(): void {\n this.unDocumentClick.unsubscribe();\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[appTextEllipsis]',\n})\nexport class TextEllipsisDirective {\n @Input('appTextEllipsis') set text(text: string) {\n this.setHtml(text);\n }\n\n // px\n @Input('appTextEllipsisContentMaxWidth') contentMaxWidth!: number;\n\n // px\n @Input('appTextEllipsisContentMaxHeight') contentMaxHeight = 16;\n\n @Output() ellipsisChange = new EventEmitter();\n\n fold = true;\n\n constructor(private elementRef: ElementRef) {}\n\n setHtml(text: string) {\n const container = this.elementRef.nativeElement;\n const content = document.createElement('span');\n\n content.innerText = text;\n content.style.display = 'inline';\n\n container.appendChild(content);\n\n setTimeout(() => {\n if (content.offsetWidth >= this.contentMaxWidth || content.offsetHeight > this.contentMaxHeight) {\n this.ellipsisChange.emit(true);\n } else {\n this.ellipsisChange.emit(false);\n }\n });\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors } from '@angular/forms';\nimport { dateValidator } from 'src/app/shared/validators/validators';\n\n@Directive({\n selector: '[appDateValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: DateValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class DateValidatorDirective {\n /** Error message key */\n @Input('appDateValidator') description = '';\n // DD/MM/YYYY\n @Input('appDateValidatorMinDate') minDate?: string;\n // DD/MM/YYYY\n @Input('appDateValidatorMaxDate') maxDate?: string;\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.description ? dateValidator(this.description, this.minDate, this.maxDate)(control) : null;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors } from '@angular/forms';\nimport { descriptionValidator } from 'src/app/shared/validators/validators';\n\n@Directive({\n selector: '[appDescriptionValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: DescriptionValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class DescriptionValidatorDirective {\n /** Error message key */\n @Input('appDescriptionValidator') description = '';\n @Input('appDescriptionValidatorSupportChinese') supportChinese = false;\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.description ? descriptionValidator(this.description, this.supportChinese)(control) : null;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors } from '@angular/forms';\nimport { maxValidator } from 'src/app/shared/validators/validators';\n\n@Directive({\n selector: '[appMaxValidator]',\n providers: [{ provide: NG_VALIDATORS, useExisting: MaxValidatorDirective, multi: true }],\n})\nexport class MaxValidatorDirective {\n @Input('appMaxValidator') max = 0;\n\n validate(control: AbstractControl): ValidationErrors | null {\n return maxValidator(this.max)(control);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors } from '@angular/forms';\nimport { minValidator } from 'src/app/shared/validators/validators';\n\n@Directive({\n selector: '[appMinValidator]',\n providers: [{ provide: NG_VALIDATORS, useExisting: MinValidatorDirective, multi: true }],\n})\nexport class MinValidatorDirective {\n @Input('appMinValidator') min = 0;\n\n validate(control: AbstractControl): ValidationErrors | null {\n return minValidator(this.min)(control);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DescriptionValidatorDirective } from './description-validator/description.directive';\nimport { DateValidatorDirective } from './date-validator/date-validator.directive';\nimport { MinValidatorDirective } from './min-validator/min-validator.directive';\nimport { MaxValidatorDirective } from './max-validator/max-validator.directive';\n\n@NgModule({\n declarations: [DescriptionValidatorDirective, DateValidatorDirective, MinValidatorDirective, MaxValidatorDirective],\n imports: [CommonModule],\n exports: [DescriptionValidatorDirective, DateValidatorDirective, MinValidatorDirective, MaxValidatorDirective],\n})\nexport class ValidatorsModule {}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appWidgetHost]',\n})\nexport class WidgetHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DownloadFileService {\n private percentComplete?: { value: number };\n\n constructor(private alert: CdsAlertService, private http: HttpClient) {}\n\n public downloadFile(fileUrl: string, fileName: string, percentComplete: { value: number }, closeDownloadEvent: { event: (() => void) | null }) {\n return new Promise(resolve => {\n this.percentComplete = percentComplete;\n const xhr = new XMLHttpRequest();\n closeDownloadEvent.event = () => {\n xhr.abort();\n };\n this.getBlob(fileUrl, xhr)\n .then(blob => {\n this.saveFile(blob, fileName);\n resolve();\n })\n .catch(errMsg => {\n this.alert.error('Error!', errMsg);\n resolve();\n });\n });\n }\n\n private getBlob(fileUrl: string, xhr: XMLHttpRequest) {\n return new Promise((resolve, reject) => {\n xhr.open('GET', fileUrl, true);\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n xhr.setRequestHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');\n xhr.setRequestHeader('mode', 'no-cors');\n xhr.addEventListener(\n 'progress',\n evt => {\n if (evt.lengthComputable) {\n const percentComplete = evt.loaded / evt.total;\n if (this.percentComplete) {\n this.percentComplete.value = percentComplete * 100;\n }\n }\n },\n false\n );\n xhr.responseType = 'blob';\n xhr.onload = () => {\n if (xhr.status === 200) {\n resolve(xhr.response);\n } else {\n reject(`${xhr.status}`);\n }\n };\n xhr.addEventListener('error', err => {\n reject(`${err.loaded} bytes transferred`);\n });\n xhr.send();\n });\n }\n\n private saveFile(blob: Blob, fileName: string) {\n const link = document.createElement('a');\n const body = document.querySelector('body');\n link.href = window.URL.createObjectURL(blob);\n link.download = fileName;\n\n link.style.display = 'none';\n body?.appendChild(link);\n\n link.click();\n body?.removeChild(link);\n\n window.URL.revokeObjectURL(link.href);\n }\n public downLoad(url: string, fileName: string) {\n const link = document.createElement('a');\n const body = document.querySelector('body');\n link.href = url;\n link.download = fileName;\n\n link.style.display = 'none';\n body?.appendChild(link);\n\n link.click();\n body?.removeChild(link);\n\n window.URL.revokeObjectURL(link.href);\n }\n public downLoadNew(url: string, fileName: string) {\n this.http\n .get(url, {\n responseType: 'arraybuffer',\n headers: {\n mode: 'no-cors',\n },\n })\n .subscribe(buffer => {\n const e = new Blob([buffer], {\n type: 'application/octet-stream',\n // 'Content-Disposition': 'attachment'\n });\n const link = window.URL.createObjectURL(e);\n this.downLoad(link, fileName);\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, EventEmitter, forwardRef, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { catchError, finalize, Subscription, throwError } from 'rxjs';\nimport { InputAutocompleteService } from './input-autocomplete.service';\n\n@Component({\n selector: 'app-dynamic-input-autocomplete',\n templateUrl: './input-autocomplete.component.html',\n styleUrls: ['./input-autocomplete.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class InputAutocompleteComponent implements OnInit, OnDestroy, OnChanges {\n constructor(private service: InputAutocompleteService) {}\n\n @ViewChild('selectPanelRef') selectPanelRef!: ElementRef;\n\n @Input() value = '';\n\n @Input() label?: string;\n\n @Input() editMode = true;\n\n @Input() disabled = false;\n\n @Input() placeholder = '';\n\n @Input() optionList: any[] = [];\n\n @Input() requestUrl = '';\n\n @Input() requestParams?: any;\n\n @Input() optionKey = '';\n\n @Input() searchKey = '';\n\n @Input() pageSize = 10;\n\n @Input() initLoad = true;\n\n @Input() showDropdownButton = false;\n\n @Input() searchUntilFocus = false;\n\n @Input() minLength = 0;\n\n @Input() inputValid = true;\n\n @Input() resDataInContent = true;\n\n @Input() labelRenderFn?: (data: any) => string;\n\n @Output() valueChange = new EventEmitter();\n\n @Output() selectChange = new EventEmitter();\n\n @Output() focusEvent = new EventEmitter();\n\n @Output() blurEvent = new EventEmitter();\n\n searchValue = '';\n\n subscription: Subscription | null = null;\n\n isLoading = false;\n\n _input = false;\n\n page = 0;\n\n noMorePage = false;\n\n toggleDisabled = false;\n\n readyToSearch = false;\n\n firstLoad = true;\n\n ngOnInit(): void {\n if (this.optionKey && !this.searchKey) {\n this.searchKey = this.optionKey;\n }\n\n if (this.disabled || !this.editMode) return;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.disabled || !this.editMode) return;\n\n if (changes['requestParams'] || changes['requestUrl'] || changes['optionKey'] || changes['searchKey']) {\n if (this.searchUntilFocus) {\n this.readyToSearch = true;\n } else {\n if (this.firstLoad && !this.initLoad) {\n this.firstLoad = false;\n } else {\n this.search(this.value);\n }\n }\n }\n }\n\n search(value = '') {\n setTimeout(() => {\n if (this.value.length < this.minLength || !this.inputValid) return;\n this.optionList = [];\n this.init();\n this.get(value);\n });\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.subscription = null;\n }\n\n init() {\n this.page = 0;\n this.noMorePage = false;\n }\n\n get(searchValue = '') {\n this.subscription?.unsubscribe();\n this.subscription = null;\n const params = {\n ...this.requestParams,\n [this.searchKey]: searchValue,\n };\n this.isLoading = true;\n this.subscription = this.service\n .get(this.requestUrl, params, this.page, this.pageSize, this.resDataInContent)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n }),\n catchError(err => {\n this.noMorePage = true;\n const error = err.message || err.statusText;\n return throwError(() => new Error(error));\n })\n )\n .subscribe((content: any[]) => {\n const optionList = content;\n if (optionList.length < this.pageSize) {\n this.noMorePage = true;\n }\n this.optionList = [...this.optionList, ...optionList];\n });\n }\n\n inputVal(val: string, searchAction = false, data?: any) {\n if (this.disabled) return;\n this.page = 0;\n this.noMorePage = false;\n this.optionList = [];\n this.value = val;\n\n this.searchValue = searchAction ? this.value : '';\n\n this.propagateOnChange(this.value);\n this.valueChange.emit(val);\n if (data) {\n this.selectChange.emit(data);\n }\n if (this.requestUrl) {\n if (this.initLoad || this.value) {\n this.search(this.searchValue);\n } else {\n this.optionList = [];\n }\n }\n }\n cssTrigger(val: boolean) {\n if (!val) {\n this.blurEvent.emit();\n this.toggleDisabled = true;\n setTimeout(() => {\n this.toggleDisabled = false;\n }, 300);\n } else {\n this.focusEvent.emit();\n }\n\n this._input = val;\n if (this.readyToSearch && this._input) {\n this.readyToSearch = false;\n this.search(this.value);\n }\n }\n\n toggleSelectPanel() {\n if (this.toggleDisabled || this.disabled) return;\n this._input = !this._input;\n }\n\n writeValue(value: string) {\n if (value !== undefined) {\n this.value = value;\n this.propagateOnChange(this.value);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n propagateOnChange = (value: string) => {};\n\n propagateOnTouched = () => {};\n\n registerOnChange(fn: (value: string) => void) {\n this.propagateOnChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.propagateOnTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n selectPanelonScroll() {\n if (this.isLoading || this.noMorePage) return;\n const element = this.selectPanelRef.nativeElement;\n if (element.scrollHeight - element.scrollTop === element.clientHeight) {\n this.page++;\n this.get(this.searchValue);\n }\n }\n}\n","
\n
\n {{ label }}\n
\n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n 0\">\n
\n {{ labelRenderFn ? labelRenderFn(item) : (item ? item[optionKey] : '') || item }}\n
\n
\n\n
\n Loading\n
\n \n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { InputAutocompleteComponent } from './input-autocomplete.component';\n\n@NgModule({\n declarations: [InputAutocompleteComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CdsIconModule, CdsProgressModule],\n exports: [InputAutocompleteComponent],\n})\nexport class DynamicAutocompleteModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InputAutocompleteService {\n private base_url = `${environment.apiPrefix}/ext/eb-ssms/`;\n\n constructor(private http: HttpClient) {}\n\n get(url: string, params: any = {}, page = 0, pageSize = 10, resDataInContent: boolean): Observable {\n return this.http\n .get(this.base_url + url, {\n params: filterParams({\n ...params,\n size: pageSize,\n page,\n }),\n })\n .pipe(\n map(res => {\n return (resDataInContent ? res.data.content : res.data) || [];\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nexport enum HideTextType {\n EMAIL = 'EMAIL',\n PHONE = 'PHONE',\n}\n\n@Pipe({\n name: 'hideText',\n})\nexport class HideTextPipe implements PipeTransform {\n transform(value: string, type: HideTextType): unknown {\n if (type === HideTextType.EMAIL) {\n const endIndex = value.indexOf('@');\n return value.substring(0, 4) + '*****' + value.substring(endIndex);\n } else if (type === HideTextType.PHONE) {\n let phoneArr = new Array((value + '').length - 3);\n phoneArr = phoneArr.fill('*');\n return value.substring(0, 1) + phoneArr.join('') + value.substring((value + '').length - 2);\n }\n return value;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-icon-status',\n templateUrl: './icon-status.component.html',\n styleUrls: ['./icon-status.component.scss'],\n})\nexport class IconStatusComponent implements OnInit {\n @Input() value?: any;\n @Input() statusMapObj?: any;\n\n colorStyle = '';\n\n text = '';\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getStatusColorStyle(value: string, mapObj: any) {\n if (!value) {\n return '';\n }\n return `background-color: ${mapObj[value]?.color};`;\n }\n\n getStatus(value: string, mapObj: any) {\n if (!value) {\n return '';\n }\n return mapObj[value]?.text;\n }\n}\n","
\n
\n
{{ getStatus | fn : value : statusMapObj }}
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class IconStatusModule {}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { CdsLangService, LangCode } from '@cds/ng-core/lang';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LanguageChangeService {\n lanSubject = new BehaviorSubject('en');\n initLanNotice = new BehaviorSubject('en');\n\n constructor(public lang: CdsLangService, private _adapter: DateAdapter, @Inject(MAT_DATE_LOCALE) private _locale: string) {\n this.init();\n }\n\n private init() {\n const lang = localStorage.getItem('language');\n this.initLanNotice.next(lang || 'en');\n this.setLang(lang || 'en');\n }\n\n setLang(lang: LangCode) {\n this.lang.setCurrentLang(lang);\n this.lanSubject.next(lang);\n this.initLanNotice.next(lang);\n localStorage.setItem('language', lang);\n\n if (lang === 'en') {\n this.en();\n } else {\n this.zh();\n }\n }\n\n zh() {\n this._locale = 'zh-HK';\n this._adapter.setLocale(this._locale);\n }\n\n en() {\n this._locale = 'en';\n this._adapter.setLocale(this._locale);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\nimport { CdsOption } from '@cds/ng-core/configuration';\n\nimport { environment } from 'src/environments/environment';\nimport { LanguageChangeService } from '../language-change.service';\n\n@Component({\n selector: 'app-language-switch',\n templateUrl: './language-switch.component.html',\n styleUrls: ['./language-switch.component.scss'],\n})\nexport class LanguageSwitchComponent implements OnInit {\n languages: CdsOption[] = environment.languageList;\n isShowLanguageList = false;\n\n constructor(private languageChangeService: LanguageChangeService) {}\n\n changeLang(lang: string) {\n this.languageChangeService.setLang(lang);\n this.isShowLanguageList = false;\n }\n\n ngOnInit(): void {}\n\n toggle() {\n this.isShowLanguageList = !this.isShowLanguageList;\n }\n}\n","
\n \n \n\n
\n \n {{ language.label }}\n \n\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { LanguageSwitchComponent } from './language-switch.component';\n\n@NgModule({\n imports: [CommonModule, CdsIconModule, CdsLanguageModule],\n declarations: [LanguageSwitchComponent],\n exports: [LanguageSwitchComponent],\n})\nexport class LanguageSwitchModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n})\nexport class LoadingComponent implements OnInit {\n @Input() overlay = false;\n @Input() overlayInPopup = false;\n constructor() {}\n ngOnInit(): void {}\n}\n","\n Loading\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { LoadingComponent } from './loading.component';\n@NgModule({\n declarations: [LoadingComponent],\n imports: [CommonModule, CdsProgressModule, CdsLanguageModule],\n exports: [LoadingComponent],\n})\nexport class LoadingModule {}\n","import { Component, OnInit, Input } from '@angular/core';\n\nexport type MattersNeedingAttentionType = 'yellow' | 'red';\n\n@Component({\n selector: 'app-matters-needing-attention',\n templateUrl: './matters-needing-attention.component.html',\n styleUrls: ['./matters-needing-attention.component.scss'],\n})\nexport class MattersNeedingAttentionComponent implements OnInit {\n @Input() title!: string;\n @Input() text!: string;\n @Input() color: MattersNeedingAttentionType = 'yellow';\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n
\n
\n \n
\n
\n
\n \n {{ title }}\n \n
\n
\n {{ text }}\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { MattersNeedingAttentionComponent } from './matters-needing-attention.component';\n\n@NgModule({\n imports: [CommonModule, CdsIconModule, CdsLanguageModule],\n declarations: [MattersNeedingAttentionComponent],\n exports: [MattersNeedingAttentionComponent],\n})\nexport class MattersNeedingAttentionModule {}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { FormIcons } from '@cds/ng-themes';\n@Component({\n selector: 'app-no-result-found',\n templateUrl: './no-result-found.component.html',\n styleUrls: ['./no-result-found.component.scss'],\n})\nexport class NoResultFoundComponent implements OnInit {\n @Input() msg?: string;\n constructor() {}\n\n ngOnInit(): void {}\n\n noResultFoundIcon = FormIcons.search;\n\n iconConfig: CdsIconConfig = { color: '#8e90a2', size: 'md' };\n}\n","
\n
\n \n
\n       \n {{ msg || 'common.noResultFound' | lang }}\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { NoResultFoundComponent } from './no-result-found.component';\n@NgModule({\n declarations: [NoResultFoundComponent],\n imports: [CommonModule, CdsIconModule, CdsLanguageModule],\n exports: [NoResultFoundComponent],\n})\nexport class NoResultFoundModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IPaginationCount } from './pagination.dto';\n\n@Component({\n selector: 'app-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppPaginationComponent implements AfterViewInit, OnChanges {\n private _pageCount: IPaginationCount = { current: 1, count: 1 };\n\n private _isViewInit = false;\n\n @ViewChild('inkBar') inkBar?: ElementRef;\n\n @Output() pageChange = new EventEmitter();\n @Input() isShowInput = true;\n @Input() isLoading = false;\n @Input() useOf = false;\n @Input() textfieldAlwaysAvailable = false;\n @Input()\n set pageCount(iPageCount: IPaginationCount) {\n const _pageCount = iPageCount;\n if (_pageCount.count < 1) {\n _pageCount.count = 1;\n }\n if (_pageCount.current < 1) {\n _pageCount.current = 1;\n }\n if (this._pageCount.current != _pageCount.current) {\n this.pageChange.emit(_pageCount.current);\n }\n this._pageCount = _pageCount;\n this.updateInkBarPosition();\n }\n\n get pageCount(): IPaginationCount {\n return this._pageCount;\n }\n\n constructor(private elemRef: ElementRef, private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this._isViewInit = true;\n this.updateInkBarPosition();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pageCount']) {\n this.updateInkBarPosition();\n }\n if (changes['isLoading']) {\n console.debug(`isLoadingisLoadingisLoadingisLoading`);\n }\n }\n\n updateInkBarPosition() {\n if (!this._isViewInit) {\n return;\n }\n requestAnimationFrame(() => {\n const selectedElem = this.getSelectedElem();\n if (this.inkBar) {\n this.inkBar.nativeElement.style.left = selectedElem.offsetLeft + 'px';\n this.inkBar.nativeElement.style.width = selectedElem.offsetWidth + 'px';\n }\n });\n }\n\n clickPage(page: number) {\n console.debug(`clickPage=${page}`);\n // if (!this.isLoading) {\n\n // }\n this.selectPage(page);\n }\n\n selectPage(page: number, event?: any) {\n this.cdr.detach();\n console.debug(`selectPage=${page}`);\n\n if (page > this.pageCount.count) {\n page = this.pageCount.count;\n } else if (page < 1) {\n page = 1;\n }\n if (this.pageCount.current === page) {\n if (event) {\n event.target.value = page;\n }\n this.cdr.reattach();\n return;\n }\n this.pageCount.current = page;\n this.updateInkBarPosition();\n this.pageChange.emit(this._pageCount.current);\n this.cdr.reattach();\n }\n\n isPageShown(page: number) {\n if (page === 1 || page === this.pageCount.count) {\n return true;\n }\n if (this.pageCount.current - 2 <= page && this.pageCount.current + 2 >= page) {\n return true;\n }\n if (this.pageCount.current - 4 === 1 && page < this.pageCount.count) {\n return 1 < page;\n }\n if (this.pageCount.current + 4 >= this.pageCount.count) {\n return this.pageCount.current < page && page < this.pageCount.count;\n }\n return false;\n }\n\n getSelectedElem() {\n return this.elemRef.nativeElement.getElementsByClassName('selected')[0];\n }\n\n gotoPage(event: any) {\n const iPage = event.target.value || '';\n let searchPage = parseInt(iPage);\n if (!searchPage) {\n searchPage = 1;\n }\n console.debug(searchPage);\n this.selectPage(searchPage, event);\n }\n}\n","
0 && pageCount.count > 0\">\n
\n
\n
\n
    \n
  • \n \n
  • \n \n 2\"\n class=\"page\"\n [class.selected]=\"false\"\n [class.right-border]=\"true\"\n (click)=\"selectPage(1); $event.preventDefault()\">\n 1\n \n
  • 4\" class=\"ellipsis\">...
  • \n 3\"\n class=\"page\"\n [class.selected]=\"false\"\n [class.right-border]=\"true\"\n (click)=\"selectPage(pageCount.current - 2); $event.preventDefault()\">\n {{ pageCount.current - 2 }}\n \n 1\"\n class=\"page\"\n [class.selected]=\"false\"\n [class.right-border]=\"true\"\n (click)=\"selectPage(pageCount.current - 1); $event.preventDefault()\">\n {{ pageCount.current - 1 }}\n \n
  • \n {{ pageCount.current }}\n
  • \n \n {{ pageCount.current + 1 }}\n \n \n {{ pageCount.current + 2 }}\n \n\n
  • ...
  • \n \n {{ pageCount.count }}\n \n
    \n
  • \n \n
  • \n
\n
\n
\n
\n
\n \n
\n Page\n \n \n {{ useOf ? 'of' : '/' }}{{ pageCount.count }}\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { AppPaginationComponent } from './pagination.component';\n\n@NgModule({\n declarations: [AppPaginationComponent],\n imports: [CommonModule, CdsIconModule, MatTabsModule, CdsPaginationModule, CdsTextfieldModule],\n exports: [AppPaginationComponent],\n})\nexport class AppPaginationModule {}\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\n\nimport { PermissionService } from 'src/app/core/services/permission.service';\n\n@Component({\n selector: 'app-permission',\n templateUrl: './permission.component.html',\n styleUrls: ['./permission.component.scss'],\n})\nexport class PermissionComponent implements OnInit {\n show = false;\n @Input() role = '';\n @Input() permission = '';\n\n constructor(private permissionService: PermissionService, private ref: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.getPermission();\n }\n\n getPermission() {\n this.permissionService.hasPermission(this.role, this.permission).then(hasPermission => {\n this.show = hasPermission;\n this.ref.detectChanges();\n });\n }\n}\n","
\n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PermissionComponent } from './permission.component';\n@NgModule({\n declarations: [PermissionComponent],\n imports: [CommonModule],\n exports: [PermissionComponent],\n})\nexport class PermissionModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({ name: 'ssmsDate' })\nexport class SsmsDatePipe extends DatePipe implements PipeTransform {\n override transform(value: any, format?: any): any {\n if (value && format) {\n return super.transform(value, format);\n }\n if (value === undefined || value === null) {\n return '';\n }\n return super.transform(value, 'dd/MM/yyyy');\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({ name: 'ssmsDateTime' })\nexport class SsmsDateTimePipe extends DatePipe implements PipeTransform {\n override transform(value: any, format?: any): any {\n let dateTime;\n if (value && format) {\n dateTime = super.transform(value, format);\n } else {\n dateTime = super.transform(value, 'h:mma dd/MM/yyyy');\n }\n if (dateTime) {\n return dateTime.toLowerCase();\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fn',\n})\nexport class FnPipe implements PipeTransform {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transform(fn: (...args: any[]) => any, ...args: any[]) {\n return fn(...args);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { findOptionLabelByValue } from 'src/app/utils/utils';\n\n/**\n * transfer value to label form CdsOptions\n */\n@Pipe({ name: 'transfer2Label' })\nexport class Transfer2LabelPipe implements PipeTransform {\n transform(value: string | null, args: CdsOption[]) {\n if (!value || !args) return '';\n\n return findOptionLabelByValue(value, args);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'mynumber' })\nexport class MyNumberPipe implements PipeTransform {\n transform(value: number | string | null, ...args: any[]) {\n if (value !== 0 && !value) return null;\n\n value = value.toString().replace(/,/g, '');\n const val = Number(value);\n if (Number.isNaN(val)) return value;\n\n //format value\n const percision = args[0];\n\n if (val === 0) {\n if (!percision || percision == 0) {\n return '0';\n }\n return `0.${this.fill('', percision)}`;\n }\n\n const index = value.indexOf('.');\n let integer = '',\n decimal = '';\n if (index > -1) {\n integer = value.substring(0, index);\n decimal = value.substring(index + 1, value.length);\n } else {\n integer = value;\n }\n\n integer = this.format(integer);\n decimal = this.fill(decimal, percision);\n if (!decimal) {\n return integer;\n }\n return integer + '.' + decimal;\n }\n\n private fill(value: string, length: number) {\n if (value.length === length) {\n return value;\n }\n if (value.length > length) {\n return value.substring(0, length);\n }\n let len = length - value.length;\n while (len > 0) {\n value += '0';\n len--;\n }\n return value;\n }\n\n private format(num: string) {\n const reg = /(0*)([1-9]+\\d+)/g;\n const str = num.replace(reg, '$2');\n const res = str.replace(/\\d+/, function (n) {\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { PermissionService } from 'src/app/core/services/permission.service';\n\n@Pipe({ name: 'permission' })\nexport class PermissionPipe implements PipeTransform {\n constructor(private permissionService: PermissionService) {}\n\n transform(role: any, permission: any): Promise {\n if (role && permission) {\n return this.permissionService.hasPermission(role, permission);\n }\n return new Promise(resolve => {\n resolve(false);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\n\nimport { CdAccordionModule } from '../components/accordion/cd-accordion.module';\nimport { CdInputModule } from '../components/cd-input/cd-input.module';\nimport { RowItemModule } from '../components/row-item/row-item.module';\nimport { ExpandTableModule } from '../components/table/expand-table.module';\nimport { AlertPopupModule } from './alert-popup/alert-popup.module';\nimport { AutocompleteModule } from './autocomplete/autocomplete.module';\nimport { CdAutocompleteModule } from './cd-autocomplete/cd-autocomplete.module';\nimport { CdBackTextModule } from './cd-back-text/cd-back-text.module';\nimport { CdDownloadProgressModule } from './cd-download-progress/cd-download-progress.module';\nimport { CdDropdownModule } from './cd-dropdown/cd-dropdown.module';\nimport { CdPageTitleModule } from './cd-page-title/cd-page-title.module';\nimport { CdRadioModule } from './cd-radio/cd-radio.module';\nimport { CdSearchModule } from './cd-search/cd-search.module';\nimport { CdStepperModule } from './cd-stepper/cd-stepper.module';\nimport { CdTableTitleModule } from './cd-table-title/cd-table-title.module';\nimport { CdTextareaModule } from './cd-textarea/cd-textarea.module';\nimport { CdWarningPopupModule } from './cd-warning-popup/cd-warning-popup.module';\nimport { ConfirmPopupModule } from './confirm-popup/confirm-popup.module';\nimport { ContinuePopupModule } from './continue-popup/continue-popup.module';\nimport { DataTableModule } from './data-table';\nimport { DynamicAutocompleteModule } from './dynamic-autocomplete/input-autocomplete.module';\nimport { LanguageSwitchModule } from './language-switch/language-switch.module';\nimport { LoadingModule } from './loading/loading.modules';\nimport { MattersNeedingAttentionModule } from './matters-needing-attention/matters-needing-attention.module';\nimport { NoResultFoundModule } from './no-result-found/no-result-found.module';\nimport { AppPaginationModule } from './pagination/pagination.module';\nimport { PermissionModule } from './permission/permission.module';\nimport { SwUpdateAskModule } from './sw-update-ask/sw-update-ask.module';\n\nimport { BottomDetectionDirective } from './directive/bottom-detection/bottom-detection.directive';\nimport { DisableFormControlDirective } from './directive/disable-formcontrol/disable-formcontrol.directive';\nimport { OutsideCloseDirective } from './directive/outside-close/outside-close.directive';\nimport { TextEllipsisDirective } from './directive/text-ellipsis/text-ellipsis.directive';\nimport { MatSelectCloseDirective } from './directive/mat-select-close.directive';\nimport { MatMenuCloseDirective } from './directive/mat-menu-close.directive';\n\nimport { SsmsDatePipe } from './pipe/date.pipe';\nimport { SsmsDateTimePipe } from './pipe/dateTime.pipe';\nimport { FnPipe } from './pipe/fn.pipe';\nimport { Transfer2LabelPipe } from './pipe/label.pipe';\nimport { MyNumberPipe } from './pipe/number.pipe';\nimport { PermissionPipe } from './pipe/permission.pipe';\nimport { HideTextPipe } from './hide-text/hide-text.pipe';\n\nimport { ValidatorsModule } from './directive/validators/validators.module';\nimport { CdMultipleAccordionModule } from './cd-multiple-accordion/cd-multiple-accordion.module';\nimport { CdTextfieldComponent } from './cd-textfield/cd-textfield.component';\nimport { CdFakeTabsComponent } from './cd-fake-tabs/cd-fake-tabs.component';\nimport { StatusLightComponent } from '../views/salesjourney/case-summary/status-light/status-light.component';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdFakeLinkComponent } from './cd-fake-link/cd-fake-link.component';\nimport { CdTimePickerComponent } from './cd-time-picker/cd-time-picker.component';\nimport { WillBeLostComponent } from './will-be-lost/will-be-lost.component';\nimport { CdInlineAlertComponent } from './cd-inline-alert/cd-inline-alert.component';\nimport { UpdatedSuccessfullyComponent } from './updated-successfully/updated-successfully.component';\nimport { CdMultidropdownComponent } from './cd-multidropdown/cd-multidropdown.component';\nimport { TooltipIconModule } from './tooltip-icon/tooltip-icon.module';\nimport { DateRangeBoxComponent } from './date-range-box/date-range-box.component';\nimport { IconStatusComponent } from './icon-status/icon-status.component';\nimport { IconStatusModule } from './icon-status/icon-status.module';\nimport { BackTopModule } from './back-top/back-top.module';\nimport { SimplePopupModule } from './simple-popup/simple-popup.module';\nimport { WidgetHostDirective } from './directive/widgetHost/widget-host.directive';\nimport { CdIntragroupTransferCheckboxComponent } from './cd-intragroup-transfer-checkbox/cd-intragroup-transfer-checkbox.component';\nimport { CdCarouselModule } from './cd-carousel/cd-carousel.module';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsDialogModule } from '@cds/ng-experimental/dialog';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdPopupModule } from './cd-popup/cd-popup.module';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsSwitchModule } from '@cds/ng-web-components/switch';\nimport { CdsFontSwitcherModule } from '@cds/ng-themes';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdSwitchComponent } from './cd-switch/cd-switch.component';\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { AngularEditorModule } from '@kolkov/angular-editor';\nimport { CommBatchRunningModule } from './comm-batch-running/comm-batch-running.module';\nimport { CopyButtonComponent } from './copy-button/copy-button.component';\n// import { CdsNavigationFooterLocalComponent } from '../views/layout/cds-navigation-footer/cds-navigation-footer.component';\nimport { ChatHistoryComponent } from '../views/chatbot-admin/main/chat-history/chat-history.component';\nimport { WillBeLoseInputComponent } from './will-be-lose-input/will-be-lose-input.component';\nimport { CdRealtimeSearchModule } from './cd-realtime-search/cd-realtime-search.module';\n\nconst pipeAndDirectives = [\n OutsideCloseDirective,\n BottomDetectionDirective,\n TextEllipsisDirective,\n MatSelectCloseDirective,\n MatMenuCloseDirective,\n DisableFormControlDirective,\n HideTextPipe,\n SsmsDatePipe,\n SsmsDateTimePipe,\n PermissionPipe,\n FnPipe,\n Transfer2LabelPipe,\n MyNumberPipe,\n WidgetHostDirective,\n];\n\nconst components = [\n CdMultidropdownComponent,\n CdTextfieldComponent,\n CdFakeTabsComponent,\n StatusLightComponent,\n CdFakeLinkComponent,\n CdTimePickerComponent,\n WillBeLostComponent,\n CdInlineAlertComponent,\n UpdatedSuccessfullyComponent,\n DateRangeBoxComponent,\n IconStatusComponent,\n CdIntragroupTransferCheckboxComponent,\n CdSwitchComponent,\n CopyButtonComponent,\n // CdsNavigationFooterLocalComponent,\n ChatHistoryComponent,\n WillBeLoseInputComponent,\n];\n\n@NgModule({\n declarations: [...pipeAndDirectives, ...components],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n AlertPopupModule,\n ConfirmPopupModule,\n ContinuePopupModule,\n CdsCheckboxModule,\n CommonModule,\n CdsLanguageModule,\n CdsButtonModule,\n NoResultFoundModule,\n AppPaginationModule,\n LoadingModule,\n CdsPaginationModule,\n CdsIconModule,\n PermissionModule,\n DataTableModule,\n AutocompleteModule,\n CdAutocompleteModule,\n CdBackTextModule,\n CdDownloadProgressModule,\n CdDropdownModule,\n CdRadioModule,\n CdSearchModule,\n CdStepperModule,\n CdTextareaModule,\n CdWarningPopupModule,\n LanguageSwitchModule,\n MattersNeedingAttentionModule,\n SwUpdateAskModule,\n CdPageTitleModule,\n CdTableTitleModule,\n CdsRadioModule,\n MatAutocompleteModule,\n ExpandTableModule,\n RowItemModule,\n CdAccordionModule,\n CdInputModule,\n DynamicAutocompleteModule,\n CdMultipleAccordionModule,\n CdsTextfieldModule,\n CdsTooltipModule,\n TooltipIconModule,\n BackTopModule,\n SimplePopupModule,\n CdCarouselModule,\n CdsPopupModule,\n CdsAssistiveTextModule,\n CdsDialogModule,\n CdsButtonModule,\n CdsProgressModule,\n CdPopupModule,\n CdsDatepickerModule,\n CdsFontSwitcherModule,\n CdsSwitchModule,\n UiSwitchModule,\n MatDialogModule,\n CdsDropdownModule,\n FontAwesomeModule,\n NgxDatatableModule,\n NgSelectModule,\n ReactiveFormsModule,\n AngularEditorModule,\n CommBatchRunningModule,\n FormsModule,\n CdRealtimeSearchModule,\n ],\n exports: [\n ...pipeAndDirectives,\n ...components,\n AlertPopupModule,\n ConfirmPopupModule,\n ContinuePopupModule,\n NoResultFoundModule,\n AppPaginationModule,\n LoadingModule,\n PermissionModule,\n DataTableModule,\n CdAutocompleteModule,\n CdBackTextModule,\n CdDownloadProgressModule,\n CdDropdownModule,\n CdRadioModule,\n CdSearchModule,\n CdStepperModule,\n CdTextareaModule,\n CdWarningPopupModule,\n LanguageSwitchModule,\n MattersNeedingAttentionModule,\n SwUpdateAskModule,\n AutocompleteModule,\n CdPageTitleModule,\n CdTableTitleModule,\n ExpandTableModule,\n RowItemModule,\n CdAccordionModule,\n ValidatorsModule,\n CdInputModule,\n CdMultipleAccordionModule,\n CdsTextfieldModule,\n TooltipIconModule,\n IconStatusModule,\n BackTopModule,\n DynamicAutocompleteModule,\n CdCarouselModule,\n CdsPopupModule,\n CdsDialogModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsProgressModule,\n CdPopupModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsDropdownModule,\n CdsFormFieldModule,\n ReactiveFormsModule,\n CdsDatepickerModule,\n CdsTooltipModule,\n CdsTabsModule,\n CdsFontSwitcherModule,\n CdsSwitchModule,\n MatDialogModule,\n CdsCheckboxModule,\n FontAwesomeModule,\n NgxDatatableModule,\n NgSelectModule,\n ReactiveFormsModule,\n AngularEditorModule,\n CommBatchRunningModule,\n FormsModule,\n CdRealtimeSearchModule,\n ],\n})\nexport class SharedModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { CdsSize, CdsStyle } from '@cds/ng-core/configuration';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\ninterface CdWarningPopupButton {\n style: CdsStyle;\n size: CdsSize;\n text: string;\n cb: () => void;\n}\n\n@Component({\n selector: 'app-simple-popup',\n templateUrl: './simple-popup.component.html',\n styleUrls: ['./simple-popup.component.scss'],\n})\nexport class SimplePopupComponent implements OnInit {\n constructor(\n @Inject(CDS_POPUP_DATA)\n public data: {\n message: string;\n buttons: CdWarningPopupButton[];\n }\n ) {}\n\n ngOnInit(): void {}\n}\n","
\n
\n {{ data.message | lang }}\n
\n
\n
\n {{ button.text | lang }}\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SimplePopupComponent } from './simple-popup.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\n\n@NgModule({\n declarations: [SimplePopupComponent],\n exports: [SimplePopupComponent],\n imports: [CommonModule, CdsPopupModule, CdsLanguageModule, CdsButtonModule],\n})\nexport class SimplePopupModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\n\n@Component({\n selector: 'app-sw-update-ask',\n templateUrl: './sw-update-ask.component.html',\n styleUrls: ['./sw-update-ask.component.scss'],\n})\nexport class SwUpdateAskComponent implements OnInit {\n @Output() closeEmit = new EventEmitter();\n\n constructor(private cdsLangService: CdsLangService) {}\n\n ngOnInit(): void {}\n\n close() {\n this.closeEmit.emit();\n }\n\n refresh() {\n window.location.reload();\n }\n\n getTextByLang(lang: string) {\n return this.cdsLangService.translate(lang);\n }\n}\n","
\n
\n
\n \n
\n
\n
\n {{ 'swUpdateAsk.1' | lang }}\n
\n
\n {{ 'swUpdateAsk.2' | lang }}\n
\n
\n {{ 'swUpdateAsk.3' | lang }}\n
\n
\n
\n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { SwUpdateAskComponent } from './sw-update-ask.component';\n\n@NgModule({\n imports: [CommonModule, CdsIconModule, CdsLanguageModule],\n declarations: [SwUpdateAskComponent],\n exports: [SwUpdateAskComponent],\n})\nexport class SwUpdateAskModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { CdCryptoJsService } from '../cd-crypto-js/cd-crypto-js.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TempCacheService {\n private cache: { [key: string]: any } = {};\n\n constructor(private cdCryptoJsService: CdCryptoJsService) {\n window.addEventListener('beforeunload', () => {\n const ciphertext = this.cdCryptoJsService.encrypt(JSON.stringify(this.cache));\n localStorage.setItem('store', ciphertext);\n });\n const store = localStorage.getItem('store');\n if (store) {\n this.cache = JSON.parse(this.cdCryptoJsService.decrypt(store));\n }\n }\n\n setItem(key: string, data: any) {\n this.cache[key] = deepCopy(data);\n }\n\n getItem(key: string) {\n return deepCopy(this.cache[key]);\n }\n\n removeItem(key: string) {\n delete this.cache[key];\n }\n\n saveToLocalStorage() {\n const ciphertext = this.cdCryptoJsService.encrypt(JSON.stringify(this.cache));\n localStorage.setItem('store', ciphertext);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CdsAlertComponent, CdsAlertService } from '@cds/ng-web-components/alert';\n\nexport type ToastAlertType = 'info' | 'success' | 'warning' | 'error';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastAlertService {\n private fun: () => void | null = () => {};\n constructor(private alert: CdsAlertService) {}\n\n show(type: ToastAlertType, title: string, message: string, delay?: number, dismiss?: () => void) {\n let componentRef: CdsAlertComponent;\n switch (type) {\n case 'info': {\n componentRef = this.alert.info(title, message);\n break;\n }\n case 'success': {\n componentRef = this.alert.success(title, message);\n delay ? (delay = 5000) : '';\n break;\n }\n case 'warning': {\n componentRef = this.alert.warning(title, message);\n break;\n }\n case 'error': {\n componentRef = this.alert.error(title, message);\n break;\n }\n }\n\n if (dismiss) {\n this.fun = dismiss;\n componentRef.dismiss.subscribe(() => {\n this.fun();\n });\n }\n\n if (delay) {\n const dismissTimerId = setTimeout(() => {\n componentRef.close();\n clearTimeout(dismissTimerId);\n }, delay);\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-tooltip-icon',\n templateUrl: './tooltip-icon.component.html',\n styleUrls: ['./tooltip-icon.component.scss'],\n})\nexport class TooltipIconComponent implements OnInit {\n @Input() tooltipString = '';\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onCanDelegateAmtToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipIconComponent } from './tooltip-icon.component';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\n\n@NgModule({\n declarations: [TooltipIconComponent],\n imports: [CommonModule, CdsIconModule, CdsTooltipModule],\n exports: [TooltipIconComponent],\n})\nexport class TooltipIconModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-updated-successfully',\n templateUrl: './updated-successfully.component.html',\n styleUrls: ['./updated-successfully.component.scss'],\n})\nexport class UpdatedSuccessfullyComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
\n
\n Your changes has been updated\n successfully.\n
\n
\n Got it!\n
\n
\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { deepCopy } from 'src/app/utils/copy';\n\n/**\n * Determine whether there are duplicated controls at the same form level.\n *\n * @param errorMessageKey\n */\nexport function duplicatedValidator(errorMessageKey: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || !control.parent?.controls) {\n return null;\n }\n let dulplicatedCount = 0;\n (control.parent?.controls as AbstractControl[]).forEach((item: AbstractControl) => {\n if (item.value === control.value) {\n dulplicatedCount++;\n }\n });\n // have duplicated item except itself\n return dulplicatedCount > 1 ? { dulplicated: errorMessageKey } : null;\n };\n}\n\n/**\n * Accept English and numeric, allow space between.\n *\n * @param errorMessageKey\n */\nexport function nameValidator(errorMessageKey: string, supportChinese = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const regex = /^[A-Za-z)0-9.]+(\\s+[A-Za-z)0-9.]+)*$/;\n const regexWithChinese = /^[A-Za-z)0-9\\u4E00-\\u9FFF.()]+(\\s+[A-Za-z)0-9\\u4E00-\\u9FFF.()]+)*$/;\n const available = (supportChinese ? regexWithChinese : regex).test(control.value);\n\n return available ? null : { nameInvalid: errorMessageKey };\n };\n}\n\n/**\n * Allow English, numeric and special characters, allow space between.\n *\n * @param errorMessageKey\n */\nexport function descriptionValidator(errorMessageKey: string, supportChinese = false, onlySupportChinese = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n let regex: RegExp;\n const englishRegex = /^[A-Za-z)0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]+(\\s+[A-Za-z)0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]+)*$/;\n const chineseRegex =\n /^[\\u4E00-\\u9fa5a-zA-Z0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?·~!@#¥%……&*()——【】、;:‘’“”,《。》、?]+(\\s+[\\u3400-\\u9FFFa-zA-Z0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?·~!@#¥%……&*()——【】、;:‘’“”,《。》、?\\s]+)*$/;\n const onlyChineseRegex =\n /^[\\u4E00-\\u9fa50-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?·~!@#¥%……&*()——【】、;:‘’“”,《。》、?]+(\\s+[\\u3400-\\u9FFF0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?·~!@#¥%……&*()——【】、;:‘’“”,《。》、?\\s]+)*$/;\n\n if (supportChinese) {\n if (onlySupportChinese) {\n regex = onlyChineseRegex;\n } else {\n regex = chineseRegex;\n }\n } else {\n regex = englishRegex;\n }\n\n return regex.test(control.value) ? null : { descriptionInvalid: errorMessageKey };\n };\n}\n\n/**\n * Allow date format 'DD/MM/YYYY'.\n *\n * @param errorMessageKey\n */\nexport function dateValidator(errorMessageKey: string, minDate?: string, maxDate?: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n const regex = /^(0[1-9]|[1-2][0-9]|3[0-1])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\n const regexAvailable = regex.test(control.value);\n\n let rangeAvailable = true;\n\n if (regexAvailable) {\n const date = moment(control.value, 'DD/MM/YYYY');\n if (!date.isValid()) {\n rangeAvailable = false;\n }\n if (minDate && date.diff(moment(minDate, 'DD/MM/YYYY'), 'days') < 0) {\n rangeAvailable = false;\n }\n if (maxDate && date.diff(moment(maxDate, 'DD/MM/YYYY'), 'days') > 0) {\n rangeAvailable = false;\n }\n }\n\n return regexAvailable && rangeAvailable ? null : { dateInvalid: errorMessageKey };\n };\n}\n\n/**\n * Validator for number range. startValue can not bigger than endValue.\n *\n * @param errorMessageKey\n * @param startValueControlName\n * @param endValueControlName\n * @param needBoth if need input both startValue and endValue\n */\nexport function rangeValidator(errorMessageKey: string, startValueControlName: string, endValueControlName: string, needBoth = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const startControl = control.get(startValueControlName);\n const endControl = control.get(endValueControlName);\n const startValue = startControl?.value;\n const endValue = endControl?.value;\n const startErrors = startControl?.errors ? deepCopy(startControl?.errors) : {};\n const endErrors = endControl?.errors ? deepCopy(endControl?.errors) : {};\n\n const regex = /^[0-9]+$/;\n if ((startValue && !regex.test(startValue)) || (endValue && !regex.test(endValue))) {\n delete startErrors['invalidRange'];\n delete endErrors['invalidRange'];\n startControl?.setErrors(Object.keys(startErrors).length === 0 ? null : startErrors);\n endControl?.setErrors(Object.keys(endErrors).length === 0 ? null : endErrors);\n return null;\n }\n\n if (startValue !== '' && endValue !== '' && Number(startValue) > Number(endValue)) {\n startErrors['invalidRange'] = errorMessageKey;\n endErrors['invalidRange'] = errorMessageKey;\n startControl?.setErrors(startErrors);\n endControl?.setErrors(endErrors);\n return null;\n }\n\n if (needBoth) {\n if (startValue === '' && endValue !== '') {\n startErrors['required'] = errorMessageKey;\n startControl?.markAsTouched();\n startControl?.markAsDirty();\n }\n if (startValue !== '' && endValue === '') {\n endErrors['required'] = errorMessageKey;\n endControl?.markAsTouched();\n endControl?.markAsDirty();\n }\n if (startValue === '' && endValue === '') {\n delete startErrors['required'];\n delete endErrors['required'];\n // startControl?.markAsTouched();\n // startControl?.markAsDirty();\n // endControl?.markAsTouched();\n // endControl?.markAsDirty();\n }\n }\n\n delete startErrors['invalidRange'];\n delete endErrors['invalidRange'];\n startControl?.setErrors(Object.keys(startErrors).length === 0 ? null : startErrors);\n endControl?.setErrors(Object.keys(endErrors).length === 0 ? null : endErrors);\n return null;\n };\n}\n\n/**\n * Validator for startDate and endDate, startDate cannot later than endDate.\n * Allow date format 'dd/MM/yyyy'.\n *\n * @param errorMessageKey\n * @param startValue\n * @param endValue\n */\nexport function startAndEndDateValidator(errorMessageKey: string, startValue: string, endValue: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const startControl = control.get(startValue);\n const endControl = control.get(endValue);\n const createStartDate = DateTime.fromFormat(startControl?.value, 'dd/MM/yyyy');\n const createEndDate = DateTime.fromFormat(endControl?.value, 'dd/MM/yyyy');\n const startErrors = startControl?.errors ? deepCopy(startControl?.errors) : {};\n const endErrors = endControl?.errors ? deepCopy(endControl?.errors) : {};\n if (createStartDate.isValid && createEndDate.isValid) {\n if (createStartDate > createEndDate) {\n startErrors['startLaterThanEnd'] = errorMessageKey;\n endErrors['startLaterThanEnd'] = errorMessageKey;\n startControl?.setErrors(startErrors);\n endControl?.setErrors(endErrors);\n return null;\n }\n }\n\n delete startErrors['startLaterThanEnd'];\n delete endErrors['startLaterThanEnd'];\n startControl?.setErrors(Object.keys(startErrors).length === 0 ? null : startErrors);\n endControl?.setErrors(Object.keys(endErrors).length === 0 ? null : endErrors);\n return null;\n };\n}\n\n/**\n * Max number.\n *\n * @param max\n */\nexport function maxValidator(max: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n return control.value <= max ? null : { max: true };\n };\n}\n\n/**\n * Min number.\n *\n * @param min\n */\nexport function minValidator(min: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n return control.value >= min ? null : { min: true };\n };\n}\n\n/**\n * Agent code str list, agent code accept English and numeric, each agent code maxlength is 50, use comma as separator.\n *\n * @param errorMessageKey\n */\nexport function agentCodeListValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const regex = /^[\\d]+(,[\\d]+)*$/;\n if (!regex.test(control.value)) {\n return { agentCodeListInvalid: 'Invalid Agent Code.' };\n }\n\n const agentList: string[] = control.value.split(',');\n\n if (agentList.length > 10) {\n return { agentCodeListInvalid: 'Supports input of up to 10 agentCode.' };\n }\n\n for (let index = 0; index < agentList.length; index++) {\n if (agentList[index].length > 20) {\n return { agentCodeListInvalid: 'Max length of each Agent Code is 20.' };\n }\n }\n\n if (new Set(agentList).size !== agentList.length) {\n return { agentCodeListInvalid: 'Duplicated Agent Code.' };\n }\n\n return null;\n };\n}\n\n/**\n * Allow number string, such as '01229342'\n *\n * @param errorMessageKey\n */\nexport function numberStringValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const regex = /^[0-9]+$/;\n if (!regex.test(control.value)) {\n return { invalidNumberString: 'Please input numbers' };\n }\n\n return null;\n };\n}\n\n/**\n * Allow English, numeric and special characters\n *\n * @param errorMessageKey\n */\nexport function hkidValidator(errorMessageKey: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const regex = /^[A-Za-z)0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]+$/;\n return regex.test(control.value) ? null : { hkidInvalid: errorMessageKey };\n };\n}\n\n/**\n * Allow English, numeric and special characters\n *\n * @param errorMessageKey\n */\nexport function passportValidator(errorMessageKey: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const regex = /^[A-Za-z)0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]+$/;\n return regex.test(control.value) ? null : { passportInvalid: errorMessageKey };\n };\n}\n\n/**\n * Allow English, numeric and special characters\n *\n * @param errorMessageKey\n */\nexport function idValidator(errorMessageKey: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const regex = /^[A-Za-z)0-9`~!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]+$/;\n return regex.test(control.value) ? null : { idInvalid: errorMessageKey };\n };\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '../cd-popup';\n\n@Component({\n selector: 'app-will-be-lose-input',\n templateUrl: './will-be-lose-input.component.html',\n styleUrls: ['./will-be-lose-input.component.scss'],\n})\nexport class WillBeLoseInputComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n\n onContinue() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
\n
\n
\n
\n
\n
\n {{ 'common.cancel' | lang }}\n {{ 'common.confirm-continue' | lang }}\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-will-be-lost',\n templateUrl: './will-be-lost.component.html',\n styleUrls: ['./will-be-lost.component.scss'],\n})\nexport class WillBeLostComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n\n onContinue() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
\n
\n
\n The changes you’ve made \n will be lost, \n are you sure to continue?\n
\n
\n {{ 'common.cancel' | lang }}\n {{ 'common.continue' | lang }}\n
\n
\n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport class LocalStorage {\n public localStorage: any;\n\n constructor() {\n if (!localStorage) {\n throw new Error('Current browser does not support Local Storage');\n }\n this.localStorage = localStorage;\n }\n\n public setMap(key: string, value: Map): void {\n if (value == undefined) {\n return;\n }\n this.localStorage[key] = JSON.stringify(Object.fromEntries(value));\n }\n\n public getMap(key: string): any {\n if (this.localStorage[key]) {\n const map = new Map();\n const o = JSON.parse(this.localStorage[key]);\n for (const i in o) {\n map.set(i, o[i]);\n }\n return map;\n }\n return undefined;\n }\n\n public set(key: string, value: any): void {\n this.localStorage[key] = JSON.stringify(value);\n }\n\n public get(key: string): any {\n return JSON.parse(this.localStorage[key] || '{}');\n }\n\n public setArr(key: string, value: Array): void {\n this.localStorage[key] = value;\n }\n\n public setObject(key: string, value: any): void {\n this.localStorage[key] = JSON.stringify(value);\n }\n\n public getObject(key: string): any {\n return JSON.parse(this.localStorage[key] || '{}');\n }\n\n public remove(key: string): any {\n this.localStorage.removeItem(key);\n }\n\n public removeAll(): any {\n this.localStorage.clear();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction find(list: Array, f: any) {\n return list.filter(f)[0];\n}\n\ntype _typeObj = any | [] | Date;\n\nexport function deepCopy(obj: _typeObj, cache?: Array) {\n if (cache === void 0) cache = [];\n\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n const Constructor: any = obj.constructor;\n if (Constructor === RegExp) {\n return new Constructor(obj);\n }\n if (Constructor === Date) {\n return new Constructor(obj);\n }\n\n const hit = find(cache, function (c: any) {\n return c.original === obj;\n });\n if (hit) {\n return hit.copy;\n }\n\n const copy: any = Array.isArray(obj) ? [] : {};\n cache.push({\n original: obj,\n copy: obj,\n });\n\n Object.keys(obj).forEach(key => {\n const _key = key as keyof typeof obj;\n copy[_key] = deepCopy(obj[_key], cache);\n });\n\n return copy;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DateTime } from 'luxon';\n\nexport function format_3(date: string) {\n return fromISO(date, 'yyyy-MM-dd HH:mm:ss');\n}\n\nexport function fromISO(date: any, formatter?: string) {\n if (formatter) {\n return DateTime.fromISO(date).toFormat(formatter);\n }\n return DateTime.fromISO(date).toFormat('dd/MM/yyyy');\n}\n\nexport function fromISOMonthYear(date: any) {\n const d: string = DateTime.fromISO(date).toFormat('dd/MM/yyyy');\n if (d && d.indexOf('/') != -1) {\n const arr = d.split('/');\n if (arr && arr.length == 3) {\n return arr[1] + '/' + arr[2];\n }\n }\n return '';\n}\n\nexport function fromJSDate(date: any) {\n return DateTime.fromJSDate(date);\n}\n\nexport function fromJSDateFormat(date: any) {\n return DateTime.fromJSDate(date).toFormat('dd/MM/yyyy');\n}\n\nexport function toMillis(date: any) {\n return fromJSDate(date).toMillis();\n}\n\nexport function millisSubtract(date1: any, date2: any) {\n return fromJSDate(date1).toMillis() - fromJSDate(date2).toMillis();\n}\n\nexport function toISO(date: any, formatter?: string) {\n if (formatter) {\n return DateTime.fromFormat(date, formatter).toISO();\n }\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toISO();\n}\n\nexport function toISODate(date: any, formatter?: string) {\n if (formatter) {\n return DateTime.fromFormat(date, formatter).toISODate();\n }\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toISODate();\n}\n\nexport function formatDateFr(date: string) {\n return DateTime.fromISO(date).setLocale('fr').toLocaleString(DateTime.DATE_SHORT);\n}\n\nexport function formatDateTimeFr(date: string) {\n return DateTime.fromISO(date).setLocale('fr').toLocaleString(DateTime.DATETIME_SHORT);\n}\n\nexport function diffISOToJsDate(date: string, date2: Date): any {\n return diffMonths(toISO(date), fromJSDate(date2));\n}\n\nexport function diffISOToISO(date: string, date2: string): any {\n return diffMonths(toISO(date), toISO(date2));\n}\n\nexport function beforeCurrent(date: any): any {\n const obj: any = diffMonths(date, new Date());\n if (obj.months > 0 || obj.days >= 1) {\n return true;\n }\n return false;\n}\n\nexport function diffMonths(date: any, date2: any): any {\n if (!date || !date2) {\n return null;\n }\n let d1: any = DateTime.now(),\n d2: any = DateTime.now();\n if (DateTime.fromISO(date).isValid) {\n d1 = DateTime.fromISO(date);\n } else if (fromJSDate(date).isValid) {\n d1 = fromJSDate(date);\n } else if (DateTime.fromISO(toISO(date) as any).isValid) {\n d1 = DateTime.fromISO(toISO(date) as any);\n }\n\n if (DateTime.fromISO(date2).isValid) {\n d2 = DateTime.fromISO(date2);\n } else if (fromJSDate(date2).isValid) {\n d2 = fromJSDate(date2);\n } else if (DateTime.fromISO(toISO(date2) as any).isValid) {\n d2 = DateTime.fromISO(toISO(date2) as any);\n }\n return d2.diff(d1, ['months', 'days']).toObject();\n}\n\nexport function getMonthFirstByMonthYear(str: any): string {\n if (/(^(1)[0-2]{1}\\/(\\d){4})|(^(0)[1-9]{1}\\/(\\d){4})$/.test(str)) {\n return '01/' + str;\n }\n return '';\n}\n\nexport function getMonthLastByMonthYear(str: any): string {\n if (/(^(1)[0-2]{1}\\/(\\d){4})|(^(0)[1-9]{1}\\/(\\d){4})$/.test(str)) {\n const arr = String(str).split('/');\n const maxDay = new Date(Number(arr[1]), Number(arr[0]), 0).getDate();\n return maxDay + '/' + str;\n }\n return '';\n}\n\nexport function getMonthLastByNow(): string {\n const now: Date = new Date();\n const month = now.getMonth() + 1;\n let monthStr = '';\n if (month < 10) {\n monthStr = '0' + month;\n } else {\n monthStr = String(month);\n }\n return getMonthLastByMonthYear(monthStr + '/' + now.getFullYear());\n}\n","export const dbName = 'indexdb';\nexport const sessionTable = 'sessionTable';\nexport const commissionTable = 'commissionTable';\nexport const roleTable = 'roleTable';\nexport const version = 1;\nexport const sessionId = 'sessionInfo';\nexport const employerSystemType = 'employerSystemType';\n\nexport const tableList = [sessionTable, commissionTable, roleTable];\n\nexport interface SessionDto {\n id: string;\n sessionInfo: string;\n}\n\nexport interface commissionDto {\n id: string;\n commission: string;\n}\n\nexport interface RoleDto {\n id: string;\n role: string;\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Session } from '../core/models/user';\nimport { dbName, sessionTable, version, commissionTable, tableList, employerSystemType } from './indexdb.model';\nimport { sessionId } from './indexdb.model';\nimport { DateTime } from 'luxon';\n\nexport function openTable(name: string) {\n // return openDB(dbName, employerSystemType, version);\n const openRequest = indexedDB.open(dbName, version);\n openRequest.onupgradeneeded = function () {\n const db = openRequest.result;\n if (!db.objectStoreNames.contains(name)) {\n db.createObjectStore(employerSystemType, { keyPath: 'id' });\n }\n };\n}\n\n// export async function getSystemType(systemId: string): Promise {\n// return openEmployerSystemType().then(db => {\n// return getDataByKey(db, employerSystemType, systemId)\n// .then(res => {\n// return JSON.parse(res.systemId);\n// })\n// .catch(() => {});\n// });\n// }\n\n// export async function putSystemType(val:any): Promise {\n// return openEmployerSystemType().then(async db => {\n// return addData(db, employerSystemType, val);\n// });\n// }\n\nexport function openCommissionTable(): Promise {\n return openDB(dbName, commissionTable, version);\n}\n\nexport async function getCommissionByKey(scale: string): Promise {\n return openCommissionTable().then(db => {\n return getDataByKey(db, commissionTable, scale)\n .then(res => {\n return JSON.parse(res.commission);\n })\n .catch(() => {});\n });\n}\n\nexport async function addCommissionByKey(scale: string, commission: any): Promise {\n return openCommissionTable().then(async db => {\n await deleteByKey(db, commissionTable, scale);\n return addData(db, commissionTable, {\n id: scale,\n commission: JSON.stringify(commission),\n });\n });\n}\n\nexport async function updateCommissionByKey(scale: string, commission: any): Promise {\n return openCommissionTable().then(db =>\n updateDB(db, commissionTable, {\n id: scale,\n commission: JSON.stringify(commission),\n })\n );\n}\n\nexport async function deleteCommissionByKey(scale: string): Promise {\n return openSessionTable().then(db => {\n return deleteByKey(db, commissionTable, scale);\n });\n}\n\nexport function openSessionTable(): Promise {\n return openDB(dbName, sessionTable, version);\n}\n\nexport async function getSessionByKey(): Promise {\n return openSessionTable().then(db => {\n return getDataByKey(db, sessionTable, sessionId).then(sessionDto => {\n if (sessionDto) {\n const session: Session = JSON.parse(sessionDto.sessionInfo);\n return session;\n }\n return new Session();\n });\n });\n}\n\nexport async function updateSessionByKey(sessionInfo: Session): Promise {\n return openSessionTable().then(db =>\n updateDB(db, sessionTable, {\n id: sessionId,\n sessionInfo: JSON.stringify(sessionInfo),\n })\n );\n}\n\nexport async function addSessionByKey(sessionInfo: Session): Promise {\n return openSessionTable().then(async db => {\n await deleteSessionByKey();\n return addData(db, sessionTable, {\n id: sessionId,\n sessionInfo: JSON.stringify(sessionInfo),\n });\n });\n}\n\nexport async function deleteSessionByKey(): Promise {\n return openSessionTable().then(db => {\n return deleteByKey(db, sessionTable, sessionId);\n });\n}\n\nexport function deleteDB(): Promise {\n return deleteDBAll(dbName);\n}\n\nexport function openDB(dbName: string, storeName: string, version: number): Promise {\n return new Promise((resolve, reject) => {\n let db;\n const request = indexedDB.open(dbName, version);\n request.onsuccess = function (event: any) {\n db = event.target.result;\n resolve(db);\n };\n\n request.onerror = function (event) {\n reject(event);\n };\n\n request.onupgradeneeded = function (event: any) {\n db = event.target.result;\n for (let i = 0; i < tableList.length; i++) {\n if (!db.objectStoreNames.contains(tableList[i])) {\n db.createObjectStore(tableList[i], { keyPath: 'id' });\n //can create other index,default index is main key\n //objectStore.createIndex('name', 'name', { unique: false })\n }\n }\n };\n });\n}\n\nexport function addData(db: any, storeName: any, data: any): Promise {\n return new Promise((resolve, reject) => {\n const nowTime = DateTime.now().toMillis();\n const request = db.transaction([storeName], 'readwrite').objectStore(storeName).add(data);\n\n request.onsuccess = function (event: any) {\n const end = DateTime.now().toMillis();\n resolve(event);\n };\n\n request.onerror = function (event: any) {\n const end = DateTime.now().toMillis();\n throw new Error(event.target.error);\n reject(event);\n };\n });\n}\n\nexport function getDataByKey(db: any, storeName: any, key: any): Promise {\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([storeName]);\n const objectStore = transaction.objectStore(storeName);\n const request = objectStore.get(key);\n\n request.onerror = function (event: any) {\n console.log('getDataByKey error');\n reject(event);\n };\n\n request.onsuccess = function (event: any) {\n resolve(request.result);\n };\n });\n}\n\nexport function getCommissionList(): Promise {\n return openCommissionTable().then(db => {\n return cursorGetData(db, commissionTable)\n .then(res => {\n return res;\n })\n .catch(() => {});\n });\n}\n\nexport function cursorGetData(db: any, storeName: any): Promise {\n const list: any[] = [];\n const store = db.transaction(storeName, 'readwrite').objectStore(storeName);\n const request = store.openCursor();\n return new Promise((resolve, reject) => {\n request.onsuccess = function (e: any) {\n const cursor = e.target.result;\n if (cursor) {\n list.push(cursor.value);\n cursor.continue();\n } else {\n resolve(list);\n }\n };\n request.onerror = function (e: any) {\n reject(e);\n };\n });\n}\n\nexport function getDataByIndex(db: any, storeName: any, indexName: any, indexValue: any): Promise {\n const store = db.transaction(storeName, 'readwrite').objectStore(storeName);\n const request = store.index(indexName).get(indexValue);\n return new Promise((resolve, reject) => {\n request.onerror = function (e: any) {\n console.log('getDataByIndex error');\n reject(e);\n };\n request.onsuccess = function (e: any) {\n resolve(e.target.result);\n };\n });\n}\n\nexport function cursorGetDataByIndex(db: any, storeName: any, indexName: any, indexValue: any): Promise {\n const list: any[] = [];\n const store = db.transaction(storeName, 'readwrite').objectStore(storeName);\n const request = store.index(indexName).openCursor(IDBKeyRange.only(indexValue));\n return new Promise((resolve, reject) => {\n request.onsuccess = function (e: any) {\n const cursor = e.target.result;\n if (cursor) {\n list.push(cursor.value);\n cursor.continue();\n } else {\n resolve(list);\n }\n };\n request.onerror = function (ev: any) {\n reject(ev);\n };\n });\n}\n\nexport function updateDB(db: any, storeName: any, data: any): Promise {\n const request = db.transaction([storeName], 'readwrite').objectStore(storeName).put(data);\n\n return new Promise((resolve, reject) => {\n request.onsuccess = function (ev: any) {\n resolve(ev);\n };\n\n request.onerror = function (ev: any) {\n resolve(ev);\n };\n });\n}\n\nexport function deleteByKey(db: any, storeName: any, id: any): Promise {\n return new Promise((resolve, reject) => {\n const request = db.transaction([storeName], 'readwrite').objectStore(storeName).delete(id);\n request.onsuccess = function (ev: any) {\n resolve(ev);\n };\n request.onerror = function (ev: any) {\n console.log('deleteByKey error');\n resolve(ev);\n };\n });\n}\n\nexport function deleteDBAll(dbName: any): Promise {\n return new Promise((resolve, reject) => {\n const deleteRequest = indexedDB.deleteDatabase(dbName);\n deleteRequest.onerror = function (event) {\n console.log('del fail');\n reject(deleteRequest);\n };\n deleteRequest.onsuccess = function (event) {\n resolve(deleteRequest);\n };\n });\n}\n\nexport function closeDB(db: any) {\n db.close();\n}\n\nexport default {\n openDB,\n addData,\n getDataByKey,\n cursorGetData,\n getDataByIndex,\n cursorGetDataByIndex,\n updateDB,\n deleteDB,\n deleteDBAll,\n closeDB,\n};\n","import { SortDirection } from '@angular/material/sort';\nimport { IPageableRequest, ISortObj } from 'src/app/core/models/request';\nimport { IPageResponse } from './../core/models/response/response';\nimport { IPaginationCount } from './../shared/pagination/pagination.dto';\n\nexport const toPageableRequest = (\n iCount: IPaginationCount,\n iSize: number,\n sort?: string,\n sortDirection?: SortDirection,\n sortExtra?: ISortObj[],\n filter?: string\n): IPageableRequest => {\n return {\n page: iCount.current - 1,\n size: iSize,\n sort: sort,\n sortDirection: sortDirection,\n sortExtra: sortExtra,\n filter: filter,\n };\n};\n\nexport const toPageCount = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iResponse: IPageResponse\n): IPaginationCount => {\n return { current: iResponse.number + 1, count: iResponse.totalPages };\n};\n","import { PermissionAccess } from '../core/models/enum/permission.enum';\n\nconst permissionAccessToNum = (iPermissionAccess?: PermissionAccess | null) => {\n switch (iPermissionAccess) {\n case PermissionAccess.R:\n return 1;\n case PermissionAccess.W:\n return 2;\n case PermissionAccess.E:\n return 3;\n default:\n return 0;\n }\n};\n\nconst checkPermission = (expet: number, check?: PermissionAccess | null) => {\n return permissionAccessToNum(check) >= expet;\n};\n\nexport const checkPermissionAccess = (expet: PermissionAccess, check?: PermissionAccess | null) => {\n return checkPermission(permissionAccessToNum(expet), check);\n};\n\nexport const hasR = (check?: PermissionAccess | null) => {\n return checkPermission(1, check);\n};\n\nexport const hasW = (check?: PermissionAccess | null) => {\n return checkPermission(2, check);\n};\n\nexport const hasE = (check?: PermissionAccess | null) => {\n return checkPermission(3, check);\n};\n","export function specialCharacter(_char: string) {\n return _char\n .replace('+', '%2B')\n .replace(' ', '%20')\n .replace('/', '%2F')\n .replace('?', '%3F')\n .replace('%', '%25')\n .replace('#', '%23')\n .replace('&', '%26')\n .replace('=', '%3D');\n}\n\nexport function specialCharacterDecode(_char: string) {\n return _char\n .replace('%2B', '+')\n .replace('%20', ' ')\n .replace('%2F', '/')\n .replace('%3F', '?')\n .replace('%25', '%')\n .replace('%23', '#')\n .replace('%26', '&')\n .replace('%3D', '=');\n}\n","import { CdsOption } from '@cds/ng-core/configuration';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const numberHandler = (n: number): string => {\n if (n < 0) return 'error';\n if (n > 100) return 'error';\n if (n === 100) return 'S+';\n if (n > 97) return 'S1';\n if (n > 94) return 'S2';\n if (n > 90) return 'S3';\n if (n > 85) return 'A+1';\n if (n > 80) return 'A+2';\n if (n > 75) return 'A1';\n if (n > 70) return 'A2';\n if (n > 65) return 'B+1';\n if (n > 60) return 'B+2';\n if (n > 50) return 'B';\n if (n > 40) return 'C+';\n if (n > 30) return 'C';\n if (n > 20) return 'D+';\n if (n > 10) return 'D';\n if (n > 5) return 'E';\n return 'E-';\n};\n\n/**\n * convert response text with numbers to objects\n * @param source response text\n * @param fields number fields array\n * @returns\n */\nexport function str2Obj(source: string, fields: string[]) {\n let obj: any = {};\n if (!source) return;\n fields.forEach(field => {\n if (!field) return;\n const regStr = '(' + field + '\\\\s*\"\\\\s*:\\\\s*)(\\\\d+\\\\.?\\\\d+)(\\\\s*,?)';\n const reg = new RegExp(regStr, 'g');\n source = source.replace(reg, '$1\"$2\"$3');\n });\n try {\n obj = JSON.parse(source);\n } catch (Error) {\n console.error('str2Obj failed: source string is not a valid object string.');\n }\n\n return obj;\n}\n\nexport function agentCodeRemovePrefix0(agentCode: string) {\n let code = '';\n let need = false;\n agentCode.split('').forEach(element => {\n if (!need && element !== '0') {\n need = true;\n }\n\n if (need) {\n code += element;\n }\n });\n\n return code;\n}\n\nexport function agentCodeAddPrefix0(agentCode: string) {\n if (agentCode && agentCode.length < 6) {\n const len = 6 - agentCode.length;\n for (let i = 0; i < len; i++) {\n agentCode = '0' + agentCode;\n }\n }\n\n return agentCode;\n}\n\nexport function findOptionLabelByValue(value: any, options: CdsOption[]) {\n let label = '';\n if ((!value && value !== 0) || !options || (options && options.length === 0)) return label;\n\n const obj = options.find(x => x.value === value);\n label = obj?.label || '';\n return label;\n}\n\nexport function pageToTop() {\n const navigationContent = document.querySelector('.cds-navigation-content');\n if (navigationContent) {\n navigationContent.scrollTop = 0;\n }\n}\n\nexport function numRanking(n: number) {\n let result = 'N/A';\n if (n < 1) {\n return result;\n }\n n = Math.floor(n);\n const endN = n % 10;\n switch (endN) {\n case 1:\n if (n > 10 && n < 20) {\n result = n + 'th';\n } else {\n result = n + 'st';\n }\n break;\n case 2:\n if (n > 10 && n < 20) {\n result = n + 'th';\n } else {\n result = n + 'nd';\n }\n break;\n case 3:\n if (n > 10 && n < 20) {\n result = n + 'th';\n } else {\n result = n + 'rd';\n }\n break;\n default:\n result = n + 'th';\n break;\n }\n return result;\n}\n\nexport function cdsPopupBackdropOntouchmovePreventDefault() {\n const cs = document.getElementsByClassName('cds-popup-backdrop');\n if (cs && cs.length) {\n const c = cs.item(0);\n const d = c as HTMLDivElement;\n d.ontouchmove = e => {\n e.preventDefault();\n };\n }\n}\n\nexport function cdsPopupBackdropUnOntouchmovePreventDefault() {\n const cs = document.getElementsByClassName('cds-popup-backdrop');\n if (cs && cs.length) {\n const c = cs.item(0);\n const d = c as HTMLDivElement;\n d.ontouchmove = null;\n }\n}\n\nexport function getFilterParams(requestParams: any) {\n const params: any = {};\n for (const key in requestParams) {\n if (Object.prototype.hasOwnProperty.call(requestParams, key)) {\n const val = (requestParams as any)[key];\n if (val !== undefined && val !== null && val !== '' && !(Object.prototype.toString.call(val) === '[object Array]' && val.length === 0)) {\n if (typeof val === 'string') {\n params[key] = val.trim();\n } else {\n params[key] = val;\n }\n }\n }\n }\n\n return params;\n}\n\nexport function keepDecimalDigitFull(value: number, decimalDigit: number) {\n const tempN = Math.pow(10, decimalDigit);\n let s_x = (Math.round(value * tempN) / tempN).toString();\n let pos_decimal = s_x.indexOf('.');\n\n if (pos_decimal < 0) {\n pos_decimal = s_x.length;\n s_x += '.';\n }\n while (s_x.length <= pos_decimal + decimalDigit) {\n s_x += '0';\n }\n return s_x;\n}\n\nexport function trimObjectStringValues(obj: Record): Record {\n const trimmedObj: Record = {};\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (typeof obj[key] === 'string') {\n trimmedObj[key] = obj[key].trim();\n } else {\n trimmedObj[key] = obj[key];\n }\n }\n }\n\n return trimmedObj;\n}\n\nexport function paramsObj2paramsUrlStr(params: Record): string {\n Object.keys(params).forEach(key => (params[key] === undefined || params[key] === '') && delete params[key]);\n\n let paramsStr = '';\n\n Object.keys(params).forEach((key, index) => {\n paramsStr = `${paramsStr}${index === 0 ? '?' : '&'}${key}=${params[key]}`;\n });\n\n return paramsStr;\n}\n\nexport function copyText(value: string) {\n if (value === undefined) return;\n const input = document.createElement('input');\n input.style.opacity = '0';\n input.style.position = 'fixed';\n input.style.left = '-100%';\n input.style.top = '-100%';\n input.value = value;\n document.body.appendChild(input);\n input.select();\n document.execCommand('copy');\n document.body.removeChild(input);\n}\n\nexport function loadGoHomeFunc(callBack: () => void) {\n setTimeout(() => {\n const iconHomeBtn = document.querySelector('.cds-menu-home.cds-navigation-home');\n if (iconHomeBtn) {\n iconHomeBtn.addEventListener('click', () => {\n callBack();\n });\n }\n const textHomeBtnList = document.querySelectorAll('mat-icon[ng-reflect-svg-icon=\"logo:Manulife_txt_rgb_HongKong\"]');\n if (textHomeBtnList && textHomeBtnList.length > 0) {\n textHomeBtnList.forEach(element => {\n element.addEventListener('click', () => {\n callBack();\n });\n });\n }\n }, 1000);\n}\n\nexport function arraysAreEqual(arr1: string[], arr2: string[]) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n const sortedArr1 = arr1.slice().sort();\n const sortedArr2 = arr2.slice().sort();\n\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n","export function generateUUID() {\n // Public Domain/MIT\n let d = new Date().getTime(); //Timestamp\n let d2 = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0; //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16; //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n } else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { utils, writeFile, BookType, Range } from 'xlsx';\n\nexport function aoaToSheet(options: optionsConfig, data: string[][]) {\n const fileType = options.fileType || FileType.XLSX;\n const workBook = utils.book_new();\n const workSheet = utils.aoa_to_sheet(data);\n const hideColumns = options.hideColumns;\n if (options.merges) {\n workSheet['!merges'] = options.merges;\n }\n if (hideColumns) {\n hideColumns.forEach(columnIndex => {\n workSheet['!cols'] = workSheet['!cols'] || [];\n workSheet['!cols'][columnIndex] = { hidden: true };\n });\n }\n utils.book_append_sheet(workBook, workSheet);\n writeFile(workBook, `${options.fileName}.${fileType}`, {\n bookType: fileType,\n });\n}\n\nexport function jsonToSheet(options: optionsConfig, data: any[]) {\n let tempData = [...data];\n const header = options.header;\n const hideColumns = options.hideColumns;\n const fileType = options.fileType || FileType.XLSX;\n if (header) {\n tempData = tempData.map(item => {\n const obj: any = {};\n for (const key in item) {\n if (header[key]) {\n obj[header[key]] = item[key];\n } else {\n obj[key] = item[key];\n }\n }\n return obj;\n });\n }\n if (hideColumns) {\n hideColumns.forEach(columnIndex => {\n workSheet['!cols'] = workSheet['!cols'] || [];\n workSheet['!cols'][columnIndex] = { hidden: true };\n });\n }\n const workBook = utils.book_new();\n const workSheet = utils.json_to_sheet(tempData);\n if (options.merges) {\n workSheet['!merges'] = options.merges;\n }\n utils.book_append_sheet(workBook, workSheet);\n writeFile(workBook, `${options.fileName}.${fileType}`, {\n bookType: fileType,\n });\n}\n\nexport interface optionsConfig {\n fileName: string;\n fileType?: BookType;\n header?: any;\n merges?: Range[];\n hideColumns?: number[];\n}\n\nexport enum FileType {\n XLSX = 'xlsx',\n CSV = 'csv',\n}\n\nexport const DOWN_LOAD_MAX = 200000;\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { agentCodeListValidator } from 'src/app/shared/validators/validators';\nimport { AgentAndAssignedGroup } from 'src/app/views/agent-list/agent-list';\nimport { AgentListService } from '../agent-list.service';\n\n@Component({\n selector: 'app-agent-list-add',\n templateUrl: './agent-list-add.component.html',\n styleUrls: ['./agent-list-add.component.scss'],\n})\nexport class AgentListAddComponent implements OnInit {\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n backToEditButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n inEdit = true;\n\n get title() {\n return this.inEdit ? 'Add Record' : 'Record Summary';\n }\n\n get saveDisabled() {\n return !(this.form.dirty && this.form.valid) || this.isLoading;\n }\n\n get resetDisabled() {\n return !this.form.dirty || this.isLoading;\n }\n\n agentTextfieldConfig: CdsTextfieldConfig = {\n label: 'Agent Code',\n placeholder: 'Input Agent Code',\n type: 'text',\n };\n\n accountNumbertxtfieldConfig: CdsTextfieldConfig = {\n label: 'Employer Account Code',\n placeholder: 'Input Employer Account Code',\n type: 'text',\n };\n\n companyNametxtfieldConfig: CdsTextfieldConfig = {\n label: 'Company Name',\n placeholder: 'Input Company Name',\n type: 'text',\n };\n\n form: FormGroup = new FormGroup({});\n\n isLoading = false;\n\n get agent() {\n return this.form.get('agent');\n }\n\n get trusteeEmployerAccountNumber() {\n return this.form.get('trusteeEmployerAccountNumber');\n }\n\n get companyName() {\n return this.form.get('companyName');\n }\n\n get remarks() {\n return this.form.get('remarks');\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private agentListService: AgentListService\n ) {}\n\n ngOnInit() {\n this.initForm();\n }\n\n initForm() {\n this.form = new FormGroup({\n agent: new FormControl('', [agentCodeListValidator(), Validators.required]),\n trusteeEmployerAccountNumber: new FormControl('', [Validators.maxLength(100), Validators.required]),\n companyName: new FormControl('', [Validators.maxLength(300), Validators.required]),\n remarks: new FormControl('', [Validators.maxLength(500)]),\n });\n }\n\n changeFormImmediately(key: string, value: string) {\n if (value && typeof value === 'string') {\n this.form.get(key)?.setValue(value.trim());\n }\n }\n\n confirm() {\n if (this.isLoading) return;\n const agentAndAssignedGroup: AgentAndAssignedGroup = this.form.value;\n const split = agentAndAssignedGroup.agent?.split(',');\n agentAndAssignedGroup.agentList = split;\n\n this.isLoading = true;\n\n this.agentListService\n .add(agentAndAssignedGroup)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n this.inEdit = false;\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.form.setValue({\n agent: '',\n trusteeEmployerAccountNumber: '',\n companyName: '',\n remarks: '',\n });\n this.form.markAsPristine();\n this.form.markAsUntouched();\n }\n });\n }\n\n backToEdit() {\n if (this.isLoading) return;\n this.inEdit = true;\n }\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n\n requestAlert(message: string) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n title: 'Error',\n message: `${message}`,\n buttonName: this.langService.translate('confirm'),\n },\n })\n .afterClosed()\n .subscribe(() => {});\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close({\n agree: true,\n reload: true,\n });\n });\n }\n}\n","\n \n
{{ title }}
\n
\n \n
\n
\n\n \n
\n
\n
\n \n
\n Missing Agent Code.\n {{ agent?.errors?.['agentCodeListInvalid'] | lang }}\n Invalid Agent Code.\n
\n *Case(s) can be reassigned to multiple agents, pls use comma as separator. E.g. From 123456 -> To 456789,654321\n
\n\n
\n \n
\n Missing Employer Account Code.\n Max length is 100.\n
\n
\n
\n \n
\n Missing Company Name.\n Max length is 300.\n
\n
\n\n
\n \n
\n Misssing Remarks.\n Max length is 500.\n
\n
\n
\n
\n\n
\n \n \n\n \n\n \n\n \n
\n
\n\n \n
\n \n {{ 'common.reset' | lang }}\n\n {{ 'common.save' | lang }}\n \n\n \n {{ 'common.backToEdit' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n
\n
\n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService, CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { AgentAndAssignedGroup } from '../agent-list';\nimport { agentCodeListValidator } from 'src/app/shared/validators/validators';\nimport { AgentListService } from '../agent-list.service';\nimport { deepCopy } from 'src/app/utils/copy';\n\n@Component({\n selector: 'app-agent-list-edit',\n templateUrl: './agent-list-edit.component.html',\n styleUrls: ['./agent-list-edit.component.scss'],\n})\nexport class AgentListEditComponent implements OnInit {\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n backToEditButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n originFormValue: AgentAndAssignedGroup = {};\n\n formSendValue: AgentAndAssignedGroup = {};\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n agentTextfieldConfig: CdsTextfieldConfig = {\n label: 'Agent Code',\n placeholder: 'Input Agent Code',\n type: 'text',\n };\n\n accountNumbertxtfieldConfig: CdsTextfieldConfig = {\n label: 'Employer Account Code',\n placeholder: 'Input Employer Account Code',\n type: 'text',\n };\n\n companyNametxtfieldConfig: CdsTextfieldConfig = {\n label: 'Company Name',\n placeholder: 'Input Company Name',\n type: 'text',\n };\n\n form: FormGroup = new FormGroup({});\n\n isLoading = false;\n\n get saveDisabled() {\n return !(this.form.dirty && this.form.valid) || this.isLoading;\n }\n\n get resetDisabled() {\n return !this.form.dirty || this.isLoading;\n }\n\n get agent() {\n return this.form.get('agent');\n }\n\n get trusteeEmployerAccountNumber() {\n return this.form.get('trusteeEmployerAccountNumber');\n }\n\n get companyName() {\n return this.form.get('companyName');\n }\n\n get remarks() {\n return this.form.get('remarks');\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private agentListService: AgentListService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n value: AgentAndAssignedGroup;\n }\n ) {}\n\n ngOnInit() {\n this.initData();\n this.initForm();\n }\n\n initData() {\n this.originFormValue = {\n agent: this.data.value.agent ? this.data.value.agent : '',\n companyName: this.data.value.companyName ? this.data.value.companyName : '',\n trusteeEmployerAccountNumber: this.data.value.trusteeEmployerAccountNumber ? this.data.value.trusteeEmployerAccountNumber : '',\n remarks: this.data.value.remarks ? this.data.value.remarks : '',\n };\n }\n\n initForm() {\n this.form = new FormGroup({\n agent: new FormControl('', [agentCodeListValidator(), Validators.required]),\n trusteeEmployerAccountNumber: new FormControl('', [Validators.maxLength(100), Validators.required]),\n companyName: new FormControl('', [Validators.maxLength(300), Validators.required]),\n remarks: new FormControl('', [Validators.maxLength(500)]),\n });\n\n this.restore();\n\n this.formChangeListener();\n }\n\n changeFormImmediately(key: string, value: string) {\n if (value && typeof value === 'string') {\n this.form.get(key)?.setValue(value.trim());\n }\n }\n\n formChangeListener() {\n this.form.valueChanges.subscribe(() => {\n this.getSendFormValue();\n });\n }\n\n getSendFormValue() {\n const value: AgentAndAssignedGroup = {};\n Object.keys(this.originFormValue).forEach(key => {\n const currentFromValue: AgentAndAssignedGroup = this.form.value;\n if ((currentFromValue as any)[key] !== (this.originFormValue as any)[key]) {\n (value as any)[key] = (currentFromValue as any)[key];\n }\n });\n this.formSendValue = value;\n }\n\n restore() {\n this.form.setValue(this.originFormValue);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n const agentAndAssignedGroup: AgentAndAssignedGroup = deepCopy(this.form.value);\n const split = agentAndAssignedGroup.agent?.split(',');\n agentAndAssignedGroup.agentList = split;\n agentAndAssignedGroup.id = this.data.value.id;\n this.isLoading = true;\n this.agentListService\n .edit(agentAndAssignedGroup)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.restore();\n }\n });\n }\n\n delete() {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('agent.delete-tip'),\n continueButtonName: this.langService.translate('common.delete'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.isLoading = true;\n this.agentListService\n .delete(this.data.value.id as string)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n });\n }\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n\n requestAlert(message: string) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n title: 'Error',\n message: `${message}`,\n buttonName: this.langService.translate('confirm'),\n },\n })\n .afterClosed()\n .subscribe(() => {});\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close({\n agree: true,\n reload: true,\n });\n });\n }\n}\n","\n \n
{{ data.title }}
\n
\n \n
\n
\n\n \n
\n \n
\n
\n \n
\n Missing Agent Code.\n {{ agent?.errors?.['agentCodeListInvalid'] | lang }}\n
\n *Case(s) can be reassigned to multiple agents, pls use comma as separator. E.g. From 123456 -> To 456789,654321\n
\n\n
\n \n
\n Misssing Employer Account Code.\n Max length is 100.\n
\n
\n\n
\n \n
\n Missing Company Name.\n Max length is 300.\n
\n
\n\n
\n \n
\n Missing Remarks.\n Max length is 500.\n
\n
\n
\n
\n\n \n
\n
\n \n
\n Delete Record\n
\n
\n
\n\n \n
\n {{ 'common.reset' | lang }}\n\n {{ 'common.save' | lang }}\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { AgentListComponent } from './agent-list.component';\n\nconst routes: Routes = [\n {\n path: 'agentList',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: AgentListComponent,\n data: {\n title: 'termination.title',\n roles: {\n SHK_AGENT_ASSIGNMENT_MAPPING: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AgentListRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { CdsLangService } from '@cds/ng-core/lang';\n\nimport { CdsProgressType } from '@cds/ng-core/progress';\nimport { Sort, SortDirection } from '@cds/ng-data-table/sort';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { AgentAndAssignedGroup } from './agent-list';\nimport { AgentListAddComponent } from './agent-list-add/agent-list-add.component';\nimport { AgentListEditComponent } from './agent-list-edit/agent-list-edit.component';\nimport { AgentListService } from './agent-list.service';\n\n@Component({\n selector: 'app-agent-list',\n templateUrl: './agent-list.component.html',\n styleUrls: ['./agent-list.component.scss'],\n})\nexport class AgentListComponent implements OnInit {\n btnCfg: CdsButtonConfig = BTN_CONFIG_TERTIARY;\n displayedColumns: string[] = ['trusteeEmployerAccountNumber', 'agent', 'remarks'];\n totalElements = 0;\n pageCount: IPaginationCount = { current: 0, count: 0 };\n dataSource: AgentAndAssignedGroup[] = [];\n isLoading = false;\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n sortDirection: SortDirection = '';\n sort: Sort = {\n active: 'trusteeEmployerAccountNumber',\n direction: 'asc',\n };\n canEdit = false;\n\n constructor(\n private agentListService: AgentListService,\n private cdsPopup: CdsPopupService,\n private toast: CdsToastService,\n private langService: CdsLangService,\n private layoutHeaderService: LayoutHeaderService,\n private alert: CdsAlertService,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.setTitle('agentList.title');\n this.loadTable();\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SHK_AGENT_ASSIGNMENT_MAPPING).then(havePermission => {\n if (havePermission) {\n this.canEdit = true;\n this.displayedColumns.push('action');\n }\n });\n }\n\n loadTable() {\n if (!this.isLoading) {\n const params: IPageableRequest = this.addSortParam(toPageableRequest(this.pageCount, 15));\n this.isLoading = true;\n this.agentListService\n .findAll(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.totalElements = res.data.totalElements || 0;\n this.dataSource = res.data.content || [];\n if (this.pageCount.current != res.data.number + 1) {\n this.pageCount.current = res.data.number + 1;\n }\n if (this.pageCount.count !== res.data.totalPages) {\n this.pageCount.count = res.data.totalPages;\n }\n } else {\n this.toast.error(res.message);\n }\n },\n error: err => {\n console.error('Call company API error: ', err);\n },\n });\n }\n }\n\n getManageRolePath(roleId?: string) {\n return roleId ? `/system/role-info?roleId=${roleId}` : '/system/role-create';\n }\n\n add() {\n this.cdsPopup\n .open(AgentListAddComponent, {\n size: 'md',\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.loadTable();\n }\n });\n }\n\n edit(data: AgentAndAssignedGroup) {\n this.cdsPopup\n .open(AgentListEditComponent, {\n size: 'md',\n data: {\n title: this.langService.translate('common.editRecord'),\n value: data,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.loadTable();\n } else if (result?.delete) {\n this.loadTable();\n } else {\n this.isLoading = false;\n }\n });\n }\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n onSortChange(event: Sort) {\n this.sortDirection = event.direction;\n this.sort = event;\n this.loadTable();\n }\n\n addSortParam(originParams: IPageableRequest) {\n const params: IPageableRequest = { ...originParams };\n\n params.sort = `${this.sort.active},${this.sort.direction}`;\n\n return params;\n }\n\n requestAlert(message: string) {\n this.alert.error('Got Error', message);\n }\n}\n","
\n \n \n
\n
\n
{{ 'common.recordList' | lang }}
\n
Total {{ totalElements }} records
\n
\n
\n \n
\n
+
\n Add New Record\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n \n \n Employer Account Code and Name\n \n
\n
{{ element.trusteeEmployerAccountNumber }}
\n
{{ element.companyName }}
\n
\n
\n
\n \n \n Agent Code and Name \n \n
\n
{{ element.agent }}
\n
{{ element.agentName }}
\n
{{ element.agentChineseName }}
\n
\n
\n
\n \n \n Remarks \n \n {{ element.remarks || '/' }}\n \n \n \n \n Action \n \n
\n
\n \n
\n Edit\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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { AgentListComponent } from './agent-list.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { AppPaginationModule } from 'src/app/shared/pagination/pagination.module';\nimport { LoadingModule } from 'src/app/shared/loading/loading.modules';\nimport { NoResultFoundModule } from 'src/app/shared/no-result-found/no-result-found.module';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { AgentListRoutingModule } from './agent-list-routing.module';\nimport { AgentListAddComponent } from './agent-list-add/agent-list-add.component';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { AgentListEditComponent } from './agent-list-edit/agent-list-edit.component';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { PermissionModule } from 'src/app/shared/permission/permission.module';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\n\n@NgModule({\n declarations: [AgentListComponent, AgentListAddComponent, AgentListEditComponent],\n imports: [\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n CdsDropdownModule,\n CdsButtonModule,\n CdsIconModule,\n CdsLinkModule,\n CdsSearchModule,\n CdsPaginationModule,\n CdsLanguageModule,\n CdsTableModule,\n CdsTextfieldModule,\n AppPaginationModule,\n LoadingModule,\n NoResultFoundModule,\n AgentListRoutingModule,\n CdsPopupModule,\n RowItemModule,\n CdsSortModule,\n PermissionModule,\n CdsTextareaModule,\n CdsAssistiveTextModule,\n ],\n})\nexport class AgentListModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { AgentAndAssignedGroup } from './agent-list';\n\nconst filterParams = (iObj?: any): HttpParams => {\n if (iObj) {\n Object.keys(iObj).forEach(key => iObj[key] === undefined && delete iObj[key]);\n return new HttpParams({\n fromObject: iObj as any,\n });\n }\n return new HttpParams();\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentListService {\n constructor(private http: HttpClient) {}\n\n private getApiPath(...strings: string[]) {\n return environment.apiPrefix.concat('/ext/eb-ssms/customer-service').concat(...strings);\n }\n private getAgentAipPath(iStr: string) {\n return this.getApiPath('/shkp/terminated-members/agent-mappings', iStr);\n }\n\n findAll(params: IPageableRequest): Observable> {\n return this.http.get>(this.getAgentAipPath(''), {\n params: filterParams(params),\n });\n }\n\n add(agentAndAssignedGroup: AgentAndAssignedGroup): Observable> {\n return this.http.post>(this.getAgentAipPath(''), agentAndAssignedGroup);\n }\n\n edit(agentAndAssignedGroup: AgentAndAssignedGroup): Observable> {\n return this.http.put>(this.getAgentAipPath(''), agentAndAssignedGroup);\n }\n\n delete(id: string): Observable> {\n return this.http.delete>(this.getAgentAipPath(`?id=${id}`));\n }\n}\n","export interface AgentAndAssignedGroup {\n agent?: string;\n companyName?: string;\n id?: string;\n trusteeEmployerAccountNumber?: string;\n isDefault?: boolean;\n agentList?: string[];\n remarks?: string;\n agentName?: string;\n}\n\nexport enum AddressTypeE {\n CR = 'Correspondence Address',\n BU = 'Business Address',\n RO = 'Registered Office Address',\n RE = 'Residential Address',\n OS = 'Overseas Settlement Address',\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { AgentPerformanceEnrolmentComponent } from './agent-performance-enrolment.component';\nimport { AgentPerformanceHeadEnrolmentComponent } from 'src/app/views/shk/agent-performance-head-enrolment/agent-performance-head-enrolment.component';\n\nconst routes: Routes = [\n {\n path: 'agent-performance-enrolment',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: AgentPerformanceEnrolmentComponent,\n data: {\n title: 'enrolment.performanceTitle',\n roles: {\n SHK_AGENT_ASSIGNMENT_REPORT: PermissionAccess.R,\n },\n },\n },\n {\n path: 'head',\n component: AgentPerformanceHeadEnrolmentComponent,\n data: {\n title: 'agent-performance-enrolment-head.title',\n roles: {\n SHK_AGENT_ASSIGNMENT_REPORT_AGENT_HEAD: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AgentPerformanceEnrolmentRoutingModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, HostListener, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\nimport { accountStatusDropdownOptions, agentFollowUpStatusDropdownOptions, EnrolmentRecord, EnrolmentSearchRequest } from '../enrolment/enrolment';\nimport { EnrolmentService } from '../enrolment/enrolment.service';\nimport { AgentPerformanceService } from './agent-performance-enrolment.service';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { EmployerService } from '../employer/employer.service';\nimport { DateTime } from 'luxon';\nimport { ColumnSort, I18N_KEY } from '../employer/employer';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { dateValidator, descriptionValidator, numberStringValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { deepCopy } from 'src/app/utils/copy';\n\n@Component({\n selector: 'app-agent-performance-enrolment',\n templateUrl: './agent-performance-enrolment.component.html',\n styleUrls: ['./agent-performance-enrolment.component.scss'],\n})\nexport class AgentPerformanceEnrolmentComponent implements OnInit {\n searchDTO: EnrolmentSearchRequest = {\n page: 0,\n size: 10,\n totalLives: '',\n trusteeEmployerAccountNumber: '',\n companyName: '',\n employDateStart: '',\n employDateEnd: '',\n agentCode: '',\n };\n\n exportParams: EnrolmentRecord = {};\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n exportButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n I18N_KEY = I18N_KEY;\n\n exportButtonDisabled = true;\n\n _progress = false;\n\n _totalPages = 0;\n\n _totalCount = 0;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n _recordList: EnrolmentRecord[] = [];\n\n _number = 1;\n\n _inputNumber = 1;\n\n isMobile = false;\n\n showDatePicker = true;\n\n formReady = false;\n\n agentFollowUpStatusDropdownOptions = [...agentFollowUpStatusDropdownOptions];\n accountStatusDropdownOptions = [...accountStatusDropdownOptions];\n\n agentFollowUpStatusConfig: CdsDropdownConfig = {\n label: 'Agent Follow Up Status',\n placeholder: 'Select Agent Follow Up Status',\n options: [...agentFollowUpStatusDropdownOptions],\n };\n accountStatusConfig: CdsDropdownConfig = {\n label: 'Account Status',\n placeholder: 'Select Account Status',\n options: [...accountStatusDropdownOptions],\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'dateOfEmploy',\n title: 'Date of Employment',\n sticky: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'createdAt',\n title: 'Assignment Date',\n sticky: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'trusteeEmployerAccountNumber',\n title: 'Employer Account Code and Name',\n stickyEnd: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'empfMemberAccountNumber',\n title: 'Employee Name',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'preassignedAgentCode',\n title: 'Preassigned Agent',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'agentFollowUpStatus',\n title: 'Agent Follow Up Status',\n },\n\n // {\n // key: 'accountStatus',\n // title: 'Account Status',\n // },\n ];\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n tempSeardhParams: EnrolmentSearchRequest = {\n page: 1,\n size: 10,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n columnSort: ColumnSort = {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n form: FormGroup = new FormGroup({});\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get trusteeEmployerAccountNumberControl() {\n return this.form?.get('trusteeEmployerAccountNumber');\n }\n\n get companyNameControl() {\n return this.form?.get('companyName');\n }\n\n get employDateStartControl() {\n return this.form?.get('employDateStart');\n }\n\n get employDateEndControl() {\n return this.form?.get('employDateEnd');\n }\n\n get agentCodeControl() {\n return this.form?.get('agentCode');\n }\n\n get agentFollowUpStatusControl() {\n return this.form?.get('agentFollowUpStatus');\n }\n\n constructor(\n public service: AgentPerformanceService,\n public enrolmentService: EnrolmentService,\n private toastAlert: ToastAlertService,\n public employerService: EmployerService\n ) {}\n\n ngOnInit(): void {\n this.onResize();\n\n this.initForm();\n this.loadTable();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n trusteeEmployerAccountNumber: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n companyName: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.employerNameValidTip, true)]),\n employDateStart: new FormControl('', [dateValidator('create.dateError', '', '')]),\n employDateEnd: new FormControl('', [dateValidator('create.dateError', '', '')]),\n agentCode: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n agentFollowUpStatus: new FormControl(''),\n },\n { validators: startAndEndDateValidator('create.dateError', 'employDateStart', 'employDateEnd') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort = event.column\n ? {\n key: event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n this.loadTable();\n }\n\n loadTable() {\n const params: EnrolmentSearchRequest = this.getRequestParams();\n this._progress = true;\n this.exportButtonDisabled = true;\n this.service\n .getEnrolmentMemberList(params, this.columnSort)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._progress = false;\n this._recordList = data.data.empty ? [] : data.data.content;\n this._totalCount = data.data.totalElements;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n }\n });\n }\n\n getTempSearchParams() {\n const params: EnrolmentSearchRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n params.employDateStart = params.employDateStart ? this.dateTrans(params.employDateStart) : '';\n params.employDateEnd = params.employDateEnd ? this.dateTrans(params.employDateEnd) : '';\n\n return params;\n }\n\n getRequestParams() {\n const params: EnrolmentSearchRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n const exportParams: any = { ...params };\n delete exportParams.page;\n delete exportParams.size;\n delete exportParams.totalLives;\n this.exportParams = exportParams;\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.tempSeardhParams = {\n page: 1,\n size: 10,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n onPageChange(page: number) {\n this.searchDTO.page = page - 1;\n this._inputNumber = page;\n this.loadTable();\n }\n\n onGoPage(num: number) {\n if (num < 1) {\n num = 1;\n }\n if (num > this._totalPages) {\n num = this._totalPages;\n }\n this._number = num;\n this._inputNumber = num;\n }\n\n getMinTime() {\n return moment().subtract(5, 'year').add(1, 'day').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n getMaxFromDate = (toDateStr = '31/12/9999') => {\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 845) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","
\n \n\n
\n
\n {{ 'list.serach-record' | lang }}\n
\n
\n
\n \n\n \n Max length is 15\n\n {{ trusteeEmployerAccountNumberControl?.errors?.['invalidNumberString'] }}\n
\n
\n
\n \n\n
\n Max length is 200\n\n {{ companyNameControl?.errors?.['descriptionInvalid'] }}\n
\n
\n
\n
\n \n \n \n\n
\n {{ 'create.dateError' | lang }}\n
\n
\n
-
\n
\n \n \n \n\n
\n {{ 'create.dateError' | lang }}\n
\n
\n
\n
\n \n\n
\n Max length is 20\n\n {{ agentCodeControl?.errors?.['invalidNumberString'] }}\n
\n
\n
\n \n
\n \n\n
\n \n \n
\n
\n
\n\n
\n
\n
{{ 'common.recordList' | lang }}
\n
Total {{ _totalCount | number }} records
\n
\n
\n\n
\n \n \n {{ element['dateOfEmploy'] | ssmsDate }}\n \n \n {{ element['createdAt'] | ssmsDate }}\n \n \n
\n
{{ element.trusteeEmployerAccountNumber }}
\n
\n {{ element.companyName }}\n {{ element.chineseCompanyName }}\n
\n
\n
\n \n
\n
{{ element['empfMemberAccountNumber'] }}
\n
\n
\n {{ element['firstName'] }} {{ element['lastName'] }} \n {{ element['chineseLastName'] }}{{ element['chineseFirstName'] }}\n \n
\n
\n
\n
\n \n
\n
{{ element.preassignedAgentCode }}
\n
\n {{ element.preassignedAgentName }} {{ element.preassignedAgentChineseName }}\n
\n
\n
\n\n \n
\n
{{ employerService.optionLabelRender | fn : element.agentFollowUpStatus : agentFollowUpStatusDropdownOptions }}
\n
\n
\n \n \n
\n\n
\n
\n \n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AgentPerformanceEnrolmentComponent } from './agent-performance-enrolment.component';\nimport { AgentPerformanceEnrolmentRoutingModule } from './agent-performance-enrolment-routing.module';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { AppPaginationModule } from 'src/app/shared/pagination/pagination.module';\nimport { LoadingModule } from 'src/app/shared/loading/loading.modules';\nimport { NoResultFoundModule } from 'src/app/shared/no-result-found/no-result-found.module';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { PermissionModule } from 'src/app/shared/permission/permission.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { ExpandItemMobileComponent } from './expand-item-mobile/expand-item-mobile.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\n\n@NgModule({\n declarations: [AgentPerformanceEnrolmentComponent, ExpandItemMobileComponent],\n imports: [\n CommonModule,\n AgentPerformanceEnrolmentRoutingModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n CdsDropdownModule,\n CdsButtonModule,\n CdsIconModule,\n CdsLinkModule,\n CdsSearchModule,\n CdsPaginationModule,\n CdsLanguageModule,\n CdsTableModule,\n CdsTextfieldModule,\n CdsDatepickerModule,\n AppPaginationModule,\n LoadingModule,\n NoResultFoundModule,\n CdsPopupModule,\n RowItemModule,\n CdsSortModule,\n PermissionModule,\n ExpandTableModule,\n SharedModule,\n CdsAssistiveTextModule,\n ],\n})\nexport class AgentPerformanceEnrolmentModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { ColumnSort } from '../employer/employer';\nimport { EnrolmentRecord, EnrolmentSearchRequest } from '../enrolment/enrolment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentPerformanceService {\n private customer_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n private enrolmentMemberListUrl = this.customer_url + 'shkp/enrolment-members/allList';\n //http://localhost:8082/shkp/enrolment-members/allList\n constructor(private http: HttpClient) {}\n\n getEnrolmentMemberList(params: EnrolmentSearchRequest, columnSort?: ColumnSort): Observable> {\n const requestParams: EnrolmentSearchRequest = {\n ...params,\n sort: columnSort ? `${columnSort.key},${columnSort.value}` : '',\n };\n //http://localhost:8082/shkp/enrolment-members/allList\n return this.http.get>(this.enrolmentMemberListUrl, {\n params: filterParams(requestParams),\n });\n }\n\n joinName(...params: string[]) {\n let name = '';\n params.forEach(item => {\n if (item !== undefined && item !== null) {\n name = name + item;\n }\n });\n return name;\n }\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { EnrolmentRecord } from '../../enrolment/enrolment';\nimport { AgentPerformanceService } from '../agent-performance-enrolment.service';\n\n@Component({\n selector: 'app-expand-item-mobile',\n templateUrl: './expand-item-mobile.component.html',\n styleUrls: ['./expand-item-mobile.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '-90deg',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class ExpandItemMobileComponent implements OnInit {\n constructor(public service: AgentPerformanceService) {}\n\n @Input() expand = false;\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data: EnrolmentRecord = {};\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detailClass = 'detail-collapsed';\n\n ngOnInit(): void {}\n\n trigger() {\n this.expand = !this.expand;\n this._detailClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }\n}\n","
\n
\n
\n
\n \n
\n\n
\n
\n {{ data.empfMemberAccountNumber }}\n {{ data.firstName }}  {{ data.lastName }} \n \n {{ data.chineseLastName }}\n  \n {{ data.chineseFirstName }}\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n
\n {{ 'termination.list.dateOfEmploy' | lang }}:\n {{ data.dateOfEmploy | date : 'dd/MM/yyyy' }}\n
\n
\n\n
\n
\n {{ 'termination.list.dateOfAssignment' | lang }}:\n {{ data.dateOfAssignment | date : 'dd/MM/yyyy' }}\n
\n
\n\n
\n
\n {{ 'termination.list.agentFollowUpStatus' | lang }}:\n {{ data.agentFollowUpStatus }}\n
\n
\n\n \n
\n\n
\n
\n {{ 'termination.list.detailTitle' | lang }}\n
\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 { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { AgentPerformanceComponent } from './agent-performance.component';\nimport { AgentPerformanceHeadComponent } from 'src/app/views/shk/agent-performance-head/agent-performance-head.component';\n\nconst routes: Routes = [\n {\n path: 'agent-performance',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: AgentPerformanceComponent,\n data: {\n title: 'termination.performanceTitle',\n roles: {\n SHK_AGENT_ASSIGNMENT_REPORT: PermissionAccess.R,\n },\n },\n },\n {\n path: 'head',\n component: AgentPerformanceHeadComponent,\n data: {\n title: 'agent-performance-head.title',\n roles: {\n SHK_AGENT_ASSIGNMENT_REPORT_AGENT_HEAD: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AgentPerformanceRoutingModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, HostListener, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\nimport { accountStatusDropdownOptions, agentFollowUpStatusDropdownOptions, TerminationRecord, TerminationSearchRequest } from '../termination/termination';\nimport { TerminationService } from '../termination/termination.service';\nimport { AgentPerformanceService } from './agent-performance.service';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { EmployerService } from '../employer/employer.service';\nimport { DateTime } from 'luxon';\nimport { ColumnSort, I18N_KEY } from '../employer/employer';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { dateValidator, descriptionValidator, numberStringValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { deepCopy } from 'src/app/utils/copy';\n\n@Component({\n selector: 'app-agent-performance',\n templateUrl: './agent-performance.component.html',\n styleUrls: ['./agent-performance.component.scss'],\n})\nexport class AgentPerformanceComponent implements OnInit {\n searchDTO: TerminationSearchRequest = {\n page: 0,\n size: 10,\n totalLives: '',\n trusteeEmployerAccountNumber: '',\n companyName: '',\n terminationDateStart: '',\n terminationDateEnd: '',\n agentCode: '',\n };\n\n exportParams: TerminationRecord = {};\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n exportButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n I18N_KEY = I18N_KEY;\n\n exportButtonDisabled = true;\n\n _progress = false;\n\n _totalPages = 0;\n\n _totalCount = 0;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n _recordList: TerminationRecord[] = [];\n\n _number = 1;\n\n _inputNumber = 1;\n\n isMobile = false;\n\n showDatePicker = true;\n\n formReady = false;\n\n agentFollowUpStatusDropdownOptions = [...agentFollowUpStatusDropdownOptions];\n accountStatusDropdownOptions = [...accountStatusDropdownOptions];\n\n agentFollowUpStatusConfig: CdsDropdownConfig = {\n label: 'Agent Follow Up Status',\n placeholder: 'Select Agent Follow Up Status',\n options: [...agentFollowUpStatusDropdownOptions],\n };\n accountStatusConfig: CdsDropdownConfig = {\n label: 'Account Status',\n placeholder: 'Select Account Status',\n options: [...accountStatusDropdownOptions],\n };\n displayedColumns: string[] = [\n 'terminationDate',\n 'createdAt',\n 'trusteeEmployerAccountNumber',\n 'empfMemberAccountNumber',\n 'empolyeeName',\n 'preassignedAgentCode',\n 'preassignedAgentName',\n 'agentFollowUpStatus',\n 'accountStatus',\n ];\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'terminationDate',\n title: 'Termination Date',\n sticky: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'createdAt',\n title: 'Assignment Date',\n sticky: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'trusteeEmployerAccountNumber',\n title: 'Employer Account Code and Name',\n stickyEnd: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'empfMemberAccountNumber',\n title: 'Employee Name',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'preassignedAgentCode',\n title: 'Preassigned Agent',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'agentFollowUpStatus',\n title: 'Agent Follow Up Status',\n },\n {\n key: 'accountStatus',\n title: 'Account Status',\n },\n ];\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n tempSeardhParams: TerminationSearchRequest = {\n page: 1,\n size: 10,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n columnSort: ColumnSort = {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n form: FormGroup = new FormGroup({});\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get trusteeEmployerAccountNumberControl() {\n return this.form?.get('trusteeEmployerAccountNumber');\n }\n\n get companyNameControl() {\n return this.form?.get('companyName');\n }\n\n get terminationDateStartControl() {\n return this.form?.get('terminationDateStart');\n }\n\n get terminationDateEndControl() {\n return this.form?.get('terminationDateEnd');\n }\n\n get agentCodeControl() {\n return this.form?.get('agentCode');\n }\n\n get agentFollowUpStatusControl() {\n return this.form?.get('agentFollowUpStatus');\n }\n\n get accountStatusControl() {\n return this.form?.get('accountStatus');\n }\n\n constructor(\n public service: AgentPerformanceService,\n public terminationService: TerminationService,\n private toastAlert: ToastAlertService,\n public employerService: EmployerService\n ) {}\n\n ngOnInit(): void {\n this.onResize();\n\n this.initForm();\n this.loadTable();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n trusteeEmployerAccountNumber: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n companyName: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.employerNameValidTip, true)]),\n terminationDateStart: new FormControl('', [dateValidator('create.dateError', '', '')]),\n terminationDateEnd: new FormControl('', [dateValidator('create.dateError', '', '')]),\n agentCode: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n agentFollowUpStatus: new FormControl(''),\n accountStatus: new FormControl(''),\n },\n { validators: startAndEndDateValidator('create.dateError', 'terminationDateStart', 'terminationDateEnd') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort = event.column\n ? {\n key: event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n this.loadTable();\n }\n\n loadTable() {\n const params: TerminationSearchRequest = this.getRequestParams();\n this._progress = true;\n this.exportButtonDisabled = true;\n this.service\n .getTerminatedMemberList(params, this.columnSort)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._progress = false;\n this._recordList = data.data.empty ? [] : data.data.content;\n this._totalCount = data.data.totalElements;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n }\n });\n }\n\n getTempSearchParams() {\n const params: TerminationSearchRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n params.terminationDateStart = params.terminationDateStart ? this.dateTrans(params.terminationDateStart) : '';\n params.terminationDateEnd = params.terminationDateEnd ? this.dateTrans(params.terminationDateEnd) : '';\n\n return params;\n }\n\n getRequestParams() {\n const params: TerminationSearchRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n const exportParams: any = { ...params };\n delete exportParams.page;\n delete exportParams.size;\n delete exportParams.totalLives;\n this.exportParams = exportParams;\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.tempSeardhParams = {\n page: 1,\n size: 10,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n onPageChange(page: number) {\n this.searchDTO.page = page - 1;\n this._inputNumber = page;\n this.loadTable();\n }\n\n onGoPage(num: number) {\n if (num < 1) {\n num = 1;\n }\n if (num > this._totalPages) {\n num = this._totalPages;\n }\n this._number = num;\n this._inputNumber = num;\n }\n\n getMinTime() {\n return moment().subtract(5, 'year').add(1, 'day').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n getMaxFromDate = (toDateStr = '31/12/9999') => {\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 845) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","
\n \n\n
\n
\n {{ 'list.serach-record' | lang }}\n
\n
\n
\n \n\n \n Max length is 15\n\n {{ trusteeEmployerAccountNumberControl?.errors?.['invalidNumberString'] }}\n
\n
\n
\n \n\n
\n Max length is 200\n\n {{ companyNameControl?.errors?.['descriptionInvalid'] }}\n
\n
\n
\n
\n \n \n \n\n
\n {{ 'create.dateError' | lang }}\n
\n
\n
-
\n
\n \n \n \n\n
\n {{ 'create.dateError' | lang }}\n
\n
\n
\n
\n \n\n
\n Max length is 20\n\n {{ agentCodeControl?.errors?.['invalidNumberString'] }}\n
\n
\n
\n \n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n
\n
\n
{{ 'common.recordList' | lang }}
\n
Total {{ _totalCount | number }} records
\n
\n
\n\n
\n \n \n {{ element['terminationDate'] | ssmsDate }}\n \n \n {{ element['createdAt'] | ssmsDate }}\n \n \n
\n
{{ element.trusteeEmployerAccountNumber }}
\n
\n {{ element.companyName }}\n  {{ element.chineseCompanyName }}\n
\n
\n
\n \n
\n
{{ element['empfMemberAccountNumber'] }}
\n
\n
\n {{ element['firstName'] }}  {{ element['lastName'] }} \n \n {{ element['chineseLastName'] }}{{ element['chineseFirstName'] }}\n \n
\n
\n
\n
\n \n
\n
{{ element.preassignedAgentCode }}
\n
\n {{ element.preassignedAgentName }} {{ element.preassignedAgentChineseName }}\n
\n
\n
\n\n \n
\n
{{ employerService.optionLabelRender | fn : element.agentFollowUpStatus : agentFollowUpStatusDropdownOptions }}
\n
\n
\n \n
\n
{{ employerService.optionLabelRender | fn : element.accountStatus : accountStatusDropdownOptions }}
\n
\n
\n \n
\n\n
\n
\n \n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AgentPerformanceComponent } from './agent-performance.component';\nimport { AgentPerformanceRoutingModule } from './agent-performance-routing.module';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { AppPaginationModule } from 'src/app/shared/pagination/pagination.module';\nimport { LoadingModule } from 'src/app/shared/loading/loading.modules';\nimport { NoResultFoundModule } from 'src/app/shared/no-result-found/no-result-found.module';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { PermissionModule } from 'src/app/shared/permission/permission.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { ExpandItemMobileComponent } from './expand-item-mobile/expand-item-mobile.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\n\n@NgModule({\n declarations: [AgentPerformanceComponent, ExpandItemMobileComponent],\n imports: [\n CommonModule,\n AgentPerformanceRoutingModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n CdsDropdownModule,\n CdsButtonModule,\n CdsIconModule,\n CdsLinkModule,\n CdsSearchModule,\n CdsPaginationModule,\n CdsLanguageModule,\n CdsTableModule,\n CdsTextfieldModule,\n CdsDatepickerModule,\n AppPaginationModule,\n LoadingModule,\n NoResultFoundModule,\n CdsPopupModule,\n RowItemModule,\n CdsSortModule,\n PermissionModule,\n ExpandTableModule,\n SharedModule,\n CdsAssistiveTextModule,\n ],\n})\nexport class AgentPerformanceModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { ColumnSort } from '../employer/employer';\nimport { TerminationRecord, TerminationSearchRequest } from '../termination/termination';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentPerformanceService {\n private customer_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n private terminatedMemberListUrl = this.customer_url + 'shkp/terminated-members/allList';\n private exportUrl = this.customer_url + 'shkp/terminated-members/getCsv';\n\n constructor(private http: HttpClient) {}\n\n getTerminatedMemberList(params: TerminationSearchRequest, columnSort?: ColumnSort): Observable> {\n const requestParams: TerminationSearchRequest = {\n ...params,\n sort: columnSort ? `${columnSort.key},${columnSort.value}` : '',\n };\n return this.http.get>(this.terminatedMemberListUrl, {\n params: filterParams(requestParams),\n });\n }\n\n exportTerminatedMemberList(params: TerminationRecord): Observable {\n return this.http.get(this.exportUrl, {\n params: filterParams(params),\n responseType: 'text' as 'json',\n });\n }\n\n joinName(...params: string[]) {\n let name = '';\n params.forEach(item => {\n if (item !== undefined && item !== null) {\n name = name + item;\n }\n });\n return name;\n }\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { TerminationRecord } from '../../termination/termination';\nimport { AgentPerformanceService } from '../agent-performance.service';\n\n@Component({\n selector: 'app-expand-item-mobile',\n templateUrl: './expand-item-mobile.component.html',\n styleUrls: ['./expand-item-mobile.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '-90deg',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class ExpandItemMobileComponent implements OnInit {\n constructor(public service: AgentPerformanceService) {}\n\n @Input() expand = false;\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data: TerminationRecord = {};\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detailClass = 'detail-collapsed';\n\n ngOnInit(): void {}\n\n trigger() {\n this.expand = !this.expand;\n this._detailClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }\n}\n","
\n
\n
\n
\n \n
\n\n
\n
\n {{ data.empfMemberAccountNumber }}\n {{ data.firstName }} {{ data.lastName }} \n \n {{ data.chineseLastName }} {{ data.chineseFirstName }}\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n
\n {{ 'termination.list.terminationDate' | lang }}:\n {{ data.terminationDate | date : 'dd/MM/yyyy' }}\n
\n
\n\n
\n
\n {{ 'termination.list.dateOfAssignment' | lang }}:\n {{ data.dateOfAssignment | date : 'dd/MM/yyyy' }}\n
\n
\n\n
\n
\n {{ 'termination.list.agentFollowUpStatus' | lang }}:\n {{ data.agentFollowUpStatus }}\n
\n
\n\n
\n
\n {{ 'termination.list.accountStatus' | lang }}:\n {{ data.accountStatus }}\n
\n
\n
\n\n
\n
\n {{ 'termination.list.detailTitle' | lang }}\n
\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 { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ageRange',\n})\nexport class AgeRangePipe implements PipeTransform {\n transform(_value: number, lan: string): string {\n let ageRange = '';\n if (18 <= _value && _value <= 25) {\n ageRange = '18-25';\n } else if (26 <= _value && _value <= 35) {\n ageRange = '26-35';\n } else if (36 <= _value && _value <= 45) {\n ageRange = '36-45';\n } else if (46 <= _value && _value <= 55) {\n ageRange = '46-55';\n } else if (56 <= _value && _value <= 65) {\n ageRange = '56-65';\n } else if (66 <= _value) {\n if (lan === 'TC') {\n ageRange = '66以上';\n } else {\n ageRange = '66 or above';\n }\n }\n return ageRange;\n }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { BranchAgentResponse } from './branch-agent-response';\n\n@Component({\n selector: 'app-agent-branch-pop',\n templateUrl: './agent-branch-pop.component.html',\n styleUrls: ['./agent-branch-pop.component.scss'],\n})\nexport class AgentBranchPopComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n list: BranchAgentResponse[];\n language: string;\n }\n ) {\n this.filterRepeatData();\n }\n\n private filterRepeatData() {\n const agentCodeRecord: string[] = [];\n\n this.data.list = this.data.list.filter(item => {\n const need = item.agentCode !== undefined && !agentCodeRecord.includes(item.agentCode);\n if (need && item.agentCode !== undefined) {\n agentCodeRecord.push(item.agentCode);\n }\n return need;\n });\n }\n\n ngOnInit(): void {}\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
\n
\n {{ 'branch.notSameBranchEnsureCommunicated' | lang }}\n
\n
\n {{ 'delegationChange.newDelegatedAgentLower' | lang }}\n \n
\n
\n
\n
\n {{ item.agentCode }}\n
\n {{ data.language === 'EN' ? (item.name ? item.name : item.chineseName) : item.chineseName ? item.chineseName : item.name }}\n
\n
\n
\n \n
\n
\n\n
\n {{ 'branch.understandAndProceed' | lang }}\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject, of } from 'rxjs';\nimport { catchError, tap, timeout } from 'rxjs/operators';\n\nimport { EmployeeResponse } from './employee-summary/employee-response.model';\nimport { EmployeeRequest } from './employee-summary/employee-request.model';\nimport { environment } from 'src/environments/environment';\nimport { EmployeeDelegationChangeRequest } from './employee-delegation-change/employee-delegation-change-request.model';\nimport { EmployeeDelegationChangeResponse } from './employee-delegation-change/employee-delegation-change-response.model';\nimport { AgentCodeBatchValidateResponse } from './employer-summary/agent-code-batch-validate-response';\nimport { agentCodeAddPrefix0, agentCodeRemovePrefix0 } from 'src/app/utils/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentEmployeeDelegationService {\n searchEmployeeUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/delegation/members/query`;\n eeDelegationChangeBatchValidateUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/update-delegation/members/validation`;\n eeDelegationChangeSubmitUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/update-delegation/members/submit`;\n\n employeeDataSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorEmployeeSubject = new Subject();\n eeDelegationChangeBatchValidateSubject = new Subject();\n eeDelegationChangeSubmitSubject = new Subject();\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n\n getEmployees(request: EmployeeRequest) {\n this.httpClient\n .post(this.searchEmployeeUrl, request, this.httpOptions)\n .pipe(\n tap(() => console.info('fetched employees')),\n timeout(10000),\n catchError(this.handleError('getEmployers', new EmployeeResponse()))\n )\n .subscribe((resp: EmployeeResponse) => {\n if (resp.result === 0) {\n resp.data?.content?.forEach(c => {\n if (c.delegateAgentInfo?.agentCode) {\n c.delegateAgentInfo.agentCode = agentCodeAddPrefix0(c.delegateAgentInfo.agentCode);\n }\n });\n }\n\n this.employeeDataSubject.next(resp);\n });\n }\n\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.info(`${operation} failed :${error.message}`);\n this.errorEmployeeSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n\n eeDelegationChangeBatchValidate(eeDelegationChangeRequestArr: EmployeeDelegationChangeRequest[]) {\n eeDelegationChangeRequestArr.forEach(eeDelegationChange => {\n if (eeDelegationChange.oldAgentCode) {\n eeDelegationChange.oldAgentCode = agentCodeRemovePrefix0(eeDelegationChange.oldAgentCode);\n }\n if (eeDelegationChange.targetAgentCode) {\n eeDelegationChange.targetAgentCode = agentCodeRemovePrefix0(eeDelegationChange.targetAgentCode);\n }\n });\n\n return this.httpClient\n .post(this.eeDelegationChangeBatchValidateUrl, eeDelegationChangeRequestArr, this.httpOptions)\n .pipe(\n tap(() => console.info('ee delegation change batch check')),\n timeout(10000),\n catchError(this.handleError('ee delegation change batch check got error'))\n )\n .subscribe((resp: AgentCodeBatchValidateResponse) => {\n if (resp.result !== 0) {\n if (resp.data && resp.data.length > 0) {\n resp.data.forEach(element => {\n if (element.agent) {\n if (element.agent.agentCode) {\n element.agent.agentCode = agentCodeAddPrefix0(element.agent.agentCode);\n }\n }\n\n if (element.targetAgent) {\n if (element.targetAgent.agentCode) {\n element.targetAgent.agentCode = agentCodeAddPrefix0(element.targetAgent.agentCode);\n }\n }\n });\n }\n }\n\n this.eeDelegationChangeBatchValidateSubject.next(resp);\n });\n }\n\n eeDelegationChangeSubmit(eeDelegationChangeRequestArr: EmployeeDelegationChangeRequest[]) {\n eeDelegationChangeRequestArr.forEach(eeDelegationChange => {\n if (eeDelegationChange.oldAgentCode) {\n eeDelegationChange.oldAgentCode = agentCodeRemovePrefix0(eeDelegationChange.oldAgentCode);\n }\n if (eeDelegationChange.targetAgentCode) {\n eeDelegationChange.targetAgentCode = agentCodeRemovePrefix0(eeDelegationChange.targetAgentCode);\n }\n });\n\n return this.httpClient\n .post(this.eeDelegationChangeSubmitUrl, eeDelegationChangeRequestArr, this.httpOptions)\n .pipe(\n tap(() => console.info('ee delegation change submit')),\n timeout(10000),\n catchError(this.handleError('ee delegation change submit got error'))\n )\n .subscribe((resp: AgentCodeBatchValidateResponse) => {\n if (resp.result !== 0) {\n if (resp.data && resp.data.length > 0) {\n resp.data.forEach(element => {\n if (element.agent) {\n if (element.agent.agentCode) {\n element.agent.agentCode = agentCodeAddPrefix0(element.agent.agentCode);\n }\n }\n });\n }\n }\n\n this.eeDelegationChangeSubmitSubject.next(resp);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, Subject } from 'rxjs';\nimport { AgentEmployerResponse } from './agent-employer-response.model';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { EmployerRequest } from './employer-summary/employer-request.model';\nimport { environment } from 'src/environments/environment';\n\nimport { catchError, map, tap, timeout } from 'rxjs/operators';\nimport { CheckAgentCodeRequest, EmployerCheckRequest } from './employer-summary/check-agent-code-request';\nimport { CheckAgentCodeResponse } from './employer-summary/check-agent-code-response';\nimport { AgentCodeBatchValidateResponse } from './employer-summary/agent-code-batch-validate-response';\nimport { SubmitDelegateRequest } from './employer-summary/submit-delegate-request';\nimport { SubmitDelegateResponse } from './employer-summary/submit-delegate-response';\nimport { agentCodeAddPrefix0, agentCodeRemovePrefix0 } from 'src/app/utils/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentEmployerDelegationService {\n employerDataInSummarySubject = new Subject();\n employerDataInDelegateSubject = new Subject();\n agentCodeResponseSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorEmployerSubject = new Subject();\n agentCodeBatchValidateSubject = new Subject();\n agentCodeBatchApplySubject = new Subject();\n agentDelegationSubject = new Subject();\n\n constructor(private httpClient: HttpClient) {}\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n public searchEmployerUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/delegation/employer/query`;\n public checkAgentCodeUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/add-delegation/validate`;\n public agentCodeBatchValidateUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/add-delegation/validateBatch`;\n public confirmSubmitDelegationUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/add-delegation/employers/submit`;\n\n getEmployers(employerRequest: EmployerRequest) {\n const errorEmployerResponse = new AgentEmployerResponse(2, 'ERROR');\n this.httpClient\n .post(this.searchEmployerUrl, employerRequest, this.httpOptions)\n .pipe(\n tap(() => console.info('fetched employers')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('getEmployers', errorEmployerResponse))\n )\n .subscribe((resp: AgentEmployerResponse) => {\n if (resp.result === 0) {\n if (resp.data) {\n resp.data.content?.forEach(c => {\n c.delegateAgentInfo?.forEach(element => {\n element.agentCode = agentCodeAddPrefix0(element.agentCode);\n });\n });\n }\n }\n\n this.employerDataInSummarySubject.next(resp);\n });\n }\n\n getEmployersInDelegate(employerRequest: EmployerRequest) {\n const errorEmployerResponse = new AgentEmployerResponse(2, 'ERROR');\n this.httpClient\n .post(this.searchEmployerUrl, employerRequest, this.httpOptions)\n .pipe(\n tap(() => console.info('fetched employers')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('getEmployers', errorEmployerResponse))\n )\n .subscribe((resp: AgentEmployerResponse) => {\n if (resp.result === 0) {\n if (resp.data) {\n resp.data.content?.forEach(c => {\n c.delegateAgentInfo?.forEach(element => {\n element.agentCode = agentCodeAddPrefix0(element.agentCode);\n });\n });\n }\n }\n\n this.employerDataInDelegateSubject.next(resp);\n });\n }\n\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.info(`${operation} failed :${error.message}`);\n this.errorEmployerSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n\n checkAgentCode(checkAgentCodeRequest: CheckAgentCodeRequest) {\n if (checkAgentCodeRequest.agentCode) {\n checkAgentCodeRequest.agentCode = agentCodeRemovePrefix0(checkAgentCodeRequest.agentCode);\n }\n return this.httpClient\n .post(this.checkAgentCodeUrl, checkAgentCodeRequest, this.httpOptions)\n .pipe(\n tap(() => console.info('check agent code')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('check agent code'))\n )\n .subscribe((resp: CheckAgentCodeResponse) => {\n if (resp.result === 0 && resp.data?.agentCode) {\n resp.data.agentCode = agentCodeAddPrefix0(resp.data?.agentCode);\n }\n\n this.agentCodeResponseSubject.next(resp);\n });\n }\n\n agentCodeBatchValidate(employerCheckRequestArr: EmployerCheckRequest[]) {\n employerCheckRequestArr.forEach(employer => {\n if (employer.agentCode) {\n employer.agentCode = agentCodeRemovePrefix0(employer.agentCode);\n }\n });\n\n return this.httpClient\n .post(this.agentCodeBatchValidateUrl, employerCheckRequestArr, this.httpOptions)\n .pipe(\n tap(() => console.info('check agent code list')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('check agent code list'))\n )\n .subscribe((resp: AgentCodeBatchValidateResponse) => {\n if (resp.result !== 0) {\n if (resp.data) {\n resp.data.forEach(d => {\n if (d.agent?.agentCode) {\n d.agent.agentCode = agentCodeAddPrefix0(d.agent.agentCode);\n }\n\n if (d.existAgents) {\n d.existAgents.forEach(a => {\n if (a.agentCode) {\n a.agentCode = agentCodeAddPrefix0(a.agentCode);\n }\n });\n }\n\n if (d.targetAgent?.agentCode) {\n d.targetAgent.agentCode = agentCodeAddPrefix0(d.targetAgent?.agentCode);\n }\n });\n }\n }\n\n this.agentCodeBatchValidateSubject.next(resp);\n });\n }\n\n confirmSubmitDelegation(submitDelegateRequestArr: SubmitDelegateRequest[]) {\n submitDelegateRequestArr.forEach(delegate => {\n if (delegate.agentCode) {\n delegate.agentCode = agentCodeRemovePrefix0(delegate.agentCode);\n }\n });\n\n return this.httpClient\n .post(this.confirmSubmitDelegationUrl, submitDelegateRequestArr, this.httpOptions)\n .pipe(\n tap(() => console.info('confirm submit delegation')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('confirm submit delegation'))\n )\n .subscribe((resp: SubmitDelegateResponse) => {\n this.agentDelegationSubject.next(resp);\n });\n }\n\n agentCodeBatchApply(checkAgentCodeRequest: CheckAgentCodeRequest) {\n if (checkAgentCodeRequest.agentCode) {\n checkAgentCodeRequest.agentCode = agentCodeRemovePrefix0(checkAgentCodeRequest.agentCode);\n }\n return this.httpClient\n .post(this.checkAgentCodeUrl, checkAgentCodeRequest, this.httpOptions)\n .pipe(\n tap(() => console.info('batch apply checking agent code')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('batch apply checking agent code'))\n )\n .subscribe((resp: CheckAgentCodeResponse) => {\n if (resp.result === 0 && resp.data?.agentCode) {\n resp.data.agentCode = agentCodeAddPrefix0(resp.data.agentCode);\n }\n\n this.agentCodeBatchApplySubject.next(resp);\n });\n }\n\n agentCodeValidate(checkAgentCodeRequest: CheckAgentCodeRequest) {\n if (checkAgentCodeRequest.agentCode) {\n checkAgentCodeRequest.agentCode = agentCodeRemovePrefix0(checkAgentCodeRequest.agentCode);\n }\n return this.httpClient.post(this.checkAgentCodeUrl, checkAgentCodeRequest, this.httpOptions).pipe(\n tap(() => console.info('batch apply checking agent code')),\n timeout(environment.httpTimeout),\n map((resp: CheckAgentCodeResponse) => {\n if (resp.result === 0 && resp.data?.agentCode) {\n resp.data.agentCode = agentCodeAddPrefix0(resp.data.agentCode);\n }\n return resp;\n }),\n catchError(this.handleError('batch apply checking agent code'))\n );\n }\n}\n","export class AgentEmployerResponse {\n result?: number;\n message?: string;\n data?: AgentEmployerResponseBody;\n\n constructor(result: number, message: string) {\n this.result = result;\n this.message = message;\n }\n}\n\nexport interface AgentEmployerResponseBody {\n content: AgentEmployerResponseData[];\n pageable: Pageable;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n numberOfElements: number;\n size: number;\n number: number;\n empty: boolean;\n}\n\nexport interface Pageable {\n pageNumber: number;\n pageSize: number;\n offset?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n\nexport interface AgentEmployerResponseData {\n isSelected?: boolean;\n employerId: string;\n employerName: string;\n employerNameTC: string;\n employerNo: string;\n employeeAmt: number;\n nonDelegateAmt: number;\n delegateAmt: number;\n agentCode?: string;\n flag: boolean;\n agentCodeCheckResult?: string;\n agentCodeCheckResultTC?: string;\n delegateAgentInfo: EmployerDelegateAgentInfo[];\n toDelegateAgentName?: string;\n toDelegateAgentNameTC?: string;\n}\n\nexport interface EmployerDelegateAgentInfo {\n agentCode: string;\n name: string;\n nameTC: string;\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { EmployerSummaryComponent } from './employer-summary/employer-summary.component';\nimport { EmployeeSummaryComponent } from './employee-summary/employee-summary.component';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { EmployerHistoryComponent } from './employer-history/employer-history.component';\nimport { ErDelegationChangeComponent } from './er-delegation-change/er-delegation-change.component';\nimport { EmployeeDelegationChangeComponent } from './employee-delegation-change/employee-delegation-change.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\nconst routes: Routes = [\n {\n path: 'agent',\n component: AdminLayoutComponent,\n children: [\n //{ path: '', redirectTo:\"employer-summary\",pathMatch:'full'},\n {\n path: 'employer-summary',\n component: EmployerSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_SERVICING_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'employee-summary/:employerId',\n component: EmployeeSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_SERVICING_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'er-delegation-change',\n component: ErDelegationChangeComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_SERVICING_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'employee-delegation-change/:employerId',\n component: EmployeeDelegationChangeComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_SERVICING_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'employer-history',\n component: EmployerHistoryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_SERVICING_AGENT]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AgentRoutingModule {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsAccordionModule } from '@cds/ng-web-components/accordion';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsInlineAlertModule } from '@cds/ng-web-components/inline-alert';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\n\nimport { AgeRangePipe } from './age-range.pipe';\nimport { GenderPipe } from './gender.pipe';\n\nimport { SharedModule } from '../../shared/shared.module';\nimport { AgentRoutingModule } from './agent-routing.module';\n\nimport { EmployeeSummaryComponent } from './employee-summary/employee-summary.component';\nimport { EmployerSummaryComponent } from './employer-summary/employer-summary.component';\n\nimport { UserConfirmPopComponent } from './user-confirm-pop/user-confirm-pop.component';\nimport { UserExitEditmodePopComponent } from './user-exit-editmode-pop/user-exit-editmode-pop.component';\nimport { UserSuccessSubmittedComponent } from './user-success-submitted/user-success-submitted.component';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { ErDelegationChangeComponent } from './er-delegation-change/er-delegation-change.component';\nimport { EmployeeDelegationChangeComponent } from './employee-delegation-change/employee-delegation-change.component';\n// import { ComponentsModule } from 'src/app/components/components.module';\nimport { AddToItemComponent } from './er-delegation-change/add-to-item/add-to-item.component';\nimport { EmployerHistoryComponent } from './employer-history/employer-history.component';\nimport { SearchInEmployeeDelegationComponent } from './search-in-employee-delegation/search-in-employee-delegation.component';\nimport { AgentBranchPopComponent } from './agent-branch-pop/agent-branch-pop.component';\nimport { ErChangeSummaryDetailPopComponent } from './er-change-summary-detail-pop/er-change-summary-detail-pop.component';\n\nimport { ReasonOfChangePipe } from './reason-of-change.pipe';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { EmployeeDelegationChangePopComponent } from './employee-delegation-change/employee-delegation-change-pop/employee-delegation-change-pop.component';\n\n@NgModule({\n declarations: [\n EmployerSummaryComponent,\n EmployeeSummaryComponent,\n UserExitEditmodePopComponent,\n UserConfirmPopComponent,\n UserSuccessSubmittedComponent,\n GenderPipe,\n AgeRangePipe,\n ErDelegationChangeComponent,\n EmployeeDelegationChangeComponent,\n AddToItemComponent,\n EmployerHistoryComponent,\n SearchInEmployeeDelegationComponent,\n AgentBranchPopComponent,\n ErChangeSummaryDetailPopComponent,\n ReasonOfChangePipe,\n EmployeeDelegationChangePopComponent,\n ],\n imports: [\n AgentRoutingModule,\n SharedModule,\n\n HttpClientModule,\n CdsIconModule,\n CdsDropdownModule,\n FormsModule,\n CdsButtonModule,\n CdsTextfieldModule,\n CdsTableModule,\n CdsSortModule,\n CdsPaginationModule,\n CdsSearchModule,\n ReactiveFormsModule,\n CdsAssistiveTextModule,\n CdsCheckboxModule,\n CdsAccordionModule,\n CdsLinkModule,\n CommonModule,\n CdsLanguageModule,\n CdsProgressModule,\n CdsPopupModule,\n OverlayModule,\n CdsInlineAlertModule,\n CdsTooltipModule,\n CdsFormFieldModule,\n // ComponentsModule,\n CdsTextareaModule,\n CdsDatepickerModule,\n MatDialogModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class AgentModule {\n constructor() {}\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { Subscription } from 'rxjs';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\n\n@Component({\n selector: 'app-employee-delegation-change-pop',\n templateUrl: './employee-delegation-change-pop.component.html',\n})\nexport class EmployeeDelegationChangePopComponent implements OnInit, OnDestroy {\n language = 'EN';\n lanSubscription?: Subscription;\n\n constructor(private languageChangeService: LanguageChangeService, private dialogRef: MatDialogRef) {}\n\n agreeButtonConfig: CdsButtonConfig = {\n label: this.language === 'EN' ? 'Continue' : '繼續',\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n\n disagreeButtonConfig: CdsButtonConfig = {\n label: this.language === 'EN' ? 'Cancel' : '取消',\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n\n ngOnInit(): void {\n this.lanSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n }\n\n ngOnDestroy(): void {\n this.lanSubscription?.unsubscribe();\n }\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n}\n","\n \n \n {{ 'delegationChange.searchClearAlertDialogWarningPart1' | lang }}\n \n \n {{ 'delegationChange.searchClearAlertDialogWarningPart2' | lang }}\n \n \n {{ 'delegationChange.searchClearAlertDialogWarningPart3' | lang }}\n \n \n \n \n \n\n","export class EmployeeDelegationChangeRequest {\n employerId?: string;\n memberId?: string;\n oldAgentCode?: string;\n targetAgentCode?: string;\n reason?: ChangeReason;\n}\n\nexport interface ChangeReason {\n code?: number;\n message?: string;\n}\n","import { CdStepComponent } from './../../../shared/cd-stepper/cd-step/cd-step.component';\nimport { AfterViewInit, Component, DoCheck, ElementRef, Input, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons, ArrowIcons } from '@cds/ng-themes';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { EmployeeRequest } from '../employee-summary/employee-request.model';\nimport { CdsProgressType } from '@cds/ng-core/progress';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\n\nimport { AgentEmployeeResponseData } from '../agent-employee-response.model';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { AgentEmployeeDelegationService } from '../agent-employee-delegation.service';\nimport { FormControl } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { AddToItemComponent } from '../er-delegation-change/add-to-item/add-to-item.component';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { AgentCodeData } from '../employer-summary/check-agent-code-response';\nimport { CheckAgentCodeRequest } from '../employer-summary/check-agent-code-request';\nimport { AgentEmployerDelegationService } from '../agent-employer-delegation.service';\nimport { AgentBranchPopComponent } from '../agent-branch-pop/agent-branch-pop.component';\nimport { Agent, AgentCodeBatchValidateResponseData } from '../employer-summary/agent-code-batch-validate-response';\nimport { ChangeReason, EmployeeDelegationChangeRequest } from './employee-delegation-change-request.model';\nimport { UserConfirmPopComponent } from '../user-confirm-pop/user-confirm-pop.component';\nimport { UserSuccessSubmittedComponent } from '../user-success-submitted/user-success-submitted.component';\nimport { EmployeeDelegationChangePopComponent } from './employee-delegation-change-pop/employee-delegation-change-pop.component';\nimport { specialCharacterDecode } from 'src/app/utils/special-character';\nimport { CdsInlineAlertType } from '@cds/ng-web-components/inline-alert';\nimport { CdStepperComponent } from 'src/app/shared/cd-stepper/cd-stepper.component';\nimport { UserExitEditmodePopComponent } from '../user-exit-editmode-pop/user-exit-editmode-pop.component';\nimport { pageToTop } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-employee-delegation-change',\n templateUrl: './employee-delegation-change.component.html',\n styleUrls: ['./employee-delegation-change.component.scss'],\n})\nexport class EmployeeDelegationChangeComponent implements OnInit, OnDestroy, AfterViewInit, DoCheck {\n @ViewChild('stepper') stepper!: CdStepperComponent;\n @ViewChildren('step') stepList!: QueryList;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n @Input() nameValue = '';\n @Input() numberValue = '';\n @Input() delegateAgentInfoValue = '';\n @Input() fullWidth = true;\n @Input() color: CdsColorTheme = 'ml';\n @Input() pageCount = 1;\n @Input() page = 1;\n @Input() alertType: CdsInlineAlertType = 'error';\n\n language = 'EN';\n stepperTarget: 'pc' | 'ipad' = 'pc';\n\n backErIcon = ActionIcons.button_left_filled;\n employerId = '';\n employerName?: string;\n employerNameTC?: string;\n employeeTotalCount = 0;\n isShowProgress = true;\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n dataSource: AgentEmployeeResponseData[] = [];\n dataSourceInConfirmation: AgentEmployeeResponseData[] = [];\n fullDataSource: {\n data: AgentEmployeeResponseData[];\n totalElements: number;\n totalPages: number;\n }[] = [];\n allChecked = false;\n markPage = 1;\n searchValue = 1;\n resultState = '0';\n batchInputAgentCodeValid = true;\n batchInputAgentCodeErrorCode = 0;\n batchInputAgentCode = '';\n batchInputAgentName = '';\n batchInputAgentNameTC = '';\n clearDisabledState = true;\n submitDisabledState = true;\n addToItemState = true;\n private lanChangeSubscription?: Subscription;\n private delegationChangeEmployeeDataSubscription?: Subscription;\n isInWhichStage = 1;\n private errorSub?: Subscription;\n private eeDelegationChangeBatchValidateSubscription?: Subscription;\n private eeDelegationChangeSubmitSubscription?: Subscription;\n private agentCodeBatchApplySubscription?: Subscription;\n eeDelegationChangeDisplayedColumns: string[] = ['isSelected', 'employeeName', 'trusteeMbrId', 'delegateAgentInfo', 'newDelegateAgent', 'reasonOfChange'];\n eeDelegationChangeConfirmationDisplayedColumns: string[] = ['employeeName', 'trusteeMbrId', 'delegateAgentInfo', 'newDelegateAgent', 'reasonOfChange'];\n reasonOfChangeFormControl: FormControl = new FormControl();\n reasonOfChangeDropdownConfig: CdsDropdownConfig = {\n color: 'ml',\n type: 'default',\n placeholder: this.language === 'EN' ? 'Select reason of Change' : '選擇變更原因',\n options: [\n {\n label: this.language === 'EN' ? 'Customer complaint' : '客戶抱怨',\n value: 1,\n },\n {\n label: this.language === 'EN' ? 'Agent termination' : '代理終止',\n value: 2,\n },\n {\n label: this.language === 'EN' ? 'Performance issue' : '性能問題',\n value: 3,\n },\n {\n label: this.language === 'EN' ? 'Wrong agent code ' : '錯誤的代理代碼',\n value: 4,\n },\n {\n label: this.language === 'EN' ? 'Others ' : '其他原因',\n value: 5,\n },\n ],\n };\n\n agentCodeNameArr: {\n agentCode?: string;\n agentName?: string;\n agentNameTC?: string;\n }[] = [];\n\n private checkAgentCodeSubscription?: Subscription;\n reloadIcon = ArrowIcons.reload;\n stepperItems = [\n { en: 'Select Item(s)', zh: '選擇項目' },\n { en: 'Fill agent code', zh: '輸入代理人編碼' },\n { en: 'Select Reason', zh: '選擇原因' },\n { en: 'Add code to selected item(s)', zh: '新增編號至已選項目' },\n { en: 'Submission', zh: '提交' },\n ];\n\n onBackToRequestStatusSummaryPageClick() {\n this.router.navigate(['/agent/employer-history']);\n }\n\n constructor(\n private route: ActivatedRoute,\n private languageChangeService: LanguageChangeService,\n private agentEmployeeDelegationService: AgentEmployeeDelegationService,\n private alert: CdsAlertService,\n private cdsPopup: CdsPopupService,\n private router: Router,\n private agentEmployerDelegationService: AgentEmployerDelegationService\n ) {}\n\n ngOnDestroy(): void {\n this.lanChangeSubscription?.unsubscribe();\n this.delegationChangeEmployeeDataSubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n this.agentCodeBatchApplySubscription?.unsubscribe();\n this.clearItems();\n }\n\n ngOnInit(): void {\n this.employerId = String(this.route.snapshot.paramMap.get('employerId'));\n this.route.queryParams.subscribe(param => {\n this.employerName = specialCharacterDecode(decodeURI(param['en']));\n this.employerNameTC = specialCharacterDecode(decodeURI(param['zh']));\n });\n\n this.errorSub = this.agentEmployeeDelegationService.errorEmployeeSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n\n this.delegationChangeEmployeeDataSubscription =\n // put datasource(by Subject next and subscribe method) in pagination pageChange method\n this.agentEmployeeDelegationService.employeeDataSubject.subscribe(response => {\n if (response.data && response.data.content) {\n this.dataSource = response.data.content;\n this.employeeTotalCount = response.data.totalElements;\n this.pageCount = response.data.totalPages;\n if (this.pageFirstInit) {\n for (let i = 0; i < this.pageCount; i++) {\n this.fullDataSource.push({\n data: [],\n totalElements: this.employeeTotalCount,\n totalPages: this.pageCount,\n });\n }\n this.pageFirstInit = false;\n }\n this.fullDataSource.splice(this.markPage - 1, 1, {\n data: this.dataSource,\n totalElements: this.employeeTotalCount,\n totalPages: this.pageCount,\n });\n this.allChecked = false;\n } else {\n this.dataSource = [];\n this.employeeTotalCount = response.data ? response.data.totalElements : 0;\n this.pageCount = response.data ? response.data.totalPages : 0;\n }\n this.isShowProgress = false;\n });\n\n this.agentCodeBatchApplySubscription = this.agentEmployerDelegationService.agentCodeBatchApplySubject.subscribe(resp => {\n if (resp.result === 0 && resp.data) {\n const checkedAgentcode = resp.data ? resp.data.agentCode : '';\n if (checkedAgentcode) {\n this.batchInputAgentCode = checkedAgentcode;\n }\n this.batchInputAgentCodeValid = true;\n this.agentCodeName(resp.data);\n this.isDisableSubmit = false;\n this.isDisableClear = false;\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployeeResponseData[] = this.fullDataSource[i]['data'];\n pageData\n .filter(element => element.isSelected)\n .forEach(element => {\n element.inputtedAgentCode = this.batchInputAgentCode;\n element.reasonOfChange = this.reasonOfChangeFormControl.value;\n element.inputtedReasonOfOthers = this.batchInputReasonOfOthers;\n element.flag = true;\n element.isSelected = false;\n });\n }\n this.batchInputAgentCode = '';\n this.batchInputAgentName = '';\n this.batchInputAgentNameTC = '';\n this.reasonOfChangeFormControl.setValue(0);\n } else {\n this.batchInputAgentCodeValid = false;\n if (resp.data && resp.data.errorCode) {\n this.batchInputAgentCodeErrorCode = resp.data.errorCode;\n }\n }\n });\n this.pageChange(1);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if (window.matchMedia('only screen and (max-width: 1500px)').matches) {\n this.stepperTarget = 'ipad';\n } else {\n this.stepperTarget = 'pc';\n }\n\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n\n this.refreshStep();\n }, 0);\n }\n\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n\n employeeNameTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Employee Name' : '雇員名稱',\n type: 'text',\n maxlength: 20,\n color: 'ml',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n numbersTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Cert No' : '僱員編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n delegateTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Delegated Agent Code' : '委託代理編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n primaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n };\n\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n myEmployeeRequest: EmployeeRequest = {\n page: 1,\n size: 10,\n language: this.language,\n sort: 'dateJoiningTheSchm desc,trusteeMbrId asc',\n isDelegated: 'Y',\n isCoolingPeriod: 'N',\n };\n\n colAgentTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: this.language === 'EN' ? 'Input new agent code' : '輸入新的代理代碼',\n type: 'text',\n };\n\n nameChange(result: string): void {\n this.nameValue = result;\n if (result === '') {\n this.nameValue = '';\n }\n }\n\n numberChange(result: string): void {\n this.numberValue = result;\n if (result === '') {\n this.numberValue = '';\n }\n }\n\n delegateAgentChange(result: string): void {\n this.delegateAgentInfoValue = result;\n if (result === '') {\n this.delegateAgentInfoValue = '';\n }\n }\n\n employeeDelegationChangeSearch(): void {\n const popupRef: MatDialogRef = this.cdsPopup.open(EmployeeDelegationChangePopComponent);\n popupRef.afterClosed().subscribe(_data => {\n if (_data.agree) {\n if (this.nameValue == '' && this.numberValue == '' && this.delegateAgentInfoValue == '') {\n return;\n }\n this.myEmployeeRequest.employeeName = this.nameValue;\n this.myEmployeeRequest.trusteeMbrId = this.numberValue;\n\n this.myEmployeeRequest.page = 1;\n this.myEmployeeRequest.delegateAgentCode = this.delegateAgentInfoValue;\n this.isShowProgress = true;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n this.fullDataSource = [];\n this.pageFirstInit = true;\n }\n });\n }\n\n clearData(): void {\n const popupRef: MatDialogRef = this.cdsPopup.open(EmployeeDelegationChangePopComponent);\n popupRef.afterClosed().subscribe(_data => {\n if (_data.agree) {\n this.nameValue = '';\n this.numberValue = '';\n this.delegateAgentInfoValue = '';\n this.myEmployeeRequest = {\n page: 1,\n size: 10,\n language: this.language,\n sort: 'dateJoiningTheSchm desc,trusteeMbrId asc',\n isDelegated: 'Y',\n isCoolingPeriod: 'N',\n employerId: this.employerId,\n };\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n this.fullDataSource = [];\n this.pageFirstInit = true;\n }\n });\n }\n\n computedIsHalfSelected() {\n let currentPageData = this.fullDataSource[this.markPage - 1] ? this.fullDataSource[this.markPage - 1].data : undefined;\n if (currentPageData === undefined) {\n currentPageData = [];\n }\n const isSelectedAll = currentPageData.every(item => item.isSelected);\n if (isSelectedAll) {\n return false;\n }\n\n const isSelectedSome = currentPageData.some(item => item.isSelected);\n if (isSelectedSome) {\n return true;\n }\n\n return false;\n }\n\n onHeaderCheckboxChange(val: boolean, whichPage: number) {\n this.allChecked = val;\n this.fullDataSource[whichPage - 1].data.forEach(element => {\n element.isSelected = val;\n });\n this.setClearBtnEnableOrNot();\n this.refreshStep();\n }\n\n setClearBtnEnableOrNot() {\n const newArr: AgentEmployeeResponseData[] = this.integrateToNewArr();\n const isSelected: boolean = newArr.some(element => element.isSelected); //check if any rows are selected\n if (isSelected) {\n this.isDisableClear = false;\n } else {\n this.isDisableClear = true;\n }\n }\n\n integrateToNewArr() {\n let newArr: AgentEmployeeResponseData[] = [];\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployeeResponseData[] = this.fullDataSource[i]['data'];\n if (pageData.length !== 0) {\n newArr = newArr.concat(pageData);\n }\n }\n return newArr;\n }\n\n onClickRowSelect(val: boolean, checkedIndex: number, pageNo: number) {\n this.fullDataSource[pageNo - 1].data[checkedIndex].isSelected = val;\n const isSomeNotChecked = this.fullDataSource[pageNo - 1]['data'].some(element => !element.isSelected);\n if (isSomeNotChecked) {\n this.allChecked = false;\n } else {\n this.allChecked = true;\n }\n this.setClearBtnEnableOrNot();\n this.refreshStep();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delgtSearchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n console.info($event, pageNo);\n console.info(parseInt(pageNo));\n if (isNaN(parseInt(pageNo))) {\n this.searchValue = 1;\n }\n this.pageChange(parseInt(pageNo));\n }\n\n batchAgentCodeChange(agentCode: string) {\n if (agentCode.length === 0) {\n this.batchInputAgentCodeValid = true;\n }\n this.batchInputAgentCode = agentCode;\n\n // if (agentCode.length === 6) {\n // this.agentEmployerDelegationService\n // .agentCodeValidate({ agentCode: this.batchInputAgentCode })\n // .subscribe((res: CheckAgentCodeResponse) => {\n // if (res.result !== 0) {\n // this.batchInputAgentCodeValid = false;\n // if (res.data && res.data.errorCode) {\n // this.batchInputAgentCodeErrorCode = res.data.errorCode;\n // }\n // } else {\n // this.batchInputAgentCodeValid = true;\n // this.batchInputAgentName = res.data?.name || '';\n // this.batchInputAgentNameTC = res.data?.chineseName || '';\n // }\n // });\n // }\n\n this.refreshStep();\n }\n\n eeDelegationChangeSubmit() {\n if (this.isDisableSubmit) {\n return;\n }\n\n // clear batch agent input and clear batch agent input error\n // this.batchInputAgentCode = '';\n // this.batchInputAgentCodeValid = true;\n const tmpData: {\n data: AgentEmployeeResponseData[];\n totalElements: number;\n totalPages: number;\n }[] = this.fullDataSource.filter(ele => ele.data.length > 0);\n let elementsToSubmitTmp: AgentEmployeeResponseData[] = [];\n let foundNotCompleteElement = false;\n for (const element of tmpData) {\n const pageData: AgentEmployeeResponseData[] = element['data'];\n if (pageData.length > 0) {\n elementsToSubmitTmp = elementsToSubmitTmp.concat(\n pageData.filter(_ele => {\n let agentCodeValidTmp = false;\n if (_ele.flag && _ele.inputtedAgentCode) {\n agentCodeValidTmp = true;\n }\n let reasonOfChangeValidTmp = false;\n if (_ele.reasonOfChange && ((_ele.reasonOfChange >= 1 && _ele.reasonOfChange <= 4) || (_ele.reasonOfChange === 5 && _ele.inputtedReasonOfOthers))) {\n reasonOfChangeValidTmp = true;\n }\n if (agentCodeValidTmp && reasonOfChangeValidTmp) {\n return true;\n }\n return false;\n })\n );\n for (const _row of pageData) {\n if (_row.flag && _row.inputtedAgentCode && !_row.reasonOfChange) {\n _row.isMissingReasonOfChange = true;\n foundNotCompleteElement = true;\n }\n if (!_row.inputtedAgentCode && _row.reasonOfChange) {\n _row.isMissingAgentCode = true;\n foundNotCompleteElement = true;\n }\n }\n }\n }\n if (foundNotCompleteElement || elementsToSubmitTmp.length === 0) {\n return;\n }\n const eeDelegationBatchCheck: EmployeeDelegationChangeRequest[] = [];\n\n elementsToSubmitTmp.forEach(element => {\n console.info(element.memberId);\n const ckData = new EmployeeDelegationChangeRequest();\n ckData.employerId = this.employerId;\n ckData.memberId = element.memberId;\n ckData.oldAgentCode = element.delegateAgentInfo.agentCode;\n ckData.targetAgentCode = element.inputtedAgentCode;\n const reasonTmp: ChangeReason = {\n code: element.reasonOfChange,\n message: element.inputtedReasonOfOthers,\n };\n ckData.reason = reasonTmp;\n eeDelegationBatchCheck.push(ckData);\n });\n this.eeDelegationChangeBatchValidateSubscription?.unsubscribe();\n this.agentEmployeeDelegationService.eeDelegationChangeBatchValidate(eeDelegationBatchCheck);\n this.eeDelegationChangeBatchValidateSubscription = this.agentEmployeeDelegationService.eeDelegationChangeBatchValidateSubject.subscribe(resp => {\n if (resp.result === 0) {\n this.navigateToConfirmation(elementsToSubmitTmp);\n } else {\n const eeDeleChResp: AgentCodeBatchValidateResponseData[] = resp.data ? resp.data : [];\n this.addAlertItems(this.filter2104Error(eeDeleChResp), elementsToSubmitTmp);\n }\n });\n }\n\n alertItems: {\n index: number;\n ifShow: boolean;\n message: string;\n messageTC: string;\n }[] = [];\n\n // check if found 2103 and 2104 the same time, ignore 2103, prompt 2104 error has high priority\n filter2104Error(data: AgentCodeBatchValidateResponseData[]) {\n const isFound2104 = data.some(_ele => _ele.errorCode === 2104);\n if (isFound2104) {\n return data.filter(_ele => _ele.errorCode === 2104);\n }\n return data;\n }\n\n addAlertItems(data: AgentCodeBatchValidateResponseData[], elementsToSubmitTmp: AgentEmployeeResponseData[]) {\n this.alertItems = [];\n const agentArr: Agent[] = [];\n for (let i = 0; i < data.length; i++) {\n let resultMsg = '';\n let resultMsgTC = '';\n if (data[i].errorCode === 2104) {\n const existsAgents1 = data[i].existAgents;\n const existsAgents2 = data[i].existAgents;\n let agentEn = existsAgents1?.map(existsAgent => existsAgent.agentCode + ' ' + existsAgent.name).join('、');\n const tempAgent = agentEn?.split('');\n tempAgent?.pop();\n agentEn = tempAgent?.join('');\n\n let agentTc = existsAgents2\n ?.map(existsAgent => {\n console.info(existsAgent.agentCode + ' ' + (existsAgent.chineseName ? existsAgent.chineseName : existsAgent.name));\n return existsAgent.agentCode + ' ' + (existsAgent.chineseName ? existsAgent.chineseName : existsAgent.name);\n })\n .join('、');\n const tempAgentTc = agentTc?.split('');\n tempAgentTc?.pop();\n agentTc = tempAgentTc?.join('');\n\n const limitAgentNum = data[i].limitAgent;\n resultMsg = data[i].employerInfo?.employerName + ' has been delegated to ' + limitAgentNum + ' agents including:' + agentEn;\n resultMsgTC = data[i].employerInfo?.employerName + ' 已被委況託 ' + limitAgentNum + ' 位代理人,包括:' + agentTc;\n this.alertItems.push({\n index: i,\n ifShow: true,\n message: resultMsg,\n messageTC: resultMsgTC,\n });\n } else if (data[i].errorCode === 2103) {\n const agentTmp = data[i].targetAgent;\n if (agentTmp) {\n agentArr.push(agentTmp);\n }\n }\n }\n if (agentArr.length > 0) {\n // add warning message for 2103(agent not in same branch)\n const popupRef: MatDialogRef = this.cdsPopup.open(AgentBranchPopComponent, {\n data: { list: agentArr, language: this.language },\n size: 'md',\n });\n popupRef.afterClosed().subscribe(_data => {\n if (_data.agree) {\n this.navigateToConfirmation(elementsToSubmitTmp);\n }\n });\n }\n }\n\n navigateToConfirmation(elementsToSubmitTmp: AgentEmployeeResponseData[]) {\n this.isInWhichStage = 2;\n this.elementsToSubmit = elementsToSubmitTmp;\n this.addAgentNameForConfirmation(elementsToSubmitTmp);\n this.splitElements(elementsToSubmitTmp);\n this.pageChangeInConfirmation(1);\n this.searchValueEEDCConfirm = '1';\n pageToTop();\n }\n\n addAgentNameForConfirmation(employerResponseData: AgentEmployeeResponseData[]) {\n employerResponseData.forEach(ele => {\n const found = this.agentCodeNameArr.find(ac => ac.agentCode === ele.inputtedAgentCode);\n ele.toDelegateAgentName = found?.agentName;\n ele.toDelegateAgentNameTC = found?.agentNameTC;\n });\n }\n\n splitElements(employeeResponseData: AgentEmployeeResponseData[]) {\n const len = employeeResponseData.length;\n const splitPages = Math.ceil(len / 10);\n const splitPageSize = 10;\n localStorage.setItem('totalCountEEDCConfirm', len + '');\n localStorage.setItem('pageCountOfEEDCConfirm', splitPages + '');\n for (let i = 1; i <= splitPages; i++) {\n const strPerPage = JSON.stringify(this.arrayPage(employeeResponseData, i, splitPageSize));\n localStorage.setItem('page' + i, strPerPage);\n }\n }\n\n arrayPage(employeeResponseData: AgentEmployeeResponseData[], page: number, pageSize: number): AgentEmployeeResponseData[] {\n if (page <= 0) {\n return [];\n }\n const minIdx = pageSize * (page - 1);\n const maxIdx = pageSize * page;\n\n return employeeResponseData.slice(minIdx, maxIdx);\n }\n\n // DC = delegation change\n pageCountOfEEDCConfirm = 0;\n pageEEDCConfirm = 0;\n totalCountEEDCConfirm = 0;\n searchValueEEDCConfirm = '';\n\n pageChangeInConfirmation(num: number): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const pageInfoByNum = localStorage.getItem('page' + num)!;\n this.dataSourceInConfirmation = JSON.parse(pageInfoByNum);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const totalItems = parseInt(localStorage.getItem('totalCountEEDCConfirm')!);\n this.pageCountOfEEDCConfirm = Math.ceil(totalItems / 10);\n this.totalCountEEDCConfirm = totalItems;\n this.pageEEDCConfirm = num;\n this.searchValueEEDCConfirm = num + '';\n }\n\n pageFirstInit = true;\n\n pageChange2(num: number): void {\n if (!this.pageFirstInit && num === this.page) {\n this.page = num;\n return;\n }\n this.page = num;\n // markPage is to record which page now, it's useful in checkbox click event\n this.markPage = num;\n this.searchValue = num;\n const pageData: {\n data: AgentEmployeeResponseData[];\n totalElements: number;\n totalPages: number;\n } = this.fullDataSource[num - 1];\n if (pageData && pageData['data'].length !== 0) {\n this.dataSource = pageData['data'];\n this.employeeTotalCount = pageData.totalElements;\n this.pageCount = pageData.totalPages;\n // check if there is item which is not checked in this page\n const isNotSelected: boolean = this.dataSource.some(element => !element.isSelected);\n if (isNotSelected) {\n this.allChecked = false;\n } else {\n this.allChecked = true;\n }\n } else {\n // if this page has not loaded data from BE\n this.myEmployeeRequest.employerId = this.employerId;\n this.myEmployeeRequest.page = num;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n // put datasource(by Subject next and subscribe method) in pagination pageChange method\n this.agentEmployeeDelegationService.employeeDataSubject.subscribe(response => {\n if (response.data) {\n this.dataSource = response.data.content;\n this.employeeTotalCount = response.data.totalElements;\n this.pageCount = response.data.totalPages;\n this.isShowProgress = false;\n if (this.pageFirstInit) {\n for (let i = 0; i < this.pageCount; i++) {\n this.fullDataSource.push({\n data: [],\n totalElements: this.employeeTotalCount,\n totalPages: this.pageCount,\n });\n }\n this.pageFirstInit = false;\n }\n this.fullDataSource.splice(num - 1, 1, {\n data: this.dataSource,\n totalElements: this.employeeTotalCount,\n totalPages: this.pageCount,\n });\n console.info(this.fullDataSource, 88989898);\n this.allChecked = false;\n }\n });\n }\n }\n\n pageChange(num: number): void {\n if (!this.pageFirstInit && num === this.page) {\n this.page = num;\n return;\n }\n this.page = num;\n // markPage is to record which page now, it's useful in checkbox click event\n this.markPage = num;\n this.searchValue = num;\n const pageData: {\n data: AgentEmployeeResponseData[];\n totalElements: number;\n totalPages: number;\n } = this.fullDataSource[num - 1];\n if (pageData && pageData['data'].length !== 0) {\n this.dataSource = pageData['data'];\n this.employeeTotalCount = pageData.totalElements;\n this.pageCount = pageData.totalPages;\n // check if there is item which is not checked in this page\n const isNotSelected: boolean = this.dataSource.some(element => !element.isSelected);\n if (isNotSelected) {\n this.allChecked = false;\n } else {\n this.allChecked = true;\n }\n } else {\n // if this page has not loaded data from BE\n this.myEmployeeRequest.employerId = this.employerId;\n this.myEmployeeRequest.page = num;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n }\n }\n\n eeDelegationChangeBackToEdit() {\n this.isInWhichStage = 1;\n this.elementsToSubmit = [];\n this.clearItems();\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n\n this.refreshStep();\n }, 0);\n }\n\n elementsToSubmit: AgentEmployeeResponseData[] = [];\n\n batchReasonOfChange?: number;\n batchInputReasonOfOthers?: string;\n batchReasonOfChangeOnChange(reason: number) {\n // when reason changed, should disable it first\n this.batchInputReasonOfOthers = '';\n if (reason === 5) {\n const dialogRef = this.cdsPopup.open(AddToItemComponent);\n dialogRef.afterClosed().subscribe((result: string | undefined) => {\n if (result != undefined) {\n if (typeof result === 'string' && result.trim().length > 0) {\n this.batchInputReasonOfOthers = result;\n }\n } else {\n this.reasonOfChangeFormControl.setValue(0);\n this.batchInputReasonOfOthers = '';\n }\n this.refreshStep();\n });\n }\n if (reason >= 1 && reason <= 5) {\n this.isDisableClear = false;\n }\n this.batchReasonOfChange = reason;\n setTimeout(() => {\n this.refreshStep();\n }, 0);\n }\n\n isDisableSubmit = true;\n isDisableClear = true;\n\n applyToAll() {\n if (this.isDisableBatchApply) {\n return;\n }\n\n this.batchInputAgentCode = this.batchInputAgentCode.trim();\n if (this.batchInputAgentCode.length > 0 && this.batchInputAgentCode.length < 6) {\n this.batchInputAgentCodeValid = false;\n this.batchInputAgentCodeErrorCode = 2199;\n } else {\n this.batchInputAgentCodeValid = true;\n\n const ckRequestTmp: CheckAgentCodeRequest = {};\n ckRequestTmp.agentCode = this.batchInputAgentCode.trim();\n const isThereAnyRowInAllPagesChecked = this.isThereCheckboxCheckedInAllPages();\n if (isThereAnyRowInAllPagesChecked) {\n this.agentEmployerDelegationService.agentCodeBatchApply(ckRequestTmp);\n } else {\n alert('no rows checked');\n }\n }\n }\n\n dlgtChangeClearData() {\n if (this.isDisableClear) {\n return;\n }\n\n const popupRef: MatDialogRef = this.cdsPopup.open(UserExitEditmodePopComponent, {});\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.clearTableInputData();\n this.allChecked = false;\n this.isDisableClear = true;\n this.isDisableSubmit = true;\n this.batchInputAgentCode = '';\n this.batchInputAgentName = '';\n this.batchInputAgentNameTC = '';\n this.batchInputAgentCodeValid = true;\n this.reasonOfChangeFormControl.setValue(0);\n this.reasonOfChangeFormControl.disable();\n this.stepper.removeLightsOutStep(3);\n this.stepper.removeLightsOutStep(4);\n }\n });\n }\n\n clearTableInputData() {\n this.fullDataSource.forEach(element => {\n element.data.forEach(data => {\n data.reasonOfChange = undefined;\n data.inputtedAgentCode = '';\n data.inputtedReasonOfOthers = '';\n data.isSelected = false;\n data.flag = true; // this code is to clear agent code error message in table row\n });\n });\n }\n\n isThereCheckboxCheckedInAllPages() {\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployeeResponseData[] = this.fullDataSource[i]['data'];\n const isSelected: boolean = pageData.some(element => element.isSelected);\n if (isSelected) {\n return true;\n }\n }\n return false;\n }\n\n agentCodeTransfer(errorCode: number): {\n agentCodeCheckResult: string;\n agentCodeCheckResultTC: string;\n } {\n let agentCodeCheckResultByLan = '';\n let agentCodeCheckResultByLanTC = '';\n if (errorCode === 2101) {\n agentCodeCheckResultByLan = 'Agent code does not exist';\n agentCodeCheckResultByLanTC = '代理人編號不存在';\n } else if (errorCode === 2102) {\n agentCodeCheckResultByLan = 'Inactive agent';\n agentCodeCheckResultByLanTC = '無效代理人';\n } else if (errorCode === 2103) {\n agentCodeCheckResultByLan = 'Agent is not in same distinct';\n agentCodeCheckResultByLanTC = '代理人區域不相配';\n } else if (errorCode === 2199) {\n agentCodeCheckResultByLan = 'Agent code should be a 6 digits number, please add 0 in the front if the agent code is only 5 digits';\n agentCodeCheckResultByLanTC = '代理人編號應為六位數字, 如代理人編號只有五位數字, 請在編號前補上0';\n }\n return {\n agentCodeCheckResult: agentCodeCheckResultByLan,\n agentCodeCheckResultTC: agentCodeCheckResultByLanTC,\n };\n }\n\n agentCodeName(agentCodeData: AgentCodeData) {\n if (this.agentCodeNameArr.length === 0) {\n const agentCodeDataTmp = {\n agentCode: agentCodeData.agentCode,\n agentName: agentCodeData.name,\n agentNameTC: agentCodeData.chineseName,\n };\n this.agentCodeNameArr.push(agentCodeDataTmp);\n } else {\n const index = this.agentCodeNameArr.indexOf(agentCodeData);\n if (index === -1) {\n const agentCodeDataTmp = {\n agentCode: agentCodeData.agentCode,\n agentName: agentCodeData.name,\n agentNameTC: agentCodeData.chineseName,\n };\n this.agentCodeNameArr.push(agentCodeDataTmp);\n }\n }\n }\n\n clearItems() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lsPages = localStorage.getItem('pageCountOfEEDCConfirm');\n if (lsPages) {\n const pages = parseInt(lsPages);\n for (let i = 1; i <= pages; i++) {\n localStorage.removeItem('page' + i);\n }\n }\n localStorage.removeItem('pageCountOfEEDCConfirm');\n localStorage.removeItem('totalCountEEDCConfirm');\n }\n\n eeDelegationChangeConfirm() {\n const eeDCRequest: EmployeeDelegationChangeRequest[] = [];\n if (this.elementsToSubmit.length > 0) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserConfirmPopComponent, {});\n\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.elementsToSubmit.forEach(element => {\n const submitDelegateRequestTmp = new EmployeeDelegationChangeRequest();\n submitDelegateRequestTmp.employerId = this.employerId;\n submitDelegateRequestTmp.memberId = element.memberId;\n submitDelegateRequestTmp.oldAgentCode = element.delegateAgentInfo.agentCode;\n submitDelegateRequestTmp.targetAgentCode = element.inputtedAgentCode;\n const reasonTmp: ChangeReason = {\n code: element.reasonOfChange,\n message: element.inputtedReasonOfOthers,\n };\n submitDelegateRequestTmp.reason = reasonTmp;\n\n eeDCRequest.push(submitDelegateRequestTmp);\n });\n this.eeDelegationChangeSubmitSubscription?.unsubscribe();\n this.agentEmployeeDelegationService.eeDelegationChangeSubmit(eeDCRequest);\n this.eeDelegationChangeSubmitSubscription = this.agentEmployeeDelegationService.eeDelegationChangeSubmitSubject.subscribe(resp => {\n if (resp.result === 0) {\n const popupRefSubmit: MatDialogRef = this.cdsPopup.open(UserSuccessSubmittedComponent, {});\n popupRefSubmit.afterClosed().subscribe(dataConfirm => {\n if (dataConfirm.agree) {\n this.router.navigate(['/agent/employer-history']);\n }\n });\n } else if (resp.result !== 0) {\n //this.addAlertItems(this.checkResultList);\n }\n });\n }\n });\n }\n }\n\n dismissAlert(index: number) {\n this.alertItems[index].ifShow = false;\n }\n\n get isDisableBatchApply() {\n return !(\n this.batchInputAgentCode.length > 0 &&\n +this.reasonOfChangeFormControl.value > 0 &&\n +this.reasonOfChangeFormControl.value < 6 &&\n this.fullDataSource.some(d => d.data.some(employee => employee.isSelected))\n );\n }\n\n isDisableBatchApplyReasonOfChange() {\n const disable =\n this.batchInputAgentCode.length === 0 || !this.fullDataSource.some(d => d.data.some(employee => employee.isSelected)) || !this.batchInputAgentCodeValid;\n if (disable) {\n this.reasonOfChangeFormControl.disable();\n } else {\n this.reasonOfChangeFormControl.enable();\n }\n }\n\n ngDoCheck(): void {\n this.isDisableBatchApplyReasonOfChange();\n }\n\n get itemTotal() {\n let total = 0;\n\n this.fullDataSource.forEach(d => {\n d.data.forEach(employee => {\n if (employee.isSelected) {\n total++;\n }\n });\n });\n\n return total;\n }\n\n private refreshStep() {\n let stepNum = 1;\n\n if (this.fullDataSource.some(d => d.data.some(employee => employee.isSelected))) {\n stepNum = 2;\n }\n\n if (stepNum === 2 && this.batchInputAgentCode.length > 0) {\n stepNum = 3;\n }\n\n if (stepNum === 3 && this.reasonOfChangeFormControl.value && this.reasonOfChangeFormControl.value > 0) {\n stepNum = 4;\n }\n\n if (!this.isDisableSubmit) {\n stepNum = 5;\n\n if (this.fullDataSource.some(d => d.data.some(employee => employee.isSelected))) {\n if (this.batchInputAgentCode.length === 0) {\n this.stepper.setLightsOutStep(3);\n } else {\n this.stepper.removeLightsOutStep(3);\n }\n if (!this.reasonOfChangeFormControl.value) {\n this.stepper.setLightsOutStep(4);\n } else {\n this.stepper.removeLightsOutStep(4);\n }\n } else {\n this.stepper.removeLightsOutStep(3);\n this.stepper.removeLightsOutStep(4);\n }\n }\n\n this.stepper.setFinishStep(stepNum);\n }\n\n get isDisableBatchApplyAgentCode() {\n return !this.fullDataSource.some(d => d.data.some(employee => employee.isSelected));\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
\n
\n
\n
\n \n\n {{ 'delegationChange.backToRequestStatusSummaryPage' | lang }}\n
\n
\n {{ 'delegationChange.addDelegationChangeRequest' | lang }}\n
\n
\n
\n
\n
\n
\n {{\n language === 'EN' ? (employerName ? employerName : employerNameTC) : employerNameTC ? employerNameTC : employerName\n }}\n
\n
\n
{{ 'delegationChange.eeDelegationChangeDesc' | lang }}
\n
\n
\n
\n
\n
\n {{ 'delegationChange.searchRecord' | lang }} \n
\n
\n
\n \n
\n
\n \n \n
\n\n
\n \n
\n\n
\n \n \n
\n
\n
\n
\n
\n \n {{ language === 'EN' ? item.message : item.messageTC }}\n \n
\n
\n {{ 'delegationChange.employeeList' | lang }}\n
\n
\n \n {{ 'employer.total' | lang }} {{ employeeTotalCount }}\n {{ 'employer.items' | lang }}\n \n
\n\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n {{ 'employee.employeeName' | lang }}\n \n \n {{\n this.language === 'EN'\n ? element.memberName\n ? element.memberName\n : element.memberNameTC\n : element.memberNameTC\n ? element.memberNameTC\n : element.memberName\n }}\n \n \n\n \n {{ 'delegationChange.certNo' | lang }}\n \n {{ element.trusteeMbrId }}\n \n \n\n \n {{ 'employer.delegateAgentInfo' | lang }}\n \n
\n {{ element.delegateAgentInfo?.agentCode }}\n {{\n language === 'EN'\n ? element.delegateAgentInfo?.name\n : element.delegateAgentInfo?.nameTC\n ? element.delegateAgentInfo?.nameTC\n : element.delegateAgentInfo?.name\n }}\n \n
\n
\n
\n\n \n \n {{ 'delegationChange.newDelegatedAgentCode' | lang }}\n \n {{ element.inputtedAgentCode }}\n \n {{ 'delegationChange.missingNewDelegatedAgentCode' | lang }}\n \n \n \n\n \n {{ 'delegationChange.reasonOfChange' | lang }}\n \n
\n {{ element.reasonOfChange | reasonOfChange : language }}\n
\n
\n {{ element.inputtedReasonOfOthers }}\n
\n \n {{ 'delegationChange.missingReasonCode' | lang }}\n \n \n
\n
\n
\n
\n
\n \n
\n
\n Page \n \n of {{ pageCount }} \n
\n
\n
\n
\n \n
\n
\n \n
\n \n \n {{ language === 'EN' ? item['en'] : item['zh'] }}\n \n \n\n
\n \n {{ 'employer.reset' | lang }}\n
\n
\n\n
\n
\n {{ itemTotal }} {{ 'employee.itemTotal' | lang }}\n
\n
\n {{ 'delegationChange.newDelegatedAgentCode' | lang }}\n
\n \n
\n \n {{ 'agentCode.notExists' | lang }} \n {{ 'agentCode.inactiveAgent' | lang }} \n {{ 'agentCode.notSameDistrict' | lang }} \n {{ 'agentCode.lengthShouldBe6' | lang }} \n \n {{ 'agentCode.notHaveLicense' | lang }}\n \n \n {{\n this.language === 'EN'\n ? batchInputAgentName\n ? batchInputAgentName\n : batchInputAgentNameTC\n : batchInputAgentNameTC\n ? batchInputAgentNameTC\n : batchInputAgentName\n }}\n
\n
\n {{ 'delegationChange.selectReasonOfChange' | lang }}\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n\n \n
\n \n
\n 1 ? 'border-top' : '', i === 2 ? 'move-up-two' : '']\">\n \n {{ language === 'EN' ? item['en'] : item['zh'] }}\n \n
\n
\n {{ itemTotal }} {{ 'employee.itemTotal' | lang }}\n
\n
\n {{ 'delegationChange.newDelegatedAgentCode' | lang }}\n
\n \n
\n \n {{ 'agentCode.notExists' | lang }} \n {{ 'agentCode.inactiveAgent' | lang }} \n {{ 'agentCode.notSameDistrict' | lang }} \n {{ 'agentCode.lengthShouldBe6' | lang }} \n \n {{ 'agentCode.notHaveLicense' | lang }}\n \n \n {{\n this.language === 'EN'\n ? batchInputAgentName\n ? batchInputAgentName\n : batchInputAgentNameTC\n : batchInputAgentNameTC\n ? batchInputAgentNameTC\n : batchInputAgentName\n }}\n
\n
\n {{ 'delegationChange.selectReasonOfChange' | lang }}\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n\n
\n \n {{ 'employer.reset' | lang }}\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n {{\n language === 'EN' ? (employerName ? employerName : employerNameTC) : employerNameTC ? employerNameTC : employerName\n }}\n
\n
\n
\n {{ 'delegationChange.changeSummaryInfo1' | lang }}\n {{ 'delegationChange.changeSummaryInfo2' | lang }}\n {{ 'delegationChange.changeSummaryInfo3' | lang }}\n
\n
\n\n
\n {{ 'delegationChange.eeDelegationChangeRequestSummary' | lang }}\n
\n
\n
\n \n {{ 'employer.total' | lang }}\n {{ totalCountEEDCConfirm }}\n {{ 'employer.items' | lang }}\n \n
\n\n
\n
\n
\n \n \n \n\n \n \n {{ 'employee.employeeName' | lang }}\n \n \n {{ this.language === 'EN' ? element.memberName : element.memberNameTC ? element.memberNameTC : element.memberName }}\n \n \n\n \n {{ 'employee.no' | lang }}\n \n {{ element.trusteeMbrId }}\n \n \n\n \n {{ 'delegationChange.delegatedAgents' | lang }}\n \n {{ element.delegateAgentInfo.agentCode }}\n \n \n\n \n \n {{ 'delegationChange.newDelegatedAgentCode' | lang }}\n \n {{ element.inputtedAgentCode }}\n \n \n\n \n {{ 'delegationChange.reasonOfChange' | lang }}\n \n {{ element.reasonOfChange | reasonOfChange : language }}
\n {{ element.inputtedReasonOfOthers }}\n
\n
\n
\n
\n
\n
\n \n
\n
\n Page \n \n of {{ pageCount }} \n
\n
\n
\n
\n
\n \n \n
\n
\n\n","export class EmployeeCheckRequest {\n employerId?: string;\n agentCode?: string;\n memberId?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { BehaviorSubject, map, Observable, Subject } from 'rxjs';\nimport { EmployeeResponse, EmployeeResponseData } from './employee-response.model';\nimport { EmployeeRequest } from './employee-request.model';\nimport { environment } from 'src/environments/environment';\nimport { CheckAgentCodeRequest } from '../employer-summary/check-agent-code-request';\nimport { CheckAgentCodeResponse } from '../employer-summary/check-agent-code-response';\nimport { EmployeeSaveModel } from './employee-save-model';\nimport { EmployeeCheckRequest } from './employee-check-request';\nimport { EmployeeSaveResponse } from './employee-save-response';\nimport { agentCodeAddPrefix0, agentCodeRemovePrefix0 } from 'src/app/utils/utils';\n@Injectable({\n providedIn: 'root',\n})\nexport class EmployeeDataService {\n sharData: BehaviorSubject = new BehaviorSubject(new EmployeeResponse());\n datas = new Observable();\n chekUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/add-delegation/validate`;\n saveUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/add-delegation/members/submit`;\n validateBatchUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/add-delegation/validateBatch`;\n queryUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/delegation/members/query`;\n request: EmployeeRequest = {};\n ckData = new Observable();\n employerId = '';\n companyName = '';\n\n constructor(private http: HttpClient) {}\n paramsSubject = new Subject();\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n langData(lang: string) {\n this.request.language = lang;\n }\n getSubject() {\n return this.sharData;\n }\n setEditReqest(value: EmployeeRequest) {\n this.request = value;\n }\n\n searchData(employeename: string, trusteeEmplrCd: string, age: string, gender: string, delegateAgentInfo: string) {\n this.request.employeeName = employeename;\n this.request.trusteeMbrId = trusteeEmplrCd;\n this.request.gender = gender;\n if (age != '') {\n const a = age.split('-');\n this.request.ageStart = Number(a[0]);\n this.request.ageEnd = Number(a[1]);\n } else {\n this.request.ageStart = undefined;\n this.request.ageEnd = undefined;\n }\n this.request.delegateAgentCode = delegateAgentInfo;\n this.request.page = 1;\n this.request.size = 10;\n // this.request.delegated='N'\n this.datas = this.http.post(this.queryUrl, this.request, this.httpOptions);\n this.datas.subscribe(resp => {\n if (resp.result === 0) {\n resp.data?.content?.forEach(c => {\n if (c.delegateAgentInfo?.agentCode) {\n c.delegateAgentInfo.agentCode = agentCodeAddPrefix0(c.delegateAgentInfo.agentCode);\n }\n });\n }\n\n this.sendData(resp);\n });\n }\n\n getSortData(sorts: string, code: string) {\n if (sorts != null && sorts != '') {\n this.request.sort = code + ' ' + sorts;\n } else {\n this.request.sort = '';\n }\n this.getData(this.request);\n }\n\n getPageData(pages: number, employeeId: string) {\n this.request.page = pages;\n this.request.size = 10;\n this.request.employerId = employeeId;\n // this.request.delegated='N'\n this.getData(this.request);\n }\n\n getData(any: EmployeeRequest) {\n this.datas = this.http.post(this.queryUrl, any, this.httpOptions);\n this.datas.subscribe(resp => {\n if (resp.result === 0) {\n resp.data?.content?.forEach(c => {\n if (c.delegateAgentInfo?.agentCode) {\n c.delegateAgentInfo.agentCode = agentCodeAddPrefix0(c.delegateAgentInfo.agentCode);\n }\n });\n }\n\n this.sendData(resp);\n });\n }\n\n getDataSource(emplyeeId: string): Observable {\n this.request.page = 1;\n this.request.size = 10;\n this.request.employerId = emplyeeId;\n return this.http.post(this.queryUrl, this.request, this.httpOptions).pipe(\n map((resp: EmployeeResponse) => {\n if (resp.result === 0) {\n resp.data?.content?.forEach(c => {\n if (c.delegateAgentInfo?.agentCode) {\n c.delegateAgentInfo.agentCode = agentCodeAddPrefix0(c.delegateAgentInfo.agentCode);\n }\n });\n }\n return resp;\n })\n );\n }\n\n sendData(value: EmployeeResponse) {\n this.sharData.next(value);\n // this.sharData.next(this.myTmpdata);\n }\n\n getDataList(): Observable {\n return this.sharData.asObservable();\n }\n\n getPageDataedit(pages: number, employee: string) {\n this.request.employerId = employee;\n this.request.page = pages;\n this.request.size = 10;\n this.request.isDelegated = 'N';\n this.request.isCoolingPeriod = 'N';\n this.getData(this.request);\n }\n\n checkData(val: CheckAgentCodeRequest): Observable {\n if (val.agentCode) {\n val.agentCode = agentCodeRemovePrefix0(val.agentCode);\n }\n this.ckData = this.http.post(this.chekUrl, val, this.httpOptions);\n return this.ckData;\n }\n\n erDelegationDataSub = new BehaviorSubject([]);\n\n submitErDelegationData(erDelegationData: EmployeeResponseData[]) {\n this.erDelegationDataSub.next(erDelegationData);\n }\n\n getErDelegationData(): Observable {\n return this.erDelegationDataSub.asObservable();\n }\n\n setEmployeeName(id: string, name: string) {\n this.employerId = id;\n this.companyName = name;\n }\n\n mycheckData: CheckAgentCodeResponse = {\n result: 0,\n message: 'sucess',\n data: {\n agentCode: '123',\n name: 'hsan',\n },\n };\n\n saveData(value: EmployeeSaveModel[]): Observable {\n value.forEach(element => {\n if (element.agentCode) {\n element.agentCode = agentCodeRemovePrefix0(element.agentCode);\n }\n });\n\n return this.http.post(this.saveUrl, value, this.httpOptions);\n }\n\n checkAgentList(checkData: EmployeeCheckRequest[]): Observable {\n checkData.forEach(element => {\n if (element.agentCode) {\n element.agentCode = agentCodeRemovePrefix0(element.agentCode);\n }\n });\n return this.http.post(this.validateBatchUrl, checkData, this.httpOptions);\n }\n}\n\n// export enum urlEnum {\n// chekUrl = 'https://eas-hk-dev-api.ap.manulife.com/ext/eb-ssms/customer-service/agent_info/validate',\n// queryUrl = 'https://eas-hk-dev-api.ap.manulife.com/ext/eb-ssms/customer-service/employee/query',\n// }\n","export class EmployeeRequest {\n page?: number;\n size?: number;\n identityId?: string;\n employerId?: string;\n trusteeMbrId?: string;\n employeeName?: string;\n trusteeEmplrCd?: string;\n delegateAgentCode?: string;\n language?: string;\n ageStart?: number;\n ageEnd?: number;\n gender?: string;\n sort?: string;\n nonDelegated?: string;\n delegable?: string;\n isDelegated?: string;\n isCoolingPeriod?: string;\n}\n","export class EmployeeResponse {\n result?: number;\n data?: EmployeeResponseBody;\n message?: string;\n}\n\nexport interface EmployeeResponseBody {\n content: EmployeeResponseData[];\n pageable: PageResponseData;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n numberOfElements: number;\n size: number;\n number: number;\n empty: boolean;\n}\n\nexport interface EmployeeResponseData {\n flag?: boolean;\n checkdata?: string;\n checkResult?: string;\n checkResultTc: string;\n isSelected?: boolean;\n memberId: string;\n memberName: string;\n memberNameTC: string;\n trusteeEmplrCd: string;\n trusteeMbrId: string;\n gender: string;\n age: number;\n dateJoiningTheSchm: string;\n effStartDate: string;\n delegateAgentInfo: EmployeeDelegateAgentInfo;\n}\n\nexport interface EmployeeDelegateAgentInfo {\n agentCode?: string;\n name?: string;\n nameTC?: string;\n}\n\nexport interface PageResponseData {\n pageNumber: number;\n pageSize: number;\n offset?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n","export class EmployeeSaveModel {\n identityId?: string;\n employerId?: string;\n memberId?: string;\n agentCode?: string;\n}\n","import {\n Component,\n Input,\n LOCALE_ID,\n OnInit,\n Inject,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n ViewChild,\n ViewChildren,\n QueryList,\n ElementRef,\n} from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Location, formatDate } from '@angular/common';\n\nimport { Sort, SortDirection } from '@cds/ng-data-table/sort';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { ActionIcons, ArrowIcons } from '@cds/ng-themes';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsProgressType } from '@cds/ng-core/progress';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\nimport { AgentEmployeeDelegationService } from '../agent-employee-delegation.service';\nimport { EmployeeRequest } from './employee-request.model';\nimport { EmployeeDataService } from './employee-data.service';\nimport { AgentEmployeeResponseData } from '../agent-employee-response.model';\nimport { EmployeeResponse, EmployeeResponseData } from './employee-response.model';\nimport { CheckAgentCodeRequest } from '../employer-summary/check-agent-code-request';\nimport { CheckAgentCodeResponse } from '../employer-summary/check-agent-code-response';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { UserExitEditmodePopComponent } from '../user-exit-editmode-pop/user-exit-editmode-pop.component';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdsInlineAlertType } from '@cds/ng-web-components/inline-alert';\nimport { EmployeeCheckRequest } from './employee-check-request';\nimport { CheckResponseData } from './employee-save-response';\nimport { EmployeeSaveModel } from './employee-save-model';\nimport { UserSuccessSubmittedComponent } from '../user-success-submitted/user-success-submitted.component';\nimport { UserConfirmPopComponent } from '../user-confirm-pop/user-confirm-pop.component';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { AgentBranchPopComponent } from '../agent-branch-pop/agent-branch-pop.component';\nimport { BranchAgentResponse } from '../agent-branch-pop/branch-agent-response';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { specialCharacterDecode } from 'src/app/utils/special-character';\nimport { CdStepperComponent } from 'src/app/shared/cd-stepper/cd-stepper.component';\nimport { agentCodeAddPrefix0, pageToTop } from 'src/app/utils/utils';\nimport { CdStepComponent } from 'src/app/shared/cd-stepper/cd-step/cd-step.component';\nimport { CdDropdownComponent } from 'src/app/shared/cd-dropdown/cd-dropdown.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\n\n@Component({\n selector: 'app-employee-summary',\n templateUrl: './employee-summary.component.html',\n styleUrls: ['./employee-summary.component.scss'],\n})\nexport class EmployeeSummaryComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n summaryIsEdit = false;\n summaryDataSource: AgentEmployeeResponseData[] = [];\n language = this.cdsLangService.currentLang === 'en' ? 'EN' : 'TC';\n employerId = '';\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'Loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n summaryToggleToWhichPage = '';\n editSearch = false;\n myEmployeeRequest: EmployeeRequest = {\n page: 1,\n size: 10,\n language: this.language,\n sort: 'commencementDate desc,trusteeMbrId asc',\n isCoolingPeriod: 'ALL',\n };\n ifShow = false;\n updateIcon = ActionIcons.edit;\n employeeTotalCount = 0;\n backErIcon = ActionIcons.button_left_filled;\n pageShowState = 1; //1 summary page ; 2 delegate page ; 3 submit page\n private employerDataSubscription?: Subscription;\n //delegete variable\n totalpage = 0;\n delgtEmployeeTotalCount = 0;\n isEdit = true;\n allChecked = false;\n dataSource: EmployeeResponseData[] = [];\n dlgtNameValue = '';\n agentValue = '';\n elementsToSubmit: EmployeeResponseData[] = [];\n toggleToWhichPage = '';\n ckRequest: CheckAgentCodeRequest = {};\n checkState = true;\n ckResultData: CheckAgentCodeResponse = {};\n resultState = '';\n messages = '';\n markPage = 1;\n dataSubcription = new BehaviorSubject(new EmployeeResponse());\n isShowProgress = true;\n isSubmitState = true;\n companyName = '';\n totalCount = 0;\n clearDisabledState = true;\n alertItems: {\n index: number;\n ifShow: boolean;\n message: string;\n messageTc: string;\n }[] = [];\n inputAgentcode = '';\n isSubShowProgress = true;\n enterShowProgress = true;\n\n fullDataSource: { data: EmployeeResponseData[]; page: number }[] = [{ data: [], page: 0 }];\n boxInputNum = 0;\n isSelectedNum = 0;\n pageInitState = true;\n subDataState = true;\n checkAgentList: EmployeeCheckRequest[] = [];\n checkResultList: CheckResponseData[] = [];\n branchList: BranchAgentResponse[] = [];\n\n // submit variable\n submitDataList: EmployeeSaveModel[] = [];\n subPage = 1;\n subPageCount = 1;\n subSearchValue = '1';\n subEmployerTotalCount = 0;\n subTotalCount = 0;\n subDataSource: EmployeeResponseData[] = [];\n resetTable = false;\n\n @Input() fullWidth = true;\n @Input() color: CdsColorTheme = 'ml';\n @Input() summaryPageCount = 1;\n @Input() summaryPage = 1;\n @Input() sortDirection: SortDirection = 'asc';\n @Input() searchBtnDisableState = true;\n @Input() nameValue = '';\n @Input() numberValue = '';\n @Input() ageValue = '';\n @Input() genderValue = '';\n @Input() delegateAgentInfoValue = '';\n @Input() nameSearch = '名称';\n @Input() editModel = false;\n @Input() searchPlaceHolder?: string;\n private lanChangeSubscription?: Subscription;\n private errorSub?: Subscription;\n private agentEmployeeDelegation?: Subscription;\n stepperTarget: 'pc' | 'ipad' = 'pc';\n\n //delegate input\n @Input() pageCount = 1;\n @Input() page = 1;\n @Input() searchValue = '1';\n @Input() agentcodeValue = '';\n @Input() alertType: CdsInlineAlertType = 'error';\n showTable = true;\n isShowButtonList = false;\n moreOptions = ActionIcons.more_options;\n reloadIcon = ArrowIcons.reload;\n summaryPageState = true;\n @ViewChild('stepper') stepper!: CdStepperComponent;\n @ViewChildren('step') stepList!: QueryList;\n @ViewChild('aggCdDropdown', { static: false })\n aggCdDropdown!: CdDropdownComponent;\n @ViewChild('genderCdDropdown', { static: false })\n genderCdDropdown!: CdDropdownComponent;\n paramTmp: Params = {};\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private cdsLangService: CdsLangService,\n private agentEmployeeDelegationService: AgentEmployeeDelegationService,\n private location: Location,\n private route: ActivatedRoute,\n private employeeDataService: EmployeeDataService,\n public languageChangeService: LanguageChangeService,\n private cdsPopup: CdsPopupService,\n @Inject(LOCALE_ID) public locale: string,\n private alert: CdsAlertService,\n private router: Router,\n private notifyService: NotifyService\n ) {}\n ngOnDestroy(): void {\n this.agentEmployeeDelegation?.unsubscribe();\n this.lanChangeSubscription?.unsubscribe();\n // this.dataSubcription?.unsubscribe();\n this.employerDataSubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n this.employerDataSubscription?.unsubscribe();\n this.clearSubmitData();\n }\n stepTitle: { en: string; tc: string }[] = [];\n ngOnInit(): void {\n document.getElementsByClassName('cds-navigation-content')[0]?.scrollTo(0, 0);\n this.employerId = String(this.route.snapshot.paramMap.get('employerId'));\n this.myEmployeeRequest.employerId = this.employerId;\n this.myEmployeeRequest.language = this.language;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n this.agentEmployeeDelegation = this.agentEmployeeDelegationService.employeeDataSubject.subscribe(response => {\n if (response.result != 0) {\n this.summaryDataSource = [];\n this.employeeTotalCount = 0;\n this.summaryPageCount = 0;\n } else {\n this.summaryDataSource = response.data ? response.data.content : [];\n this.employeeTotalCount = response.data ? response.data.totalElements : 0;\n this.summaryPageCount = response.data ? response.data.totalPages : 0;\n }\n this.isShowProgress = false;\n this.enterShowProgress = false;\n this.summaryPageState = true;\n });\n\n this.errorSub = this.agentEmployeeDelegationService.errorEmployeeSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n this.isShowProgress = false;\n this.enterShowProgress = false;\n });\n\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(languge => {\n this.language = languge === 'en' ? 'EN' : 'TC';\n this.myEmployeeRequest.language = this.language;\n this.cdsProgressTxt = languge === 'en' ? 'Loading' : '載入中';\n });\n this.dataSubcription = this.employeeDataService.getSubject();\n\n this.route.queryParams.subscribe(param => {\n this.paramTmp = param;\n this.employerName = specialCharacterDecode(decodeURI(param['en']));\n this.employerNameTC = specialCharacterDecode(decodeURI(param['zh']));\n });\n\n this.employerDataSubscription = this.dataSubcription.subscribe(response => {\n if (response.data !== undefined) {\n this.dataSource = response.data?.content;\n this.delgtEmployeeTotalCount = response.data?.totalElements;\n this.pageCount = Math.ceil(this.delgtEmployeeTotalCount / 10);\n this.showTable = response.data?.totalElements === 0 ? false : true;\n this.markPage = this.page;\n this.searchValue = this.page + '';\n this.initFullData(this.pageCount);\n this.fullDataSource.splice(this.page - 1, 1, {\n data: this.dataSource,\n page: this.page,\n });\n this.ckSelected(this.page);\n this.enterShowProgress = false;\n this.isShowProgress = false;\n }\n });\n this.stepTitle = [\n { en: 'Select Item(s)', tc: '選擇項目' },\n { en: 'Fill agent code', tc: '輸入代理人編號' },\n { en: 'Add code to selected item(s)', tc: '新增編號至已選項目' },\n { en: 'Submission', tc: '提交' },\n ];\n }\n employerName?: string;\n employerNameTC?: string;\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const menu = document.querySelector('aside.cds-menu-container') as HTMLElement;\n menu.style.display = 'none';\n }, 0);\n\n this.changeDetectorRef.detectChanges();\n\n if (window.matchMedia('only screen and (max-width: 1500px)').matches) {\n this.stepperTarget = 'ipad';\n } else {\n this.stepperTarget = 'pc';\n }\n }\n\n displayedColumns: string[] = ['employeeName', 'trusteeMbrId', 'gender', 'age', 'commencementDate', 'delegateAgentInfo', 'effStartDate'];\n dlgtDisplayedColumns: string[] = ['isSelected', 'employeeName', 'trusteeMbrId', 'gender', 'age', 'commencementDate', 'delegateAgentInfo'];\n subdisplayedColumns: string[] = ['employeeName', 'trusteeEmplrCd', 'gender', 'age', 'commencementDate', 'delegateAgentInfo'];\n\n onSortChange(event: Sort) {\n this.isShowProgress = true;\n let sortCondition = '';\n const active = event.active;\n let direction = '';\n sortCondition += active;\n sortCondition += ' ';\n if (event.direction === '') {\n sortCondition = 'commencementDate desc,trusteeMbrId asc';\n } else {\n direction = event.direction;\n sortCondition += direction;\n }\n this.myEmployeeRequest.isCoolingPeriod = 'ALL';\n this.myEmployeeRequest.employerId = this.employerId;\n this.myEmployeeRequest.sort = sortCondition;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n }\n\n getforMateDate(date?: string): string {\n if (!date) {\n return '';\n }\n return formatDate(date, 'dd/MM/yyyy', this.locale);\n }\n\n pageChange(num: number): void {\n if (this.summaryPageState && num === this.summaryPage) {\n this.summaryPage = num;\n return;\n }\n this.isShowProgress = true;\n this.summaryPageState = true;\n console.log('change page', this.editSearch);\n this.myEmployeeRequest.isCoolingPeriod = 'ALL';\n this.myEmployeeRequest.isDelegated = '';\n this.summaryPage = num;\n this.myEmployeeRequest.page = num;\n this.myEmployeeRequest.employerId = this.employerId;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n let goToPage = 1;\n if (isNaN(parseInt(pageNo))) {\n goToPage = 1;\n } else if (+pageNo > this.summaryPageCount) {\n goToPage = this.summaryPageCount;\n } else {\n goToPage = +pageNo;\n }\n\n this.pageChange(goToPage);\n }\n\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n\n onCackErIconClick() {\n if (this.pageShowState === 1) {\n this.location.back();\n }\n }\n\n togglePage() {\n this.employeeDataService.setEditReqest(this.myEmployeeRequest);\n this.pageShowState = 2;\n this.searchBtnDisableState = true;\n this.ifShow = false;\n this.editSearch = true;\n this.showTable = true;\n\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n\n this.refreshStep();\n }, 0);\n }\n\n // from ee search\n\n employeeNameTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Employee Name' : '雇員名稱',\n type: 'text',\n maxlength: 20,\n color: 'ml',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n numbersTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Cert No' : '僱員編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n delegateTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Delegated Agent Code' : '委託代理編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n ageEnRangeDropdownConfig = [\n { label: '18-25', value: '18-25' },\n { label: '26-35', value: '26-35' },\n { label: '36-45', value: '36-45' },\n { label: '46-55', value: '46-55' },\n { label: '56-65', value: '56-65' },\n { label: '66 or above', value: '66-' },\n ];\n\n ageZhRangeDropdownConfig = [\n { label: '18-25', value: '18-25' },\n { label: '26-35', value: '26-35' },\n { label: '36-45', value: '36-45' },\n { label: '46-55', value: '46-55' },\n { label: '56-65', value: '56-65' },\n { label: '66以上', value: '66-' },\n ];\n\n genderEnDropdownConfig = [\n { label: 'Male', value: 'M' },\n { label: 'Female', value: 'F' },\n ];\n\n genderZhDropdownConfig = [\n { label: '男', value: 'M' },\n { label: '女', value: 'F' },\n ];\n\n employeeSearch(): void {\n if (this.nameValue == '' && this.numberValue == '' && this.ageValue == '' && this.genderValue == '' && this.delegateAgentInfoValue == '') {\n return;\n }\n if (this.editSearch) {\n return;\n }\n this.isShowProgress = true;\n this.ifShow = true;\n this.myEmployeeRequest.employeeName = this.nameValue;\n this.myEmployeeRequest.trusteeMbrId = this.numberValue;\n this.myEmployeeRequest.gender = this.genderValue;\n if (this.ageValue != '' && this.ageValue !== null) {\n const ageRankTmp = this.ageValue.split('-');\n this.myEmployeeRequest.ageStart = +ageRankTmp[0];\n if (ageRankTmp[1] !== '') {\n this.myEmployeeRequest.ageEnd = +ageRankTmp[1];\n }\n }\n this.myEmployeeRequest.page = 1;\n this.summaryPage = 1;\n this.myEmployeeRequest.delegateAgentCode = this.delegateAgentInfoValue;\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n\n this.onResetTable();\n }\n\n clearData(): void {\n if (this.pageShowState === 2) {\n return;\n }\n this.aggCdDropdown.clearValue();\n this.genderCdDropdown.clearValue();\n this.isShowProgress = true;\n this.ifShow = false;\n this.nameValue = '';\n this.numberValue = '';\n this.ageValue = '';\n this.genderValue = '';\n this.delegateAgentInfoValue = '';\n this.summaryPage = 1;\n this.searchBtnDisableState = true;\n this.myEmployeeRequest = new EmployeeRequest();\n this.myEmployeeRequest.page = 1;\n this.myEmployeeRequest.size = 10;\n this.myEmployeeRequest.language = this.language;\n this.myEmployeeRequest.employerId = this.employerId;\n this.myEmployeeRequest.isCoolingPeriod = 'ALL';\n this.myEmployeeRequest.sort = 'commencementDate desc,trusteeMbrId asc';\n this.agentEmployeeDelegationService.getEmployees(this.myEmployeeRequest);\n\n this.onResetTable();\n }\n\n primaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n };\n\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n searchCriteriaCheck(): void {\n if (this.nameValue === '' && this.numberValue === '' && this.ageValue === '' && this.genderValue === '' && this.delegateAgentInfoValue === '') {\n this.ifShow = false;\n this.searchBtnDisableState = true;\n }\n }\n\n nameChange(result: string): void {\n if (this.editSearch) {\n return;\n }\n this.nameValue = result;\n this.employeeDataService.request.employeeName = result;\n if (result === '') {\n this.nameValue = '';\n } else {\n this.searchBtnDisableState = false;\n }\n this.searchCriteriaCheck();\n }\n\n numberChange(result: string): void {\n if (this.editSearch) {\n return;\n }\n this.numberValue = result;\n if (result === '') {\n this.numberValue = '';\n } else {\n this.searchBtnDisableState = false;\n }\n this.searchCriteriaCheck();\n }\n\n ageChange(result: string): void {\n if (this.editSearch) {\n return;\n }\n this.ageValue = result;\n if (result === null || result === '') {\n this.ageValue = '';\n } else {\n this.searchBtnDisableState = false;\n }\n this.searchCriteriaCheck();\n }\n\n genderChange(result: string): void {\n if (this.editSearch) {\n return;\n }\n this.genderValue = result;\n if (result === null || result === '') {\n this.genderValue = '';\n } else {\n this.searchBtnDisableState = false;\n }\n this.searchCriteriaCheck();\n }\n\n delegateAgentChange(result: string): void {\n if (this.editSearch) {\n return;\n }\n this.delegateAgentInfoValue = result;\n if (result === '') {\n this.delegateAgentInfoValue = '';\n } else {\n this.searchBtnDisableState = false;\n }\n this.searchCriteriaCheck();\n }\n\n dismissAlert(index: number) {\n this.alertItems[index].ifShow = false;\n }\n\n degtTogglePage() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserExitEditmodePopComponent, {});\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.ClearData();\n this.editSearch = false;\n this.fullDataSource.forEach(element => {\n element.data.length = 0;\n });\n if (this.nameValue !== '' || this.numberValue !== '' || this.ageValue !== '' || this.genderValue !== '' || this.delegateAgentInfoValue !== '') {\n this.ifShow = true;\n this.searchBtnDisableState = false;\n }\n this.pageShowState = 1;\n this.summaryPageState = false;\n }\n });\n }\n\n onHeaderCheckboxChange(val: boolean, whichPage: number) {\n this.allChecked = val;\n if (val) {\n // this.boxInputNum = this.boxInputNum + 10;\n this.fullDataSource[whichPage - 1].data.forEach(el => {\n if (!el.isSelected) {\n this.boxInputNum = this.boxInputNum + 1;\n this.isSelectedNum = this.isSelectedNum + 1;\n }\n });\n } else {\n this.fullDataSource[whichPage - 1].data.forEach(el => {\n if (el.isSelected) {\n this.boxInputNum = this.boxInputNum - 1;\n this.isSelectedNum = this.isSelectedNum - 1;\n }\n });\n }\n\n this.fullDataSource[whichPage - 1].data.forEach(element => {\n element.isSelected = val;\n });\n\n const finishNum = this.stepper.getFinishStep();\n if (finishNum === 4) {\n if (val) {\n this.stepper.setLightsOutStep(3);\n } else if (this.isSelectedNum === 0) {\n this.stepper.removeLightsOutStep(3);\n }\n return;\n }\n this.refreshStep();\n }\n\n checkBoxClick(val: boolean, checkedIndex: number, pageNo: number) {\n console.log('cjeck', this.fullDataSource);\n this.fullDataSource[pageNo - 1].data[checkedIndex].isSelected = val;\n this.ckSelected(pageNo);\n if (val) {\n this.boxInputNum = this.boxInputNum + 1;\n this.isSelectedNum = this.isSelectedNum + 1;\n } else {\n this.boxInputNum = this.boxInputNum - 1;\n this.isSelectedNum = this.isSelectedNum - 1;\n }\n\n const finishNum = this.stepper.getFinishStep();\n if (finishNum === 4) {\n if (val) {\n this.stepper.setLightsOutStep(3);\n } else if (this.isSelectedNum === 0) {\n this.stepper.removeLightsOutStep(3);\n }\n return;\n }\n this.refreshStep();\n }\n\n ckSelected(num: number) {\n if (this.fullDataSource[num - 1].data == undefined) {\n this.fullDataSource[num - 1].data = [];\n }\n let isThereNotChecked = this.fullDataSource[num - 1].data.some(isThereSome => !isThereSome.isSelected);\n if (this.fullDataSource[num - 1].data.length === 0) {\n isThereNotChecked = true;\n }\n if (isThereNotChecked) {\n this.allChecked = false;\n } else {\n this.allChecked = true;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delgtSearchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n console.info($event, pageNo);\n console.info(parseInt(pageNo));\n if (isNaN(parseInt(pageNo))) {\n this.searchValue = '1';\n }\n this.delgtPageChange(parseInt(pageNo));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n checkAgentCode(agentValue: string, row: any, index: number, page: number) {\n const value = agentValue.trim();\n if (value.length > 0 && value.length < 6) {\n this.fullDataSource[page - 1].data[index].flag = true;\n this.fullDataSource[page - 1].data[index].checkResult = 'agent code length should be 6';\n this.fullDataSource[page - 1].data[index].checkResultTc = '代理人編號應為六位數字';\n return;\n }\n\n if (value.length === 0) {\n this.fullDataSource[page - 1].data[index].flag = undefined;\n this.fullDataSource[page - 1].data[index].checkdata = value;\n let submistState = false;\n let clearState = false;\n this.fullDataSource.forEach(element => {\n element.data.forEach(data => {\n if (data.flag) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n submistState = true;\n }\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!data.checkdata) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n clearState = true;\n }\n });\n });\n this.clearDisabledState = clearState ? false : true;\n return;\n }\n this.ckRequest.agentCode = value;\n // this.ckRequest.identityId = this.identityId;\n this.employeeDataService.checkData(this.ckRequest).subscribe(resp => {\n const flag = resp.result == 0 ? false : true;\n this.fullDataSource[page - 1].data[index].flag = flag;\n this.fullDataSource[page - 1].data[index].checkdata = value;\n if (this.fullDataSource[page - 1].data[index].delegateAgentInfo === undefined) {\n this.fullDataSource[page - 1].data[index].delegateAgentInfo = {};\n }\n this.fullDataSource[page - 1].data[index].delegateAgentInfo.agentCode = resp.data?.agentCode ? agentCodeAddPrefix0(resp.data?.agentCode) : '';\n this.fullDataSource[page - 1].data[index].delegateAgentInfo.name = resp.data?.name || '';\n this.fullDataSource[page - 1].data[index].delegateAgentInfo.nameTC = resp.data?.chineseName || '';\n if (flag) {\n const mesg =\n resp.data?.errorCode === 2101\n ? 'Agent code does not exist'\n : resp.data?.errorCode === 2102\n ? 'Inactive agent'\n : resp.data?.errorCode === 2103\n ? 'Agent is not in same branch'\n : 'agent code is error';\n\n const mesgTc =\n resp.data?.errorCode === 2101\n ? '代理人編號不存在'\n : resp.data?.errorCode === 2102\n ? '無效代理人'\n : resp.data?.errorCode === 2103\n ? '代理人區域不相配'\n : '編碼異常';\n this.fullDataSource[page - 1].data[index].checkResult = mesg;\n this.fullDataSource[page - 1].data[index].checkResultTc = mesgTc;\n }\n let submistState = false;\n this.fullDataSource.forEach(element => {\n element.data.forEach(data => {\n if (data.flag) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n submistState = true;\n }\n });\n });\n this.clearDisabledState = false;\n });\n }\n\n agentTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: '',\n type: 'text',\n };\n\n applyToAllTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: '',\n type: 'text',\n label: this.language === 'zh' ? '把所選雇主委托給:' : 'Delegate agent to selected employers:',\n };\n\n delgtPageChange(num: number): void {\n this.page = num;\n console.log('isshow', this.showTable);\n if (this.fullDataSource[num - 1] !== undefined && this.fullDataSource[num - 1].page == num && this.fullDataSource[num - 1].data.length !== 0) {\n this.ckSelected(num);\n this.markPage = num;\n this.searchValue = num + '';\n this.dataSource = this.fullDataSource[num - 1].data;\n return;\n }\n this.isShowProgress = true;\n this.employeeDataService.getPageDataedit(num, this.employerId);\n // this.employerDataSubscription?.unsubscribe();\n // put datasource(by Subject next and subscribe method) in pagination pageChange method\n // this.employerDataSubscription = this.dataSubcription.subscribe(response => {\n // // if (dataSub !== undefined) {\n // // dataSub.unsubscribe();\n // // }\n\n // if (response.data !== undefined) {\n // this.dataSource = response.data?.content;\n // this.delgtEmployeeTotalCount = response.data?.totalElements;\n // this.pageCount = Math.ceil(this.delgtEmployeeTotalCount / 10);\n // this.showTable = response.data?.totalElements === 0 ? false : true;\n // this.markPage = num;\n // this.searchValue = num + '';\n // this.initFullData(this.pageCount);\n // this.fullDataSource.splice(num - 1, 1, {\n // data: this.dataSource,\n // page: num,\n // });\n // this.ckSelected(num);\n // }\n // this.isShowProgress = false;\n // console.log('fullData', this.fullDataSource);\n // });\n }\n initFullData(num: number) {\n if (this.pageInitState) {\n for (let i = 0; i <= num; i++) {\n this.fullDataSource.splice(i - 1, 1, { data: [], page: i });\n }\n }\n this.pageInitState = false;\n }\n\n valueChange(agentValue: string) {\n const value = agentValue.trim();\n this.dlgtNameValue = value;\n if (value.length === 0) {\n this.resultState = '';\n this.checkState = true;\n }\n\n this.refreshStep();\n }\n\n saveClick() {\n if (this.isDisableBatchApplyAgentCode) {\n return;\n }\n\n const value = this.dlgtNameValue;\n if ((value.length > 0 && value.length < 6) || value.length > 6) {\n this.resultState = '2119';\n return;\n }\n if (value.length === 0) {\n this.resultState = '';\n return;\n }\n // this.ckRequest.identityId = this.identityId;\n this.ckRequest.agentCode = value;\n this.employeeDataService.checkData(this.ckRequest).subscribe(resp => {\n this.ckResultData = resp;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.resultState = this.ckResultData.result!.toString();\n const flag = resp.result == 0 ? false : true;\n this.checkState = flag;\n this.messages = resp.message ? resp.message : '';\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (resp.data?.agentCode !== undefined) {\n this.dlgtNameValue = agentCodeAddPrefix0(resp.data.agentCode);\n }\n if (flag) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.resultState = String(resp.data!.errorCode);\n // if (!this.submitDisabledState) {\n // this.stepper.setFinishStep(4);\n // }\n return;\n } else {\n this.stepper.removeLightsOutStep(3);\n }\n\n this.fullDataSource.forEach(element => {\n element.data.forEach(data => {\n if (data.isSelected) {\n data.checkdata = this.ckResultData.data?.agentCode ? agentCodeAddPrefix0(this.ckResultData.data?.agentCode) : undefined;\n data.flag = false;\n console.log(this.ckResultData);\n if (data.delegateAgentInfo === undefined) {\n data.delegateAgentInfo = {};\n }\n data.delegateAgentInfo.agentCode = this.ckResultData.data?.agentCode ? agentCodeAddPrefix0(this.ckResultData.data?.agentCode) : '';\n data.delegateAgentInfo.name = this.ckResultData.data?.name || '';\n data.delegateAgentInfo.nameTC = this.ckResultData.data?.chineseName || '';\n data.isSelected = false;\n }\n });\n });\n this.dlgtNameValue = '';\n if (!this.checkState) {\n this.clearDisabledState = false;\n }\n\n this.refreshStep();\n this.isSelectedNum = 0;\n });\n }\n\n dlgtClearData() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserExitEditmodePopComponent, {});\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.ClearData();\n }\n });\n }\n\n ClearData() {\n this.fullDataSource.forEach(element => {\n element.data.forEach(data => {\n data.checkdata = '';\n data.flag = undefined;\n data.isSelected = false;\n });\n });\n this.dlgtNameValue = '';\n this.allChecked = false;\n this.resultState = '';\n this.dlgtNameValue = '';\n this.clearDisabledState = true;\n this.checkState = true;\n this.boxInputNum = 0;\n this.elementsToSubmit.length = 0;\n this.isSelectedNum = 0;\n setTimeout(() => {\n if (this.stepper) {\n this.stepper.removeLightsOutStep(3);\n this.refreshStep();\n }\n }, 0);\n this.alertItems.forEach(element => {\n element.ifShow = false;\n });\n }\n\n erDelegate() {\n this.branchList.length = 0;\n this.elementsToSubmit.length = 0;\n this.checkAgentList.length = 0;\n let checkSumitState = false;\n this.fullDataSource.forEach(element => {\n element.data.forEach(data => {\n if (\n // data.isSelected && remove isSelected 11/11\n data.checkdata === '' &&\n data.checkdata === undefined\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n checkSumitState = true;\n }\n if (data.flag) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n checkSumitState = true;\n }\n if (data.checkdata === '' || data.checkdata === undefined) {\n return;\n }\n const pushState = this.elementsToSubmit.some(el => el.memberId === data.memberId);\n if (!pushState) {\n this.elementsToSubmit.push(data);\n }\n });\n });\n if (this.elementsToSubmit.length === 0 || checkSumitState) {\n return;\n }\n this.subDataState = true;\n this.checkResultList.length = 0;\n this.elementsToSubmit.forEach(element => {\n const ckData = new EmployeeCheckRequest();\n ckData.memberId = element.memberId;\n ckData.agentCode = element.checkdata;\n ckData.employerId = this.employerId;\n this.checkAgentList.push(ckData);\n });\n this.employeeDataService.checkAgentList(this.checkAgentList).subscribe(resp => {\n if (resp.result !== 0) {\n if (resp.data && resp.data.length > 0) {\n resp.data.forEach(d => {\n if (d.agent?.agentCode) {\n d.agent.agentCode = agentCodeAddPrefix0(d.agent?.agentCode);\n }\n\n if (d.existAgents) {\n d.existAgents.forEach(a => {\n if (a.agentCode) {\n a.agentCode = agentCodeAddPrefix0(a.agentCode);\n }\n });\n }\n });\n }\n\n this.subDataState = false;\n if (resp.data == null) {\n resp.data = [];\n }\n\n if (resp.data.some(item => item.errorCode === 2104)) {\n this.checkResultList.push(...resp.data);\n }\n\n resp.data.forEach(element => {\n if (element.errorCode === 2103) {\n this.branchList.push(element.agent ? element.agent : {});\n }\n });\n if (this.checkResultList.length > 0) {\n this.addAlartErItmes(this.checkResultList);\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(AgentBranchPopComponent, {\n data: { list: this.branchList, language: this.language },\n size: 'md',\n });\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.employeeDataService.submitErDelegationData(this.elementsToSubmit);\n this.splitElements(this.elementsToSubmit);\n this.pageShowState = 3;\n }\n });\n return;\n }\n\n if (this.subDataState === true) {\n // this.addElements(this.dataSource, this.elementsToSubmit);\n this.employeeDataService.submitErDelegationData(this.elementsToSubmit);\n this.splitElements(this.elementsToSubmit);\n this.pageShowState = 3;\n pageToTop();\n } else {\n this.checkResultList = resp.data ? resp.data : [];\n this.addAlartErItmes(this.checkResultList);\n }\n });\n }\n\n splitElements(employeeResponseData: EmployeeResponseData[]) {\n const len = this.elementsToSubmit.length;\n const splitPages = Math.ceil(len / 10);\n const splitPageSize = 10;\n localStorage.setItem('delegateTotal_ee', len + '');\n localStorage.setItem('delegatePages_ee', splitPages + '');\n for (let i = 1; i <= splitPages; i++) {\n const strPerPage = JSON.stringify(this.arrayPage(employeeResponseData, i, splitPageSize));\n localStorage.setItem('page_ee' + i, strPerPage);\n }\n }\n arrayPage(employeeResponseData: EmployeeResponseData[], page: number, pageSize: number): EmployeeResponseData[] {\n if (page <= 0) {\n return [];\n }\n const minIdx = pageSize * (page - 1);\n const maxIdx = pageSize * page;\n return employeeResponseData.slice(minIdx, maxIdx);\n }\n\n addAlartErItmes(data: CheckResponseData[]) {\n this.alertItems.length = 0;\n if (data.length > 0) {\n let resultMsg = '';\n let resultMsgTc = '';\n if (data.some(item => item.errorCode === 2104)) {\n let agentEn = '';\n let agentTc = '';\n let limitAgent = 0;\n data.forEach(d => {\n if (d.errorCode === 2104) {\n limitAgent = d.limitAgent || 0;\n d.existAgents?.forEach(element => {\n const agentName = element.name || element.chineseName;\n agentEn = agentEn + agentCodeAddPrefix0(element.agentCode || '') + ' ' + agentName + '、';\n const agentNameTc = element.chineseName || element.name;\n agentTc = agentTc + agentCodeAddPrefix0(element.agentCode || '') + ' ' + agentNameTc + '、';\n });\n }\n });\n const tempAgentEn = agentEn?.split('');\n tempAgentEn?.pop();\n agentEn = tempAgentEn?.join('');\n const tempAgentTc = agentTc?.split('');\n tempAgentTc?.pop();\n agentTc = tempAgentTc?.join('');\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n if (agentEn) {\n resultMsg =\n 'Each employer can maximum delegate 4 agents.' + this.employerName + ' has been delegated to ' + limitAgent + ' agents including:' + agentEn;\n } else {\n resultMsg = 'Each employer can maximum delegate 4 agents.';\n }\n\n const name = this.employerNameTC ? this.employerNameTC : this.employerName;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n if (agentTc) {\n resultMsgTc = '每個僱主最多可委託4名代理人。' + name + ' 已被委況託 ' + limitAgent + ' 位代理人,包括:' + agentTc;\n } else {\n resultMsgTc = '每個僱主最多可委託4名代理人。';\n }\n\n this.alertItems.push({\n index: 0,\n ifShow: true,\n message: resultMsg,\n messageTc: resultMsgTc,\n });\n }\n\n // if (data.some(item => item.errorCode === 2104)) {\n // let agentEn = '';\n // let agentTc = '';\n // data.forEach(element => {\n // // eslint-disable-next-line @typescript-eslint/no-unused-vars\n // agentEn = agentEn + agentCodeAddPrefix0(element.agent?.agentCode || '') + element.agent?.name + '、';\n // const agentName = element.agent?.chineseName === undefined ? '' : element.agent?.chineseName;\n // agentTc = agentTc + agentCodeAddPrefix0(element.agent?.agentCode || '') + agentName + '、';\n // });\n // const tempAgentEn = agentEn?.split('');\n // tempAgentEn?.pop();\n // agentEn = tempAgentEn?.join('');\n // const tempAgentTc = agentTc?.split('');\n // tempAgentTc?.pop();\n // agentTc = tempAgentTc?.join('');\n\n // if (agentEn) {\n // resultMsg = 'Each employer can maximum delegate 4 agents.' + this.employerName + ' has been delegated to ' + 4 + ' agents including:' + agentEn;\n // } else {\n // resultMsg = 'Each employer can maximum delegate 4 agents.';\n // }\n // const name = this.employerNameTC ? this.employerNameTC : this.employerName;\n // // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n // if (agentTc) {\n // resultMsgTc = '每個僱主最多可委託4名代理人。' + name + ' 已被委況託 ' + 4 + ' 位代理人,包括:' + agentTc;\n // } else {\n // resultMsgTc = '每個僱主最多可委託4名代理人。';\n // }\n // }\n }\n }\n\n addAlertItems(data: CheckResponseData[]) {\n this.alertItems.length = 0;\n for (let i = 0; i < data.length; i++) {\n let resultMsg = '';\n if (data[i].errorCode === 2104) {\n let agentEn = '';\n let agentTc = '';\n data[i].existAgents?.forEach(element => {\n agentEn = agentEn + element.agentCode + element.name + '、';\n const agentName = element.chineseName === undefined ? '' : element.chineseName;\n agentTc = agentTc + element.agentCode + agentName + '、';\n });\n const tempAgentEn = agentEn?.split('');\n tempAgentEn?.pop();\n agentEn = tempAgentEn?.join('');\n const tempAgentTc = agentTc?.split('');\n tempAgentTc?.pop();\n agentTc = tempAgentTc?.join('');\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n if (this.language === 'EN') {\n if (agentEn) {\n resultMsg =\n 'Each employer can maximum delegate 4 agents. ' +\n data[i].employeeInfo?.employeeName +\n ' has been delegated to ' +\n data[i].limitAgent +\n ' agents including:' +\n agentEn;\n } else {\n resultMsg = 'Each employer can maximum delegate 4 agents.\t';\n }\n } else {\n if (agentTc) {\n resultMsg =\n '每個僱主最多可委託4名代理人。' + data[i].employeeInfo?.employeeName + ' 已被委況託 ' + data[i].limitAgent + ' 位代理人,包括:' + agentTc;\n } else {\n resultMsg = '每個僱主最多可委託4名代理人。';\n }\n }\n }\n this.alertItems.push({\n index: i,\n ifShow: true,\n message: resultMsg,\n messageTc: resultMsg,\n });\n }\n }\n\n erBackToEdit() {\n this.pageShowState = 2;\n this.resultState = '';\n this.clearSubmitData();\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n\n this.refreshStep();\n }, 0);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SubmitSearchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n console.info($event, pageNo);\n console.info(parseInt(pageNo));\n if (isNaN(parseInt(pageNo))) {\n this.subSearchValue = '1';\n }\n this.submitPageChange(Number(pageNo));\n }\n\n submitPageChange(num: number): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const pageInfoByNum: string = localStorage.getItem('page_ee' + num)!;\n this.subDataSource = JSON.parse(pageInfoByNum);\n const totalItems: number = parseInt(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n localStorage.getItem('delegateTotal_ee')!\n );\n this.subPage = num;\n this.subSearchValue = num + '';\n this.subPageCount = Math.ceil(totalItems / 10);\n this.subTotalCount = totalItems;\n this.isSubShowProgress = false;\n }\n\n clearSubmitData(): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const pages = parseInt(localStorage.getItem('delegatePages_ee') || '0');\n\n for (let i = 1; i <= pages; i++) {\n localStorage.removeItem('page_ee' + i);\n }\n localStorage.removeItem('delegatePages_ee');\n localStorage.removeItem('delegateTotal_ee');\n }\n\n submitData() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserConfirmPopComponent, {\n data: {},\n });\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.submitDataList.length = 0;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const pages = parseInt(localStorage.getItem('delegatePages_ee')!);\n for (let i = 1; i <= pages; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const pageInfoByNum: string = localStorage.getItem('page_ee' + i)!;\n this.subDataSource = JSON.parse(pageInfoByNum);\n this.subDataSource.forEach(element => {\n const response = new EmployeeSaveModel();\n response.agentCode = element.checkdata;\n response.memberId = element.memberId;\n // response.identityId = this.identityId;\n response.employerId = this.employerId;\n this.submitDataList.push(response);\n });\n }\n console.log('submistData', this.submitDataList);\n this.notifyService.screenLoadingSubject.next(true);\n this.employeeDataService.saveData(this.submitDataList).subscribe(\n resp => {\n if (resp.result !== 0) {\n this.pageShowState = 2;\n this.checkResultList = resp.data ? resp.data : [];\n this.isSubmitState = true;\n this.addAlartErItmes(this.checkResultList);\n } else {\n const popupRefSubmit: MatDialogRef = this.cdsPopup.open(UserSuccessSubmittedComponent, {});\n popupRefSubmit.afterClosed().subscribe(dataConfirm => {\n if (dataConfirm.agree) {\n location.reload();\n }\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error => {\n alert(error);\n this.notifyService.screenLoadingSubject.next(false);\n }\n );\n }\n });\n }\n\n jump() {\n window.open(\n this.cdsLangService.currentLang === 'en'\n ? 'https://ebmeter.com/minisite/download/campaign/delegation_golden_rule_en.pdf'\n : 'https://ebmeter.com/minisite/download/campaign/delegation_golden_rule.pdf'\n );\n }\n\n computedIsHalfSelected() {\n let currentPageData = this.fullDataSource[this.markPage - 1].data;\n if (currentPageData === undefined) {\n currentPageData = [];\n }\n const isSelectedAll = currentPageData.every(item => item.isSelected);\n if (isSelectedAll) {\n return false;\n }\n\n const isSelectedSome = currentPageData.some(item => item.isSelected);\n if (isSelectedSome) {\n return true;\n }\n\n return false;\n }\n\n goEEDelegationChange() {\n this.isShowButtonList = false;\n const employerNameParam = this.paramTmp['en'] ? this.paramTmp['en'] : '';\n const employerNameParamTC = this.paramTmp['zh'] ? this.paramTmp['zh'] : '';\n this.router.navigate(['/agent/employee-delegation-change', this.employerId], { queryParams: { en: employerNameParam, zh: employerNameParamTC } });\n }\n\n goEEDelegationChangeRequestLog() {\n this.isShowButtonList = false;\n this.router.navigate(['/agent/employer-history']);\n }\n\n private onResetTable() {\n this.resetTable = true;\n setTimeout(() => {\n this.resetTable = false;\n }, 0);\n }\n\n private refreshStep() {\n let stepNum = 1;\n\n if (this.fullDataSource.some(item => item.data.some(employeeData => employeeData.isSelected))) {\n stepNum = 2;\n }\n\n if (stepNum === 2 && this.dlgtNameValue.length > 0) {\n stepNum = 3;\n }\n\n if (this.fullDataSource.some(item => item.data.some(employeeData => employeeData.checkdata && employeeData.checkdata.length === 6))) {\n stepNum = 4;\n }\n\n this.stepper.setFinishStep(stepNum);\n }\n\n get isApplyDisable() {\n return !this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.isSelected));\n }\n\n get isDisableBatchApplyAgentCode() {\n return !(this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.isSelected)) && this.dlgtNameValue.length > 0);\n }\n\n get submitDisabledState() {\n return !this.fullDataSource.some(item => item.data.some(employeeData => employeeData.checkdata && employeeData.checkdata.length === 6));\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n open = true;\n onToggel() {}\n}\n","
\n
\n
\n {{ 'employer.delegationPlatform' | lang }}\n \n \n
\n
\n \n \n \n \n {{\n language === 'EN' ? (employerName ? employerName : employerNameTC) : employerNameTC ? employerNameTC : employerName\n }}\n
\n
\n
{{ 'employer.eeDesc' | lang }}
\n
\n
{{ 'employer.remarks' | lang }} :
\n
    \n
  • \n
    \n {{ 'employer.remarksDesc2.paragraph1' | lang }}\n {{ 'employer.remarksDesc2.paragraph2' | lang }}\n
    \n
  • \n
  • \n {{ 'employer.remarksDesc3' | lang }}\n
  • \n
  • \n {{ 'employer.remarksDesc4' | lang }}\n
  • \n
  • \n {{ 'employer.remarksDesc5_1' | lang }} \n {{ 'employer.remarksDesc5_2' | lang }}\n {{ 'employer.remarksDesc5_3' | lang }}\n
  • \n
\n
\n
\n
\n
\n
\n {{ 'employer.search' | lang }} \n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n\n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n {{ 'employer.result' | lang }}\n
\n
\n
\n \n
\n
\n
\n
\n {{ 'employer.total' | lang }} {{ employeeTotalCount }} {{ 'employer.items' | lang }}\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n \n \n\n \n \n {{ 'employee.employeeName' | lang }}\n \n \n {{ this.language === 'EN' ? element.memberName : element.memberNameTC ? element.memberNameTC : element.memberName }}\n \n \n\n \n {{ 'employee.no' | lang }}\n \n {{ element.trusteeMbrId }}\n \n \n\n \n {{ 'employee.gender' | lang }}\n \n {{ language === 'EN' ? element.gender : (element.gender | gender) }}\n \n \n\n \n {{ 'employee.ageRank' | lang }}\n \n \n {{ element.age }}\n \n \n\n \n \n {{ 'employee.dateJoiningTheSchm' | lang }}\n \n {{ getforMateDate(element.commencementDate) }}\n \n \n\n \n {{\n 'employee.delegateAgentInfo' | lang\n }}\n \n
\n {{ element.delegateAgentInfo ? element.delegateAgentInfo.agentCode : '' }}\n  \n \n {{\n element.delegateAgentInfo\n ? this.language === 'EN'\n ? element.delegateAgentInfo.name || element.delegateAgentInfo.nameTC\n : element.delegateAgentInfo.nameTC || element.delegateAgentInfo.name\n : ''\n }}\n
\n
\n
\n\n \n {{ 'employee.effStartDate' | lang }}\n \n {{ getforMateDate(element.effStartDate) }}\n \n \n\n \n \n \n
\n
\n
\n \n
\n
\n Page \n \n of {{ summaryPageCount }} \n
\n
\n
\n
\n \n
\n \n\n
\n
\n {{ 'employer.search' | lang }} \n
\n \n
\n {{ 'employer.result' | lang }}\n
\n
\n \n {{ this.language === 'EN' ? item.message : item.messageTc }}\n \n
\n\n
\n \n {{ 'employer.total' | lang }} {{ delgtEmployeeTotalCount }}\n {{ 'employer.items' | lang }}\n \n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
0\" [ngClass]=\"[isShowProgress ? 'loading' : '']\">\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n {{ 'employee.employeeName' | lang }}\n \n \n {{ this.language === 'EN' ? element.memberName : element.memberNameTC ? element.memberNameTC : element.memberName }}\n \n \n\n \n {{ 'employee.no' | lang }}\n \n {{ element.trusteeMbrId }}\n \n \n\n \n {{ 'employee.gender' | lang }}\n \n {{ language === 'EN' ? element.gender : (element.gender | gender) }}\n \n \n\n \n {{ 'employee.ageRank' | lang }}\n \n \n {{ element.age }}\n \n \n\n \n {{ 'employee.dateJoiningTheSchm' | lang }}\n \n {{ getforMateDate(element.commencementDate) }}\n \n \n\n \n \n {{ 'employer.eeDelegateAgentCode' | lang }}\n \n {{ element.checkdata }}\n \n \n \n \n
\n \n
\n \n
\n
\n Page \n \n of {{ pageCount }} \n
\n
\n
\n\n
\n
\n \n
\n 1 ? 'border-top' : '', i === 0 ? 'move-up-ten' : '']\">\n \n {{ language === 'EN' ? item.en : item.tc }}\n \n
\n
\n {{ isSelectedNum }} {{ 'employee.itemTotal' | lang }}\n
\n\n
\n {{ 'delegate.eedelegateTo' | lang }}\n \n \n \n {{ 'agentCode.notExists' | lang }}\n \n {{ 'agentCode.notSameDistrict' | lang }}\n \n \n {{ 'agentCode.inactiveAgent' | lang }}\n \n \n {{ 'agentCode.agentLenthEr' | lang }}\n \n \n {{ 'agentCode.notHaveLicense' | lang }}\n \n {{ 'agentCode.invalidDelegatedAgentCode' | lang }}\n \n \n
\n
\n \n \n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n {{ 'employee.reset' | lang }}\n
\n
\n
\n\n
\n
\n \n \n {{ language === 'EN' ? item.en : item.tc }}\n \n \n
\n \n {{ 'employee.reset' | lang }}\n
\n
\n\n
\n
\n {{ isSelectedNum }} {{ 'employee.itemTotal' | lang }}\n
\n\n
\n {{ 'delegate.eedelegateTo' | lang }}\n \n \n \n {{ 'agentCode.notExists' | lang }}\n \n {{ 'agentCode.notSameDistrict' | lang }}\n \n \n {{ 'agentCode.inactiveAgent' | lang }}\n \n \n {{ 'agentCode.agentLenthEr' | lang }}\n \n \n {{ 'agentCode.notHaveLicense' | lang }}\n \n {{ 'agentCode.invalidDelegatedAgentCode' | lang }}\n \n \n
\n
\n \n \n
\n \n
\n \n
\n
\n
\n
\n \n \n\n \n
\n
\n {{ 'employer.ItemsToBeUpdated' | lang }}\n
\n
\n
\n \n
\n
\n
\n
\n {{ 'employer.total' | lang }} {{ subTotalCount }} {{ 'employer.items' | lang }}\n
\n\n
\n
\n \n \n \n {{ 'employee.employeeName' | lang }}\n \n \n {{ this.language === 'EN' ? element.memberName : element.memberNameTC ? element.memberNameTC : element.memberName }}\n \n \n\n \n {{ 'employee.no' | lang }}\n \n {{ element.trusteeMbrId }}\n \n \n\n \n {{ 'employee.gender' | lang }}\n \n {{ language === 'EN' ? element.gender : (element.gender | gender) }}\n \n \n\n \n {{ 'employee.ageRank' | lang }}\n \n \n {{ element.age }}\n \n \n \n {{ 'employee.dateJoiningTheSchm' | lang }}\n \n {{ getforMateDate(element.commencementDate) }}\n \n \n\n \n {{\n 'employee.delegateAgentInfo' | lang\n }}\n \n
\n {{ element.delegateAgentInfo ? element.delegateAgentInfo.agentCode : '' }}\n  \n {{\n element.delegateAgentInfo\n ? this.language === 'EN'\n ? element.delegateAgentInfo.name || element.delegateAgentInfo.nameTC\n : element.delegateAgentInfo.nameTC || element.delegateAgentInfo.name\n : ''\n }}\n
\n
\n
\n\n \n \n
\n
\n
\n
\n \n
\n\n
\n Page \n \n of {{ subPageCount }} \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n","import { Component, Inject, Input, LOCALE_ID, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { ActionIcons, ArrowIcons } from '@cds/ng-themes';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { Subscription } from 'rxjs';\nimport { EmployerHistoryRequest } from './employer-history-request';\nimport { EmployerHistroyService } from './employer-histroy.service';\n\nimport { EmployerInfo, HistoryResponseData, Items } from './history-response';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { formatDate } from '@angular/common';\nimport { ErChangeSummaryDetailPopComponent } from '../er-change-summary-detail-pop/er-change-summary-detail-pop.component';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { FormControl } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { ErChangeSummaryData } from '../er-change-summary-detail-pop/er-chenge-summary-data';\nimport moment from 'moment';\nimport { CdsProgressType } from '@cds/ng-core/progress';\n\n@Component({\n selector: 'app-employer-history',\n templateUrl: './employer-history.component.html',\n styleUrls: ['./employer-history.component.scss'],\n})\nexport class EmployerHistoryComponent implements OnInit, OnDestroy {\n @Input() fullWidth = true;\n @Input() color: CdsColorTheme = 'ml';\n @Input() summaryPageCount = 1;\n @Input() summaryPage = 1;\n\n resetDatePicker = false;\n ifShow = false;\n language = this.cdsLangService.currentLang === 'en' ? 'EN' : 'TC';\n employerName = '';\n groupNo = '';\n dlgtAgentCode = '';\n employerTotalCount = 0;\n DataSource = [];\n reqState = '';\n startDt = '';\n endDt = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n summaryList: HistoryResponseData[] = [];\n rightArrowIcon = ArrowIcons.right;\n detailIcon = ActionIcons.button_right_outlined;\n myRqeuest: EmployerHistoryRequest = {\n page: 1,\n size: 10,\n language: this.language,\n sort: 'requestCreateDate desc',\n };\n allSortErIcon = ArrowIcons.sort;\n ascSortIcon = ArrowIcons.up;\n descSortIcon = ArrowIcons.down;\n erNameSort = '';\n groupNoSort = '';\n createSort = '';\n statusSort = '';\n sortIcon = '';\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n summaryIsShowProgress = true;\n lanChangeSubscription?: Subscription;\n private employerHistroyScription?: Subscription;\n private errorSub?: Subscription;\n fixTextRemains = false;\n\n constructor(\n private router: Router,\n public employerHistroyService: EmployerHistroyService,\n private languageChangeService: LanguageChangeService,\n private cdsLangService: CdsLangService,\n private cdsPopup: CdsPopupService,\n @Inject(LOCALE_ID) public locale: string,\n private alert: CdsAlertService,\n public dialog: MatDialog\n ) {}\n ngOnDestroy(): void {\n this.employerHistroyScription?.unsubscribe();\n this.lanChangeSubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n }\n\n ngOnInit(): void {\n this.employerHistroyScription = this.employerHistroyService.employeeDataSubject.subscribe(response => {\n if (response.result != 0) {\n this.summaryList = [];\n this.employerTotalCount = 0;\n this.summaryPageCount = 0;\n } else {\n this.summaryList = response.data ? response.data.content : [];\n this.employerTotalCount = response.data ? response.data.totalElements : 0;\n this.summaryPageCount = response.data ? response.data.totalPages : 0;\n if (this.summaryList) {\n this.summaryList.forEach(element => {\n element.isShowDetail = false;\n });\n }\n console.log(this.summaryList);\n }\n this.summaryIsShowProgress = false;\n });\n\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(languge => {\n this.language = languge === 'en' ? 'EN' : 'TC';\n this.myRqeuest.language = this.language;\n this.fixTextRemains = true;\n setTimeout(() => {\n this.fixTextRemains = false;\n }, 0);\n });\n\n this.errorSub = this.employerHistroyService.errorEmployeeSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n this.setCreateDate();\n }\n\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n\n employerNameTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Employer Name' : '僱主名稱',\n type: 'text',\n maxlength: 20,\n color: 'ml',\n placeholder: this.language === 'EN' ? 'Input employer name' : '輸入雇主名稱',\n };\n\n numbersTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Group No.' : '僱主編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Input group no.' : '輸入組編號',\n };\n\n agentTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Delegated Agent Code' : '委託代理編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Input delegated agent code' : '輸入代理代碼',\n };\n\n stateFormControl: FormControl = new FormControl();\n statusEnRangeDropdownConfig: CdsDropdownConfig = {\n label: 'Request Status',\n options: [\n { label: 'Approved', value: '2' },\n { label: 'Declined', value: '4' },\n { label: 'Partially Approved', value: '3' },\n { label: 'Pending DD Approval', value: '1' },\n ],\n placeholder: 'Select Request Status',\n color: 'ml',\n };\n\n statusZhRangeDropdownConfig: CdsDropdownConfig = {\n label: '请求状态',\n options: [\n { label: '審核通過', value: '2' },\n { label: '拒絕', value: '4' },\n { label: '部分批准', value: '3' },\n { label: '待定 DD 批准', value: '1' },\n ],\n placeholder: '選擇請求狀態',\n color: 'ml',\n };\n\n primaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n };\n\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n displayedColumns: string[] = ['employerName', 'groupNo', 'requestCreatedDate', 'requestStatus'];\n\n nameChange(result: string): void {\n this.employerName = result;\n if (result === '') {\n this.employerName = '';\n }\n this.searchCriteriaCheck();\n }\n\n groupNoChange(result: string): void {\n this.groupNo = result;\n if (result === '') {\n this.groupNo = '';\n }\n this.searchCriteriaCheck();\n }\n\n delegateAgentChange(result: string): void {\n this.dlgtAgentCode = result;\n if (result === '') {\n this.dlgtAgentCode = '';\n }\n this.searchCriteriaCheck();\n }\n\n reqStatusChange(result: string): void {\n this.reqState = result;\n if (result === null || result === '') {\n this.reqState = '';\n }\n this.searchCriteriaCheck();\n }\n startTime = '';\n endTime = '';\n\n startTimeChange(event: string) {\n this.startTime = event;\n }\n\n endTimeChange(event: string) {\n this.endTime = event;\n }\n\n setCreateDate() {\n this.myRqeuest.createDtEd = formatDate(new Date(), 'yyyy-MM-dd', this.locale);\n const endDate = String(moment().subtract(30, 'day'));\n this.myRqeuest.createDtSt = formatDate(endDate, 'yyyy-MM-dd', this.locale);\n }\n\n searchCriteriaCheck(): void {\n if (this.employerName === '' && this.groupNo === '' && this.dlgtAgentCode === '' && this.reqState === '') {\n this.ifShow = false;\n }\n }\n\n employerSearch() {\n if (this.searchBtnDisableState) {\n return;\n }\n this.trimReq();\n this.summaryIsShowProgress = true;\n this.employerHistroyService.getEmployees(this.myRqeuest);\n\n this.erNameSort = '';\n this.groupNoSort = '';\n this.createSort = '';\n this.statusSort = '';\n }\n\n trimReq() {\n if (this.startTime != '' && this.endTime != '') {\n const start = this.startTime.split('/');\n const end = this.endTime.split('/');\n\n this.myRqeuest.createDtSt = formatDate(new Date([start[1], start[0], start[2]].join('/')), 'yyyy-MM-dd', this.locale);\n this.myRqeuest.createDtEd = formatDate(new Date([end[1], end[0], end[2]].join('/')), 'yyyy-MM-dd', this.locale);\n }\n this.myRqeuest.employerName = this.employerName;\n this.myRqeuest.employerNo = this.groupNo;\n this.myRqeuest.delegateAgentCode = this.dlgtAgentCode;\n this.myRqeuest.status = this.reqState;\n }\n\n clearData() {\n this.startTime = '';\n this.endTime = '';\n this.stateFormControl.setValue('');\n this.reqState = '';\n this.employerName = '';\n this.groupNo = '';\n this.dlgtAgentCode = '';\n this.myRqeuest.page = 1;\n this.myRqeuest.size = 10;\n this.myRqeuest.sort = 'requestCreateDate desc';\n this.myRqeuest.language = this.language;\n this.summaryIsShowProgress = true;\n this.trimReq();\n this.setCreateDate();\n this.pageChange(1);\n\n this.onResetDatePicker();\n\n this.erNameSort = '';\n this.groupNoSort = '';\n this.createSort = '';\n this.statusSort = '';\n }\n\n addDlgtRequest() {\n this.router.navigate(['agent/er-delegation-change']);\n }\n\n forwordDetil(info: EmployerInfo, detailNo: string, detail: Items) {\n const detailReq = new ErChangeSummaryData();\n detailReq.serialDetailNo = detailNo;\n detailReq.language = this.language;\n detailReq.employerName = this.language === 'EN' ? info.employerName : info.employerNameTC ? info.employerNameTC : info.employerName;\n detailReq.oldAgent = detail.oldAgent;\n detailReq.sumbitAgent = detail.targetAgent;\n\n // const employerNameTC = info.employerNameTC\n // ? info.employerNameTC\n // : info.employerName\n // ? info.employerName\n // : '';\n // this.router.navigate(['agent/employee-summary/' + info.id], {\n // queryParams: { en: info.employerName, zh: employerNameTC },\n // });\n\n const popupRef: MatDialogRef = this.cdsPopup.open(ErChangeSummaryDetailPopComponent, {\n size: 'lg',\n data: { list: detailReq },\n });\n popupRef.afterClosed().subscribe(data => {\n console.log('data', data);\n });\n\n // const dialogRef = this.dialog.open(ErChangeSummaryDetailPopComponent, {\n // data: { list: detailReq },\n // });\n // dialogRef.afterClosed().subscribe(result => {\n // console.log(`Dialog result: ${result}`);\n // });\n }\n\n getforMateDate(dates: string): string {\n return formatDate(dates, 'dd/MM/yyyy', this.locale);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doClickDetail(e: any, model: any) {\n const obj = e.target.getElementsByClassName('icon')[0];\n if (obj.classList.contains('backrotate')) {\n obj.classList.add('gorotate');\n obj.classList.remove('backrotate');\n e.target.classList.add('short-des');\n model.isShowDetail = true;\n } else {\n obj.classList.add('backrotate');\n obj.classList.remove('gorotate');\n e.target.classList.remove('short-des');\n model.isShowDetail = false;\n }\n }\n\n pageChange(num: number): void {\n this.summaryPage = num;\n this.myRqeuest.page = num;\n this.employerHistroyService.getEmployees(this.myRqeuest);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n let goToPage = 1;\n if (isNaN(parseInt(pageNo))) {\n goToPage = 1;\n } else if (+pageNo > this.summaryPageCount) {\n goToPage = this.summaryPageCount;\n } else {\n goToPage = +pageNo;\n }\n\n this.pageChange(goToPage);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSortChange(sort: any) {\n switch (sort.active) {\n case 'employerName':\n this.groupNoSort = '';\n this.createSort = '';\n this.statusSort = '';\n this.erNameSort === '' ? (this.erNameSort = 'asc') : this.erNameSort === 'asc' ? (this.erNameSort = 'desc') : (this.erNameSort = '');\n break;\n case 'employerNo':\n this.erNameSort = '';\n this.createSort = '';\n this.statusSort = '';\n this.groupNoSort === '' ? (this.groupNoSort = 'asc') : this.groupNoSort === 'asc' ? (this.groupNoSort = 'desc') : (this.groupNoSort = '');\n break;\n case 'requestCreateDate':\n this.erNameSort = '';\n this.groupNoSort = '';\n this.statusSort = '';\n this.createSort === '' ? (this.createSort = 'asc') : this.createSort === 'asc' ? (this.createSort = 'desc') : (this.createSort = '');\n break;\n case 'status':\n this.erNameSort = '';\n this.groupNoSort = '';\n this.createSort = '';\n this.statusSort === '' ? (this.statusSort = 'asc') : this.statusSort === 'asc' ? (this.statusSort = 'desc') : (this.statusSort = '');\n break;\n default:\n this.erNameSort = '';\n this.groupNoSort = '';\n this.createSort = '';\n this.statusSort = '';\n break;\n }\n\n // const sor= this.erNameSort ===2 ? \"employerName asc\" : this.erNameSort === 3 ? \"employerName desc\" : \"\";\n const empSort = sort.active == '' ? 'requestCreateDate desc' : sort.active + ' ' + sort.direction;\n this.myRqeuest.sort = empSort;\n this.employerHistroyService.getEmployees(this.myRqeuest);\n }\n\n private onResetDatePicker() {\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n get searchBtnDisableState() {\n return !(\n this.employerName.length > 0 ||\n this.groupNo.length > 0 ||\n this.dlgtAgentCode.length > 0 ||\n this.stateFormControl.value?.length > 0 ||\n (this.startTime.length > 0 && this.endTime.length > 0)\n );\n }\n}\n","
\n
\n {{ 'hostory.delegationPlatform' | lang }}\n
\n
\n
\n
{{ 'hostory.delegationPlatformDesc' | lang }}
\n
\n
\n
\n {{ 'hostory.searchRecord' | lang }} \n
\n
\n
\n \n\n \n
\n
\n \n\n \n
\n
\n \n\n \n
\n\n
\n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n
\n
\n {{ 'hostory.requestStatus' | lang }}\n {{ 'employer.total' | lang }} {{ employerTotalCount }} {{ 'employer.items' | lang }}\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n\n
\n
\n
\n {{ 'hostory.employerName' | lang }}\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {{ 'hostory.groupNo' | lang }}\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {{ 'hostory.requestCreatedDate' | lang }}\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {{ 'hostory.reqStatus' | lang }}\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n {{\n this.language === 'EN'\n ? item.employerInfo.employerName\n ? item.employerInfo.employerName\n : item.employerInfo.employerNameTC\n : item.employerInfo.employerNameTC\n ? item.employerInfo.employerNameTC\n : item.employerInfo.employerName\n }}\n \n
\n
\n {{ item.employerInfo.employerNo }}\n
\n
\n {{ item.requestCreateDate | ssmsDate }}\n
\n
\n
\n
\n
\n
\n
\n
{{ 'erChangeSummary.approved' | lang }}
\n
\n\n
\n
\n
\n
\n
{{ 'erChangeSummary.declined' | lang }}
\n
\n\n
\n
\n
\n
\n
{{ 'erChangeSummary.partiallyApproved' | lang }}
\n
\n\n
\n
\n
\n
\n
{{ 'erChangeSummary.pendingDDApproval' | lang }}
\n
\n\n
\n
\n
\n
\n
{{ 'erChangeSummary.pendingToSend' | lang }}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{ 'hostoryDetail.agentChange' | lang }}\n
\n
\n \n
\n {{ 'hostoryDetail.status' | lang }}\n
\n
\n {{ 'hostoryDetail.employeeInvolved' | lang }}\n
\n
\n {{ 'hostoryDetail.resonAgent' | lang }}\n
\n
\n\n
\n
\n {{ 'hostoryDetail.existAgent' | lang }}\n
\n
\n
{{ detil.oldAgent.agentCode }}
\n
\n {{\n this.language === 'EN'\n ? detil.oldAgent.agentName\n ? detil.oldAgent.agentName\n : detil.oldAgent.agentNameTC\n : detil.oldAgent.agentNameTC\n ? detil.oldAgent.agentNameTC\n : detil.oldAgent.agentName\n }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.approved' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.pendingDDApproval' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.partiallyApproved' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.declined' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{ detil.noOfMemberInvolved }}\n
\n
\n \n {{ 'histroy.detailView' | lang }}\n
\n
\n
\n \n {{ this.language === 'EN' ? detil.reasonText : detil.reasonTextTC ? detil.reasonTextTC : detil.reasonText }}\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n {{ 'hostoryDetail.newAgent' | lang }}\n
\n
\n
{{ detil.targetAgent.agentCode }}
\n
\n {{\n this.language === 'EN'\n ? detil.targetAgent.agentName\n ? detil.targetAgent.agentName\n : detil.targetAgent.agentNameTC\n : detil.targetAgent.agentNameTC\n ? detil.targetAgent.agentNameTC\n : detil.targetAgent.agentName\n }}\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n Page \n \n of {{ summaryPageCount }} \n
\n
\n
\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { catchError, Observable, of, Subject, tap, timeout } from 'rxjs';\nimport { EmployeeRequest } from '../employee-summary/employee-request.model';\nimport { HistoryResponse } from './history-response';\nimport { agentCodeAddPrefix0 } from 'src/app/utils/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EmployerHistroyService {\n searchEmployeeUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/update-delegation/summary/query`;\n employeeDataSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorEmployeeSubject = new Subject();\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n\n getEmployees(request: EmployeeRequest) {\n this.httpClient\n .post(this.searchEmployeeUrl, request, this.httpOptions)\n .pipe(\n tap(() => console.info('fetched employees')),\n timeout(5000),\n catchError(this.handleError('getEmployers', new HistoryResponse()))\n )\n .subscribe((resp: HistoryResponse) => {\n resp.data?.content?.forEach(c => {\n c.items?.forEach(item => {\n if (item.submitAgent?.agentCode) {\n item.submitAgent.agentCode = agentCodeAddPrefix0(item.submitAgent.agentCode);\n }\n if (item.oldAgent?.agentCode) {\n item.oldAgent.agentCode = agentCodeAddPrefix0(item.oldAgent.agentCode);\n }\n if (item.targetAgent?.agentCode) {\n item.targetAgent.agentCode = agentCodeAddPrefix0(item.targetAgent.agentCode);\n }\n });\n });\n\n this.employeeDataSubject.next(resp);\n });\n }\n\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.error(error);\n console.info(`${operation} failed :${error.message}`);\n this.errorEmployeeSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n}\n","export class HistoryResponse {\n result?: number;\n data?: HistoryResponseBody;\n message?: string;\n}\n\nexport interface HistoryResponseBody {\n content: HistoryResponseData[];\n pageable: PageResponseData;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n numberOfElements: number;\n size: number;\n number: number;\n empty: boolean;\n}\n\nexport interface HistoryResponseData {\n requestCreateDate: string;\n status?: string;\n employerInfo: EmployerInfo;\n items: Items[];\n isShowDetail: boolean;\n}\n\nexport interface Items {\n noOfMemberInvolved?: number;\n serialNo?: string;\n serialDetailNo?: string;\n reasonText?: string;\n reasonTextTC?: string;\n status?: string;\n submitAgent: Agents;\n oldAgent: Agents;\n targetAgent: Agents;\n}\n\nexport interface Agents {\n agentNameTC?: string;\n agentName?: string;\n agentCode?: string;\n}\n\nexport interface EmployerInfo {\n id?: string;\n employerNo?: string;\n employerName?: string;\n employerNameTC?: string;\n}\n\nexport interface PageResponseData {\n pageNumber: number;\n pageSize: number;\n offset?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n","export class CheckAgentCodeRequest {\n identityId?: string;\n employerId?: string;\n agentCode?: string;\n}\nexport class EmployerCheckRequest {\n employerId?: string;\n agentCode?: string;\n}\n","import { Component, OnInit, Input, AfterViewInit, ChangeDetectorRef, OnDestroy, ViewChild, ViewChildren, QueryList, ElementRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Sort, SortDirection } from '@cds/ng-data-table/sort';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { ActionIcons, ArrowIcons } from '@cds/ng-themes';\nimport { CdsProgressModeType, CdsProgressType } from '@cds/ng-core/progress';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsInlineAlertType } from '@cds/ng-web-components/inline-alert';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { EmployerRequest } from '../employer-summary/employer-request.model';\nimport { AgentEmployerDelegationService } from '../agent-employer-delegation.service';\nimport { AgentEmployerResponseData, EmployerDelegateAgentInfo } from '../agent-employer-response.model';\nimport { SubmitDelegateRequest } from './submit-delegate-request';\nimport { Agent, AgentCodeBatchValidateResponseData } from './agent-code-batch-validate-response';\nimport { CheckAgentCodeRequest, EmployerCheckRequest } from './check-agent-code-request';\nimport { UserConfirmPopComponent } from '../user-confirm-pop/user-confirm-pop.component';\nimport { UserSuccessSubmittedComponent } from '../user-success-submitted/user-success-submitted.component';\nimport { UserExitEditmodePopComponent } from '../user-exit-editmode-pop/user-exit-editmode-pop.component';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { AgentCodeData } from './check-agent-code-response';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { AgentBranchPopComponent } from '../agent-branch-pop/agent-branch-pop.component';\nimport { specialCharacter } from 'src/app/utils/special-character';\nimport { CdStepperComponent } from 'src/app/shared/cd-stepper/cd-stepper.component';\nimport { CdStepComponent } from 'src/app/shared/cd-stepper/cd-step/cd-step.component';\nimport { pageToTop } from 'src/app/utils/utils';\nimport { NotifyService } from 'src/app/core/services/notify.service';\n\n@Component({\n selector: 'app-employer-summary',\n templateUrl: './employer-summary.component.html',\n styleUrls: ['./employer-summary.component.scss'],\n})\nexport class EmployerSummaryComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChildren('tooltip') tooltipList!: QueryList>;\n @ViewChildren('step') stepList!: QueryList;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n @Input() color: CdsColorTheme = 'ml';\n @Input() pageCountDlgt = 1;\n @Input() pageDlgt = 1;\n @Input() searchValueDlgt = '1';\n @Input() searchValueSub = '1';\n @Input() pageCountSbms = 1;\n @Input() pageSbms = 1;\n @Input() searchValueSbms = '1';\n @Input() agentcodeValue = '';\n @Input() alertType: CdsInlineAlertType = 'error';\n @Input() fullWidth = true;\n @Input() pageCount = 1;\n @Input() page = 1;\n @Input() sortDirection: SortDirection = 'asc';\n @Input() searchBtnDisableState = true;\n @Input() editModel = false;\n stepperTarget: 'pc' | 'ipad' = 'pc';\n nameValue = '';\n numberValue = '';\n agentValue = '';\n enterShowProgress = true;\n\n dataSourceInSummary: AgentEmployerResponseData[] = [];\n dataSourceInDelegate: AgentEmployerResponseData[] = [];\n dataSourceInConfirmation: AgentEmployerResponseData[] = [];\n language = this.cdsLangService.currentLang === 'en' ? 'EN' : 'TC';\n itemsSelected = 0;\n constructor(\n private agentEmployerDelegationService: AgentEmployerDelegationService,\n private changeDetectorRef: ChangeDetectorRef,\n private alert: CdsAlertService,\n private cdsPopup: CdsPopupService,\n public languageChangeService: LanguageChangeService,\n private router: Router,\n private route: ActivatedRoute,\n private cdsLangService: CdsLangService,\n private notifyService: NotifyService\n ) {}\n\n public errorSub?: Subscription;\n moreOptions = ActionIcons.more_options;\n isShowButtonList = false;\n resetTable = false;\n\n ngOnDestroy(): void {\n this.employerDataInSummarySubscription?.unsubscribe();\n this.employerDataInDelegateSubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n this.lanChangeSubscription?.unsubscribe();\n this.checkAgentCodeSubscription?.unsubscribe();\n this.agentCodeBatchValidateSubscription?.unsubscribe();\n this.agentDelegationSubscription?.unsubscribe();\n this.clearItems();\n }\n isShowProgress = false;\n employerTotalCountInSummary = 0;\n indeterminate: CdsProgressModeType = 'indeterminate';\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'Loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n updateIcon = ActionIcons.edit;\n public employerDataInSummarySubscription?: Subscription;\n public employerDataInDelegateSubscription?: Subscription;\n\n // variables from former delegate page\n employerTotalCountInDelegate = 0;\n canSearch = true;\n allChecked = false;\n totalCountSbms = 0;\n inputAgentCode = '';\n inputAgentCodeValid = true;\n inputAgentCodeErrorCode = 0;\n isInWhichStage = 0; // 0 = summary page, 1 = delegate page, 2 = confirmation page\n fullDataSource: {\n data: AgentEmployerResponseData[];\n totalElements: number;\n totalPages: number;\n }[] = [];\n elementsToSubmit: AgentEmployerResponseData[] = []; // works in confirmation page, if user will be sure to delegate them\n\n isDisableClear = true;\n markPage = 1;\n alertItems: {\n index: number;\n ifShow: boolean;\n message: string;\n messageTC: string;\n }[] = [];\n\n pageFirstInitInSummary = true;\n pageFirstInitInDelegate = true; // when page first init, will push empty arrays to fullDataSource\n lanChangeSubscription?: Subscription;\n checkAgentCodeSubscription?: Subscription;\n agentCodeBatchValidateSubscription?: Subscription;\n agentDelegationSubscription?: Subscription;\n myEmployerRequest: EmployerRequest = {\n page: 1,\n size: 10,\n language: this.language,\n sort: 'employerName asc',\n };\n\n agentCodeNameArr: {\n agentCode?: string;\n agentName?: string;\n agentNameTC?: string;\n }[] = [];\n\n reloadIcon = ArrowIcons.reload;\n @ViewChild('stepper') stepper!: CdStepperComponent;\n stepperItems = [\n { en: 'Select Item(s)', zh: '選擇項目' },\n { en: 'Fill agent code', zh: '輸入代理人編號' },\n { en: 'Add code to selected item(s)', zh: '新增編號至已選項目' },\n { en: 'Submission', zh: '提交' },\n ];\n\n ngOnInit(): void {\n this.isShowProgress = true;\n this.pageChangeInSummary(1);\n this.errorSub = this.agentEmployerDelegationService.errorEmployerSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n this.isShowProgress = false;\n this.enterShowProgress = false;\n this.notifyService.screenLoadingSubject.next(false);\n });\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n this.myEmployerRequest.language = this.language;\n this.cdsProgressTxt = lan === 'en' ? 'Loading' : '載入中';\n });\n this.employerDataInSummarySubscription = this.agentEmployerDelegationService.employerDataInSummarySubject.subscribe(response => {\n if (response.result != 0) {\n this.dataSourceInSummary = [];\n this.employerTotalCountInSummary = 0;\n this.pageCount = 0;\n } else if (response.data) {\n this.dataSourceInSummary = response.data ? response.data.content : [];\n this.employerTotalCountInSummary = response.data ? response.data.totalElements : 0;\n this.pageCount = response.data ? response.data.totalPages : 0;\n }\n this.isShowProgress = false;\n this.enterShowProgress = false;\n this.pageFirstInitInSummary = false;\n });\n\n this.employerDataInDelegateSubscription = this.agentEmployerDelegationService.employerDataInDelegateSubject.subscribe(response => {\n if (response.data && response.data.content) {\n this.dataSourceInDelegate = response.data.content;\n this.employerTotalCountInDelegate = response.data.totalElements;\n this.pageCountDlgt = response.data.totalPages;\n if (this.pageFirstInitInDelegate) {\n for (let i = 0; i < this.pageCountDlgt; i++) {\n this.fullDataSource.push({\n data: [],\n totalElements: this.employerTotalCountInDelegate,\n totalPages: this.pageCountDlgt,\n });\n }\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n\n this.refreshStep();\n }, 50);\n this.pageFirstInitInDelegate = false;\n }\n this.fullDataSource.splice(this.markPage - 1, 1, {\n data: this.dataSourceInDelegate,\n totalElements: this.employerTotalCountInDelegate,\n totalPages: this.pageCountDlgt,\n });\n this.allChecked = false;\n }\n this.isShowProgress = false;\n this.enterShowProgress = false;\n });\n if (document.getElementsByClassName('cds-navigation-content').length > 0) {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTo(0, 0);\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const menu = document.querySelector('aside.cds-menu-container') as HTMLElement;\n menu.style.display = 'none';\n }, 0);\n\n this.changeDetectorRef.detectChanges();\n\n const stopPropagation = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n this.tooltipList.changes.subscribe(() => {\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.removeEventListener('click', stopPropagation, false);\n });\n\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.addEventListener('click', stopPropagation, false);\n });\n });\n\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.addEventListener('click', stopPropagation, false);\n });\n\n if (window.matchMedia('only screen and (max-width: 1500px)').matches) {\n this.stepperTarget = 'ipad';\n } else {\n this.stepperTarget = 'pc';\n }\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n displayedColumnsInSummary: string[] = ['employerName', 'employerNo', 'employeeAmt', 'delegateAmt', 'canDelegateAmt', 'delegateAgentInfo'];\n\n onSortChange(event: Sort) {\n this.isShowProgress = true;\n let sortCondition = '';\n let active = '';\n let direction = '';\n if (event.active === 'canDelegateAmt') {\n active = 'nonDelegateAmt';\n } else {\n active = event.active;\n }\n sortCondition += active;\n sortCondition += ' ';\n if (event.direction === '') {\n sortCondition = 'employerName asc';\n } else {\n direction = event.direction;\n sortCondition += direction;\n }\n this.myEmployerRequest.sort = sortCondition;\n this.agentEmployerDelegationService.getEmployers(this.myEmployerRequest);\n }\n\n togglePage(isInWhichStage: number) {\n if (isInWhichStage === 0) {\n this.isInWhichStage = 1;\n this.editModel = true;\n this.pageChangeOnDelegateEr(1);\n } else {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserExitEditmodePopComponent, {});\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.fullDataSource = [];\n this.dataSourceInDelegate = [];\n // empty the batch input agent code text field\n this.inputAgentCode = '';\n // disable all the buttons in delegate page\n this.isDisableClear = true;\n this.isInWhichStage = 0;\n this.editModel = false;\n this.pageChangeInSummary(1);\n this.pageFirstInitInDelegate = true;\n this.pageFirstInitInSummary = true;\n this.isApplyToAllOnce = false;\n this.isShowProgress = true;\n this.inputAgentCodeValid = true;\n\n this.alertItems.forEach(element => {\n element.ifShow = false;\n });\n }\n });\n }\n }\n\n pageChangeInSummary(num: number): void {\n if (!this.pageFirstInitInSummary && num === this.page) {\n this.page = num;\n return;\n }\n this.myEmployerRequest.page = num;\n this.myEmployerRequest.hasNonDelegated = '';\n this.page = num;\n this.agentEmployerDelegationService.getEmployers(this.myEmployerRequest);\n this.isShowProgress = true;\n }\n\n searchByInputPageNoInSummary($event: Event, pageNo: string) {\n $event.preventDefault();\n let goToPage = 1;\n if (isNaN(parseInt(pageNo))) {\n goToPage = 1;\n } else if (+pageNo > this.pageCount) {\n goToPage = this.pageCount;\n } else {\n goToPage = +pageNo;\n }\n\n this.pageChangeInSummary(goToPage);\n }\n\n // from search er\n\n employerNameTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Employer Name' : '僱主名稱',\n type: 'text',\n color: 'ml',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n numbersTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Group No.' : '僱主編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n agentTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'EN' ? 'Delegated Agent Code' : '委託代理編號',\n type: 'text',\n placeholder: this.language === 'EN' ? 'Please input' : '輸入詳情',\n };\n\n employerSearch(): void {\n if (this.editModel || (this.nameValue === '' && this.numberValue === '' && this.agentValue === '')) {\n return;\n }\n this.page = 1;\n this.myEmployerRequest.page = 1;\n this.myEmployerRequest.employerName = this.nameValue.trim();\n this.myEmployerRequest.employerNo = this.numberValue.trim();\n this.myEmployerRequest.delegateAgentCode = this.agentValue.trim();\n this.agentEmployerDelegationService.getEmployers(this.myEmployerRequest);\n this.isShowProgress = true;\n this.onResetTable();\n }\n\n clearData(): void {\n if (this.editModel) {\n return;\n }\n this.isShowProgress = true;\n this.nameValue = '';\n this.numberValue = '';\n this.agentValue = '';\n this.myEmployerRequest = {\n page: 1,\n size: 10,\n language: this.language,\n sort: 'employerName asc',\n };\n this.page = 1;\n this.agentEmployerDelegationService.getEmployers(this.myEmployerRequest);\n this.searchBtnDisableState = true;\n this.onResetTable();\n }\n\n nameChange(result: string): void {\n this.nameValue = result;\n if (result === '') {\n this.searchCriteriaCheck();\n } else {\n this.searchBtnDisableState = false;\n }\n }\n\n numberChange(result: string): void {\n this.numberValue = result;\n if (result === '') {\n this.searchCriteriaCheck();\n } else {\n this.searchBtnDisableState = false;\n }\n }\n\n delegateAgentChange(result: string): void {\n this.agentValue = result;\n if (result === '') {\n this.searchCriteriaCheck();\n } else {\n this.searchBtnDisableState = false;\n }\n }\n\n searchCriteriaCheck() {\n if (this.nameValue === '' && this.numberValue === '' && this.agentValue === '') {\n this.searchBtnDisableState = true;\n }\n }\n\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n onHeaderCheckboxChange(val: boolean) {\n this.allChecked = val;\n this.dataSourceInDelegate.forEach(t => (t.isSelected = val));\n this.setClearBtnEnableOrNot();\n this.itemsSelected = this.computeElementsSelected();\n }\n\n onClickRowSelect(val: boolean, checkedIndex: number, pageNo: number) {\n this.dataSourceInDelegate[checkedIndex].isSelected = val;\n const isSomeNotChecked = this.fullDataSource[pageNo - 1]['data'].some(element => !element.isSelected);\n if (isSomeNotChecked) {\n this.allChecked = false;\n } else {\n this.allChecked = true;\n }\n if (this.isThereCheckboxCheckedInAllPages()) {\n // if ever apply to row once, and there are row(s) checked, 1,2,4 should be green\n if (this.isApplyToAllOnce) {\n this.stepper.setLightsOutStep(3);\n this.refreshStep();\n }\n } else {\n // if ever apply to row once, and there's no row(s) checked, 1,2,3,4 should be green\n if (this.isApplyToAllOnce) {\n this.stepper.removeLightsOutStep(3);\n this.refreshStep();\n }\n }\n this.setClearBtnEnableOrNot();\n this.itemsSelected = this.computeElementsSelected();\n }\n\n isThereCheckboxCheckedInAllPages() {\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployerResponseData[] = this.fullDataSource[i]['data'];\n const isSelected: boolean = pageData.some(element => element.isSelected);\n if (isSelected) {\n return true;\n }\n }\n return false;\n }\n\n computeElementsSelected() {\n let num = 0;\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployerResponseData[] = this.fullDataSource[i]['data'];\n const selectedCountPerPage = pageData.filter(element => element.isSelected).length;\n num += selectedCountPerPage;\n }\n if (this.isApplyToAllOnce) {\n this.refreshStep();\n } else {\n if (num > 0) {\n if (this.stepper.getFinishStep() === 1) {\n this.refreshStep();\n }\n } else {\n this.refreshStep();\n }\n }\n return num;\n }\n\n setClearBtnEnableOrNot() {\n const newArr: AgentEmployerResponseData[] = this.integrateToNewArr();\n const isSelected: boolean = newArr.some(element => element.isSelected);\n const haveAgentCode: boolean = newArr.some(element => !!element.agentCode);\n\n if (isSelected || haveAgentCode) {\n this.isDisableClear = false;\n } else {\n this.isDisableClear = true;\n }\n }\n\n integrateToNewArr() {\n let newArr: AgentEmployerResponseData[] = [];\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployerResponseData[] = this.fullDataSource[i]['data'];\n if (pageData.length !== 0) {\n newArr = newArr.concat(pageData);\n }\n }\n return newArr;\n }\n\n pageChangeOnDelegateEr(num: number): void {\n if (!this.pageFirstInitInDelegate && num === this.pageDlgt) {\n this.pageDlgt = num;\n return;\n }\n this.pageDlgt = num;\n // markPage is to record which page now, it's useful in checkbox click event\n this.markPage = num;\n this.searchValueDlgt = num + '';\n const pageData: {\n data: AgentEmployerResponseData[];\n totalElements: number;\n totalPages: number;\n } = this.fullDataSource[num - 1];\n if (pageData && pageData['data'].length !== 0) {\n this.dataSourceInDelegate = pageData['data'];\n this.employerTotalCountInDelegate = pageData.totalElements;\n this.pageCountDlgt = pageData.totalPages;\n // check if there is item which is not checked in this page\n const isNotSelected: boolean = this.dataSourceInDelegate.some(element => !element.isSelected);\n if (isNotSelected) {\n this.allChecked = false;\n } else {\n this.allChecked = true;\n }\n } else {\n // if this page has not loaded data from BE\n if (this.dataSourceInDelegate.length > 0) {\n this.isShowProgress = true;\n } else {\n this.enterShowProgress = true;\n }\n this.myEmployerRequest.page = num;\n this.myEmployerRequest.hasNonDelegated = 'Y';\n this.agentEmployerDelegationService.getEmployersInDelegate(this.myEmployerRequest);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n const intPageNo: number = parseInt(pageNo);\n if (intPageNo > this.pageCountDlgt) {\n this.searchValueDlgt = '1';\n pageNo = '1';\n }\n this.pageChangeOnDelegateEr(parseInt(pageNo));\n }\n\n primaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n };\n\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n displayedColumnsInDelegate: string[] = ['isSelected', 'employerName', 'employerNo', 'employeeAmt', 'delegateAmt', 'nonDelegateAmt', 'delegateAgentInfo'];\n\n agentCodeName(agentCodeData: AgentCodeData) {\n if (this.agentCodeNameArr.length === 0) {\n const agentCodeDataTmp = {\n agentCode: agentCodeData.agentCode,\n agentName: agentCodeData.name,\n agentNameTC: agentCodeData.chineseName,\n };\n this.agentCodeNameArr.push(agentCodeDataTmp);\n } else {\n const index = this.agentCodeNameArr.indexOf(agentCodeData);\n if (index === -1) {\n const agentCodeDataTmp = {\n agentCode: agentCodeData.agentCode,\n agentName: agentCodeData.name,\n agentNameTC: agentCodeData.chineseName,\n };\n this.agentCodeNameArr.push(agentCodeDataTmp);\n }\n }\n }\n\n agentCodeTransfer(errorCode: number): {\n agentCodeCheckResult: string;\n agentCodeCheckResultTC: string;\n } {\n let agentCodeCheckResultByLan = '';\n let agentCodeCheckResultByLanTC = '';\n if (errorCode === 2101) {\n agentCodeCheckResultByLan = 'Agent code does not exist';\n agentCodeCheckResultByLanTC = '代理人編號不存在';\n } else if (errorCode === 2102) {\n agentCodeCheckResultByLan = 'Inactive agent';\n agentCodeCheckResultByLanTC = '無效代理人';\n } else if (errorCode === 2103) {\n agentCodeCheckResultByLan = 'Agent is not in same distinct';\n agentCodeCheckResultByLanTC = '代理人區域不相配';\n } else if (errorCode === 2199) {\n agentCodeCheckResultByLan = 'Agent code should be a 6 digits number, please add 0 in the front if the agent code is only 5 digits';\n agentCodeCheckResultByLanTC = '代理人編號應為六位數字, 如代理人編號只有五位數字, 請在編號前補上0';\n }\n return {\n agentCodeCheckResult: agentCodeCheckResultByLan,\n agentCodeCheckResultTC: agentCodeCheckResultByLanTC,\n };\n }\n\n valueChangeBatchAgent(agentCode: string) {\n agentCode = agentCode.trim();\n this.inputAgentCode = agentCode;\n\n if (agentCode.length === 0) {\n this.inputAgentCodeValid = true;\n }\n\n this.refreshStep();\n }\n\n isApplyToAllOnce = false;\n\n applyToAll() {\n if (this.isDisableBatchApplyAgentCode) {\n return;\n }\n\n const ckRequestTmp: CheckAgentCodeRequest = {};\n ckRequestTmp.agentCode = this.inputAgentCode.trim();\n const inputAgentCodeTrimed = this.inputAgentCode.trim();\n if (inputAgentCodeTrimed.length > 0 && inputAgentCodeTrimed.length <= 5) {\n this.inputAgentCodeValid = false;\n this.inputAgentCodeErrorCode = 2199;\n return;\n }\n this.checkAgentCodeSubscription?.unsubscribe();\n this.agentEmployerDelegationService.checkAgentCode(ckRequestTmp);\n this.checkAgentCodeSubscription = this.agentEmployerDelegationService.agentCodeResponseSubject.subscribe(resp => {\n if (resp.result === 0 && resp.data) {\n const checkedAgentcode = resp.data ? resp.data.agentCode : '';\n if (checkedAgentcode) {\n this.inputAgentCode = checkedAgentcode;\n }\n this.inputAgentCodeValid = true;\n this.agentCodeName(resp.data);\n this.isDisableClear = false;\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployerResponseData[] = this.fullDataSource[i]['data'];\n pageData\n .filter(element => element.isSelected)\n .forEach(element => {\n element.agentCode = this.inputAgentCode;\n element.flag = true;\n element.isSelected = false;\n });\n this.allChecked = false;\n }\n this.inputAgentCode = '';\n if (!this.isApplyToAllOnce) {\n this.isApplyToAllOnce = true;\n } else {\n this.stepper.removeLightsOutStep(3);\n this.refreshStep();\n }\n this.refreshStep();\n this.itemsSelected = 0;\n } else {\n this.inputAgentCodeValid = false;\n if (resp.data && resp.data.errorCode) {\n this.inputAgentCodeErrorCode = resp.data.errorCode;\n }\n }\n });\n }\n\n batchClearData() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserExitEditmodePopComponent, {});\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n const currentPages = this.fullDataSource.length;\n for (let i = 0; i < currentPages; i++) {\n const pageData: AgentEmployerResponseData[] = this.fullDataSource[i]['data'];\n if (pageData.length !== 0) {\n pageData.forEach(element => {\n element.agentCode = '';\n element.isSelected = false;\n element.flag = true;\n });\n }\n }\n this.inputAgentCodeValid = true;\n this.inputAgentCode = ''; // set the batch agent code input field to \"\"\n this.allChecked = false;\n this.isDisableClear = true;\n this.stepper.removeLightsOutStep(3);\n this.refreshStep();\n this.itemsSelected = 0;\n this.isApplyToAllOnce = false; // reset means never applied\n\n this.alertItems.forEach(element => {\n element.ifShow = false;\n });\n }\n });\n }\n\n erDelegate() {\n if (this.isDisableSubmit) {\n return;\n }\n // clear batch agent input and clear batch agent input error\n this.inputAgentCode = '';\n this.inputAgentCodeValid = true;\n const tmpData: {\n data: AgentEmployerResponseData[];\n totalElements: number;\n totalPages: number;\n }[] = this.fullDataSource.filter(ele => ele.data.length > 0);\n let elementsToSubmitTmp: AgentEmployerResponseData[] = [];\n for (const element of tmpData) {\n const pageData: AgentEmployerResponseData[] = element['data'];\n if (pageData.length > 0) {\n elementsToSubmitTmp = elementsToSubmitTmp.concat(pageData.filter(_ele => _ele.flag === true && !!_ele.agentCode));\n }\n }\n if (elementsToSubmitTmp.length === 0) {\n return;\n }\n const checkAgentListTmp: EmployerCheckRequest[] = [];\n elementsToSubmitTmp.forEach(element => {\n const ckData = new EmployerCheckRequest();\n ckData.employerId = element.employerId;\n ckData.agentCode = element.agentCode;\n checkAgentListTmp.push(ckData);\n });\n\n this.agentCodeBatchValidateSubscription?.unsubscribe();\n this.agentEmployerDelegationService.agentCodeBatchValidate(checkAgentListTmp);\n this.agentCodeBatchValidateSubscription = this.agentEmployerDelegationService.agentCodeBatchValidateSubject.subscribe(resp => {\n if (resp.result === 0) {\n this.navigateToConfirmation(elementsToSubmitTmp);\n } else {\n const checkResultListTmp: AgentCodeBatchValidateResponseData[] = resp.data ? resp.data : [];\n this.addAlertItems(checkResultListTmp, elementsToSubmitTmp);\n }\n });\n }\n\n navigateToConfirmation(elementsToSubmitTmp: AgentEmployerResponseData[]) {\n this.isInWhichStage = 2;\n this.elementsToSubmit = elementsToSubmitTmp;\n this.addAgentNameForConfirmation(elementsToSubmitTmp);\n this.splitElements(elementsToSubmitTmp);\n this.pageChangeInConfirmation(1);\n this.searchValueSub = '1';\n pageToTop();\n }\n\n dismissAlert(index: number) {\n this.alertItems[index].ifShow = false;\n }\n\n addAlertItems(data: AgentCodeBatchValidateResponseData[], elementsToSubmitTmp: AgentEmployerResponseData[]) {\n this.alertItems = [];\n const agentArr: Agent[] = [];\n\n if (data.some(item => item.errorCode === 2104)) {\n data = data.filter(item => item.errorCode === 2104);\n for (let i = 0; i < data.length; i++) {\n let resultMsg = '';\n let resultMsgTC = '';\n if (data[i].errorCode === 2104) {\n const existsAgents1 = data[i].existAgents;\n const existsAgents2 = data[i].existAgents;\n let agentEn = existsAgents1?.map(existsAgent => existsAgent.agentCode + ' ' + existsAgent.name).join('、');\n const tempAgentEn = agentEn?.split('');\n tempAgentEn?.pop();\n agentEn = tempAgentEn?.join('');\n\n let agentTc = existsAgents2\n ?.map(existsAgent => {\n console.info(existsAgent.agentCode + ' ' + (existsAgent.chineseName ? existsAgent.chineseName : existsAgent.name));\n return existsAgent.agentCode + ' ' + (existsAgent.chineseName ? existsAgent.chineseName : existsAgent.name);\n })\n .join('、');\n const tempAgentTc = agentTc?.split('');\n tempAgentTc?.pop();\n agentTc = tempAgentTc?.join('');\n\n const limitAgentNum = data[i].limitAgent;\n if (agentEn) {\n resultMsg =\n 'Each employer can maximum delegate 4 agents.' +\n data[i].employerInfo?.employerName +\n ' has been delegated to ' +\n limitAgentNum +\n ' agents including:' +\n agentEn;\n } else {\n resultMsg = 'Each employer can maximum delegate 4 agents.';\n }\n\n if (agentTc) {\n resultMsgTC = '每個僱主最多可委託4名代理人。' + data[i].employerInfo?.employerName + ' 已被委況託 ' + limitAgentNum + ' 位代理人,包括:' + agentTc;\n } else {\n resultMsgTC = '每個僱主最多可委託4名代理人。';\n }\n\n this.alertItems.push({\n index: i,\n ifShow: true,\n message: resultMsg,\n messageTC: resultMsgTC,\n });\n }\n }\n return;\n } else {\n for (let i = 0; i < data.length; i++) {\n if (data[i].errorCode === 2103) {\n const agentTmp = data[i].agent;\n if (agentTmp) {\n agentArr.push(agentTmp);\n }\n }\n }\n }\n\n if (agentArr.length > 0) {\n // add warning message for 2103(agent not in same branch)\n const popupRef: MatDialogRef = this.cdsPopup.open(AgentBranchPopComponent, {\n size: 'md',\n data: { list: agentArr, language: this.language },\n });\n popupRef.afterClosed().subscribe(_data => {\n if (_data.agree) {\n this.navigateToConfirmation(elementsToSubmitTmp);\n }\n });\n }\n }\n\n splitElements(employerResponseData: AgentEmployerResponseData[]) {\n const len = employerResponseData.length;\n const splitPages = Math.ceil(len / 10);\n const splitPageSize = 10;\n localStorage.setItem('delegateTotal', len + '');\n localStorage.setItem('delegatePages', splitPages + '');\n for (let i = 1; i <= splitPages; i++) {\n const strPerPage = JSON.stringify(this.arrayPage(employerResponseData, i, splitPageSize));\n localStorage.setItem('page' + i, strPerPage);\n }\n }\n\n addAgentNameForConfirmation(employerResponseData: AgentEmployerResponseData[]) {\n employerResponseData.forEach(ele => {\n const found = this.agentCodeNameArr.find(ac => ac.agentCode === ele.agentCode);\n ele.toDelegateAgentName = found?.agentName;\n ele.toDelegateAgentNameTC = found?.agentNameTC;\n });\n }\n\n arrayPage(employerResponseData: AgentEmployerResponseData[], page: number, pageSize: number): AgentEmployerResponseData[] {\n if (page <= 0) {\n return [];\n }\n const minIdx = pageSize * (page - 1);\n const maxIdx = pageSize * page;\n\n return employerResponseData.slice(minIdx, maxIdx);\n }\n\n clearItems(): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lsPages = localStorage.getItem('delegatePages');\n if (lsPages) {\n const pages = parseInt(lsPages);\n for (let i = 1; i <= pages; i++) {\n localStorage.removeItem('page' + i);\n }\n }\n localStorage.removeItem('delegatePages');\n localStorage.removeItem('delegateTotal');\n }\n\n displayedColumnsInConfirmation: string[] = ['employerName', 'employerNo', 'employeeAmt', 'delegateAmt', 'nonDelegateAmt', 'delegateAgentInfo'];\n\n pageChangeInConfirmation(num: number): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const pageInfoByNum = localStorage.getItem('page' + num)!;\n this.dataSourceInConfirmation = JSON.parse(pageInfoByNum);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const totalItems = parseInt(localStorage.getItem('delegateTotal')!);\n this.pageCountSbms = Math.ceil(totalItems / 10);\n this.totalCountSbms = totalItems;\n this.pageSbms = num;\n this.searchValueSub = num + '';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchByInputPageNoInConfirmation($event: any, pageNo: string) {\n $event.preventDefault();\n const intPageNo: number = parseInt(pageNo);\n if (intPageNo > this.pageCountSbms) {\n this.searchValueDlgt = '1';\n pageNo = '1';\n }\n this.pageChangeInConfirmation(parseInt(pageNo));\n }\n\n erBackToEdit() {\n this.isInWhichStage = 1;\n this.elementsToSubmit = [];\n this.clearItems();\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n\n this.refreshStep();\n }, 50);\n }\n\n erConfirm() {\n const submitDelegateRequestArr: SubmitDelegateRequest[] = [];\n if (this.elementsToSubmit.length > 0) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserConfirmPopComponent, {});\n\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.elementsToSubmit.forEach(element => {\n const submitDelegateRequestTmp = new SubmitDelegateRequest();\n submitDelegateRequestTmp.employerId = element.employerId;\n submitDelegateRequestTmp.agentCode = element.agentCode;\n submitDelegateRequestArr.push(submitDelegateRequestTmp);\n });\n this.agentDelegationSubscription?.unsubscribe();\n this.notifyService.screenLoadingSubject.next(true);\n this.agentDelegationSubscription = this.agentEmployerDelegationService.confirmSubmitDelegation(submitDelegateRequestArr);\n this.agentEmployerDelegationService.agentDelegationSubject.subscribe({\n next: resp => {\n if (resp.result === 0) {\n const popupRefSubmit: MatDialogRef = this.cdsPopup.open(UserSuccessSubmittedComponent, {});\n popupRefSubmit.afterClosed().subscribe(dataConfirm => {\n if (dataConfirm.agree) {\n // page should reload\n location.reload();\n }\n });\n } else if (resp.result !== 0) {\n //this.addAlertItems(this.checkResultList);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: () => {\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n });\n }\n }\n\n jump() {\n window.open(\n this.cdsLangService.currentLang === 'en'\n ? 'https://ebmeter.com/minisite/download/campaign/delegation_golden_rule_en.pdf'\n : 'https://ebmeter.com/minisite/download/campaign/delegation_golden_rule.pdf'\n );\n }\n\n computedDelegateAgentInfoItem(item: EmployerDelegateAgentInfo) {\n return `${item.agentCode} ${this.language === 'EN' ? item.name : item.nameTC}`;\n }\n\n onCanDelegateAmtToggle(event: MouseEvent) {\n if (event.target && this.stepperTarget === 'pc') {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n computedIsHalfSelected() {\n const isSelectedAll = this.dataSourceInDelegate.every(item => item.isSelected);\n if (isSelectedAll) {\n return false;\n }\n\n const isSelectedSome = this.dataSourceInDelegate.some(item => item.isSelected);\n if (isSelectedSome) {\n return true;\n }\n\n return false;\n }\n\n goDelegationChange() {\n this.isShowButtonList = false;\n this.router.navigate(['../', 'er-delegation-change'], {\n relativeTo: this.route,\n });\n }\n\n goDelegationChangeRequestLog() {\n this.isShowButtonList = false;\n this.router.navigate(['/agent/employer-history']);\n }\n\n navigateToEEAddDelegation(employerId: string, employerName: string, employerNameTC: string) {\n const employerNameParam = employerName ? employerName : '';\n const employerNameParamTC = employerNameTC ? employerNameTC : '';\n return (\n '/agent/employee-summary/' +\n employerId +\n '?en=' +\n encodeURI(specialCharacter(employerNameParam)) +\n '&zh=' +\n encodeURI(specialCharacter(employerNameParamTC))\n );\n }\n\n private onResetTable() {\n this.resetTable = true;\n setTimeout(() => {\n this.resetTable = false;\n }, 0);\n }\n\n refreshStep() {\n let stepNum = 1;\n\n if (this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.isSelected))) {\n stepNum = 2;\n }\n\n if (stepNum === 2 && this.inputAgentCode.length > 0) {\n stepNum = 3;\n }\n\n if (this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.agentCode && agentEmployerData.agentCode.length === 6))) {\n stepNum = 4;\n }\n\n this.stepper.setFinishStep(stepNum);\n }\n\n get isDisableBatchInput() {\n return !this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.isSelected));\n }\n\n get isDisableBatchApplyAgentCode() {\n return !(this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.isSelected)) && this.inputAgentCode.length > 0);\n }\n\n get isDisableSubmit() {\n return !this.fullDataSource.some(item => item.data.some(agentEmployerData => agentEmployerData.agentCode && agentEmployerData.agentCode.length === 6));\n }\n}\n","
\n
\n {{ 'employer.delegationPlatform' | lang }}\n
\n
\n
\n
\n {{ 'employer.delegationPlatformDesc' | lang }}\n
\n
\n
{{ 'employer.remarks' | lang }} :
\n
    \n
  • \n
    \n {{ 'employer.remarksDesc2.paragraph1' | lang }}\n {{ 'employer.remarksDesc2.paragraph2' | lang }}\n
    \n
  • \n
  • \n {{ 'employer.remarksDesc3' | lang }}\n
  • \n
  • \n {{ 'employer.remarksDesc4' | lang }}\n
  • \n
  • \n {{ 'employer.remarksDesc5_1' | lang }} \n {{ 'employer.remarksDesc5_2' | lang }}\n {{ 'employer.remarksDesc5_3' | lang }}\n
  • \n
\n
\n
\n
\n
\n {{ 'employer.search' | lang }} \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n {{ (isInWhichStage !== 2 ? 'employer.result' : 'employer.ItemsToBeUpdated') | lang }}\n
\n
\n
\n
\n \n
\n
\n
\n
\n {{ 'employer.total' | lang }} {{ employerTotalCountInSummary }} {{ 'employer.items' | lang }}\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n {{ 'employer.employerName' | lang }}\n \n \n \n \n \n \n\n \n {{ 'employer.no' | lang }}\n \n {{ element.employerNo }}\n \n \n\n \n {{ 'employer.employeeNum' | lang }}\n \n {{ element.employeeAmt }}\n \n \n\n \n {{ 'employer.delegateAmt' | lang }}\n \n {{ element.delegateAmt }}\n \n \n \n \n {{ 'employer.nonDelegateAmt' | lang }}\n
\n \n
\n
\n \n {{ element.nonDelegateAmt }}\n \n
\n\n \n {{ 'employer.delegateAgentInfo' | lang }}\n \n
\n
\n {{ item.agentCode }}\n {{ language === 'EN' ? item.name : item.nameTC ? item.nameTC : item.name }}\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n Page \n \n of {{ pageCount }}\n
\n
\n
\n
\n \n
\n
\n
\n \n {{ language === 'EN' ? item.message : item.messageTC }}\n \n
\n\n
\n {{ 'employer.total' | lang }} {{ employerTotalCountInDelegate }} {{ 'employer.items' | lang }}\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 {{ 'employer.employerName' | lang }}\n \n \n \n \n \n\n \n {{ 'employer.no' | lang }}\n \n {{ element.employerNo }}\n \n \n\n \n {{ 'employer.employeeNum' | lang }}\n \n {{ element.employeeAmt }}\n \n \n\n \n {{ 'employer.delegateAmt' | lang }}\n \n {{ element.delegateAmt }}\n \n \n \n \n
\n {{ 'employer.nonDelegateAmt' | lang }}\n
\n \n
\n
\n
\n \n {{ element.nonDelegateAmt }}\n \n
\n\n \n {{ 'employer.delegateAgentCode' | lang }}\n \n {{ element.agentCode }}\n \n \n
\n
\n \n
\n \n
\n
\n Page \n \n of {{ pageCountDlgt }} \n
\n
\n
\n
\n
\n \n
\n 1 ? 'border-top' : '', i === 0 ? 'move-up-ten' : '']\">\n \n {{ language === 'EN' ? item['en'] : item['zh'] }}\n \n
\n
\n {{ itemsSelected }} {{ 'employee.itemTotal' | lang }}\n
\n
\n {{ 'delegate.delegateTo' | lang }}\n \n \n \n {{ 'agentCode.notExists' | lang }} \n {{ 'agentCode.inactiveAgent' | lang }} \n {{ 'agentCode.notSameDistrict' | lang }} \n {{ 'agentCode.lengthShouldBe6' | lang }} \n \n {{ 'agentCode.notHaveLicense' | lang }}\n \n \n
\n
\n {{\n 'delegate.applyToSelected' | lang\n }}\n
\n
\n {{ 'delegate.submit' | lang }}\n
\n
\n
\n
\n \n
\n \n {{ 'employer.reset' | lang }}\n
\n
\n
\n
\n
\n \n \n {{ language === 'EN' ? item['en'] : item['zh'] }}\n \n \n
\n \n {{ 'employer.reset' | lang }}\n
\n
\n\n
\n
\n {{ itemsSelected }} {{ 'employee.itemTotal' | lang }}\n
\n
\n {{ 'delegate.delegateTo' | lang }}\n \n \n \n {{ 'agentCode.notExists' | lang }} \n {{ 'agentCode.inactiveAgent' | lang }} \n {{ 'agentCode.notSameDistrict' | lang }} \n {{ 'agentCode.lengthShouldBe6' | lang }} \n \n {{ 'agentCode.notHaveLicense' | lang }}\n \n {{ 'agentCode.invalidDelegatedAgentCode' | lang }} \n \n
\n
\n {{\n 'delegate.applyToSelected' | lang\n }}\n
\n
\n {{ 'delegate.submit' | lang }}\n
\n
\n
\n
\n \n \n
\n
\n
\n {{ 'employer.total' | lang }} {{ totalCountSbms }} {{ 'employer.items' | lang }}\n
\n
\n
\n \n \n \n\n \n \n {{ 'employer.employerName' | lang }}\n \n \n \n \n \n\n \n {{ 'employer.no' | lang }}\n \n {{ element.employerNo }}\n \n \n\n \n {{ 'employer.employeeNum' | lang }}\n \n {{ element.employeeAmt }}\n \n \n\n \n {{ 'employer.delegateAmt' | lang }}\n \n {{ element.delegateAmt }}\n \n \n \n \n
\n {{ 'employer.nonDelegateAmt' | lang }}\n
\n \n
\n
\n
\n \n {{ element.nonDelegateAmt }}\n \n
\n\n \n {{ 'employer.delegateAgentInfo' | lang }}\n \n
\n
\n {{ element.agentCode }}\n {{\n language === 'EN'\n ? element.toDelegateAgentName\n ? element.toDelegateAgentName\n : element.toDelegateAgentNameTC\n : element.toDelegateAgentNameTC\n ? element.toDelegateAgentNameTC\n : element.toDelegateAgentName\n }}\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n Page \n \n of {{ pageCountSbms }} \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n","export class SubmitDelegateRequest {\n identityId?: string;\n employerId?: string;\n agentCode?: string;\n}\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons, ArrowIcons, EnvironmentIcons } from '@cds/ng-themes';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { Subscription } from 'rxjs';\nimport { EmployeeResponseData } from '../employee-summary/employee-response.model';\nimport { EmployerHistoryRequest } from '../employer-history/employer-history-request';\nimport { Items } from './er-change-summary-detail-response';\nimport { ErChangeSummaryDetailService } from './er-change-summary-detail.service';\nimport { Agents, ErChangeSummaryData } from './er-chenge-summary-data';\n\n@Component({\n selector: 'app-er-change-summary-detail-pop',\n templateUrl: './er-change-summary-detail-pop.component.html',\n styleUrls: ['./er-change-summary-detail-pop.component.scss'],\n})\nexport class ErChangeSummaryDetailPopComponent implements OnInit, OnDestroy {\n @Input() fullWidth = true;\n @Input() color: CdsColorTheme = 'ml';\n language = '';\n @Input() summaryPageCount = 1;\n @Input() summaryPage = 1;\n\n myRequest: EmployerHistoryRequest = { page: 1, size: 20 };\n employerDetailTotalCount = 0;\n private employerHistroyDetailScription?: Subscription;\n dataSource: Items[] = [];\n dataSourceTmp: EmployeeResponseData[] = [];\n\n totalcon = EnvironmentIcons.office_building;\n agentheadIcon = ArrowIcons.right;\n conselIcon = ActionIcons.button_x;\n status = '';\n targetAgent: Agents = {};\n oldAgent: Agents = {};\n employerName = '';\n\n constructor(\n public dialogRef: MatDialogRef,\n // private elementRef: ElementRef,\n public erChangeSummaryDetailService: ErChangeSummaryDetailService,\n @Inject(CDS_POPUP_DATA)\n public data: { list: ErChangeSummaryData }\n ) {}\n\n ngOnDestroy(): void {\n this.employerHistroyDetailScription?.unsubscribe();\n }\n\n ngOnInit(): void {\n this.myRequest = this.data.list;\n this.myRequest.page = 1;\n this.myRequest.size = 20;\n this.language = this.data.list.language ? this.data.list.language : 'EN';\n this.targetAgent = this.data.list.sumbitAgent || {};\n this.oldAgent = this.data.list.oldAgent || {};\n this.employerName = this.data.list.employerName || '';\n this.status = this.data.list.status || '';\n\n document.getElementsByClassName('mat-dialog-container')[0]?.scrollTo(0, 0);\n this.pageChange(1);\n this.employerHistroyDetailScription = this.erChangeSummaryDetailService.employeeDataSubject.subscribe(response => {\n if (response.result != 0) {\n this.dataSource = [];\n this.employerDetailTotalCount = 0;\n this.summaryPageCount = 0;\n } else {\n this.dataSource = response.data && response.data.content ? response.data.content[0].items : [];\n this.employerDetailTotalCount = response.data ? response.data.totalElements : 0;\n this.summaryPageCount = response.data ? response.data.totalPages : 0;\n\n this.dataSource.forEach(d => {\n if (d.employeeData?.joinTheProgramDate) {\n const dateList = d.employeeData.joinTheProgramDate.split('-');\n d.employeeData.joinTheProgramDate = [dateList[2], dateList[1], dateList[0]].join('/');\n }\n });\n }\n });\n }\n\n closeDialog() {\n this.dialogRef.close('Pizza!');\n }\n totalIconConfig: CdsIconConfig = {\n size: 'md',\n };\n\n conselIconConfig: CdsIconConfig = {\n size: 'sm',\n };\n\n displayedColumns: string[] = ['certificateNumber', 'employeeName', 'sex', 'age', 'joinTheProgramDate', 'joinTheProgramDate'];\n\n pageChange(num: number): void {\n console.log('page');\n this.myRequest.page = num;\n this.summaryPage = num;\n this.erChangeSummaryDetailService.getDetailList(this.myRequest);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n let goToPage = 1;\n if (isNaN(parseInt(pageNo))) {\n goToPage = 1;\n } else if (+pageNo > this.summaryPageCount) {\n goToPage = this.summaryPageCount;\n } else {\n goToPage = +pageNo;\n }\n\n this.pageChange(goToPage);\n }\n showTable = true;\n closePop() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
\n
\n \n
\n
\n
\n {{ 'erChangeSummary.employeeDelegationSummary' | lang }}\n
\n
\n
\n
\n
\n \n
\n
\n
{{ employerName }}
\n
\n
\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.approved' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.declined' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.partiallyApproved' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.pendingDDApproval' | lang }}\n
\n
\n\n
\n
\n
\n
\n
\n {{ 'erChangeSummary.pendingToSend' | lang }}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n {{ 'delegationChange.existingDelegatedAgent' | lang }}\n
\n
\n {{ oldAgent.agentCode }}\n
\n
\n {{\n language === 'EN'\n ? oldAgent.agentName\n ? oldAgent.agentName\n : oldAgent.agentNameTC\n : oldAgent.agentNameTC\n ? oldAgent.agentNameTC\n : oldAgent.agentName\n }}\n
\n
\n
\n \n
\n
\n
\n {{ 'delegationChange.newDelegatedAgent' | lang }}\n
\n
\n {{ targetAgent.agentCode }}\n
\n
\n {{\n language === 'EN'\n ? targetAgent.agentName\n ? targetAgent.agentName\n : targetAgent.agentNameTC\n : targetAgent.agentNameTC\n ? targetAgent.agentNameTC\n : targetAgent.agentName\n }}\n
\n
\n
\n\n
\n
\n {{ 'erChangeSummary.certNo' | lang }}\n
\n
\n {{ 'erChangeSummary.employeeName' | lang }}\n
\n
\n {{ 'erChangeSummary.sex' | lang }}\n
\n
\n {{ 'erChangeSummary.age' | lang }}\n
\n
\n {{ 'erChangeSummary.programDate' | lang }}\n
\n
\n {{ 'erChangeSummary.reason' | lang }}\n
\n
\n\n
\n
\n
\n
\n {{ item.employeeData.certificateNumber }}\n
\n
\n \n {{\n language === 'EN'\n ? item.employeeData.employeeName\n ? item.employeeData.employeeName\n : item.employeeData.employeeNameTC\n : item.employeeData.employeeNameTC\n ? item.employeeData.employeeNameTC\n : item.employeeData.employeeName\n }}\n
\n
\n {{ item.employeeData.sex }}\n
\n
\n {{ item.employeeData.age }}\n
\n
\n {{ item.employeeData.joinTheProgramDate }}\n
\n
\n
{{ 'delegationChange.other' | lang }}:
\n
{{ item.reason.message }}
\n
\n
\n
\n
\n
\n
\n \n
\n
\n Page \n \n of {{ summaryPageCount }} \n
\n
\n
\n
\n\n \n \n
\n
\n","export class ErChanegSummaryDetailResponse {\n result?: number;\n data?: HistoryResponseBody;\n message?: string;\n}\n\nexport interface HistoryResponseBody {\n content: HistoryResponseData[];\n pageable: PageResponseData;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n numberOfElements: number;\n size: number;\n number: number;\n empty: boolean;\n}\n\nexport interface HistoryResponseData {\n requestCreateDate: string;\n status?: string;\n employerInfo: EmployerInfo;\n items: Items[];\n isShowDetail: boolean;\n}\n\nexport interface Items {\n submitAgent: Agents;\n oldAgent: Agents;\n targetAgent: Agents;\n employeeData: employeeInfo;\n reason: reason;\n}\n\nexport interface employeeInfo {\n employeeId?: string;\n employeeName?: string;\n employeeNameTC?: string;\n sex?: string;\n joinTheProgramDate?: string;\n certificateNumber?: string;\n age?: number;\n}\n\nexport interface reason {\n code?: number;\n message?: string;\n}\n\nexport interface Agents {\n agentNameTC?: string;\n agentName?: string;\n agentCode?: string;\n}\n\nexport interface EmployerInfo {\n id?: string;\n employerNo?: string;\n employerName?: string;\n employerNameTC?: string;\n}\n\nexport interface PageResponseData {\n pageNumber: number;\n pageSize: number;\n offset?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, Observable, of, Subject, tap, timeout } from 'rxjs';\nimport { agentCodeAddPrefix0 } from 'src/app/utils/utils';\nimport { environment } from 'src/environments/environment';\nimport { EmployerHistoryRequest } from '../employer-history/employer-history-request';\nimport { ErChanegSummaryDetailResponse } from './er-change-summary-detail-response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ErChangeSummaryDetailService {\n searchEmployeeUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/update-delegation/members/query`;\n employeeDataSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorEmployeeSubject = new Subject();\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n\n getDetailList(request: EmployerHistoryRequest) {\n this.httpClient\n .post(this.searchEmployeeUrl, request, this.httpOptions)\n .pipe(\n tap(() => console.info('fetched employees')),\n timeout(5000),\n catchError(this.handleError('getDetailList', new ErChanegSummaryDetailResponse()))\n )\n .subscribe((resp: ErChanegSummaryDetailResponse) => {\n resp.data?.content?.forEach(c => {\n c.items.forEach(item => {\n if (item.oldAgent?.agentCode) {\n item.oldAgent.agentCode = agentCodeAddPrefix0(item.oldAgent.agentCode);\n }\n if (item.submitAgent?.agentCode) {\n item.submitAgent.agentCode = agentCodeAddPrefix0(item.submitAgent.agentCode);\n }\n if (item.targetAgent?.agentCode) {\n item.targetAgent.agentCode = agentCodeAddPrefix0(item.targetAgent.agentCode);\n }\n });\n });\n\n this.employeeDataSubject.next(resp);\n });\n }\n\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.error(error);\n console.info(`${operation} failed :${error.message}`);\n this.errorEmployeeSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n}\n","export class ErChangeSummaryData {\n serialDetailNo?: string;\n employerName?: string;\n language?: string;\n status?: string;\n sumbitAgent?: Agents;\n oldAgent?: Agents;\n}\n\nexport interface Agents {\n agentNameTC?: string;\n agentName?: string;\n agentCode?: string;\n}\n","import { Component } from '@angular/core';\n\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-add-to-item',\n templateUrl: './add-to-item.component.html',\n styleUrls: ['./add-to-item.component.scss'],\n})\nexport class AddToItemComponent {\n text = '';\n\n constructor(private dialogRef: MatDialogRef) {}\n\n continue() {\n if (this.disabledContinue) {\n return;\n }\n\n this.dialogRef.close(this.text);\n }\n\n cancel() {\n this.dialogRef.close();\n }\n\n get disabledContinue() {\n return this.text.length === 0;\n }\n}\n","
\n {{ 'delegationChange.inputTheOtherReasonOfChange' | lang }}\n
\n \n \n
\n
\n {{ 'confirmation.cancel' | lang }}\n {{ 'delegationChange.continue' | lang }} \n
\n
\n","import { Component, OnInit, OnDestroy, ViewChildren, QueryList, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Subscription, Observable, map, of } from 'rxjs';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport { ActionIcons, ArrowIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { AddToItemComponent } from './add-to-item/add-to-item.component';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { updateDelegationEmpValiRespErrHandle, ValiRespErrData } from '../update-delegation-emp-vali-resp-err-handle.helper';\nimport { CdWarningPopupComponent } from 'src/app/shared/cd-warning-popup/cd-warning-popup.component';\nimport { specialCharacter } from 'src/app/utils/special-character';\nimport { AgentBranchPopComponent } from '../agent-branch-pop/agent-branch-pop.component';\nimport { CdInputComponent } from 'src/app/components/cd-input/cd-input.component';\nimport { agentCodeAddPrefix0, agentCodeRemovePrefix0, pageToTop } from 'src/app/utils/utils';\nimport { CdStepperComponent } from 'src/app/shared/cd-stepper/cd-stepper.component';\nimport { UserExitEditmodePopComponent } from '../user-exit-editmode-pop/user-exit-editmode-pop.component';\nimport { CdStepComponent } from 'src/app/shared/cd-stepper/cd-step/cd-step.component';\n\ninterface Delegation {\n isSelected?: boolean;\n employerId: string;\n employerName: string;\n employerNameTC: string;\n groupNum: number;\n numOfEmployee: number;\n noOfEmployeeDelegated: number;\n delegatedAgents?: { agentCode: string; name: string; nameTC: string }[];\n}\n\nenum SelfRouter {\n employerList,\n change,\n changeSummary,\n}\n\ninterface CustomerServiceEmployerResponse {\n content: {\n employerId: string;\n employerName: string;\n employerNameTC: string;\n employerNo: number;\n employeeAmt: number;\n delegateAmt: number;\n delegatedIsEligible: number;\n delegateAgentInfo: { agentCode: string; name: string; nameTC: string }[];\n }[];\n empty: boolean;\n first: boolean;\n last: boolean;\n number: number;\n numberOfElements: number;\n pageable: {\n pageNumber: number;\n pageSize: number;\n offset: number;\n paged: boolean;\n unpaged: boolean;\n };\n size: number;\n totalElements: number;\n totalPages: number;\n}\n\ninterface DelegateInfo {\n isSeleted: boolean;\n agentCode: string;\n agentName: string;\n agentNameTC: string;\n couldUpdateDelegateAmt: number;\n newDelegatedAgentCode: string;\n newDelegatedAgentCodeIsValidator: boolean;\n newDelegatedAgentName: string;\n newDelegatedAgentNameTC: string;\n selectReasonCodeOfChange: number;\n inputReasonOfChange: string;\n isShowMissReason: boolean;\n isShowMissAgentCode: boolean;\n}\n\ntype Language = 'EN' | 'TC';\n\ninterface EmployerQueryParams {\n employerName: string;\n employerNo: string;\n delegateAgentCode: string;\n page: number;\n size: number;\n language: Language;\n sort: string;\n}\n\ninterface EmployersValidationParam {\n employerId: string;\n data: {\n oldAgentCode: string;\n targetAgentCode: string;\n reason: {\n code: number;\n message: string;\n };\n }[];\n}\n\nexport interface DelegatedAgentsResponseData {\n isExpend: boolean;\n employerInfo: {\n id: string;\n employerNo: string;\n employerName: string;\n employerNameTC: string;\n delegateAmt: number;\n delegatedIsEligible: number;\n };\n delegateInfos: DelegateInfo[];\n unavailable: {\n oldAgent: {\n nameTC: string;\n name: string;\n agentCode: string;\n };\n targetAgent: {\n nameTC: string;\n name: string;\n agentCode: string;\n };\n delegatedAmt: number;\n }[];\n}\n\n@Component({\n selector: 'app-er-delegation-change',\n templateUrl: './er-delegation-change.component.html',\n styleUrls: ['./er-delegation-change.component.scss'],\n})\nexport class ErDelegationChangeComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('stepper') stepper!: CdStepperComponent;\n @ViewChildren('step') stepList!: QueryList;\n @ViewChildren('newDelegatedAgent')\n newDelegatedAgentInputList!: QueryList;\n @ViewChildren('tooltip') tooltipList!: QueryList>;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n SelfRouter = SelfRouter;\n currentSite: SelfRouter = SelfRouter.employerList;\n subscriptionList: Subscription[] = [];\n resetTable = false;\n agentCodeErrMsg = '';\n\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n buttonDownIcon = ActionIcons.button_down;\n buttonRightIcon = ActionIcons.button_right;\n rightArrowIcon = ArrowIcons.right;\n reloadIcon = ArrowIcons.reload;\n\n infoIcon = ActionIcons.info_1;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n\n displayedColumns: string[] = ['isSelected', 'employerName', 'groupNum', 'numOfEmployee', 'noOfEmployeeDelegated', 'delegatedAgents'];\n\n allPageData: Delegation[][] = [];\n currentPageNumOrigin = 1;\n totalRecords = 0;\n employerQueryParams: EmployerQueryParams = {\n employerName: '',\n employerNo: '',\n delegateAgentCode: '',\n page: 1,\n size: 10,\n language: 'EN',\n sort: 'employerName asc',\n };\n isShowProgress = false;\n\n reasonOfAgentChangeConfig: CdsDropdownConfig = {\n label: '',\n placeholder: 'Select reason of change',\n options: [\n { label: 'Customer complaint', value: 1 },\n { label: 'Agent termination', value: 2 },\n { label: 'Performance issue', value: 3 },\n { label: 'Wrong agent code', value: 4 },\n { label: 'Others', value: 5 },\n ],\n };\n\n primaryButtonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n };\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'secondary',\n };\n\n updateDelegationDelegatedAgentsData: DelegatedAgentsResponseData[] = [];\n\n newDelegatedAgentNameSummary = '';\n newDelegatedAgentNameTCSummary = '';\n newDelegatedAgentCodeSummary = '';\n newDelegatedAgentCodeSummaryIsValidator = false;\n reasonCodeOfAgentChangeControlSummary = -1;\n theOtherReasonOfChangeSummary = '';\n\n editedDelegationDelegatedAgentsData: DelegatedAgentsResponseData[] = [];\n editedDelegationDelegatedAgentsDataPage = 1;\n stepperTarget: 'pc' | 'ipad' = 'pc';\n\n private employersSubmitParam: EmployersValidationParam[] = [];\n\n private delegationEmployerQueryUrl = '/ext/eb-ssms/customer-service/delegation/employer/query';\n private addDelegationValidate = '/ext/eb-ssms/customer-service/add-delegation/validate';\n private delegatedAgentsQuery = '/ext/eb-ssms/customer-service/update-delegation/delegated-agents/query';\n private employersValidation = '/ext/eb-ssms/customer-service/update-delegation/employers/validation';\n private employersSubmit = '/ext/eb-ssms/customer-service/update-delegation/employers/submit';\n\n stepperItems = [\n { en: 'Select Item(s)', zh: '選擇項目' },\n { en: 'Fill agent code', zh: '輸入代理人編碼' },\n { en: 'Select Reason', zh: '選擇原因' },\n { en: 'Add code to selected item(s)', zh: '新增編號至已選項目' },\n { en: 'Submission', zh: '提交' },\n ];\n\n constructor(\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private languageChangeService: LanguageChangeService,\n private alert: CdsAlertService,\n private cdsPopup: CdsPopupService\n ) {}\n\n ngOnInit() {\n this.subscriptionList.push(\n this.languageChangeService.lanSubject.subscribe(lan => {\n this.employerQueryParams.language = lan === 'en' ? 'EN' : 'TC';\n })\n );\n this.employerQuery();\n }\n\n ngAfterViewInit() {\n const stopPropagation = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n this.tooltipList.changes.subscribe(() => {\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.removeEventListener('click', stopPropagation, false);\n });\n\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.addEventListener('click', stopPropagation, false);\n });\n });\n\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.addEventListener('click', stopPropagation, false);\n });\n\n if (window.matchMedia('only screen and (max-width: 1500px)').matches) {\n this.stepperTarget = 'ipad';\n } else {\n this.stepperTarget = 'pc';\n }\n }\n\n ngOnDestroy() {\n this.subscriptionList.forEach(element => {\n element.unsubscribe();\n });\n }\n\n asyncAgentCodeValidate(\n delegateItem?:\n | {\n newDelegatedAgentCodeIsValidator: boolean;\n newDelegatedAgentName: string;\n newDelegatedAgentNameTC: string;\n }\n | DelegateInfo\n ) {\n return (agentCode: string): Observable | null => {\n if (agentCode && agentCode.length !== 6) {\n if (delegateItem) {\n delegateItem.newDelegatedAgentCodeIsValidator = false;\n delegateItem.newDelegatedAgentName = '';\n delegateItem.newDelegatedAgentNameTC = '';\n }\n return of('agentCode.lengthShouldBe6');\n }\n\n if (!agentCode) {\n if (delegateItem) {\n delegateItem.newDelegatedAgentCodeIsValidator = false;\n delegateItem.newDelegatedAgentName = '';\n delegateItem.newDelegatedAgentNameTC = '';\n\n if ('isShowMissReason' in delegateItem) {\n this.delegateInfoValidate(delegateItem);\n }\n }\n return null;\n }\n\n agentCode = agentCodeRemovePrefix0(agentCode);\n\n return this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>(this.addDelegationValidate, { agentCode })\n .pipe(\n map(res => {\n if (res.data.errorCode) {\n if (delegateItem) {\n delegateItem.newDelegatedAgentCodeIsValidator = false;\n delegateItem.newDelegatedAgentName = '';\n delegateItem.newDelegatedAgentNameTC = '';\n }\n return this.agentCodeTransfer(res.data.errorCode);\n } else {\n if (delegateItem) {\n delegateItem.newDelegatedAgentCodeIsValidator = true;\n delegateItem.newDelegatedAgentName = res.data.name;\n delegateItem.newDelegatedAgentNameTC = res.data.chineseName;\n\n if ('isShowMissReason' in delegateItem) {\n this.delegateInfoValidate(delegateItem);\n }\n }\n return null;\n }\n })\n );\n };\n }\n\n agentCodeTransfer(errorCode: number) {\n let agentCodeCheckResultByLan = '';\n if (errorCode === 2101) {\n agentCodeCheckResultByLan = 'agentCode.notExists';\n } else if (errorCode === 2102) {\n agentCodeCheckResultByLan = 'agentCode.inactiveAgent';\n } else if (errorCode === 2103) {\n agentCodeCheckResultByLan = 'agentCode.agentIsNotInSameDistinct';\n } else if (errorCode === 2199) {\n agentCodeCheckResultByLan = 'agentCode.lengthShouldBe6';\n } else if (errorCode === 21031) {\n agentCodeCheckResultByLan = 'agentCode.notHaveLicense';\n }\n return agentCodeCheckResultByLan;\n }\n\n private employerQuery() {\n return new Promise(resolve => {\n this.isShowProgress = true;\n\n this.employerQueryParams.employerName = this.employerQueryParams.employerName.trim();\n this.employerQueryParams.employerNo = this.employerQueryParams.employerNo.trim();\n this.employerQueryParams.delegateAgentCode = this.employerQueryParams.delegateAgentCode.trim();\n\n this.cdHttpServeService\n .post(this.delegationEmployerQueryUrl, {\n ...this.employerQueryParams,\n isCoolingPeriod: 'N',\n showEligibleDelegatedZero: 'N',\n isDelegated: 'Y',\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n console.warn('Waring!', `${res.message} ${res.data}`);\n this.alert.warning('Warning!', `${res.message} ${res.data}`);\n this.totalRecords = 0;\n } else {\n const totalPages = res.data.totalPages;\n const currentAllPageData = this.allPageData.length;\n if (totalPages > currentAllPageData) {\n for (let i = 0; i < totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - totalPages; i++) {\n this.allPageData.pop();\n }\n }\n\n this.totalRecords = res.data.totalElements;\n this.currentPageNumOrigin = res.data.number;\n if (!res.data.empty) {\n this.allPageData[this.currentPageIndex] = res.data.content.map((item, index) => {\n const delegation: Delegation = {\n isSelected: false,\n employerId: item.employerId,\n employerName: item.employerName,\n employerNameTC: item.employerNameTC,\n groupNum: item.employerNo,\n numOfEmployee: item.employeeAmt,\n noOfEmployeeDelegated: item.delegatedIsEligible,\n };\n if (item.delegateAgentInfo) {\n delegation.delegatedAgents = item.delegateAgentInfo.map(a => {\n a.agentCode = agentCodeAddPrefix0(a.agentCode);\n return a;\n });\n }\n const oldItemPageData = this.allPageData[this.currentPageIndex];\n if (oldItemPageData.length > 0) {\n delegation.isSelected = oldItemPageData[index].isSelected;\n }\n return delegation;\n });\n }\n }\n\n this.isShowProgress = false;\n resolve();\n },\n error: error => {\n console.error('error---', error);\n this.alert.error('Error!', error);\n this.totalRecords = 0;\n this.isShowProgress = false;\n resolve();\n },\n });\n });\n }\n\n onBack() {\n this.router.navigate(['agent/employer-history']);\n }\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n private popupWaring(cb: () => void) {\n const dialogRef = this.cdsPopup.open(CdWarningPopupComponent, {\n data: {\n title: 'delegationChange.alertDialogWaring',\n buttons: [\n {\n style: 'secondary',\n size: 'sm',\n text: 'confirmation.cancel',\n cb: () => {\n dialogRef.close();\n },\n },\n {\n style: 'primary',\n size: 'sm',\n text: 'delegationChange.continue',\n cb: () => {\n dialogRef.close();\n cb();\n },\n },\n ],\n },\n });\n }\n\n search() {\n this.popupWaring(() => {\n this.clearAllPageData();\n this.employerQueryParams.page = 1;\n this.employerQuery();\n this.onResetTable();\n });\n }\n\n reset() {\n this.popupWaring(() => {\n this.clearAllPageData();\n this.employerQueryParams.employerName = '';\n this.employerQueryParams.employerNo = '';\n this.employerQueryParams.delegateAgentCode = '';\n this.employerQueryParams.page = 1;\n this.employerQuery();\n this.onResetTable();\n });\n }\n\n onSortChange(event: Sort) {\n let active;\n switch (event.active) {\n case 'employerName':\n active = 'employerName';\n break;\n case 'groupNum':\n active = 'employerNo';\n break;\n case 'numOfEmployee':\n active = 'employeeAmt';\n break;\n case 'noOfEmployeeDelegated':\n active = 'delegatedIsEligible';\n break;\n default:\n active = 'employerName';\n break;\n }\n\n this.employerQueryParams.sort = `${active} ${event.direction}`;\n this.employerQueryParams.page = 1;\n this.clearAllPageData();\n this.employerQuery();\n }\n\n private clearAllPageData() {\n this.allPageData = [];\n }\n\n delegationChangeListIsHalfChecked() {\n const isAllChecked = this.delegationChangeListIsAllChecked();\n const isAllUnChecked = this.currentPageData.every(item => !item.isSelected);\n\n return !isAllChecked && !isAllUnChecked;\n }\n\n onAllCheckedChange(boo: boolean) {\n this.currentPageData.forEach(element => {\n element.isSelected = boo;\n });\n }\n\n onRowCheckOfDelegationChangeList(boo: boolean, element: Delegation) {\n element.isSelected = boo;\n }\n\n delegationChangeListIsAllChecked() {\n return this.currentPageData.every(item => item.isSelected);\n }\n\n onPageChange(goPage: number) {\n if (this.employerQueryParams.page === goPage) {\n return;\n }\n\n this.employerQueryParams.page = goPage;\n this.employerQuery();\n }\n\n get isDisabledContinue() {\n return this.getTotalCheckedNumber === 0;\n }\n\n get getTotalCheckedNumber() {\n let total = 0;\n\n this.allPageData.forEach(itemPage => {\n itemPage.forEach(delegation => {\n if (delegation.isSelected) {\n total++;\n }\n });\n });\n\n return total;\n }\n\n onGoChange() {\n if (!this.isDisabledContinue) {\n this.stickyBarDataReset();\n this.updateDelegationDelegatedAgentsData = [];\n this.updateDelegationDelegatedAgentsQuery();\n this.currentSite = SelfRouter.change;\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n this.stepper.setFinishStep(1);\n }, 0);\n }\n }\n\n onBackToEmployerList() {\n this.clearAllCheckFroEmployerList();\n this.currentSite = SelfRouter.employerList;\n }\n\n private clearAllCheckFroEmployerList() {\n this.allPageData.forEach(itemPage => {\n itemPage.forEach(element => {\n element.isSelected = false;\n });\n });\n }\n\n getGoEEPath(employerId: string, employerName: string, employerNameTC: string) {\n const employerNameParam = employerName ? employerName : '';\n const employerNameParamTC = employerNameTC ? employerNameTC : '';\n return (\n '/agent/employee-delegation-change/' +\n employerId +\n '?en=' +\n encodeURI(specialCharacter(employerNameParam)) +\n '&zh=' +\n encodeURI(specialCharacter(employerNameParamTC))\n );\n }\n\n toggleExpand(data: DelegatedAgentsResponseData) {\n data.isExpend = !data.isExpend;\n }\n\n addToItem() {\n if (this.disableAddToItem) {\n return;\n }\n\n if (this.newDelegatedAgentCodeSummary && this.newDelegatedAgentCodeSummary.length !== 6) {\n this.agentCodeErrMsg = 'agentCode.lengthShouldBe6';\n return;\n }\n\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>(this.addDelegationValidate, {\n agentCode: agentCodeRemovePrefix0(this.newDelegatedAgentCodeSummary),\n })\n .subscribe(res => {\n if (res.data.errorCode) {\n this.agentCodeErrMsg = this.agentCodeTransfer(res.data.errorCode);\n } else {\n this.updateDelegationDelegatedAgentsData.forEach(data => {\n data.delegateInfos\n .filter(item => item.isSeleted)\n .forEach(element => {\n element.newDelegatedAgentCode = this.newDelegatedAgentCodeSummary;\n element.newDelegatedAgentCodeIsValidator = true;\n element.newDelegatedAgentName = res.data.name;\n element.newDelegatedAgentNameTC = res.data.chineseName;\n element.selectReasonCodeOfChange = this.reasonCodeOfAgentChangeControlSummary;\n element.inputReasonOfChange = this.theOtherReasonOfChangeSummary;\n\n this.delegateInfoValidate(element);\n\n element.isSeleted = false;\n });\n });\n\n this.newDelegatedAgentCodeSummary = '';\n this.reasonCodeOfAgentChangeControlSummary = -1;\n this.newDelegatedAgentNameSummary = '';\n this.newDelegatedAgentNameTCSummary = '';\n this.newDelegatedAgentCodeSummaryIsValidator = false;\n\n this.refreshStep();\n\n this.agentCodeErrMsg = '';\n }\n });\n }\n\n private updateDelegationDelegatedAgentsQuery() {\n const list: string[] = [];\n this.allPageData.forEach(itemPage => {\n itemPage.forEach(element => {\n if (element.isSelected) {\n list.push(element.employerId);\n }\n });\n });\n this.cdHttpServeService.post(this.delegatedAgentsQuery, list).subscribe({\n next: res => {\n if (res.result !== 0) {\n console.warn('Waring!', `${res.message} ${res.data}`);\n this.alert.warning('Warning!', `${res.message} ${res.data}`);\n } else {\n this.updateDelegationDelegatedAgentsData = res.data.map((item): DelegatedAgentsResponseData => {\n item.delegateInfos = item.delegateInfos || [];\n item.unavailable = item.unavailable || [];\n const temp: DelegatedAgentsResponseData = {\n isExpend: true,\n employerInfo: item.employerInfo,\n delegateInfos: item.delegateInfos.map(info => {\n info.agentCode = agentCodeAddPrefix0(info.agentCode);\n return Object.assign({}, info, {\n isSeleted: false,\n newDelegatedAgentCode: '',\n newDelegatedAgentCodeIsValidator: false,\n selectReasonCodeOfChange: -1,\n inputReasonOfChange: '',\n isShowMissReason: false,\n isShowMissAgentCode: false,\n });\n }),\n unavailable: item.unavailable.map(u => {\n u.oldAgent.agentCode = agentCodeAddPrefix0(u.oldAgent.agentCode);\n u.targetAgent.agentCode = agentCodeAddPrefix0(u.targetAgent.agentCode);\n return u;\n }),\n };\n return temp;\n });\n }\n },\n error: error => {\n console.error('error---', error);\n this.alert.error('Error!', error);\n },\n });\n }\n\n updateDelegatedAgentsAllChecked(data: DelegatedAgentsResponseData, val: boolean) {\n data.delegateInfos.forEach(element => {\n this.delegateItemSeleted(element, val);\n });\n }\n\n isDelegatedAgentsAllChecked(data: DelegatedAgentsResponseData) {\n return data.delegateInfos && data.delegateInfos.length > 0 && data.delegateInfos.every(item => item.isSeleted);\n }\n\n isDelegatedAgentsHalfChecked(data: DelegatedAgentsResponseData) {\n return !data.delegateInfos.every(item => item.isSeleted) && !data.delegateInfos.every(item => !item.isSeleted);\n }\n\n get disabledNewDelegatedAgentCodeInput() {\n let result = true;\n for (const data of this.updateDelegationDelegatedAgentsData) {\n for (const element of data.delegateInfos) {\n if (element.isSeleted) {\n result = false;\n break;\n }\n }\n }\n return result;\n }\n\n get disableReasonOfAgentChangeDropdown() {\n return !(this.newDelegatedAgentCodeSummary.length > 0 && !this.disabledNewDelegatedAgentCodeInput);\n }\n\n get disableAddToItem() {\n return (\n !this.newDelegatedAgentCodeSummary ||\n this.newDelegatedAgentCodeSummary.length === 0 ||\n this.reasonCodeOfAgentChangeControlSummary === -1 ||\n !this.updateDelegationDelegatedAgentsData.some(data => data.delegateInfos.some(element => element.isSeleted))\n );\n }\n\n get disableReset() {\n return !(\n this.newDelegatedAgentCodeSummary.trim().length > 0 ||\n this.reasonCodeOfAgentChangeControlSummary ||\n !this.disabledNewDelegatedAgentCodeInput ||\n this.updateDelegationDelegatedAgentsData.some(data =>\n data.delegateInfos.some(\n element => element.newDelegatedAgentCode.length > 0 || element.inputReasonOfChange.length > 0 || element.selectReasonCodeOfChange > 0\n )\n )\n );\n }\n\n get disableSubmit() {\n let boo = false;\n this.updateDelegationDelegatedAgentsData.forEach(data => {\n data.delegateInfos.forEach(element => {\n if (element.newDelegatedAgentCode.length > 0 && !element.newDelegatedAgentCodeIsValidator) {\n boo = true;\n }\n });\n });\n if (boo) {\n return true;\n }\n\n this.updateDelegationDelegatedAgentsData.forEach(data => {\n data.delegateInfos.forEach(element => {\n if (!this.delegateInfoValidate(element, false)) {\n boo = true;\n }\n });\n });\n\n if (!boo) {\n boo = !this.updateDelegationDelegatedAgentsData.some(data =>\n data.delegateInfos.some(\n element =>\n element.newDelegatedAgentCode.length === 6 &&\n element.newDelegatedAgentCodeIsValidator &&\n ((element.selectReasonCodeOfChange === 5 && element.inputReasonOfChange.length > 0) ||\n (element.selectReasonCodeOfChange > 0 && element.selectReasonCodeOfChange !== 5))\n )\n );\n }\n\n return boo;\n }\n\n resetDelegationChange() {\n if (this.disableReset) {\n return;\n }\n\n const popupRef: MatDialogRef = this.cdsPopup.open(UserExitEditmodePopComponent, {});\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.newDelegatedAgentInputList.forEach(element => {\n element.clearErrorInfo();\n });\n\n this.stickyBarDataReset();\n this.updateDelegationDelegatedAgentsData.forEach(data => {\n data.delegateInfos.forEach(element => {\n element.isSeleted = false;\n element.newDelegatedAgentCode = '';\n element.newDelegatedAgentCodeIsValidator = false;\n element.newDelegatedAgentName = '';\n element.newDelegatedAgentNameTC = '';\n element.selectReasonCodeOfChange = -1;\n element.inputReasonOfChange = '';\n element.isShowMissReason = false;\n element.isShowMissAgentCode = false;\n });\n });\n\n this.stepper.removeLightsOutStep(3);\n this.stepper.removeLightsOutStep(4);\n this.refreshStep();\n }\n });\n }\n\n private stickyBarDataReset() {\n this.newDelegatedAgentNameSummary = '';\n this.newDelegatedAgentNameTCSummary = '';\n this.newDelegatedAgentCodeSummary = '';\n this.newDelegatedAgentCodeSummaryIsValidator = false;\n this.reasonCodeOfAgentChangeControlSummary = -1;\n this.theOtherReasonOfChangeSummary = '';\n }\n\n onNewDelegatedAgentCodeSummaryChange(val: string) {\n if (val.length === 0) {\n this.agentCodeErrMsg = '';\n }\n this.refreshStep();\n\n // const tempInfo = {\n // newDelegatedAgentCodeIsValidator: false,\n // newDelegatedAgentName: '',\n // newDelegatedAgentNameTC: '',\n // };\n // const validate = this.asyncAgentCodeValidate(tempInfo)(val);\n // if (validate) {\n // validate.subscribe(() => {\n // this.newDelegatedAgentCodeSummaryIsValidator =\n // tempInfo.newDelegatedAgentCodeIsValidator;\n // this.newDelegatedAgentNameSummary = tempInfo.newDelegatedAgentName;\n // this.newDelegatedAgentNameTCSummary = tempInfo.newDelegatedAgentNameTC;\n // this.refreshStep();\n // });\n // } else {\n // this.newDelegatedAgentCodeSummaryIsValidator =\n // tempInfo.newDelegatedAgentCodeIsValidator;\n // this.newDelegatedAgentNameSummary = tempInfo.newDelegatedAgentName;\n // this.newDelegatedAgentNameTCSummary = tempInfo.newDelegatedAgentNameTC;\n // this.refreshStep();\n // }\n }\n\n delegateItemSeleted(delegateItem: DelegateInfo, event: boolean) {\n delegateItem.isSeleted = event;\n\n this.refreshStep();\n }\n\n reasonOfAgentChangeControlSummaryChange(val: number) {\n if (!val || this.reasonCodeOfAgentChangeControlSummary === val) {\n return;\n }\n\n this.reasonCodeOfAgentChangeControlSummary = val;\n\n if (val === 5) {\n const dialogRef = this.cdsPopup.open(AddToItemComponent);\n dialogRef.afterClosed().subscribe(result => {\n if (result != undefined) {\n if (typeof result === 'string' && result.trim().length > 0) {\n this.theOtherReasonOfChange(result);\n }\n } else {\n this.reasonCodeOfAgentChangeControlSummary = -1;\n this.theOtherReasonOfChangeSummary = '';\n }\n this.refreshStep();\n });\n } else {\n this.refreshStep();\n }\n }\n\n private theOtherReasonOfChange(val: string) {\n this.theOtherReasonOfChangeSummary = val;\n\n // this.updateDelegationDelegatedAgentsData.forEach(data => {\n // data.delegateInfos\n // .filter(item => item.isSeleted)\n // .forEach(element => {\n // element.inputReasonOfChange = val;\n\n // this.delegateInfoValidate(element);\n // });\n // });\n }\n\n submit() {\n if (this.disableSubmit) {\n return;\n }\n\n this.editedDelegationDelegatedAgentsData = this.needUpdateDelegationDelegatedAgentsData(this.updateDelegationDelegatedAgentsData);\n this.employersSubmitParam = this.loadEmployersSubmitParam(this.editedDelegationDelegatedAgentsData);\n\n this.employersSubmitParam.forEach(emp => {\n emp.data.forEach(element => {\n element.oldAgentCode = agentCodeRemovePrefix0(element.oldAgentCode);\n element.targetAgentCode = agentCodeRemovePrefix0(element.targetAgentCode);\n });\n });\n\n this.cdHttpServeService.post(this.employersValidation, this.employersSubmitParam).subscribe({\n next: res => {\n if (res.result === 2100) {\n const { title, messages, errorCode } = updateDelegationEmpValiRespErrHandle(this.languageChangeService, res.data);\n\n if (errorCode && errorCode === 2104) {\n messages.forEach(msg => {\n this.alert.error(title, msg as string);\n });\n return;\n }\n\n if (errorCode && errorCode === 2103) {\n const delegatedAgentsBranchErrComponentRef = this.cdsPopup.open(AgentBranchPopComponent, {\n size: 'md',\n data: {\n list: messages,\n language: this.employerQueryParams.language,\n },\n });\n delegatedAgentsBranchErrComponentRef.afterClosed().subscribe(res => {\n if (res.agree) {\n this.currentSite = SelfRouter.changeSummary;\n pageToTop();\n }\n });\n return;\n }\n\n this.currentSite = SelfRouter.changeSummary;\n pageToTop();\n\n // const updatedSuccessfullyRef = this.cdsPopup.open(\n // CdWarningPopupComponent,\n // {\n // size: 'md',\n // data: {\n // title,\n // messages,\n // buttons: [\n // {\n // style: 'secondary',\n // size: 'sm',\n // text: 'confirmation.cancel',\n // cb: () => {\n // updatedSuccessfullyRef.close();\n // },\n // },\n // {\n // style: 'primary',\n // size: 'sm',\n // text: 'delegationChange.continue',\n // cb: () => {\n // updatedSuccessfullyRef.close();\n // this.currentSite = SelfRouter.changeSummary;\n // },\n // },\n // ],\n // },\n // }\n // );\n } else if (res.result === 0) {\n this.currentSite = SelfRouter.changeSummary;\n pageToTop();\n }\n },\n error: error => {\n console.error('error---', error);\n this.alert.error('Error!', error);\n },\n });\n }\n\n private loadEmployersSubmitParam(data: DelegatedAgentsResponseData[]): EmployersValidationParam[] {\n const params: EmployersValidationParam[] = [];\n data.forEach(element => {\n const itemParam: EmployersValidationParam = {\n employerId: element.employerInfo.id,\n data: [],\n };\n\n element.delegateInfos.forEach(delegate => {\n let message;\n if (delegate.selectReasonCodeOfChange === 5) {\n message = delegate.inputReasonOfChange;\n } else {\n message = this.getReasonOfChange(delegate.selectReasonCodeOfChange);\n }\n itemParam.data.push({\n oldAgentCode: delegate.agentCode,\n targetAgentCode: delegate.newDelegatedAgentCode,\n reason: {\n code: delegate.selectReasonCodeOfChange,\n message,\n },\n });\n });\n\n params.push(itemParam);\n });\n\n return params;\n }\n\n onBackChange() {\n this.currentSite = SelfRouter.change;\n setTimeout(() => {\n if (this.stepperTarget === 'ipad') {\n this.stepper.setStepList(this.stepList);\n }\n this.refreshStep();\n }, 0);\n }\n\n needUpdateDelegationDelegatedAgentsData(updateDelegationDelegatedAgentsData: DelegatedAgentsResponseData[]) {\n let cloneList = deepCopy(updateDelegationDelegatedAgentsData) as DelegatedAgentsResponseData[];\n cloneList.forEach(data => {\n data.delegateInfos = data.delegateInfos.filter(info => {\n return (\n info.newDelegatedAgentCode &&\n info.newDelegatedAgentCode.length > 0 &&\n info.selectReasonCodeOfChange > 0 &&\n ((info.selectReasonCodeOfChange === 5 && info.inputReasonOfChange.length > 0) || info.selectReasonCodeOfChange !== 5)\n );\n });\n });\n cloneList = cloneList.filter(item => item.delegateInfos.length > 0);\n cloneList.forEach(element => {\n element.isExpend = false;\n });\n return cloneList;\n }\n\n get editedDelegationDelegatedAgentsDataPageCount() {\n return Math.ceil(this.editedDelegationDelegatedAgentsData.length / 5);\n }\n\n get editedDelegationDelegatedAgentsShowData() {\n const startIndex = (this.editedDelegationDelegatedAgentsDataPage - 1) * 5;\n return this.editedDelegationDelegatedAgentsData.slice(startIndex, startIndex + 5);\n }\n\n editedDataPageChange(page: number) {\n this.editedDelegationDelegatedAgentsDataPage = page;\n }\n\n confirm() {\n const dialogRef = this.cdsPopup.open(CdWarningPopupComponent, {\n data: {\n title: 'delegationChange.confirmIn',\n buttons: [\n {\n style: 'secondary',\n size: 'sm',\n text: 'confirmation.cancel',\n cb: () => {\n dialogRef.close();\n },\n },\n {\n style: 'primary',\n size: 'sm',\n text: 'delegationChange.submit',\n cb: () => {\n dialogRef.close();\n\n this.onEmployersSubmit();\n\n const updatedSuccessfullyRef = this.cdsPopup.open(CdWarningPopupComponent, {\n data: {\n title: 'delegationChange.gotItInfo',\n buttons: [\n {\n style: 'primary',\n size: 'sm',\n text: 'confirmation.gotIt',\n cb: () => {\n updatedSuccessfullyRef.close();\n this.clearAllPageData();\n this.employerQueryParams.employerName = '';\n this.employerQueryParams.employerNo = '';\n this.employerQueryParams.delegateAgentCode = '';\n this.employerQueryParams.page = 1;\n this.employerQuery();\n this.router.navigate(['/agent/employer-history']);\n },\n },\n ],\n },\n });\n },\n },\n ],\n },\n });\n }\n\n onCanDelegateAmtToggle(event: MouseEvent) {\n if (event.target && this.stepperTarget === 'pc') {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n getReasonOfChange(reasonCode: number) {\n const option = this.reasonOfAgentChangeConfig.options.find(item => item.value === reasonCode);\n return option?.label || '';\n }\n\n onEmployersSubmit() {\n this.cdHttpServeService.post(this.employersSubmit, this.employersSubmitParam).subscribe({\n next: res => {\n console.log('onEmployersSubmit', res);\n },\n error: error => {\n console.error('error---', error);\n this.alert.error('Error!', error);\n },\n });\n }\n\n delegateInfoValidate(delegate: DelegateInfo, isAllowEdit = true) {\n if (\n delegate.newDelegatedAgentCode.length === 6 &&\n delegate.newDelegatedAgentCodeIsValidator &&\n !(\n (delegate.selectReasonCodeOfChange === 5 && delegate.inputReasonOfChange.length > 0) ||\n (delegate.selectReasonCodeOfChange > 0 && delegate.selectReasonCodeOfChange !== 5)\n )\n ) {\n if (isAllowEdit) {\n delegate.isShowMissReason = true;\n }\n return false;\n } else if (\n !(delegate.newDelegatedAgentCode.length === 6 && delegate.newDelegatedAgentCodeIsValidator) &&\n ((delegate.selectReasonCodeOfChange === 5 && delegate.inputReasonOfChange.length > 0) ||\n (delegate.selectReasonCodeOfChange > 0 && delegate.selectReasonCodeOfChange !== 5))\n ) {\n if (isAllowEdit) {\n delegate.isShowMissAgentCode = true;\n }\n return false;\n } else {\n if (isAllowEdit) {\n delegate.isShowMissReason = false;\n delegate.isShowMissAgentCode = false;\n }\n return true;\n }\n }\n\n private onResetTable() {\n this.resetTable = true;\n setTimeout(() => {\n this.resetTable = false;\n }, 0);\n }\n\n get updateDelegationSelectedTotal() {\n let total = 0;\n\n this.updateDelegationDelegatedAgentsData.forEach(element => {\n element.delegateInfos.forEach(delegate => {\n if (delegate.isSeleted) {\n total++;\n }\n });\n });\n\n return total;\n }\n\n private refreshStep() {\n let stepNum = 1;\n\n if (this.updateDelegationDelegatedAgentsData.some(element => element.delegateInfos.some(delegate => delegate.isSeleted))) {\n stepNum = 2;\n }\n\n if (stepNum === 2 && this.newDelegatedAgentCodeSummary.length > 0) {\n stepNum = 3;\n }\n\n if (stepNum === 3 && this.reasonCodeOfAgentChangeControlSummary > 0) {\n stepNum = 4;\n }\n\n if (!this.disableSubmit) {\n stepNum = 5;\n\n if (this.updateDelegationDelegatedAgentsData.some(element => element.delegateInfos.some(delegate => delegate.isSeleted))) {\n if (this.newDelegatedAgentCodeSummary.length === 0) {\n this.stepper.setLightsOutStep(3);\n } else {\n this.stepper.removeLightsOutStep(3);\n }\n if (this.reasonCodeOfAgentChangeControlSummary === -1) {\n this.stepper.setLightsOutStep(4);\n } else {\n this.stepper.removeLightsOutStep(4);\n }\n } else {\n this.stepper.removeLightsOutStep(3);\n this.stepper.removeLightsOutStep(4);\n }\n }\n\n this.stepper.setFinishStep(stepNum);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
\n
\n \n
\n \n {{ 'delegationChange.backToRequestStatusSummaryPage' | lang }}\n
\n {{ 'delegationChange.addDelegationChangeRequest' | lang }}\n
\n\n \n
\n \n {{ 'delegationChange.backToEmployerList' | lang }}\n
\n {{ 'delegationChange.addDelegationChangeRequest' | lang }}\n
\n\n {{ 'delegationChange.delegationChangeRequestSummary' | lang }}\n
\n\n \n
\n
\n {{ 'delegationChange.changeInfo' | lang }}\n
\n\n
\n
\n {{ 'delegationChange.searchRecord' | lang }}\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n {{ 'delegationChange.search' | lang }}\n {{ 'delegationChange.reset' | lang }}\n
\n
\n
\n\n
\n \n
\n
\n {{ 'delegationChange.delegationChangeRequestList' | lang }}\n\n {{ 'delegationChange.total' | lang }} {{ totalRecords }} {{ 'delegationChange.records' | lang }}\n\n \n\n
0 ? 'block' : 'none'\">\n
\n \n \n \n \n \n \n \n \n \n \n\n \n {{ 'delegationChange.employerName' | lang }}\n \n \n \n \n \n \n\n \n {{ 'delegationChange.groupNum' | lang }}\n \n \n {{ element.groupNum }}\n \n \n\n \n {{ 'delegationChange.numOfEmployee' | lang }}\n \n \n {{ element.numOfEmployee }}\n \n \n\n \n \n
\n {{ 'delegationChange.noOfEmployeeDelegated' | lang }}\n
\n \n
\n
\n
\n \n {{ element.noOfEmployeeDelegated }}\n \n
\n\n \n {{ 'delegationChange.delegatedAgents' | lang }}\n \n \n
\n
\n {{ item.agentCode }}\n {{ employerQueryParams.language === 'EN' ? (item.name ? item.name : item.nameTC) : item.nameTC ? item.nameTC : item.name }}\n
\n
\n \n
\n\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n {{ 'delegationChange.changeInfo' | lang }}\n
\n\n
\n {{ 'delegationChange.changeRequest' | lang }}\n\n
\n
\n
\n
\n {{ 'delegationChange.employerName' | lang }}\n
\n
\n {{ 'delegationChange.groupNo' | lang }}\n
\n
\n {{ 'delegationChange.noOfEmployeeDelegated' | lang }}\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n {{\n this.employerQueryParams.language === 'EN'\n ? data.employerInfo.employerName\n ? data.employerInfo.employerName\n : data.employerInfo.employerNameTC\n : data.employerInfo.employerNameTC\n ? data.employerInfo.employerNameTC\n : data.employerInfo.employerName\n }}\n
\n
\n {{ data.employerInfo.employerNo }}\n
\n
\n {{ data.employerInfo.delegateAmt }}\n
\n
\n
\n
\n {{ 'delegationChange.caseIsAlreadySubmitted1' | lang }}\n {{ un.oldAgent.agentCode }}\n {{ 'delegationChange.caseIsAlreadySubmitted2' | lang }}\n
\n\n
\n
\n
\n \n
\n
\n
\n {{ 'delegationChange.delegatedAgentChange' | lang }}\n
\n {{ 'delegationChange.existingDelegatedAgent' | lang }}\n {{ delegateItem.agentCode }}\n {{\n this.employerQueryParams.language === 'EN'\n ? delegateItem.agentName\n ? delegateItem.agentName\n : delegateItem.agentNameTC\n : delegateItem.agentNameTC\n ? delegateItem.agentNameTC\n : delegateItem.agentName\n }}\n
\n
\n \n
\n
\n {{ 'delegationChange.inputNewDelegatedAgentCode' | lang }}\n {{ delegateItem.newDelegatedAgentCode }}\n \n \n {{\n this.employerQueryParams.language === 'EN'\n ? delegateItem.newDelegatedAgentName\n ? delegateItem.newDelegatedAgentName\n : delegateItem.newDelegatedAgentNameTC\n : delegateItem.newDelegatedAgentNameTC\n ? delegateItem.newDelegatedAgentNameTC\n : delegateItem.newDelegatedAgentName\n }}\n \n {{ 'delegationChange.missingNewDelegatedAgentCode' | lang }}\n
\n
\n\n
\n {{ 'delegationChange.numOfEmployeeInvolved' | lang }}\n {{ delegateItem.couldUpdateDelegateAmt }}\n
\n\n
\n {{ 'delegationChange.reasonOfAgentChange' | lang }}\n
\n {{ getReasonOfChange(delegateItem.selectReasonCodeOfChange) }}\n \n
\n
\n\n
\n {{ delegateItem.inputReasonOfChange }}\n \n
\n {{ 'delegationChange.missingReasonCode' | lang }}\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n {{ 'delegationChange.changeSummaryInfo1' | lang }}\n {{ 'delegationChange.changeSummaryInfo2' | lang }}\n {{ 'delegationChange.changeSummaryInfo3' | lang }}\n
\n\n
\n {{ 'delegationChange.delegationChangeRequestSummary' | lang }}\n\n
\n
\n
\n
\n {{ 'delegationChange.employerName' | lang }}\n
\n
\n {{ 'delegationChange.groupNo' | lang }}\n
\n
\n {{ 'delegationChange.noOfEmployeeDelegated' | lang }}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n {{\n this.employerQueryParams.language === 'EN'\n ? data.employerInfo.employerName\n ? data.employerInfo.employerName\n : data.employerInfo.employerNameTC\n : data.employerInfo.employerNameTC\n ? data.employerInfo.employerNameTC\n : data.employerInfo.employerName\n }}\n
\n
\n {{ data.employerInfo.employerNo }}\n
\n
\n {{ data.employerInfo.delegateAmt }}\n
\n
\n
\n
\n
\n
\n
\n
\n {{ 'delegationChange.delegatedAgentChange' | lang }}\n
\n {{ 'delegationChange.existingDelegatedAgent' | lang }}\n {{ delegateItem.agentCode }}\n {{\n employerQueryParams.language === 'EN'\n ? delegateItem.agentName\n ? delegateItem.agentName\n : delegateItem.agentNameTC\n : delegateItem.agentNameTC\n ? delegateItem.agentNameTC\n : delegateItem.agentName\n }}\n
\n
\n \n
\n
\n {{ 'delegationChange.newDelegatedAgent' | lang }}\n {{ delegateItem.newDelegatedAgentCode }}\n \n {{\n this.employerQueryParams.language === 'EN'\n ? delegateItem.newDelegatedAgentName\n ? delegateItem.newDelegatedAgentName\n : delegateItem.newDelegatedAgentNameTC\n : delegateItem.newDelegatedAgentNameTC\n ? delegateItem.newDelegatedAgentNameTC\n : delegateItem.newDelegatedAgentName\n }}\n \n
\n
\n\n
\n {{ 'delegationChange.numOfEmployeeInvolved' | lang }}\n {{ delegateItem.couldUpdateDelegateAmt }}\n
\n\n
\n {{ 'delegationChange.reasonOfAgentChange' | lang }}\n
\n {{ delegateItem.inputReasonOfChange }}\n {{\n getReasonOfChange(delegateItem.selectReasonCodeOfChange)\n }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
\n {{ 'backToEdit' | lang }}\n {{ 'confirm' | lang }}\n
\n
\n
\n\n \n
\n
\n {{ 'delegationChange.pleaseSelectRecordsToContinue' | lang }}\n
\n {{ getTotalCheckedNumber }} {{ 'delegationChange.itemsSelected' | lang }}\n {{ 'delegationChange.continue' | lang }}\n
\n
\n
\n\n \n
\n\n \n
\n \n \n {{\n employerQueryParams.language === 'EN' ? item['en'] : item['zh']\n }}\n \n \n\n
\n \n {{ 'employer.reset' | lang }}\n
\n
\n\n
\n
\n {{ updateDelegationSelectedTotal }} {{ 'employee.itemTotal' | lang }}\n
\n
\n {{ 'delegationChange.newDelegatedAgentCode' | lang }}\n
\n \n \n \n 0 && agentCodeErrMsg.length > 0\" class=\"error-info\" type=\"error\">\n
\n {{ agentCodeErrMsg | lang }}\n
\n
\n \n {{\n this.employerQueryParams.language === 'EN'\n ? newDelegatedAgentNameSummary\n ? newDelegatedAgentNameSummary\n : newDelegatedAgentNameTCSummary\n : newDelegatedAgentNameTCSummary\n ? newDelegatedAgentNameTCSummary\n : newDelegatedAgentNameSummary\n }}\n \n
\n
\n\n
\n {{ 'delegationChange.selectReasonOfChange' | lang }}\n \n \n
\n
\n {{ 'delegationChange.addToItem' | lang }}\n \n
\n
\n {{ 'delegationChange.submit' | lang }}\n
\n
\n
\n
\n \n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'gender',\n})\nexport class GenderPipe implements PipeTransform {\n transform(_value: string): string {\n let result = '';\n if (_value === 'M') {\n result = '男';\n } else if (_value === 'F') {\n result = '女';\n }\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'reasonOfChange',\n})\nexport class ReasonOfChangePipe implements PipeTransform {\n transform(_value: number, lan: string): unknown {\n let reasonOfChangeResult = '';\n if (lan === 'EN') {\n if (_value === 1) {\n reasonOfChangeResult = 'Customer complaint';\n } else if (_value === 2) {\n reasonOfChangeResult = 'Agent termination';\n } else if (_value === 3) {\n reasonOfChangeResult = 'Performance issue';\n } else if (_value === 4) {\n reasonOfChangeResult = 'Wrong agent code';\n } else if (_value === 5) {\n reasonOfChangeResult = 'Others';\n }\n } else {\n if (_value === 1) {\n reasonOfChangeResult = '客戶抱怨';\n } else if (_value === 2) {\n reasonOfChangeResult = '代理終止';\n } else if (_value === 3) {\n reasonOfChangeResult = '性能問題';\n } else if (_value === 4) {\n reasonOfChangeResult = '錯誤的代理代碼';\n } else if (_value === 5) {\n reasonOfChangeResult = '其他原因';\n }\n }\n return reasonOfChangeResult;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanLoad, Router, UrlTree } from '@angular/router';\n\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { CdWarningPopupComponent } from 'src/app/shared/cd-warning-popup/cd-warning-popup.component';\n\n@Injectable()\nexport class ScreenCheckService implements CanLoad {\n constructor(private cdsPopup: CdsPopupService, private router: Router, private authenticationService: AuthenticationService) {}\n\n canLoad(): boolean | Promise {\n return this.screenCheck();\n }\n\n private screenCheck(): boolean | Promise {\n const isMobile = window.matchMedia('only screen and (max-width: 760px)').matches || window.screen.width < 500;\n if (isMobile) {\n return new Promise(resolve => {\n this.cdsPopup.open(CdWarningPopupComponent, {\n size: 'md',\n data: {\n title: 'screen.largeScreenIsRecommended',\n isShowCloseIcon: true,\n // buttons: [\n // {\n // style: 'secondary',\n // size: 'sm',\n // text: 'logout.button',\n // cb: () => {\n // screenCheckRef.close();\n // this.logout();\n // resolve(this.router.createUrlTree(['/user/login']));\n // },\n // },\n // ],\n closeCallBack: () => {\n resolve(true);\n },\n },\n });\n });\n }\n return true;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { Subscription } from 'rxjs';\nimport { EmployeeDataService } from '../employee-summary/employee-data.service';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\n\n@Component({\n selector: 'app-search-in-employee-delegation',\n templateUrl: './search-in-employee-delegation.component.html',\n styleUrls: ['./search-in-employee-delegation.component.scss'],\n})\nexport class SearchInEmployeeDelegationComponent implements OnInit {\n ifshow = false;\n language = 'en';\n agevalue = '18-28';\n\n @Input() searchBtnDisableState = true;\n\n @Input() nameValue = '';\n @Input() numberValue = '';\n @Input() ageValue = '';\n @Input() gender = '';\n @Input() delegateAgentInfo = '';\n @Input() nameSearch = '名称';\n @Input() editModel = false;\n\n lanChangeSubscription?: Subscription;\n\n constructor(private employeeDataService: EmployeeDataService, private cdsLangService: CdsLangService, private languageChangeService: LanguageChangeService) {}\n\n ngOnInit(): void {\n this.language = this.cdsLangService.currentLang === 'en' ? 'EN' : 'TC';\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(languge => {\n this.language = languge === 'en' ? 'EN' : 'TC';\n });\n this.nameValue = this.employeeDataService.request.employeeName ? this.employeeDataService.request.employeeName : '';\n this.numberValue = this.employeeDataService.request.trusteeMbrId ? this.employeeDataService.request.trusteeMbrId : '';\n this.delegateAgentInfo = this.employeeDataService.request.delegateAgentCode ? this.employeeDataService.request.delegateAgentCode : '';\n this.gender = this.employeeDataService.request.gender ? this.employeeDataService.request.gender : '';\n this.genderControl.setValue(this.gender);\n this.ageValue = this.employeeDataService.request.ageStart + '-' + this.employeeDataService.request.ageEnd;\n this.ageFormControl.setValue(this.ageValue);\n }\n\n employeeNameTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'en' ? 'Employee Name' : '雇員名稱',\n type: 'text',\n maxlength: 20,\n color: 'ml',\n placeholder: this.language === 'en' ? 'Please input' : '輸入詳情',\n };\n\n numbersTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'en' ? 'Cert No' : '僱員編號',\n type: 'text',\n placeholder: this.language === 'en' ? 'Please input' : '輸入詳情',\n };\n\n delegateTxtfieldConfig: CdsTextfieldConfig = {\n label: this.language === 'en' ? 'Delegated Agent Code' : '委託代理編號',\n type: 'text',\n placeholder: this.language === 'en' ? 'Please input' : '輸入詳情',\n };\n\n ageFormControl: FormControl = new FormControl({ value: undefined, disabled: true });\n ageEnRangeDropdownConfig: CdsDropdownConfig = {\n label: 'Age Group',\n options: [\n { label: '18-25', value: '18-25' },\n { label: '26-35', value: '26-35' },\n { label: '36-45', value: '36-45' },\n { label: '46-55', value: '46-55' },\n { label: '56-65', value: '56-65' },\n { label: '66 or above', value: '66-' },\n ],\n placeholder: 'Select an option',\n color: 'ml',\n };\n\n ageZhRangeDropdownConfig: CdsDropdownConfig = {\n label: '年齡組別',\n options: [\n { label: '18-25', value: '18-25' },\n { label: '26-35', value: '26-35' },\n { label: '36-45', value: '36-45' },\n { label: '46-55', value: '46-55' },\n { label: '56-65', value: '56-65' },\n { label: '66以上', value: '66-' },\n ],\n placeholder: '選擇年齡組別',\n color: 'ml',\n };\n\n genderControl: FormControl = new FormControl({ value: undefined, disabled: true });\n genderEnDropdownConfig: CdsDropdownConfig = {\n label: 'Gender',\n options: [\n { label: 'Male', value: 'M' },\n { label: 'Female', value: 'F' },\n ],\n color: 'ml',\n placeholder: 'Select an option',\n };\n\n genderZhDropdownConfig: CdsDropdownConfig = {\n label: '性別',\n options: [\n { label: '男', value: 'M' },\n { label: '女', value: 'F' },\n ],\n color: 'ml',\n placeholder: '選擇性別',\n };\n\n employeeSearch(): void {\n return;\n }\n\n getTrimData(value: string): string {\n return value.replace(/^(\\s|\\xA0)+|(\\s|\\xA0)+$/g, '');\n }\n\n clearData(): void {}\n\n @Input() employeeButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n };\n\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n };\n\n @Input() searchPlaceHolder?: string;\n\n nameChange(result: string): void {\n this.searchBtnDisableState = false;\n this.nameValue = result;\n if (result == null || result == '') {\n this.nameValue = '';\n }\n this.checkData(result);\n }\n\n checkData(result: string): void {\n if (result == null || result == '') {\n if (this.nameValue == '' && this.numberValue == '' && this.ageValue == '' && this.gender == '' && this.delegateAgentInfo == '') {\n this.ifshow = false;\n this.searchBtnDisableState = true;\n }\n }\n }\n\n numberChange(result: string): void {\n this.searchBtnDisableState = false;\n this.numberValue = result;\n if (result == null || result == '') {\n this.numberValue = '';\n }\n this.checkData(result);\n }\n\n ageChange(result: string): void {\n this.searchBtnDisableState = false;\n this.ageValue = result;\n if (result == null || result == '') {\n this.ageValue = '';\n }\n this.checkData(result);\n }\n\n genderChange(result: string): void {\n this.searchBtnDisableState = false;\n this.gender = result;\n if (result == null || result == '') {\n this.gender = '';\n }\n this.checkData(result);\n }\n\n delegateAgentChange(result: string): void {\n this.searchBtnDisableState = false;\n this.delegateAgentInfo = result;\n if (result == null || result == '') {\n this.delegateAgentInfo = '';\n }\n this.checkData(result);\n }\n\n searchState(result: string): void {\n console.log(result);\n }\n}\n","
\n
\n \n\n \n
\n
\n \n\n \n
\n
\n \n \n
\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 { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { BranchAgentResponse } from './agent-branch-pop/branch-agent-response';\nimport { agentCodeAddPrefix0 } from 'src/app/utils/utils';\n\ntype ValiRespErrDataErrorCode = 2101 | 2102 | 2103 | 2104 | 21018 | 21017 | 21016 | 21015 | 21021 | 21020 | 21019;\n\nexport type ValiRespErrData =\n | ValiRespErrData2103\n | ValiRespErrData2104\n | ValiRespErrData2101\n | ValiRespErrData2102\n | ValiRespErrData21018\n | ValiRespErrData21017\n | ValiRespErrData21016\n | ValiRespErrData21015\n | ValiRespErrData21021\n | ValiRespErrData21020\n | ValiRespErrData21019;\n\ninterface ValiRespErrDataBase {\n errorCode: ValiRespErrDataErrorCode;\n employerInfo: {\n employerId: string;\n employerName: string;\n };\n agent: {\n agentCode: string;\n name: string;\n branchCode: string;\n };\n}\n\ninterface ValiRespErrData2103 extends ValiRespErrDataBase {\n errorCode: 2103;\n targetAgent: BranchAgentResponse;\n}\n\ninterface ValiRespErrData2104 extends ValiRespErrDataBase {\n errorCode: 2104;\n existAgents: {\n agentCode: string;\n name: string;\n chineseName: string;\n }[];\n limitAgent: number;\n}\n\ninterface ValiRespErrData2101 {\n errorCode: 2101;\n message: 'valiRespErrData2101';\n}\ninterface ValiRespErrData2102 {\n errorCode: 2102;\n message: 'ValiRespErrData2102';\n}\ninterface ValiRespErrData21018 {\n errorCode: 21018;\n message: 'valiRespErrData21018';\n}\ninterface ValiRespErrData21017 {\n errorCode: 21017;\n message: 'valiRespErrData21017';\n}\ninterface ValiRespErrData21016 {\n errorCode: 21016;\n message: 'valiRespErrData21016';\n}\ninterface ValiRespErrData21015 {\n errorCode: 21015;\n message: 'valiRespErrData21015';\n}\ninterface ValiRespErrData21021 {\n errorCode: 21021;\n message: 'valiRespErrData21021';\n}\ninterface ValiRespErrData21020 {\n errorCode: 21020;\n message: 'valiRespErrData21020';\n}\ninterface ValiRespErrData21019 {\n errorCode: 21019;\n message: 'valiRespErrData21019';\n}\n\nconst errorMessageMap = {\n 21019: 'valiRespErrData21019',\n 21020: 'valiRespErrData21020',\n 21021: 'valiRespErrData21021',\n 21015: 'valiRespErrData21015',\n 21016: 'valiRespErrData21016',\n 21017: 'valiRespErrData21017',\n 21018: 'valiRespErrData21018',\n 2102: 'ValiRespErrData2102',\n 2101: 'valiRespErrData2101',\n};\n\nexport function updateDelegationEmpValiRespErrHandle(languageChangeService: LanguageChangeService, dataList: ValiRespErrData[]) {\n const errInfo2103: BranchAgentResponse[] = [];\n const errInfo2104: string[] = [];\n const errInfoOther: string[] = [];\n\n dataList.forEach(data => {\n let errInfo;\n switch (data.errorCode) {\n case 2104:\n errInfo = `${data.employerInfo.employerName} ${languageChangeService.lang.translate('delegationChange.delegatedAgentMoreThanFour2')} ${\n data.limitAgent\n } ${languageChangeService.lang.translate('delegationChange.delegatedAgentMoreThanFour3')} ${data.existAgents\n .map(item => `${agentCodeAddPrefix0(item.agentCode)} ${languageChangeService.lang.currentLang === 'en' ? item.name : item.chineseName || item.name}`)\n .join(', ')}`;\n errInfo2104.push(errInfo);\n break;\n\n case 2103:\n if (data.targetAgent?.agentCode) {\n data.targetAgent.agentCode = agentCodeAddPrefix0(data.targetAgent.agentCode);\n }\n errInfo2103.push({\n agentCode: data.targetAgent.agentCode,\n branchCode: data.targetAgent.branchCode,\n chineseName: data.targetAgent.chineseName,\n name: data.targetAgent.name,\n });\n break;\n\n default:\n errInfoOther.push(languageChangeService.lang.translate(errorMessageMap[data.errorCode]));\n break;\n }\n });\n\n if (errInfo2103.length > 0) {\n return {\n title: 'branch.text',\n messages: errInfo2103,\n errorCode: 2103,\n };\n } else if (errInfo2104.length > 0) {\n return {\n title: 'delegationChange.delegatedAgentMoreThanFour',\n messages: errInfo2104,\n errorCode: 2104,\n };\n } else {\n return {\n title: '',\n messages: errInfoOther,\n };\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\n\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-user-confirm-pop',\n templateUrl: './user-confirm-pop.component.html',\n styleUrls: ['./user-confirm-pop.component.scss'],\n})\nexport class UserConfirmPopComponent implements OnInit {\n agreeButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: false,\n };\n disagreeButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n constructor(private dialogRef: MatDialogRef, public cdsLangService: CdsLangService) {}\n\n ngOnInit(): void {}\n agree() {\n this.dialogRef.close({ agree: true });\n }\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
\n
\n {{ 'confirmation.alertText1' | lang }}\n {{ 'confirmation.alertText2' | lang }}\n {{ cdsLangService.currentLang === 'en' ? '.' : '。' }}\n
\n
\n \n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { Subscription } from 'rxjs';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\n\n@Component({\n selector: 'app-user-exit-editmode-pop',\n templateUrl: './user-exit-editmode-pop.component.html',\n styleUrls: ['./user-exit-editmode-pop.component.scss'],\n})\nexport class UserExitEditmodePopComponent implements OnInit, OnDestroy {\n language = 'EN';\n lanSubscription?: Subscription;\n\n constructor(public languageChangeService: LanguageChangeService, private dialogRef: MatDialogRef) {}\n\n agreeButtonConfig: CdsButtonConfig = {\n label: this.language === 'EN' ? 'Confirm and Continue' : '確認繼續',\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n\n disagreeButtonConfig: CdsButtonConfig = {\n label: this.language === 'EN' ? 'Cancel' : '取消',\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n\n ngOnInit(): void {\n this.lanSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n }\n\n ngOnDestroy(): void {\n this.lanSubscription?.unsubscribe();\n }\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
\n
{{ 'leaveDelegatePopup.content' | lang }}
\n
\n \n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\n\n@Component({\n selector: 'app-user-success-submitted',\n templateUrl: './user-success-submitted.component.html',\n styleUrls: ['./user-success-submitted.component.scss'],\n})\nexport class UserSuccessSubmittedComponent implements OnInit, OnDestroy {\n language = 'EN';\n lanSubscription?: Subscription;\n agreeButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n constructor(private dialogRef: MatDialogRef, private languageChangeService: LanguageChangeService) {}\n\n ngOnInit(): void {\n this.lanSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n }\n\n ngOnDestroy(): void {\n this.lanSubscription?.unsubscribe();\n }\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n","export const I18N_KEY = {\n EFFECTIVE_DATE_FROM_INVALID: 'Please input a valid date',\n EFFECTIVE_DATE_TO_INVALID: 'Please input a valid date',\n};\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { Annuncement } from 'src/app/core/models/annuncement/annuncement.model';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { ScreenSizeService } from 'src/app/core/services/screen-size/screen-size.service';\nimport { addMinutesToTime, compareTime, datetimeRangeInvalidValidator, dateValidator, isSameOrAfterToday } from 'src/app/core/validators';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { ConfirmPopupComponent } from 'src/app/shared/confirm-popup/confirm-popup.component';\nimport { WillBeLostComponent } from 'src/app/shared/will-be-lost/will-be-lost.component';\nimport { pageToTop } from 'src/app/utils/utils';\nimport { I18N_KEY } from './announcement-details.component.config';\n\n@Component({\n selector: 'app-announcement-details',\n templateUrl: './announcement-details.component.html',\n styleUrls: ['./announcement-details.component.scss'],\n})\nexport class AnnouncementDetailsComponent implements OnInit, AfterViewInit, OnDestroy {\n currentAnnouncementId: number | null = null;\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backErIcon = ActionIcons.button_left_filled;\n effectiveDateFromMax = new Date('3000/01/01');\n effectiveTimeFromMax: number[] | null = null;\n effectiveDateFromMin = new Date();\n effectiveDateToMax = new Date('3000/01/01');\n effectiveDateToMin = new Date();\n effectiveTimeToMin: number[] | null = null;\n refreshTimePicker = false;\n\n defaultFormGroupValues: {\n effectiveDateFrom: string;\n effectiveTimeFrom: string;\n effectiveDateTo: string;\n effectiveTimeTo: string;\n announcementSubjectEng: string;\n announcementSubjectChi: string;\n announcementBodyEng: string;\n announcementBodyChi: string;\n } | null = null;\n formGroup!: FormGroup;\n\n get effectiveDateFrom() {\n return this.formGroup.get('effectiveDateFrom') as FormControl;\n }\n\n get effectiveTimeFrom() {\n return this.formGroup.get('effectiveTimeFrom') as FormControl;\n }\n\n get effectiveDateTo() {\n return this.formGroup.get('effectiveDateTo') as FormControl;\n }\n\n get effectiveTimeTo() {\n return this.formGroup.get('effectiveTimeTo') as FormControl;\n }\n\n get announcementSubjectEng() {\n return this.formGroup.get('announcementSubjectEng') as FormControl;\n }\n\n get announcementSubjectChi() {\n return this.formGroup.get('announcementSubjectChi') as FormControl;\n }\n\n get announcementBodyEng() {\n return this.formGroup.get('announcementBodyEng') as FormControl;\n }\n\n get announcementBodyChi() {\n return this.formGroup.get('announcementBodyChi') as FormControl;\n }\n\n get isChangedFormGroupValues() {\n if (this.defaultFormGroupValues) {\n if (\n !(\n this.defaultFormGroupValues.effectiveDateFrom === this.effectiveDateFrom.value &&\n this.defaultFormGroupValues.effectiveTimeFrom === this.effectiveTimeFrom.value &&\n this.defaultFormGroupValues.effectiveDateTo === this.effectiveDateTo.value &&\n this.defaultFormGroupValues.effectiveTimeTo === this.effectiveTimeTo.value &&\n this.defaultFormGroupValues.announcementSubjectEng === this.announcementSubjectEng.value &&\n this.defaultFormGroupValues.announcementSubjectChi === this.announcementSubjectChi.value &&\n this.defaultFormGroupValues.announcementBodyEng === this.announcementBodyEng.value &&\n this.defaultFormGroupValues.announcementBodyChi === this.announcementBodyChi.value\n )\n ) {\n return true;\n }\n }\n return false;\n }\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private router: Router,\n private route: ActivatedRoute,\n public cdf: ChangeDetectorRef,\n private cdsPopup: CdsPopupService,\n public notifyService: NotifyService,\n private langService: CdsLangService,\n public screenSizeService: ScreenSizeService\n ) {}\n\n private beforeunload = (event: BeforeUnloadEvent) => {\n if (this.isChangedFormGroupValues) {\n event.preventDefault();\n event.returnValue = '';\n }\n };\n\n private popstate = () => {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.router.navigate(['annuncement/announcement-center']);\n } else {\n history.pushState(null, '', document.URL);\n }\n });\n };\n\n ngOnDestroy(): void {\n window.removeEventListener('beforeunload', this.beforeunload);\n window.removeEventListener('popstate', this.popstate);\n }\n\n ngAfterViewInit(): void {\n pageToTop();\n }\n\n ngOnInit(): void {\n window.addEventListener('beforeunload', this.beforeunload);\n\n history.pushState(null, '', document.URL);\n window.addEventListener('popstate', this.popstate);\n\n this.currentAnnouncementId = Number(this.route.snapshot.paramMap.get('announcementId')) || null;\n if (this.currentAnnouncementId != null) {\n this.getOne(this.currentAnnouncementId);\n }\n\n this.defaultFormGroupValues = {\n effectiveDateFrom: '',\n effectiveTimeFrom: '00:00',\n effectiveDateTo: '',\n effectiveTimeTo: '23:59',\n announcementSubjectEng: '',\n announcementSubjectChi: '',\n announcementBodyEng: '',\n announcementBodyChi: '',\n };\n\n this.formGroup = new FormGroup(\n {\n effectiveDateFrom: new FormControl(this.defaultFormGroupValues.effectiveDateFrom, {\n validators: [\n Validators.required,\n dateValidator({ error: I18N_KEY.EFFECTIVE_DATE_TO_INVALID }),\n isSameOrAfterToday({ error: I18N_KEY.EFFECTIVE_DATE_TO_INVALID }),\n ],\n }),\n effectiveTimeFrom: new FormControl(this.defaultFormGroupValues.effectiveTimeFrom, {\n validators: [Validators.required],\n }),\n effectiveDateTo: new FormControl(this.defaultFormGroupValues.effectiveDateTo, {\n validators: [\n Validators.required,\n dateValidator({ error: I18N_KEY.EFFECTIVE_DATE_TO_INVALID }),\n isSameOrAfterToday({ error: I18N_KEY.EFFECTIVE_DATE_TO_INVALID }),\n ],\n }),\n effectiveTimeTo: new FormControl(this.defaultFormGroupValues.effectiveTimeTo, {\n validators: [Validators.required],\n }),\n announcementSubjectEng: new FormControl(this.defaultFormGroupValues.announcementSubjectEng, {\n validators: [Validators.required, Validators.maxLength(30)],\n }),\n announcementSubjectChi: new FormControl(this.defaultFormGroupValues.announcementSubjectChi, {\n validators: [Validators.required, Validators.maxLength(30)],\n }),\n announcementBodyEng: new FormControl(this.defaultFormGroupValues.announcementBodyEng, {\n validators: [Validators.required, Validators.maxLength(500)],\n }),\n announcementBodyChi: new FormControl(this.defaultFormGroupValues.announcementBodyChi, {\n validators: [Validators.required, Validators.maxLength(500)],\n }),\n },\n [\n datetimeRangeInvalidValidator('effectiveDateFrom', 'effectiveDateTo', 'effectiveTimeFrom', 'effectiveTimeTo', {\n dateError: 'Please input a valid date',\n timeError: 'Please input a valid time',\n }),\n ]\n );\n\n this.effectiveDateFrom.valueChanges.subscribe(val => {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.effectiveDateToMin = dateObject.toDate();\n }\n\n if (val === this.effectiveDateTo.value) {\n this.effectiveTimeToMin = this.effectiveTimeFrom.value.split(':').map(Number);\n this.effectiveTimeFromMax = this.effectiveTimeTo.value.split(':').map(Number);\n\n if (compareTime(this.effectiveTimeFrom.value, this.effectiveTimeTo.value) !== -1) {\n this.effectiveTimeTo.setValue(addMinutesToTime(this.effectiveTimeFrom.value, 1));\n }\n } else {\n this.effectiveTimeToMin = null;\n this.effectiveTimeFromMax = null;\n }\n });\n\n this.effectiveDateTo.valueChanges.subscribe(val => {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.effectiveDateFromMax = dateObject.toDate();\n }\n\n if (val === this.effectiveDateFrom.value) {\n this.effectiveTimeToMin = this.effectiveTimeFrom.value.split(':').map(Number);\n this.effectiveTimeFromMax = this.effectiveTimeTo.value.split(':').map(Number);\n\n if (compareTime(this.effectiveTimeFrom.value, this.effectiveTimeTo.value) !== -1) {\n this.effectiveTimeTo.setValue(addMinutesToTime(this.effectiveTimeFrom.value, 1));\n }\n } else {\n this.effectiveTimeToMin = null;\n this.effectiveTimeFromMax = null;\n }\n });\n\n this.effectiveTimeFrom.valueChanges.subscribe(val => {\n if (this.effectiveDateFrom.value === this.effectiveDateTo.value) {\n this.effectiveTimeToMin = val.split(':').map(Number);\n } else {\n this.effectiveTimeToMin = null;\n this.effectiveTimeFromMax = null;\n }\n });\n\n this.effectiveTimeTo.valueChanges.subscribe(val => {\n if (this.effectiveDateFrom.value === this.effectiveDateTo.value) {\n this.effectiveTimeFromMax = val.split(':').map(Number);\n } else {\n this.effectiveTimeToMin = null;\n this.effectiveTimeFromMax = null;\n }\n });\n\n this.announcementSubjectChi.valueChanges.subscribe(val => {\n const regex = /\\b[a-zA-Z]+\\b/g;\n const newVal = val.replace(regex, '');\n if (val !== newVal) {\n this.announcementSubjectChi.setValue(newVal);\n }\n });\n\n this.announcementBodyChi.valueChanges.subscribe(val => {\n const regex = /\\b[a-zA-Z]+\\b/g;\n const newVal = val.replace(regex, '');\n if (val !== newVal) {\n this.announcementBodyChi.setValue(newVal);\n }\n });\n\n this.announcementSubjectEng.valueChanges.subscribe(val => {\n const regex = /[\\u4e00-\\u9fa5]/g;\n const newVal = val.replace(regex, '');\n if (val !== newVal) {\n this.announcementSubjectEng.setValue(newVal);\n }\n });\n\n this.announcementBodyEng.valueChanges.subscribe(val => {\n const regex = /[\\u4e00-\\u9fa5]/g;\n const newVal = val.replace(regex, '');\n if (val !== newVal) {\n this.announcementBodyEng.setValue(newVal);\n }\n });\n }\n\n getOne(currentAnnouncementId: number) {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.get(`/ext/eb-ssms-sales-journey-service/announcement/cms/getOne/${currentAnnouncementId}`, null).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const [effectiveFromDateStr, effectiveFromTimeStr] = moment(res.data.effectiveFrom).format('DD/MM/YYYY HH:mm').split(' ');\n const [effectiveToDateStr, effectiveToTimeStr] = moment(res.data.effectiveTo).format('DD/MM/YYYY HH:mm').split(' ');\n\n this.defaultFormGroupValues = {\n effectiveDateFrom: effectiveFromDateStr,\n effectiveTimeFrom: effectiveFromTimeStr,\n effectiveDateTo: effectiveToDateStr,\n effectiveTimeTo: effectiveToTimeStr,\n announcementSubjectEng: res.data.announcementSubjectEng,\n announcementSubjectChi: res.data.announcementSubjectChi,\n announcementBodyEng: res.data.announcementBodyEng,\n announcementBodyChi: res.data.announcementBodyChi,\n };\n this.formGroup.reset(this.defaultFormGroupValues);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n onBack() {\n if (!this.isChangedFormGroupValues) {\n this.router.navigate(['annuncement/announcement-center']);\n } else {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.router.navigate(['annuncement/announcement-center']);\n }\n });\n }\n }\n\n reset() {\n if (!this.isChangedFormGroupValues) {\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.formGroup.reset(this.defaultFormGroupValues);\n this.effectiveDateFromMax = new Date('3000/01/01');\n this.effectiveTimeFromMax = null;\n this.effectiveDateFromMin = new Date();\n this.effectiveDateToMax = new Date('3000/01/01');\n this.effectiveDateToMin = new Date();\n this.effectiveTimeToMin = null;\n\n this.refreshTimePicker = true;\n setTimeout(() => {\n this.refreshTimePicker = false;\n }, 0);\n }\n });\n }\n\n submit() {\n if (!this.formGroup.valid || !this.isChangedFormGroupValues) {\n return;\n }\n\n this.effectiveDateFrom.markAsDirty();\n this.effectiveTimeFrom.markAsDirty();\n this.effectiveDateTo.markAsDirty();\n this.effectiveTimeTo.markAsDirty();\n this.announcementSubjectEng.markAsDirty();\n this.announcementSubjectChi.markAsDirty();\n this.announcementBodyEng.markAsDirty();\n this.announcementBodyChi.markAsDirty();\n\n const body = {\n announcementId: this.currentAnnouncementId,\n announcementSubjectEng: this.formGroup.value.announcementSubjectEng,\n announcementBodyEng: this.formGroup.value.announcementBodyEng,\n announcementSubjectChi: this.formGroup.value.announcementSubjectChi,\n announcementBodyChi: this.formGroup.value.announcementBodyChi,\n effectiveFrom: moment(this.formGroup.value.effectiveDateFrom + this.formGroup.value.effectiveTimeFrom, 'DD/MM/YYYYHH:mm:ss')\n .utcOffset(8)\n .format(),\n effectiveTo: moment(this.formGroup.value.effectiveDateTo + this.formGroup.value.effectiveTimeTo, 'DD/MM/YYYYHH:mm:ss')\n .utcOffset(8)\n .format(),\n };\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/announcement/cms/addOrEdit', body).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message:\n this.currentAnnouncementId != null\n ? this.langService.translate('common.action.message.update.success.italic')\n : this.langService.translate('common.action.messageCreateSuccess'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate(['annuncement/announcement-center']);\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n recallAnnouncement(announcementId: number) {\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: {\n message: 'annuncement.center.recallAnnouncementConfirm',\n },\n })\n .afterClosed()\n .subscribe(({ agree }) => {\n if (agree) {\n this.deleteAnnuncement(announcementId);\n }\n });\n }\n\n deleteAnnuncement(announcementId: number) {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/announcement/cms/delete', {\n announcementId: announcementId,\n deleted: 1,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.router.navigate(['annuncement/announcement-center']);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n}\n","
\n
\n
\n \n
\n Announcement Center \n
\n
\n
\n Create Announcement\n Edit Announcement\n
\n
\n
\n
\n Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut\n accusamus ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis.\n \n
\n\n
\n Announcement Details\n
\n\n
\n
\n Effective Date From\n \n \n {{\n 'Please input effective date from' | lang\n }}\n \n {{ effectiveDateFrom.errors?.['error'] | lang }}\n \n {{\n effectiveDateFrom.errors['dateError'] | lang\n }}\n
\n
\n Effective Time From\n \n {{\n formGroup.errors['timeError'] | lang\n }}\n
\n
\n Effective Date To\n \n \n {{\n 'Please input effective date to' | lang\n }}\n \n \n {{ effectiveDateTo.errors?.['error'] | lang }}\n \n
\n
\n Effective Time To\n \n {{\n formGroup.errors['timeError'] | lang\n }}\n
\n
\n\n
\n
\n Message Details\n
\n
\n English Version\n
\n
\n
\n English Announcement Subject\n
\n
\n {{ announcementSubjectEng.value.length }}/30\n
\n
\n
\n \n {{\n 'Please input english announcement subject' | lang\n }}\n {{\n 'Exceeds character limit' | lang\n }}\n
\n
\n
\n English Announcement Body\n
\n
\n {{ announcementBodyEng.value.length }}/500\n
\n
\n
\n
\n \n
\n {{\n 'Please input english announcement body' | lang\n }}\n {{\n 'Exceeds character limit' | lang\n }}\n
\n
\n
\n\n
\n
\n Chinese Version\n
\n
\n
\n Chinese Announcement Subject\n
\n
\n {{ announcementSubjectChi.value.length }}/30\n
\n
\n
\n \n {{\n 'Please input chinese announcement subject' | lang\n }}\n {{\n 'Exceeds character limit' | lang\n }}\n
\n
\n
\n Chinese Announcement Body\n
\n
\n {{ announcementBodyChi.value.length }}/500\n
\n
\n
\n
\n \n
\n {{\n 'Please input chinese announcement body' | lang\n }}\n {{\n 'Exceeds character limit' | lang\n }}\n
\n
\n\n
\n
\n \n
\n
\n Recall Announcement\n
\n
\n\n
\n Reset\n {{\n (currentAnnouncementId === null ? 'common.confirmAndSubmit' : 'common.confirmEdit') | lang\n }}\n
\n\n
\n {{\n (currentAnnouncementId === null ? 'common.confirmAndSubmit' : 'common.confirmEdit') | lang\n }}\n Reset\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AnnouncementDetailsComponent } from './announcement-details.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsSwitchModule } from '@cds/ng-web-components/switch';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\n\n@NgModule({\n declarations: [AnnouncementDetailsComponent],\n imports: [\n CommonModule,\n CdsButtonModule,\n SharedModule,\n CdsSwitchModule,\n FormsModule,\n ReactiveFormsModule,\n MatSlideToggleModule,\n CdsIconModule,\n CdsLanguageModule,\n CdsTextareaModule,\n CdsDatepickerModule,\n CdsAssistiveTextModule,\n ],\n})\nexport class AnnouncementDetailsModule {}\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { Observable } from 'rxjs';\nimport { Sort } from 'src/app/components/table/table-expand';\nimport { Annuncement } from 'src/app/core/models/annuncement/annuncement.model';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { ScreenSizeService } from 'src/app/core/services/screen-size/screen-size.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { ConfirmPopupComponent } from 'src/app/shared/confirm-popup/confirm-popup.component';\n\n@Component({\n selector: 'app-annuncement-center',\n templateUrl: './annuncement-center.component.html',\n styleUrls: ['./annuncement-center.component.scss'],\n})\nexport class AnnuncementCenterComponent implements OnInit, AfterViewInit {\n Sort = Sort;\n announcementCmsPageListReqeuest = {\n page: 1,\n size: 10,\n };\n currentPageNumOrigin = 1;\n allPageData: Annuncement[][] = [];\n totalElements = 0;\n totalPages = 0;\n formControl: FormControl = new FormControl(false);\n expandMap: { [key: number]: boolean } = {};\n isLoading = false;\n\n ngAfterViewInit() {}\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex] || [];\n }\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private router: Router,\n private cdsPopup: CdsPopupService,\n private notifyService: NotifyService,\n public screenSizeService: ScreenSizeService\n ) {}\n\n toggleContent(item: Annuncement) {\n this.expandMap[item.announcementId] = !this.expandMap[item.announcementId];\n }\n\n ngOnInit(): void {\n this.queryAnnouncementList();\n }\n\n onCreateAnnouncement() {\n this.router.navigate(['annuncement/announcement-details-create']);\n }\n\n queryAnnouncementList() {\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: Annuncement[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/announcement/cms/pageList', this.announcementCmsPageListReqeuest)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n res.data.content.forEach(element => {\n this.expandMap[element.announcementId] = false;\n });\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n pageChange(num: number): void {\n this.announcementCmsPageListReqeuest.page = num;\n this.queryAnnouncementList();\n }\n\n checkBefore(status: boolean | number) {\n return new Observable(observer => {\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: {\n message: status ? 'annuncement.center.turnOffConfirm' : 'annuncement.center.turnOnConfirm',\n },\n })\n .afterClosed()\n .subscribe(({ agree }) => {\n observer.next(agree);\n });\n return () => {};\n });\n }\n\n updateAnnouncementStatus(annuncement: Annuncement) {\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/announcement/cms/updateStatus', {\n announcementId: annuncement.announcementId,\n status: annuncement.status ? 1 : 0,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n recallAnnouncement(announcementId: number) {\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: {\n message: 'annuncement.center.recallAnnouncementConfirm',\n },\n })\n .afterClosed()\n .subscribe(({ agree }) => {\n if (agree) {\n this.deleteAnnuncement(announcementId);\n }\n });\n }\n\n deleteAnnuncement(announcementId: number) {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/announcement/cms/delete', {\n announcementId: announcementId,\n deleted: 1,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.queryAnnouncementList();\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n edit(announcementId: number) {\n this.router.navigate([`annuncement/announcement-details-edit/${announcementId}`]);\n }\n}\n","
\n
\n Announcement Center\n
\n\n
\n
\n
\n Record List\n
\n
\n Total {{ totalElements }} records\n
\n
\n
\n Create Announcement\n
\n
\n\n \n
\n
\n Announcement Details\n
\n
\n
\n {{ element.announcementBodyEng }}\n
\n
\n
\n
\n {{ element.announcementBodyChi }}\n
\n
\n
\n
\n \n
\n
\n Recall Announcement\n
\n
\n
\n
\n\n \n
\n {{ element.createDate | date : 'dd/MM/yyyy' }}\n
\n
\n\n \n
\n
\n {{ element.effectiveFrom | date : 'dd/MM/yyyy HH:mm' }} to \n
\n
\n {{ element.effectiveTo | date : 'dd/MM/yyyy HH:mm' }}\n
\n
\n
\n\n \n
\n
\n {{ element.announcementSubjectEng }}\n
\n
\n {{ element.announcementSubjectChi }}\n
\n
\n
\n\n \n
\n
\n {{ element.status ? 'ON' : 'OFF' }}\n
\n
\n \n
\n
\n
\n\n \n
\n
\n \n
\n
\n Edit\n
\n
\n
\n\n
\n
\n \n
\n \n
0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n \n \n \n \n \n \n \n\n
0\" class=\"col-sm-12 div-border-bottom prodtype-pageformat\">\n \n \n
\n
\n
\n\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n {{ element.announcementSubjectEng }}\n
\n
\n {{ element.announcementSubjectChi }}\n
\n
\n
\n \n
\n
\n
\n Create date: {{ element.createDate | date : 'dd/MM/yyyy' }}\n
\n
\n Target Broadcast Date & Time:\n
\n
\n {{ element.effectiveFrom | date : 'dd/MM/yyyy HH:mm' }} to {{ element.effectiveTo | date : 'dd/MM/yyyy HH:mm' }}\n
\n
\n
\n
\n {{ element.status ? 'ON' : 'OFF' }}\n
\n
\n \n
\n
\n
\n
\n
\n
\n Message Details\n
\n
\n {{ element.announcementBodyEng }}\n
\n
\n {{ element.announcementBodyChi }}\n
\n
\n
\n \n
\n
\n Recall Announcement\n
\n
\n
\n
\n
\n \n
\n
\n Edit\n
\n
\n
\n
\n
0\" class=\"col-sm-12 div-border-bottom prodtype-pageformat\">\n \n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AnnuncementCenterComponent } from './annuncement-center.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsSwitchModule } from '@cds/ng-web-components/switch';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\n\n@NgModule({\n declarations: [AnnuncementCenterComponent],\n imports: [\n CommonModule,\n CdsButtonModule,\n SharedModule,\n CdsSwitchModule,\n FormsModule,\n ReactiveFormsModule,\n MatSlideToggleModule,\n CdsIconModule,\n CdsLanguageModule,\n ],\n})\nexport class AnnuncementCenterModule {}\n","import { RouterModule, Routes } from '@angular/router';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { AnnuncementCenterComponent } from './annuncement-center/annuncement-center/annuncement-center.component';\nimport { NgModule } from '@angular/core';\nimport { AnnouncementDetailsComponent } from './announcement-details/announcement-details.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\nconst routes: Routes = [\n {\n path: 'annuncement',\n component: AdminLayoutComponent,\n children: [\n {\n path: 'announcement-center',\n component: AnnuncementCenterComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'announcement-details-edit/:announcementId',\n component: AnnouncementDetailsComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'announcement-details-create',\n component: AnnouncementDetailsComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AnnouncementRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AnnuncementCenterModule } from './annuncement-center/annuncement-center/annuncement-center.module';\nimport { AnnouncementRoutingModule } from './annuncement-routing.module';\nimport { AnnouncementDetailsModule } from './announcement-details/announcement-details.module';\n\n@NgModule({\n imports: [CommonModule, AnnouncementRoutingModule, AnnuncementCenterModule, AnnouncementDetailsModule],\n})\nexport class AnnuncementModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { ChequePrintingListComponent } from './shkp/cheque-printing-list/cheque-printing-list.component';\nimport { ScbStatementComponent } from './shkp/scb-statement/scb-statement/scb-statement.component';\nimport { ChequePrintingListPTWComponent } from './ptw/cheque-printing-list/cheque-printing-list-ptw.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'shkp/benefit-payment/list' },\n {\n path: 'shkp/benefit-payment/list',\n component: ChequePrintingListComponent,\n data: {\n title: 'cheque.printing-list-title',\n roles: {\n SHK_PAYMENT_ISSUANCE_PAYMENT_ADMIN: PermissionAccess.R,\n SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF: PermissionAccess.R,\n SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER: PermissionAccess.R,\n },\n },\n },\n {\n path: 'shkp/scb-statement-upload',\n component: ScbStatementComponent,\n data: {\n title: 'cheque.scb-statement-upload-title',\n roles: {\n SHK_PAYMENT_ISSUANCE_PAYMENT_ADMIN: PermissionAccess.R,\n SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF: PermissionAccess.R,\n SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER: PermissionAccess.R,\n },\n },\n },\n {\n path: 'ptw/benefit-payment/list',\n component: ChequePrintingListPTWComponent,\n data: {\n title: 'cheque.printing-list-ptw-title',\n roles: {\n ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_ADMIN: PermissionAccess.R,\n ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF: PermissionAccess.R,\n ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class BenefitPaymentRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BenefitPaymentRoutingModule } from './benefit-payment-routing.module';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { BankTransferComponent } from './shkp/bank-transfer/bank-transfer.component';\nimport { ChequeIssuanceComponent } from './shkp/cheque-issuance/cheque-issuance.component';\nimport { ChequePrintingBackPopupComponent } from './shkp/cheque-printing-back-popup/cheque-printing-back-popup.component';\nimport { ChequePrintingListComponent } from './shkp/cheque-printing-list/cheque-printing-list.component';\nimport { ChequePrintingSaveSuccessComponent } from './shkp/cheque-printing-save-success/cheque-printing-save-success.component';\nimport { ScbStatementUploadSuccessComponent } from './shkp/scb-statement/scb-statement-upload-success/scb-statement-upload-success.component';\nimport { ScbStatementUploadComponent } from './shkp/scb-statement/scb-statement-upload/scb-statement-upload.component';\nimport { ScbStatementComponent } from './shkp/scb-statement/scb-statement/scb-statement.component';\nimport { ChequePrintingListPTWComponent } from './ptw/cheque-printing-list/cheque-printing-list-ptw.component';\nimport { BankTransferPTWComponent } from './ptw/bank-transfer/bank-transfer-ptw.component';\nimport { ChequeIssuancePTWComponent } from './ptw/cheque-issuance/cheque-issuance-ptw.component';\nimport { ChequePrintingBackPopupPTWComponent } from './ptw/cheque-printing-back-popup/cheque-printing-back-popup-ptw.component';\nimport { ChequePrintingSaveSuccessPTWComponent } from './ptw/cheque-printing-save-success/cheque-printing-save-success-ptw.component';\n\n@NgModule({\n declarations: [\n ChequePrintingListComponent,\n ChequePrintingSaveSuccessComponent,\n ChequePrintingBackPopupComponent,\n ChequeIssuanceComponent,\n BankTransferComponent,\n ScbStatementComponent,\n ScbStatementUploadComponent,\n ScbStatementUploadSuccessComponent,\n ChequePrintingListPTWComponent,\n ChequePrintingSaveSuccessPTWComponent,\n ChequePrintingBackPopupPTWComponent,\n ChequeIssuancePTWComponent,\n BankTransferPTWComponent,\n ],\n imports: [\n CommonModule,\n BenefitPaymentRoutingModule,\n CdsDatepickerModule,\n FormsModule,\n ReactiveFormsModule,\n CdsLanguageModule,\n CdsTextfieldModule,\n CdsDropdownModule,\n CdsButtonModule,\n CdsIconModule,\n CdsTableModule,\n CdsCheckboxModule,\n CdsPaginationModule,\n CdsPopupModule,\n CdsProgressModule,\n SharedModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsRadioModule,\n CdsTooltipModule,\n CdsTabsModule,\n CdsFileUploadModule,\n CdsSortModule,\n ],\n})\nexport class BenefitPaymentModule {}\n","import { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport moment from 'moment';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\n\nexport interface CurrSelectet {\n type: string;\n selected: boolean;\n}\nexport enum SchemeCode {\n ORSO = 'ORSO',\n MACAUPPS = 'MACAUPPS',\n MACAUCPF = 'MACAUCPF',\n}\n\nexport enum PaymentReportType {\n RECORD_REPORT = 'RECORD_REPORT',\n STATUS_REPORT = 'STATUS_REPORT',\n}\n\nexport enum PaymentReportSubType {\n CHQ = 'CHQ',\n BANK = 'BANK',\n}\n\nexport const _TxnType = new Map([\n ['01', 'Withdrawal (Death claim, Retirement, Permanent departure, Total incapacity, Terminal Illness)'],\n ['02', 'Partial Withdrawal (Unit & Amount)'],\n ['03', 'SP/LSP offset'],\n ['04', 'Unvested benefit refund'],\n ['05', 'Refund Overpaid of Contribution and/or surcharges'],\n ['06', 'Refund from suspense account'],\n ['07', 'Reissuance payment request – cheque'],\n ['08', 'Reissuance payment request - Deposit to Bank Account/Oversea Bank'],\n ['09', 'Refund due to AML issue'],\n ['10', 'Others (For any exceptional transaction type)'],\n ['11', 'Scheme Level Transfer'],\n ['12', 'Subsequent Contribution'],\n ['13', 'Auto Rollover'],\n]);\n\nexport interface PaymentHistorySave {\n reportName?: string;\n reportType?: PaymentReportType;\n subType?: PaymentReportSubType;\n}\n\nexport interface PaymentHistorySearch extends IPageableRequest {\n reportName?: string;\n reportType?: PaymentReportType;\n subType?: PaymentReportSubType;\n}\n\nexport interface PaymentReportSearch {\n payRefNo?: string;\n dateFrom?: string;\n dateEnd?: string;\n statusFrom?: string;\n statusTo?: string;\n statusList?: string[];\n payMethod?: PaymentMethodE[];\n}\n\nexport interface PaymentReportLog {\n appRefNo?: string;\n payRefNo?: string;\n payMethod?: PaymentMethodE;\n outChequeNo?: string;\n payeeName?: string;\n amt?: string;\n curr?: string;\n genDate?: string;\n recordStatus?: PaymentStatusE;\n empfid?: string;\n mpfAcctNo?: string;\n erempfId?: string;\n erName?: string;\n payrollGroupID?: string;\n remarks?: string;\n createdAt?: string;\n\n turnaroundDays?: number;\n fromPaymentStatus?: PaymentStatusE;\n toPaymentStatus?: PaymentStatusE;\n fromStatusUpdateDate?: string;\n toStatusUpdateDate?: string;\n}\n\nexport interface PaymentReportHistory {\n reportName?: string;\n createdByName?: string;\n createdAt?: string;\n}\n\nexport interface PaymentStatusSelected {\n label: string;\n value: string;\n selected?: boolean;\n}\nexport interface ChequeSearch {\n instructionFileDateFrom?: string;\n instructionFileDateTo?: string;\n chequeIssueDateFrom?: string;\n chequeIssueDateTo?: string;\n sequence?: string;\n recordStatusList?: CdMultidropdownTopping[] | string[];\n payMethod?: PaymentMethodE;\n payeeName?: string;\n isReissue?: string;\n checked?: boolean;\n payRefNo?: string;\n recordDateFrom?: string;\n recordDateTo?: string;\n txnType?: string;\n outChequeNo?: string;\n appRefNo?: string;\n schemeCodeList?: string[];\n currList?: string[];\n transactionIdentifier?: string;\n}\n\nexport interface BaseChequeSearch {\n instructionFileDateFrom?: string;\n instructionFileDateTo?: string;\n payRefNo?: string;\n appRefNo?: string;\n payeeName?: string;\n isReissue?: string;\n schemeCodeList?: string[];\n transactionIdentifier?: string;\n}\n\nexport function pageInit() {\n return { current: 1, count: 0 };\n}\n\nexport interface ChequeSearchDTO extends ChequeSearch, IPageableRequest {}\n\nexport interface ChequeDTO {\n id: string;\n checked?: boolean;\n opsPermission?: boolean;\n cheqNoError?: string;\n remarksInputError?: string;\n chequeIssueDate?: string;\n acctType?: string;\n sequence?: string;\n recordStatus?: PaymentStatusE;\n payRefNo?: PaymentMethodE;\n feedReceiveDate?: string;\n genDate?: string;\n // unknown\n paymentRefNo?: string;\n // unknown\n amt?: string;\n fullName?: string;\n payeeName?: string;\n // unknown\n exptPayIssue?: string;\n customerId?: string;\n isReissue?: string;\n reissueRefNo?: string;\n reissueReason?: string;\n remarks?: string;\n outChequeNo?: string;\n addr1Room?: string;\n addr2Floor?: string;\n addr3Block?: string;\n addr4Bldg?: string;\n addr5street?: string;\n addr6Dist?: string;\n addr7City?: string;\n addr8Country?: string;\n lastUpdateDate?: string;\n appRefNo?: string;\n curr?: string;\n index?: number;\n downConfig?: CdsDropdownConfig;\n canInputChequeNo?: boolean;\n empfid?: string;\n erempfId?: string;\n erName?: string;\n payrollGroupID?: string;\n txnType?: string;\n mpfAcctNo?: string;\n transactionIdentifier?: string;\n bankName?: string;\n bankCode?: string;\n bankBranchCode?: string;\n bankAcctNo?: string;\n overseaBankName?: string;\n overseaSwift?: string;\n otherSettlementInfo?: string;\n overseaBankIBAN?: string;\n overseaBankAddr?: string;\n overseaBankCountry?: string;\n overseaBankAcctNo?: string;\n agentBankName?: string;\n agentSwift?: string;\n schemeCode?: string;\n outstandingFlag?: boolean;\n}\n\nexport function maxDate(date?: string) {\n if (date) {\n return formatDate(date);\n }\n return '2099-01-01';\n}\n\nexport function minDate(date?: string) {\n if (date) {\n return formatDate(date);\n }\n return '1901-01-01';\n}\n\nexport function formatDate(date?: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return '';\n}\n\nexport function formatDate2(date?: string) {\n if (date) {\n return moment(date, 'YYYYMMDD').format('DD/MM/YYYY');\n }\n return '';\n}\n\nexport function formatDate3(date?: string) {\n if (date) {\n return moment(date, 'YYYY-MM-DD').format('DDMMYYYY');\n }\n return '';\n}\n\nexport function formatDate4(date?: string) {\n if (date) {\n return moment(date, 'YYYYMMDD').format('DD-MM-YYYY');\n }\n return '';\n}\n\nexport const _reasonMap = new Map([\n [\n '1',\n 'Invalid bank account due to invalid bank account number/bank account holder name/closed bank account (i.e. reissue payment as failed to deposit payment to provided bank account',\n ],\n ['2', 'Update on the payee name (i.e. client request to reissue payment with updates on payee name)'],\n ['3', 'Lost cheque (i.e. client request to reissue payment via e-payment as lost cheque)'],\n ['4', 'Bounced cheque (i.e. client request to reissue payment via e-payment as bounced cheque)'],\n ['5', 'Unpresented cheque (i.e. client request to reissue payment via e-payment as cheque is unpresented after 6 months from cheque issued date)'],\n ['6', 'Others (i.e. Any other reason indicated by ER/Member)'],\n]);\n\nexport function formatReason(val: string) {\n return _reasonMap.get(val);\n}\n\nexport function getColor(status: string | undefined) {\n if (status === PaymentStatusE.NEW) {\n return '#F49600';\n }\n if (status === PaymentStatusE.REISSUE) {\n return '#EC6453';\n }\n if (status === PaymentStatusE.READY_TO_REISSUE) {\n return '#06C7BA';\n }\n if (status === PaymentStatusE.HOLD_PAYMENT) {\n return '#DDDEE4';\n }\n if (status === PaymentStatusE.PRINTED) {\n return '#00A758';\n }\n if (status === PaymentStatusE.UN_PRESENTED) {\n return '#046138';\n }\n if (status === PaymentStatusE.PRESENTED) {\n return '#1E1EE5';\n }\n if (status === PaymentStatusE.EXPIRED) {\n return '#8E90A2';\n }\n if (status === PaymentStatusE.RETURNED_FROM_EE) {\n return '#76B0FF';\n }\n if (status === PaymentStatusE.RETURNED_FROM_ER) {\n return '#2D69FF';\n }\n if (status === PaymentStatusE.REISSUE_REJECT) {\n return '#D03A39';\n }\n if (status === PaymentStatusE.REISSUE_COMPLETE) {\n return '#5CD790';\n }\n if (status === PaymentStatusE.REISSUE_PRESENTED) {\n return '#09847B';\n }\n if (status === PaymentStatusE.STOP_PAYMENT) {\n return '#34384B';\n }\n if (status === PaymentStatusE.COMPLETED) {\n return '#00A758';\n }\n if (status === PaymentStatusE.REJECTED) {\n return '#D03A39';\n }\n if (status === PaymentStatusE.PASSED_TO_BANK) {\n return '#1E1EE5';\n }\n if (status === PaymentStatusE.PENDING) {\n return '#06C7BA';\n }\n if (status === PaymentStatusE.READY_TO_PRINT_ADDRESS) {\n return '#F49600';\n }\n if (status === PaymentStatusE.PASSED_TO_LAWSON) {\n return '#1E1EE5';\n }\n if (status === PaymentStatusE.PENDING_ON_SCT_OR_EMPF) {\n return '#06C7BA';\n }\n return '';\n}\n\nexport enum PaymentStatusE {\n NEW = 'NEW',\n PRINTED = 'PRINTED',\n UN_PRESENTED = 'UN_PRESENTED',\n PRESENTED = 'PRESENTED',\n EXPIRED = 'EXPIRED',\n REISSUE = 'REISSUE',\n REISSUE_REJECT = 'REISSUE_REJECT',\n PENDING = 'PENDING',\n READY_TO_REISSUE = 'READY_TO_REISSUE',\n HOLD_PAYMENT = 'HOLD_PAYMENT',\n STOP_PAYMENT = 'STOP_PAYMENT',\n REISSUE_COMPLETE = 'REISSUE_COMPLETE',\n RETURNED_FROM_EE = 'RETURNED_FROM_EE',\n RETURNED_FROM_ER = 'RETURNED_FROM_ER',\n REISSUE_PRESENTED = 'REISSUE_PRESENTED',\n COMPLETED = 'COMPLETED',\n REJECTED = 'REJECTED',\n PASSED_TO_BANK = 'PASSED_TO_BANK',\n PASSED_TO_LAWSON = 'PASSED_TO_LAWSON',\n READY_TO_PRINT_ADDRESS = 'READY_TO_PRINT_ADDRESS',\n ERROR = 'ERROR',\n PENDING_ON_SCT_OR_EMPF = 'PENDING_ON_SCT_OR_EMPF',\n}\n\nexport enum PaymentMethodE {\n CHQ = 'CHQ',\n BTL = 'BTL',\n BTO = 'BTO',\n}\n\nexport function configPrimary(): CdsButtonConfig {\n return { style: 'primary' };\n}\nexport function configSecondary(): CdsButtonConfig {\n return { style: 'secondary' };\n}\nexport function configTertiary(): CdsButtonConfig {\n return { style: 'tertiary' };\n}\n\nexport const I18N_KEY = {\n INVALID_DATE: 'common.invalidDate',\n INVALID_DESCRIPTION: 'employer.invalid-description',\n INVALID_DESCRIPTION_CHINESE: 'employer.invalid-description-chinese',\n INVALID_USERNAME: 'employer.invalid-username',\n INVALID_AGENT_CODE: 'agent.invalide-agent-code',\n};\n\nexport interface ScbStatementSearchDTO extends IPageableRequest {\n uploadDate?: string;\n fileName?: string;\n}\n\nexport interface ScbStatementDTO {\n id?: string;\n uploadDate?: string;\n fileName?: string;\n createAt?: string;\n updatedBy?: string;\n uploadBy?: string;\n}\n\nexport interface ScbUploadResponse {\n total?: number;\n updated?: number;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { PageResponse, BasicResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { ChequeDTO, ChequeSearch, ChequeSearchDTO, ScbStatementDTO, ScbStatementSearchDTO, ScbUploadResponse } from './benefit-payment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentServicePTW {\n private payment_url = `${environment.apiPrefix}/ext/eb-ssms/payment-service/`;\n private paymentIssuanceUrl = this.payment_url + 'ptw/payment-issuance';\n private paymentIssuanceAmountUrl = this.paymentIssuanceUrl + '/amount';\n private paymentIssuanceUpdateList = this.paymentIssuanceUrl + '/updateList';\n private exportPdfUrl = this.paymentIssuanceUrl + '/exportPdf';\n private exportPdfByStatusUrl = this.paymentIssuanceUrl + '/exportPdfByStatus';\n private paymentIssuancePrintCountUrl = this.paymentIssuanceUrl + '/printCount';\n private scbStatementUrl = this.payment_url + 'ptw/payment-statement';\n private scbStatementUploadUrl = this.scbStatementUrl + '/upload';\n private fileNameCheckUrl = this.scbStatementUrl + '/file/';\n private getChqNoUrl = this.paymentIssuanceUrl + '/outChequeNo/';\n\n constructor(private http: HttpClient) {}\n\n getPaymentIssuance(params: ChequeSearchDTO): Observable> {\n return this.http.get>(this.paymentIssuanceUrl, {\n params: filterParams(params),\n });\n }\n\n getPaymentIssuanceAmount(params: ChequeSearch): Observable> {\n return this.http.get>(this.paymentIssuanceAmountUrl, {\n params: filterParams(params),\n });\n }\n\n changePaymentIssuance(data: ChequeDTO[]) {\n return this.http.put>(this.paymentIssuanceUpdateList, data);\n }\n\n paymentIssuancePrintCount(ids: string[]) {\n return this.http.post>(this.paymentIssuancePrintCountUrl, ids);\n }\n\n exportPdf(ids: string[]) {\n return this.http.post>(this.exportPdfUrl, ids);\n }\n\n exportPdfStatus(statusList: string[]) {\n return this.http.post>(this.exportPdfByStatusUrl, statusList);\n }\n\n getScbStatmentList(params: ScbStatementSearchDTO) {\n return this.http.get>(this.scbStatementUrl, {\n params: filterParams(params),\n });\n }\n\n uploadScb(filePath: File) {\n const formData = new FormData();\n formData.append('file', filePath);\n return this.http.post>(this.scbStatementUploadUrl, formData);\n }\n\n fileNameCheck(name: string): Observable> {\n return this.http.get>(this.fileNameCheckUrl + name);\n }\n\n getByChqNo(chqNo: string) {\n return this.http.get>(this.getChqNoUrl + chqNo);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { PageResponse, BasicResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport {\n ChequeDTO,\n ChequeSearch,\n ChequeSearchDTO,\n PaymentHistorySave,\n PaymentHistorySearch,\n PaymentReportHistory,\n PaymentReportLog,\n PaymentReportSearch,\n ScbStatementDTO,\n ScbStatementSearchDTO,\n ScbUploadResponse,\n} from './benefit-payment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentServiceSHKP {\n private payment_url = `${environment.apiPrefix}/ext/eb-ssms/payment-service/`;\n private paymentIssuanceUrl = this.payment_url + 'shkp/payment-issuance';\n private paymentReportUrl = this.payment_url + 'shkp/payment-report';\n private paymentIssuanceAmountUrl = this.paymentIssuanceUrl + '/amount';\n private paymentIssuanceUpdateList = this.paymentIssuanceUrl + '/updateList';\n private exportPdfUrl = this.paymentIssuanceUrl + '/exportPdf';\n private paymentIssuancePrintCountUrl = this.paymentIssuanceUrl + '/printCount';\n private scbStatementUrl = this.payment_url + 'shkp/payment-statement';\n private scbStatementUploadUrl = this.scbStatementUrl + '/upload';\n private fileNameCheckUrl = this.scbStatementUrl + '/file/';\n private getChqNoUrl = this.paymentIssuanceUrl + '/outChequeNo/';\n private getpaymentReportLogUrl = this.paymentReportUrl + '/log';\n private getpaymentReportHistoryUrl = this.paymentReportUrl + '/history';\n\n constructor(private http: HttpClient) {}\n\n getPaymentIssuance(params: ChequeSearchDTO): Observable> {\n return this.http.get>(this.paymentIssuanceUrl, {\n params: filterParams(params),\n });\n }\n\n getPaymentIssuanceAmount(params: ChequeSearch): Observable> {\n return this.http.get>(this.paymentIssuanceAmountUrl, {\n params: filterParams(params),\n });\n }\n\n changePaymentIssuance(data: ChequeDTO[]) {\n return this.http.put>(this.paymentIssuanceUpdateList, data);\n }\n\n paymentIssuancePrintCount(ids: string[]) {\n return this.http.post>(this.paymentIssuancePrintCountUrl, ids);\n }\n\n exportPdf(ids: string[]) {\n return this.http.post>(this.exportPdfUrl, ids);\n }\n\n getScbStatmentList(params: ScbStatementSearchDTO) {\n return this.http.get>(this.scbStatementUrl, {\n params: filterParams(params),\n });\n }\n\n uploadScb(filePath: File) {\n const formData = new FormData();\n formData.append('file', filePath);\n return this.http.post>(this.scbStatementUploadUrl, formData);\n }\n\n fileNameCheck(name: string): Observable> {\n return this.http.get>(this.fileNameCheckUrl + name);\n }\n\n getByChqNo(chqNo: string) {\n return this.http.get>(this.getChqNoUrl + chqNo);\n }\n\n getPaymentLog(params: PaymentReportSearch): Observable> {\n return this.http.post>(this.getpaymentReportLogUrl, params);\n }\n\n getHistory(params: PaymentHistorySearch): Observable> {\n return this.http.get>(this.getpaymentReportHistoryUrl, {\n params: filterParams(params),\n });\n }\n\n saveHistory(params: PaymentHistorySave): Observable> {\n return this.http.post>(this.paymentReportUrl, params);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { Component, ElementRef, HostListener, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { Subject, debounceTime, finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { jsonToSheet } from 'src/app/utils/xlsx';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport {\n getColor,\n formatReason,\n formatDate2,\n maxDate,\n minDate,\n PaymentStatusE,\n PaymentStatusSelected,\n configPrimary,\n configSecondary,\n ChequeSearchDTO,\n ChequeDTO,\n pageInit,\n I18N_KEY,\n BaseChequeSearch,\n ChequeSearch,\n PaymentMethodE,\n formatDate,\n _TxnType,\n} from '../../benefit-payment';\nimport { ChequePrintingSaveSuccessPTWComponent } from '../cheque-printing-save-success/cheque-printing-save-success-ptw.component';\nimport { PaymentServicePTW } from '../../paymentPTW.service';\n\n@Component({\n selector: 'app-bank-transfer-ptw',\n templateUrl: './bank-transfer-ptw.component.html',\n styleUrls: ['./bank-transfer-ptw.component.scss'],\n})\nexport class BankTransferPTWComponent implements OnInit {\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private service: PaymentServicePTW,\n private toastAlert: ToastAlertService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private elemRef: ElementRef\n ) {}\n\n PermissionAccess = PermissionAccess;\n PermissionItem = PermissionItem;\n\n getColor = getColor;\n\n formatReason = formatReason;\n\n formatDate = formatDate;\n formatDate2 = formatDate2;\n\n maxDate = maxDate;\n minDate = minDate;\n\n _editPaymentStatusMap = new Map([\n // [PaymentStatusE.PRINTED,{options:[{ label: 'Printed', value: PaymentStatusE.PRINTED },{ label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED }]}],\n [\n PaymentStatusE.NEW,\n {\n options: [\n { label: 'New', value: PaymentStatusE.NEW },\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ],\n },\n ],\n [\n PaymentStatusE.READY_TO_REISSUE,\n {\n options: [\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n ],\n },\n ],\n [\n PaymentStatusE.COMPLETED,\n {\n options: [\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ],\n },\n ],\n [\n PaymentStatusE.REISSUE,\n {\n options: [\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n ],\n },\n ],\n ]);\n\n _paymentStatusList: PaymentStatusSelected[] = [\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'New', value: PaymentStatusE.NEW },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ];\n\n // _canCheckStatus: (string | undefined)[] = [\n // PaymentStatusE.READY_TO_REISSUE,\n // PaymentStatusE.NEW,\n // PaymentStatusE.PRINTED,\n // PaymentStatusE.HOLD_PAYMENT,\n // PaymentStatusE.STOP_PAYMENT,\n // PaymentStatusE.UN_PRESENTED,\n // ];\n _canEditStatus: (string | undefined)[] = [PaymentStatusE.NEW, PaymentStatusE.PENDING, PaymentStatusE.READY_TO_REISSUE, PaymentStatusE.REISSUE];\n\n _toolBarPermission: PermissionItem[] = [PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF, PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER];\n\n _reEditPermission: PermissionItem[] = [PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER];\n _toolBar = false;\n _reEdit = false;\n\n // _permissionMap = new Map([\n // [PermissionItem.SHK_PAYMENT_ISSUANCE_APPROVE_TO_PRINT.toString(), [PaymentStatusE.READY_TO_REISSUE, PaymentStatusE.NEW,PaymentStatusE.PRINTED,PaymentStatusE.HOLD_PAYMENT,PaymentStatusE.STOP_PAYMENT]]\n // ]);\n\n paymentSelectedList: CdMultidropdownTopping[] = [];\n\n searchButtonConfig = configPrimary();\n _searchDisable = false;\n\n resetButtonConfig = configSecondary();\n _resetDisable = false;\n\n _valid = false;\n\n resetEditConfig = configSecondary();\n\n _resetEditDisable = false;\n\n saveEditConfig = configPrimary();\n\n exportAllButtonConfig = configPrimary();\n\n exportSelectedButtonConfig = configSecondary();\n\n editSelectedButtonConfig = configPrimary();\n\n _stopPaymentDisable = true;\n _completePaymentDisable = true;\n\n notfoundConfig: CdsIconConfig = { color: '#8e90a2', size: 'md' };\n\n pageSelectSize: number[] = [10, 20, 50, 100];\n _pageSelected = 1;\n\n _currList = [\n { type: 'ALL', selected: true },\n { type: 'HKD', selected: false },\n { type: 'USD', selected: false },\n { type: 'MOP', selected: false },\n ];\n\n _currSelected = 0;\n\n _totalCount = 0;\n searchDTO: ChequeSearchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n payMethod: PaymentMethodE.BTO,\n };\n displayedColumnsBTL: string[] = [\n 'selected',\n 'payeeName',\n 'paymentStatus',\n 'amt',\n 'bankName',\n 'bankCode',\n 'bankBranchCode',\n 'bankAcctNo',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'schemeCode',\n 'transactionIdentifier',\n 'remarks',\n ];\n displayedColumnsBTO: string[] = [\n 'selected',\n 'payeeName',\n 'paymentStatus',\n 'amt',\n 'overseaBankName',\n 'overseaSwift',\n 'otherSettlementInfo',\n 'overseaBankAddr',\n 'overseaBankCountry',\n 'overseaBankAcctNo',\n 'agentBankName',\n 'agentSwift',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'schemeCode',\n 'transactionIdentifier',\n 'remarks',\n ];\n\n csvName = 'PTW Bank Transfer Record List';\n\n dataSource: ChequeDTO[] = [];\n originData: ChequeDTO[] = [];\n\n checkedDatasource: ChequeDTO[] = [];\n _checkedDatasourceMap: Map = new Map();\n\n OriginCheckedDatasource: ChequeDTO[] = [];\n\n sheetHeaderBTL = {\n payeeName: 'Payee Name',\n recordStatus: 'Payment Status',\n curr: 'Currency',\n amt: 'Amount',\n bankName: 'Bank Name',\n bankCode: 'Bank Code',\n bankBranchCode: 'Bank Branch Code',\n bankAcctNo: 'Bank Account No.',\n feedReceiveDate: 'Payment Instruction File Date',\n isReissue: 'Reissuance',\n reissueRefNo: 'Reissuance Ref No.',\n reissueReason: 'Reissurance Reason',\n payRefNo: 'Payment Ref No.',\n appRefNo: 'Application Reference No.',\n exptPayIssue: '\tExpected Payment Issue Date on Statement',\n chequeIssueDate: 'Bank Value Date',\n lastUpdateDate: 'Status Update Date',\n schemeCode: 'Scheme',\n transactionIdentifier: 'Lawson Transaction Identifier',\n remarks: 'Remarks',\n };\n\n sheetHeaderBTO = {\n payeeName: 'Payee Name',\n recordStatus: 'Payment Status',\n curr: 'Currency',\n amt: 'Amount',\n overseaBankName: 'Beneficiary Bank Name',\n overseaSwift: 'Beneficiary Bank SWIFT Code',\n otherSettlementInfo: 'Beneficiary Bank IBAN/ ABA/ UID no',\n overseaBankAddr: 'Beneficiary Bank Address',\n overseaBankCountry: 'Beneficiary Bank Country',\n overseaBankAcctNo: 'Beneficiary Bank Account No.',\n agentBankName: 'Intermediary Bank Name',\n agentSwift: 'Intermediary Bank SWIFT Code',\n feedReceiveDate: 'Payment Instruction File Date',\n isReissue: 'Reissuance',\n reissueRefNo: 'Reissuance Ref No.',\n reissueReason: 'Reissurance Reason',\n payRefNo: 'Payment Ref No.',\n appRefNo: 'Application Reference No.',\n exptPayIssue: '\tExpected Payment Issue Date on Statement',\n chequeIssueDate: 'Bank Value Date',\n lastUpdateDate: 'Status Update Date',\n schemeCode: 'Scheme',\n transactionIdentifier: 'Lawson Transaction Identifier',\n remarks: 'Remarks',\n };\n\n isMobile = false;\n\n searchButtonDisabled = false;\n resetButtonDisabled = false;\n exportSelectedDisabled = true;\n editSelectedDisabled = false;\n exportMailMerge = true;\n\n _selectedAll = false;\n _edited = false;\n _confirmed = false;\n\n _inputNumber = 1;\n _progress = false;\n _downloading = false;\n scrollBarWidth = '15px';\n\n pageCount: IPaginationCount = pageInit();\n\n transactionAmount?: number = 0;\n\n I18N_KEY = I18N_KEY;\n\n _saveDisable = true;\n private search$ = new Subject();\n\n transferTypeConfig: CdsDropdownConfig = {\n label: 'Choose Bank Transfer Type',\n placeholder: 'Select Payment Method',\n options: [\n { label: 'Oversea Bank Transfer', value: PaymentMethodE.BTO },\n { label: 'Local Bank Transfer', value: PaymentMethodE.BTL },\n ],\n };\n\n @Input() baseParam?: BaseChequeSearch;\n @Input() search?: number;\n\n @Input() systemType?: string;\n _sortString = '';\n\n _removeSelect(list: string[]) {\n return list.filter(x => x !== 'selected');\n }\n\n numberBetween(end: number, start?: number): number {\n start = start || 1;\n return Math.round(Math.random() * end) + start;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['search'] && !changes['search'].firstChange) {\n this.pageCount = pageInit();\n if (Number(changes['search'].currentValue) > 0) {\n this._paymentStatusList.forEach(x => (x.selected = false));\n }\n this.loadTable();\n }\n }\n\n currSelected(index: number) {\n this._currList.forEach(x => (x.selected = false));\n this._currSelected = index;\n this._currList[index].selected = !this._currList[index].selected;\n this.loadTable();\n }\n\n ngOnInit(): void {\n this.onResize();\n this._toolBarPermission.forEach(x => {\n this.permissionService.hasPermission(PermissionAccess.R, x).then(has => {\n this._toolBar = this._toolBar || has;\n });\n });\n this._reEditPermission.forEach(x => {\n this.permissionService.hasPermission(PermissionAccess.R, x).then(has => {\n this._reEdit = this._reEdit || has;\n });\n });\n\n // chq 输入防抖\n this.search$.pipe(debounceTime(300)).subscribe(item => {\n this.outChequeNoChange(item);\n });\n // this.initForm();\n // this.loadTable();\n }\n\n typeChange(val: PaymentMethodE) {\n this.initForm();\n this.searchDTO.payMethod = val;\n this.loadTable();\n }\n\n onSortChange(event: Sort) {\n if (event.direction) {\n this._sortString = event.active + ',' + event.direction;\n } else {\n this._sortString = '';\n }\n\n this.loadTable();\n }\n\n formatTxnType(type: string) {\n return _TxnType.get(type) || '';\n }\n\n resetStatus() {\n this._paymentStatusList.forEach(x => (x.selected = false));\n this.loadTable();\n }\n\n outChqValidate(item: ChequeDTO) {\n if (item.canInputChequeNo && !item.outChequeNo) {\n item.cheqNoError = 'Please input the cheque no.';\n }\n }\n\n chqInput(item: ChequeDTO, event: any) {\n let temp: string = event.target.value;\n if (temp) {\n if (temp.length > 6 && temp.startsWith('0')) {\n temp = temp.slice(-6);\n }\n if (temp.length < 6) {\n temp = temp.padStart(6, '0');\n }\n }\n item.outChequeNo = temp;\n this.search$.next(item);\n }\n\n outChequeNoChange(item: ChequeDTO) {\n if (!item.canInputChequeNo) {\n this._saveDisable = false;\n return;\n }\n if (item.outChequeNo == undefined || item.outChequeNo == '') {\n this._saveDisable = true;\n item.cheqNoError = 'Please input the cheque no.';\n return;\n }\n this._saveDisable = true;\n item.cheqNoError = 'checking...';\n const ex = this.checkedDatasource.find(x => x.id != item.id && x.outChequeNo == item.outChequeNo) != undefined;\n if (ex) {\n this._saveDisable = true;\n item.cheqNoError = 'Cheque No. allready existed';\n return;\n }\n return this.service\n .getByChqNo(item.outChequeNo)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data != null && item.id != data.data.id) {\n item.cheqNoError = 'Cheque No. allready existed';\n } else {\n item.cheqNoError = undefined;\n }\n this._saveConfigValidate();\n });\n }\n\n loadTable() {\n const params: ChequeSearch = this.getRequestParams();\n const listParms: ChequeSearchDTO = {\n // ...this.searchDTO,\n size: this.pageSelectSize[this._pageSelected],\n ...params,\n page: this.pageCount.current - 1,\n sort: this._sortString,\n };\n this.getAmount(params);\n this.getList(listParms);\n }\n\n getList(params: ChequeSearchDTO) {\n this._progress = true;\n this.service\n .getPaymentIssuance(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._selectedAll = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n // this.dataSource.forEach(item => {\n // item.opsPermission = this._canCheckStatus.filter(x => item.recordStatus == x).length > 0;\n // });\n this.originData = deepCopy(this.dataSource);\n\n this._totalCount = data.data.totalElements;\n if (this.pageCount.current != data.data.number + 1) {\n this.pageCount.current = data.data.number + 1;\n }\n if (this.pageCount.count !== data.data.totalPages) {\n this.pageCount.count = data.data.totalPages;\n }\n this.selectButtonsDisableRefresh();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getAmount(params: ChequeSearch) {\n this.service\n .getPaymentIssuanceAmount(params)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n // this._progress = false;\n this.transactionAmount = data.data;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams() {\n const params: ChequeSearchDTO = this.searchDTO;\n params.recordStatusList = this._paymentStatusList.filter(x => x.selected).map(x => x.value);\n params.payRefNo = this.baseParam?.payRefNo;\n params.appRefNo = this.baseParam?.appRefNo;\n params.instructionFileDateFrom = this.formatDate(this.baseParam?.instructionFileDateFrom);\n params.instructionFileDateTo = this.formatDate(this.baseParam?.instructionFileDateTo);\n params.payeeName = this.baseParam?.payeeName;\n params.isReissue = this.baseParam?.isReissue;\n params.schemeCodeList = this.baseParam?.schemeCodeList;\n if (!params.isReissue) {\n delete params.isReissue;\n }\n if (!params.payMethod) {\n params.payMethod = PaymentMethodE.BTO;\n }\n params.transactionIdentifier = this.baseParam?.transactionIdentifier;\n params.currList = this._currList.filter(i => i.selected && i.type !== 'ALL').map(x => x.type) || [];\n return params;\n }\n\n getPaymentStatus = (value: string) => {\n let label = '';\n if (!value) return label;\n const obj = this._paymentStatusList.find(x => x.value === value);\n label = obj?.label || '';\n return label;\n };\n\n // formatDate(date?: string) {\n // if (!date) {\n // return '';\n // }\n // return DateTime.fromFormat(date, 'd/M/yyyy').toFormat('yyyy-MM-dd');\n // }\n\n initForm() {\n // const _recordStatusList = this.paymentStatusList.filter(x => this._canCheckStatus.indexOf(x.value) > -1);\n // this.form = new FormGroup({\n // chequePrintDateStart: new FormControl('', [dateValidator()]),\n // chequePrintDateEnd: new FormControl('', [dateValidator()]),\n // // Cheque Number\n // outChequeNo: new FormControl('', []),\n // // recordStatusList: new FormControl([..._recordStatusList]),\n // // payMethod: new FormControl('', []),\n // // feedReceiveDate: new FormControl('', [dateValidator()]),\n // payeeName: new FormControl('', []),\n // isReissue: new FormControl(),\n // });\n this.searchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n payMethod: PaymentMethodE.BTO,\n };\n }\n\n backListClick() {\n this._confirmed = false;\n }\n\n confirmClick() {\n this._progress = true;\n this.service\n .changePaymentIssuance(this.checkedDatasource)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n updateList(status: string) {\n this._progress = true;\n const _dataList: ChequeDTO[] = [];\n this.dataSource.forEach(item => {\n if (item.checked) {\n _dataList.push(deepCopy(item));\n }\n });\n _dataList.forEach(item => {\n item.recordStatus = PaymentStatusE[status as keyof typeof PaymentStatusE];\n });\n this.service\n .changePaymentIssuance(_dataList)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n popupWithReload() {\n const popupRef: MatDialogRef = this.cdsPopup.open(ChequePrintingSaveSuccessPTWComponent, {\n size: 'md',\n data: {},\n });\n popupRef.afterClosed().subscribe(() => {\n this._edited = false;\n this.searchButtonDisabled = this._edited;\n this.resetButtonDisabled = this._edited;\n this._confirmed = false;\n this._selectedAll = false;\n this.loadTable();\n });\n }\n\n toConfirm() {\n if (this._saveDisable) {\n return;\n }\n this._confirmed = true;\n }\n\n selectButtonsDisableRefresh() {\n // if (this.dataSource.some(item => item.checked)) {\n // this.exportSelectedDisabled = false;\n // } else {\n // this.exportSelectedDisabled = true;\n // }\n // if (this.dataSource.some(item => item.checked && item.recordStatus === PaymentStatusE.APPROVED_TO_PRINT)) {\n // this.editSelectedDisabled = false;\n // } else {\n // this.editSelectedDisabled = true;\n // }\n const _checkedList = this.dataSource.filter(item => item.checked);\n // if(_checkedList.length == 0){\n // return\n // }\n this._checkedDatasourceMap = new Map();\n _checkedList.forEach(item => {\n this._checkedDatasourceMap.set(item.id, item);\n });\n const _length = _checkedList.length > 0;\n this._stopPaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.HOLD_PAYMENT).length == _checkedList.length);\n this._completePaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.STOP_PAYMENT).length == _checkedList.length);\n // this.editSelectedDisabled = !(_length && _checkedList.filter(item => this._canEditStatus.includes(item.recordStatus)).length == _checkedList.length);\n this.exportSelectedDisabled = !_length;\n // this.exportMailMergeTrigger();\n this.exportMailMerge =\n _checkedList.filter(\n x => x.recordStatus !== PaymentStatusE.PRINTED && x.recordStatus !== PaymentStatusE.NEW && x.recordStatus !== PaymentStatusE.READY_TO_REISSUE\n ).length > 0;\n // _temp.filter(x => x.selected && x.value !== PaymentStatusE.NEW && x.value !== PaymentStatusE.READY_TO_REISSUE).length > 0\n }\n\n _editToolFun() {}\n\n trigger(index: number) {\n this.dataSource[index].checked = !this.dataSource[index].checked;\n this.selectButtonsDisableRefresh();\n }\n\n triggerAll() {\n this._selectedAll = !this._selectedAll;\n this.dataSource.forEach(item => {\n item.checked = this._selectedAll;\n });\n this.selectButtonsDisableRefresh();\n }\n\n sizeSelect(index: number) {\n this._pageSelected = index;\n this.searchDTO.size = this.pageSelectSize[index];\n this.pageCount = pageInit();\n this.loadTable();\n }\n\n paymentStatusSelecte(index: number) {\n this.pageCount = pageInit();\n this._paymentStatusList[index].selected = !this._paymentStatusList[index].selected;\n // this.exportMailMergeTrigger();\n this.loadTable();\n }\n\n exportMailMergeTrigger() {\n const _temp = this._paymentStatusList.filter(x => x.selected);\n this.exportMailMerge =\n _temp.length == 0 || _temp.filter(x => x.selected && x.value !== PaymentStatusE.NEW && x.value !== PaymentStatusE.READY_TO_REISSUE).length > 0;\n }\n\n exportPdf() {\n if (this.dataSource.length === 0 || this.exportMailMerge) {\n return;\n }\n const _checkedIds = this.dataSource.filter(x => x.checked).map(x => x.id);\n this._downloading = true;\n this.service\n .exportPdf(_checkedIds)\n .pipe(\n finalize(() => {\n // this._progress = false;\n this._downloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n window.open(res.data, '_blank');\n } else {\n this.toastError('export Pdf error');\n }\n });\n }\n\n exportAll() {\n if (!this.dataSource.length) {\n return;\n }\n const params: ChequeSearch = this.getRequestParams();\n const _param: ChequeSearchDTO = {\n ...this.searchDTO,\n ...params,\n page: 0,\n size: 12000,\n };\n this._progress = true;\n this.service\n .getPaymentIssuance(_param)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data?.content) {\n if (this.searchDTO.payMethod === 'BTL') {\n jsonToSheet(\n {\n fileName: this.csvName,\n fileType: 'csv',\n header: this.sheetHeaderBTL,\n },\n this.createDataBTL(res.data.content)\n );\n }\n if (this.searchDTO.payMethod === 'BTO') {\n jsonToSheet(\n {\n fileName: this.csvName,\n fileType: 'csv',\n header: this.sheetHeaderBTO,\n },\n this.createDataBTO(res.data.content)\n );\n }\n } else {\n this.toastError('no ready to print data');\n }\n });\n }\n\n printCount(data: ChequeDTO[]) {\n const ids = data.map(item => item.id);\n this.service.paymentIssuancePrintCount(ids).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n createDataBTL(data: ChequeDTO[]) {\n return data.map(item => {\n return {\n payeeName: item.payeeName,\n curr: item.curr,\n amt: item.amt,\n bankName: item.bankName,\n bankCode: item.bankCode,\n bankBranchCode: item.bankBranchCode,\n bankAcctNo: item.bankAcctNo,\n feedReceiveDate: this.formatDate2(item.feedReceiveDate),\n isReissue: item.isReissue,\n reissueRefNo: item.reissueRefNo,\n reissueReason: this.formatReason(item.reissueReason + ''),\n payRefNo: item.payRefNo,\n appRefNo: item.appRefNo,\n exptPayIssue: this.formatDate2(item.exptPayIssue),\n chequeIssueDate: this.formatDate2(item.chequeIssueDate),\n lastUpdateDate: this.formatDate2(item.lastUpdateDate),\n schemeCode: item.schemeCode,\n transactionIdentifier: item.transactionIdentifier,\n remarks: item.remarks,\n };\n });\n }\n\n createDataBTO(data: ChequeDTO[]) {\n return data.map(item => {\n return {\n payeeName: item.payeeName,\n curr: item.curr,\n amt: item.amt,\n overseaBankName: item.overseaBankName,\n overseaSwift: item.overseaSwift,\n otherSettlementInfo: item.otherSettlementInfo,\n overseaBankAddr: item.overseaBankAddr,\n overseaBankCountry: item.overseaBankCountry,\n overseaBankAcctNo: item.overseaBankAcctNo,\n agentBankName: item.agentBankName,\n agentSwift: item.agentSwift,\n feedReceiveDate: this.formatDate2(item.feedReceiveDate),\n isReissue: item.isReissue,\n reissueRefNo: item.reissueRefNo,\n reissueReason: this.formatReason(item.reissueReason + ''),\n payRefNo: item.payRefNo,\n appRefNo: item.appRefNo,\n exptPayIssue: this.formatDate2(item.exptPayIssue),\n chequeIssueDate: this.formatDate2(item.chequeIssueDate),\n lastUpdateDate: this.formatDate2(item.lastUpdateDate),\n schemeCode: item.schemeCode,\n transactionIdentifier: item.transactionIdentifier,\n remarks: item.remarks,\n };\n });\n }\n\n exportSelected() {\n if (this.exportSelectedDisabled) {\n return;\n }\n this._downloading = true;\n const data = this.dataSource.filter(item => item.checked);\n\n if (this.searchDTO.payMethod === 'BTL') {\n jsonToSheet(\n {\n fileName: this.csvName,\n fileType: 'csv',\n header: this.sheetHeaderBTL,\n },\n this.createDataBTL(data)\n );\n }\n if (this.searchDTO.payMethod === 'BTO') {\n jsonToSheet(\n {\n fileName: this.csvName,\n fileType: 'csv',\n header: this.sheetHeaderBTO,\n },\n this.createDataBTO(data)\n );\n }\n setTimeout(() => {\n this._downloading = false;\n }, 1000);\n }\n\n editTrigger(isCancel = false) {\n // if (this.editSelectedDisabled) {\n // return;\n // }\n if (isCancel) {\n if (JSON.stringify(this.checkedDatasource) !== JSON.stringify(this.OriginCheckedDatasource)) {\n this.editReset(true);\n } else {\n this.doEditReset();\n this.editStatusToggle();\n }\n } else {\n this.checkedDatasource = [];\n this.dataSource.forEach(item => {\n if (item.checked) {\n const item2 = deepCopy(item);\n // item2.recordStatus = PaymentStatusE.UN_PRESENTED;\n if (this._editPaymentStatusMap.has(item2.recordStatus)) {\n const _config = this._editPaymentStatusMap.get(item2.recordStatus);\n if (_config) {\n item2.downConfig = this._returnStatusFilter(item2.acctType, _config, item2.recordStatus);\n }\n }\n if (item2.recordStatus == PaymentStatusE.PRINTED) {\n item2.canInputChequeNo = true;\n }\n if (item2.recordStatus == PaymentStatusE.UN_PRESENTED && this._reEdit) {\n item2.canInputChequeNo = true;\n }\n this.outChqValidate(item2);\n this.checkedDatasource.push(item2);\n }\n });\n this.checkedDatasource.reverse();\n this.OriginCheckedDatasource = deepCopy(this.checkedDatasource);\n this._saveConfigValidate();\n this.editStatusToggle();\n }\n }\n\n _saveConfigValidate() {\n this._saveDisable = this.checkedDatasource.find(x => x.cheqNoError) != undefined;\n }\n\n _returnStatusFilter(type: string, config: CdsDropdownConfig, itemStatus: PaymentStatusE) {\n const _config = deepCopy(config);\n if (itemStatus == PaymentStatusE.UN_PRESENTED && type == 'EE') {\n _config.options.push({ label: 'ReturnedFromEE', value: PaymentStatusE.RETURNED_FROM_EE });\n }\n if (itemStatus == PaymentStatusE.UN_PRESENTED && type == 'ER') {\n _config.options.push({ label: 'ReturnedFromER', value: PaymentStatusE.RETURNED_FROM_ER });\n }\n return _config;\n }\n\n reissueChnage(val: boolean) {\n this.searchDTO.isReissue = val ? 'Y' : undefined;\n this._valid = true;\n }\n validating() {\n if (!!this.searchDTO.chequeIssueDateFrom || !!this.searchDTO.chequeIssueDateTo || !!this.searchDTO.outChequeNo) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n\n inputChange(val: string, label: string) {\n switch (label) {\n case 'outChequeNo':\n this.searchDTO.outChequeNo = val;\n break;\n case 'payeeName':\n this.searchDTO.payeeName = val;\n break;\n }\n this.validating();\n }\n\n editReset(cancelEdit = false) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.cancel'),\n cancelButtonName: 'Back',\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doEditReset();\n if (cancelEdit) {\n this.editStatusToggle();\n }\n }\n });\n }\n\n editStatusToggle() {\n this._edited = !this._edited;\n this.searchButtonDisabled = this._edited;\n this.resetButtonDisabled = this._edited;\n }\n\n doEditReset() {\n this.checkedDatasource = deepCopy(this.OriginCheckedDatasource);\n this._confirmed = false;\n this._saveConfigValidate();\n }\n\n prefill(value: string) {\n this.checkedDatasource = this.checkedDatasource.map((item, index) => {\n let zeroCount = 0;\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '0') {\n zeroCount++;\n } else {\n break;\n }\n }\n if (item.canInputChequeNo) {\n item.outChequeNo = '0'.repeat(zeroCount) + (Number(value) + index);\n this.outChequeNoChange(item);\n }\n return item;\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n const contentWidth = this.elemRef.nativeElement.getElementsByClassName('row')[0].offsetWidth;\n const screenWidth = document.body.clientWidth;\n\n this.scrollBarWidth = screenWidth - contentWidth - (this.isMobile ? 0 : 80) + 'px';\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
\n
\n \n
\n
\n
\n
\n
\n {{ 'list.record-list' | lang }}\n
\n
\n {{ 'page.total' | lang }} {{ _totalCount }} {{ 'page.records' | lang }}\n
\n
\n
\n\n
\n
\n
\n
\n {{ 'cheque.list.number-of-records-shown' | lang }}\n
\n
\n \n {{ size }}\n
\n
\n
\n\n
\n Export Selected\n
\n
\n
\n
Total amount of transaction:
\n
\n {{ _currList[_currSelected].type }} {{ transactionAmount | number : '1.2-2' }}\n N/A\n
\n
\n
\n
\n\n
\n
\n {{ 'cheque.list.currency' | lang }}\n
\n
\n
\n \n {{ item.type }}\n
\n
\n
\n \n\n
\n
\n {{ 'cheque.list.status' | lang }}\n
\n
\n
\n \n {{ item.label }}\n
\n
\n
\n \n Reset Status Filters\n
\n
\n \n\n\n\n
\n \n
\n
\n \n \n \n 0\" (change)=\"triggerAll()\">\n \n \n \n \n \n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n \n Payment Status \n \n
\n
\n
\n
{{ getPaymentStatus | fn : element.recordStatus }}
\n \n
\n
\n
\n \n Amount\n \n
{{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}
\n
\n
\n \n Bank Name \n \n {{ element.bankName }}\n \n \n \n Bank Code \n \n {{ element.bankCode }}\n \n \n \n Bank Branch Code \n \n {{ element.bankBranchCode }}\n \n \n \n Bank Account No.\n \n {{ element.bankAcctNo }}\n \n \n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n \n Reissuance \n \n {{ element.isReissue }}\n \n \n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n \n Application Reference No. \n \n {{ element.appRefNo }}\n \n \n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n \n Bank Value Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n \n Scheme \n \n {{ element.schemeCode }}\n \n \n \n Lawson Transaction Identifie \n \n {{ element.transactionIdentifier }}\n \n \n \n Remarks \n \n {{ element.remarks }}\n \n \n\n \n \n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
\n \n
\n
\n \n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n \n Payment Status \n \n \n \n
\n \n
\n
\n \n
\n
\n
\n
{{ element.recordStatus }}
\n
\n
\n
\n\n \n
{{ element.recordStatus }}
\n
\n
\n
\n \n Amount\n \n
{{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}
\n
\n
\n\n \n Bank Name \n \n {{ element.bankName }}\n \n \n \n Bank Code \n \n {{ element.bankCode }}\n \n \n \n Bank Branch Code \n \n {{ element.bankBranchCode }}\n \n \n \n Bank Account No.\n \n {{ element.bankAcctNo }}\n \n \n\n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n \n Reissuance \n \n {{ element.isReissue }}\n \n \n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n \n Application Reference No. \n \n {{ element.appRefNo }}\n \n \n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n \n Bank Value Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n \n Scheme \n \n {{ element.schemeCode }}\n \n \n \n Lawson Transaction Identifie \n \n \n \n \n \n {{ element.transactionIdentifier }}\n \n \n \n \n Remarks \n \n \n \n \n \n {{ element.remarks }}\n \n \n \n\n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\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\" (change)=\"triggerAll()\">\n \n \n \n \n \n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n \n Payment Status \n \n
\n
\n
\n
{{ getPaymentStatus | fn : element.recordStatus }}
\n \n
\n
\n
\n \n Amount\n \n
{{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}
\n
\n
\n \n Beneficiary Bank Name\n \n {{ element.overseaBankName }}\n \n \n \n Beneficiary Bank SWIFT Code\n \n {{ element.overseaSwift }}\n \n \n \n Beneficiary Bank IBAN/ ABA/ UID no.\n \n {{ element.otherSettlementInfo }}\n \n \n \n Beneficiary Bank Address\n \n {{ element.overseaBankAddr }}\n \n \n \n Beneficiary Bank Country\n \n {{ element.overseaBankCountry }}\n \n \n \n Beneficiary Bank Account No.\n \n {{ element.overseaBankAcctNo }}\n \n \n \n Intermediary Bank Name\n \n {{ element.agentBankName }}\n \n \n \n Intermediary Bank SWIFT Code\n \n {{ element.agentSwift }}\n \n \n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n \n Reissuance \n \n {{ element.isReissue }}\n \n \n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n \n Application Reference No. \n \n {{ element.appRefNo }}\n \n \n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n \n Bank Value Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n \n Scheme \n \n {{ element.schemeCode }}\n \n \n \n Lawson Transaction Identifie \n \n {{ element.transactionIdentifier }}\n \n \n \n Remarks \n \n {{ element.remarks }}\n \n \n\n \n \n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
\n \n
\n
\n \n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n \n Payment Status \n \n \n \n
\n \n
\n
\n \n
\n
\n
\n
{{ element.recordStatus }}
\n
\n
\n
\n\n \n
{{ element.recordStatus }}
\n
\n
\n
\n \n Amount\n \n
{{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}
\n
\n
\n\n \n Beneficiary Bank Name\n \n {{ element.overseaBankName }}\n \n \n \n Beneficiary Bank SWIFT Code\n \n {{ element.overseaSwift }}\n \n \n \n Beneficiary Bank IBAN/ ABA/ UID no.\n \n {{ element.otherSettlementInfo }}\n \n \n \n Beneficiary Bank Address\n \n {{ element.overseaBankAddr }}\n \n \n \n Beneficiary Bank Country\n \n {{ element.overseaBankCountry }}\n \n \n \n Beneficiary Bank Account No.\n \n {{ element.overseaBankAcctNo }}\n \n \n \n Intermediary Bank Name\n \n {{ element.agentBankName }}\n \n \n \n Intermediary Bank SWIFT Code\n \n {{ element.agentSwift }}\n \n \n\n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n \n Reissuance \n \n {{ element.isReissue }}\n \n \n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n \n Application Reference No. \n \n {{ element.appRefNo }}\n \n \n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n \n Bank Value Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n \n Scheme \n \n {{ element.schemeCode }}\n \n \n \n Lawson Transaction Identifier \n \n \n \n \n \n {{ element.transactionIdentifier }}\n \n \n \n \n Remarks \n \n \n \n \n \n {{ element.remarks }}\n \n \n \n\n \n \n
\n
\n
\n\n
\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\" class=\"operation-bar\" [style.right]=\"scrollBarWidth\" [style.left]=\"isMobile ? 0 : '80px'\">\n
Please select record(s) to
\n
\n
\n {{ _checkedDatasourceMap.size }} item(s) selected\n
\n \n Edit Selected\n \n \n Cancel Edit\n \n
\n
\n\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { Component, ElementRef, HostListener, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Subject, debounceTime, finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { jsonToSheet } from 'src/app/utils/xlsx';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport {\n getColor,\n formatReason,\n formatDate2,\n maxDate,\n minDate,\n PaymentStatusE,\n PaymentStatusSelected,\n configPrimary,\n configSecondary,\n ChequeSearchDTO,\n ChequeDTO,\n pageInit,\n I18N_KEY,\n BaseChequeSearch,\n ChequeSearch,\n PaymentMethodE,\n formatDate,\n} from '../../benefit-payment';\nimport { ChequePrintingSaveSuccessPTWComponent } from '../cheque-printing-save-success/cheque-printing-save-success-ptw.component';\nimport { PaymentServicePTW } from '../../paymentPTW.service';\nimport { dateValidator } from 'src/app/core/validators';\n\n@Component({\n selector: 'app-cheque-issuance-ptw',\n templateUrl: './cheque-issuance-ptw.component.html',\n styleUrls: ['./cheque-issuance-ptw.component.scss'],\n})\nexport class ChequeIssuancePTWComponent implements OnInit {\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private service: PaymentServicePTW,\n private toastAlert: ToastAlertService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private elemRef: ElementRef\n ) {}\n\n PermissionAccess = PermissionAccess;\n PermissionItem = PermissionItem;\n\n getColor = getColor;\n\n formatReason = formatReason;\n\n formatDate = formatDate;\n formatDate2 = formatDate2;\n\n maxDate = maxDate;\n minDate = minDate;\n\n _editPaymentStatusMap = new Map([\n [\n PaymentStatusE.HOLD_PAYMENT,\n {\n options: [\n { label: 'HoldPayment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'StopPayment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.REISSUE_COMPLETE,\n {\n options: [{ label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE }],\n },\n ],\n ]);\n\n _paymentStatusList: PaymentStatusSelected[] = [\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT, selected: true },\n { label: 'New', value: PaymentStatusE.NEW, selected: true },\n { label: 'Passed to Lawson', value: PaymentStatusE.PASSED_TO_LAWSON, selected: true },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Printed Address', value: PaymentStatusE.PRINTED },\n { label: 'Ready to Print Address', value: PaymentStatusE.READY_TO_PRINT_ADDRESS, selected: true },\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n ];\n\n // _canCheckStatus: (string | undefined)[] = [\n // PaymentStatusE.READY_TO_REISSUE,\n // PaymentStatusE.NEW,\n // PaymentStatusE.PRINTED,\n // PaymentStatusE.HOLD_PAYMENT,\n // PaymentStatusE.STOP_PAYMENT,\n // PaymentStatusE.UN_PRESENTED,\n // ];\n _canEditStatus: (string | undefined)[] = [\n PaymentStatusE.NEW,\n PaymentStatusE.PRINTED,\n PaymentStatusE.READY_TO_REISSUE,\n PaymentStatusE.PRINTED,\n PaymentStatusE.UN_PRESENTED,\n PaymentStatusE.HOLD_PAYMENT,\n PaymentStatusE.STOP_PAYMENT,\n ];\n\n _toolBarPermission: PermissionItem[] = [PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF, PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER];\n\n _reEditPermission: PermissionItem[] = [PermissionItem.ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER];\n _toolBar = false;\n _reEdit = false;\n\n // _permissionMap = new Map([\n // [PermissionItem.SHK_PAYMENT_ISSUANCE_APPROVE_TO_PRINT.toString(), [PaymentStatusE.READY_TO_REISSUE, PaymentStatusE.NEW,PaymentStatusE.PRINTED,PaymentStatusE.HOLD_PAYMENT,PaymentStatusE.STOP_PAYMENT]]\n // ]);\n\n paymentSelectedList: CdMultidropdownTopping[] = [];\n\n searchButtonConfig = configPrimary();\n _searchDisable = false;\n\n resetButtonConfig = configSecondary();\n _resetDisable = false;\n\n _valid = false;\n\n resetEditConfig = configSecondary();\n\n _resetEditDisable = false;\n\n saveEditConfig = configPrimary();\n\n exportAllButtonConfig = configPrimary();\n\n exportSelectedButtonConfig = configSecondary();\n\n editSelectedButtonConfig = configPrimary();\n\n _stopPaymentDisable = true;\n _completePaymentDisable = true;\n\n notfoundConfig: CdsIconConfig = { color: '#8e90a2', size: 'md' };\n\n pageSelectSize: number[] = [10, 20, 50, 100];\n _pageSelected = 1;\n\n _totalCount = 0;\n searchDTO: ChequeSearchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n };\n displayedColumns: string[] = [\n 'selected',\n 'outChequeNo',\n 'paymentStatus',\n 'amt',\n 'payeeName',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'schemeCode',\n 'transactionIdentifier',\n 'remarks',\n ];\n checkedDisplayedColumns: string[] = [\n 'outChequeNo',\n 'paymentStatus',\n 'amt',\n 'payeeName',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'schemeCode',\n 'transactionIdentifier',\n 'remarks',\n ];\n dataSource: ChequeDTO[] = [];\n originData: ChequeDTO[] = [];\n\n checkedDatasource: ChequeDTO[] = [];\n _checkedDatasourceMap: Map = new Map();\n\n OriginCheckedDatasource: ChequeDTO[] = [];\n\n sheetHeader = {\n outChequeNo: 'Cheque No.',\n recordStatus: 'Payment Status',\n curr: 'Currency',\n amt: 'Transaction Amount',\n payeeName: 'Payee Name',\n feedReceiveDate: 'Payment Instruction File Date',\n isReissue: 'Reissuance',\n reissueRefNo: 'Reissuance Ref No.',\n reissueReason: 'Reissurance Reason',\n payRefNo: 'Payment Ref No.',\n appRefNo: 'Application Reference No.',\n exptPayIssue: 'Expected Payment Issue Date on Statement',\n chequeIssueDate: 'Cheque Issue Date',\n lastUpdateDate: 'Status Update Date',\n schemeCode: 'Secheme',\n transactionIdentifier: 'Lawson Transaction Identifier',\n remarks: 'Remarks',\n };\n\n isMobile = false;\n\n searchButtonDisabled = false;\n resetButtonDisabled = false;\n exportSelectedDisabled = true;\n editSelectedDisabled = false;\n exportMailMerge = true;\n\n _selectedAll = false;\n _edited = false;\n _confirmed = false;\n\n _inputNumber = 1;\n _progress = false;\n _downloading = false;\n scrollBarWidth = '15px';\n\n pageCount: IPaginationCount = pageInit();\n\n transactionAmount?: number = 0;\n\n I18N_KEY = I18N_KEY;\n\n _saveDisable = true;\n private search$ = new Subject();\n\n _currList = [\n { type: 'ALL', selected: true },\n { type: 'HKD', selected: false },\n { type: 'USD', selected: false },\n { type: 'MOP', selected: false },\n ];\n\n _currSelected = 0;\n\n form = new FormGroup({\n chequeIssueDateFrom: new FormControl('', [dateValidator()]),\n chequeIssueDateTo: new FormControl('', [dateValidator()]),\n outChequeNo: new FormControl('', []),\n });\n\n @Input() baseParam?: BaseChequeSearch;\n @Input() search?: number;\n\n _sortString = '';\n\n // chequeIssueDateFrom() {\n\n // return this.searchDTO.chequeIssueDateFrom;\n // }\n\n // get chequeIssueDateTo() {\n // const control = this.form?.get('chequeIssueDateTo');\n // if (control) {\n // return control.value;\n // }\n // return '';\n // }\n\n currSelected(index: number) {\n this._currList.forEach(x => (x.selected = false));\n this._currSelected = index;\n this._currList[index].selected = !this._currList[index].selected;\n this.loadTable();\n }\n\n numberBetween(end: number, start?: number): number {\n start = start || 1;\n return Math.round(Math.random() * end) + start;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['search'] && !changes['search'].firstChange) {\n this.pageCount = pageInit();\n if (Number(changes['search'].currentValue) > 0) {\n this._paymentStatusList.forEach(x => (x.selected = false));\n }\n this.loadTable();\n }\n }\n\n ngOnInit(): void {\n this.onResize();\n this._toolBarPermission.forEach(x => {\n this.permissionService.hasPermission(PermissionAccess.R, x).then(has => {\n this._toolBar = this._toolBar || has;\n });\n });\n this._reEditPermission.forEach(x => {\n this.permissionService.hasPermission(PermissionAccess.R, x).then(has => {\n this._reEdit = this._reEdit || has;\n });\n });\n\n // chq 输入防抖\n this.search$.pipe(debounceTime(300)).subscribe(item => {\n this.outChequeNoChange(item);\n });\n\n this.initForm();\n this.loadTable();\n }\n\n async validFn() {\n return this._valid && this.form.valid;\n }\n\n onSortChange(event: Sort) {\n if (event.direction) {\n this._sortString = event.active + ',' + event.direction;\n } else {\n this._sortString = '';\n }\n this.loadTable();\n }\n\n resetStatus() {\n this._paymentStatusList.forEach(x => (x.selected = false));\n this.loadTable();\n }\n\n searchFn() {\n this.validFn().then(r => {\n if (r) {\n this.pageCount = pageInit();\n this._paymentStatusList.forEach(x => (x.selected = false));\n this.loadTable();\n }\n });\n }\n\n outChqValidate(item: ChequeDTO) {\n if (item.canInputChequeNo && !item.outChequeNo) {\n item.cheqNoError = 'Please input the cheque no.';\n }\n }\n\n chqInput(item: ChequeDTO, event: any) {\n item.outChequeNo = event.target.value;\n this.search$.next(item);\n }\n\n outChequeNoChange(item: ChequeDTO) {\n if (!item.canInputChequeNo) {\n this._saveDisable = false;\n return;\n }\n if (item.outChequeNo == undefined || item.outChequeNo == '') {\n this._saveDisable = true;\n item.cheqNoError = 'Please input the cheque no.';\n return;\n }\n this._saveDisable = true;\n item.cheqNoError = 'checking...';\n const ex = this.checkedDatasource.find(x => x.id != item.id && x.outChequeNo == item.outChequeNo) != undefined;\n if (ex) {\n this._saveDisable = true;\n item.cheqNoError = 'Cheque No. allready existed';\n return;\n }\n return this.service\n .getByChqNo(item.outChequeNo)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data != null && item.id != data.data.id) {\n item.cheqNoError = 'Cheque No. allready existed';\n } else {\n item.cheqNoError = undefined;\n }\n this._saveConfigValidate();\n });\n }\n\n loadTable() {\n const params: ChequeSearch = this.getRequestParams();\n const listParms: ChequeSearchDTO = {\n // ...this.searchDTO,\n size: this.pageSelectSize[this._pageSelected],\n ...params,\n page: this.pageCount.current - 1,\n sort: this._sortString,\n };\n this.getAmount(params);\n this.getList(listParms);\n }\n\n getList(params: ChequeSearchDTO) {\n this._progress = true;\n this.service\n .getPaymentIssuance(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n // this._selectedAll = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n if (this._selectedAll) {\n this.dataSource.forEach(x => (x.checked = true));\n }\n this.originData = deepCopy(this.dataSource);\n\n this._totalCount = data.data.totalElements;\n if (this.pageCount.current != data.data.number + 1) {\n this.pageCount.current = data.data.number + 1;\n }\n if (this.pageCount.count !== data.data.totalPages) {\n this.pageCount.count = data.data.totalPages;\n }\n this.selectButtonsDisableRefresh();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getAmount(params: ChequeSearch) {\n this.service\n .getPaymentIssuanceAmount(params)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n // this._progress = false;\n this.transactionAmount = data.data;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams() {\n const params: ChequeSearchDTO = deepCopy(this.searchDTO);\n params.recordStatusList = this._paymentStatusList.filter(x => x.selected).map(x => x.value);\n params.chequeIssueDateFrom = this.formatDate(params.chequeIssueDateFrom);\n params.chequeIssueDateTo = this.formatDate(params.chequeIssueDateTo);\n params.payRefNo = this.baseParam?.payRefNo;\n params.appRefNo = this.baseParam?.appRefNo;\n params.instructionFileDateFrom = this.formatDate(this.baseParam?.instructionFileDateFrom);\n params.instructionFileDateTo = this.formatDate(this.baseParam?.instructionFileDateTo);\n params.payeeName = this.baseParam?.payeeName;\n params.isReissue = this.baseParam?.isReissue;\n params.schemeCodeList = this.baseParam?.schemeCodeList;\n if (!params.isReissue) {\n delete params.isReissue;\n }\n if (!params.payMethod) {\n params.payMethod = PaymentMethodE.CHQ;\n }\n params.transactionIdentifier = this.baseParam?.transactionIdentifier;\n params.currList = this._currList.filter(i => i.selected && i.type !== 'ALL').map(x => x.type) || [];\n return params;\n }\n\n getPaymentStatus = (value: string) => {\n let label = '';\n if (!value) return label;\n const obj = this._paymentStatusList.find(x => x.value === value);\n label = obj?.label || '';\n return label;\n };\n\n // formatDate(date?: string) {\n // if (!date) {\n // return '';\n // }\n // return DateTime.fromFormat(date, 'd/M/yyyy').toFormat('yyyy-MM-dd');\n // }\n\n initForm() {\n // const _recordStatusList = this.paymentStatusList.filter(x => this._canCheckStatus.indexOf(x.value) > -1);\n // this.form = new FormGroup({\n // chequePrintDateStart: new FormControl('', [dateValidator()]),\n // chequePrintDateEnd: new FormControl('', [dateValidator()]),\n // // Cheque Number\n // outChequeNo: new FormControl('', []),\n // // recordStatusList: new FormControl([..._recordStatusList]),\n // // payMethod: new FormControl('', []),\n // // feedReceiveDate: new FormControl('', [dateValidator()]),\n // payeeName: new FormControl('', []),\n // isReissue: new FormControl(),\n // });\n this.searchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n };\n }\n\n backListClick() {\n this._confirmed = false;\n }\n\n confirmClick() {\n this._progress = true;\n this.service\n .changePaymentIssuance(this.checkedDatasource)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n updateList(status: string) {\n this._progress = true;\n const _dataList: ChequeDTO[] = [];\n this.dataSource.forEach(item => {\n if (item.checked) {\n _dataList.push(deepCopy(item));\n }\n });\n _dataList.forEach(item => {\n item.recordStatus = PaymentStatusE[status as keyof typeof PaymentStatusE];\n });\n this.service\n .changePaymentIssuance(_dataList)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n popupWithReload() {\n const popupRef: MatDialogRef = this.cdsPopup.open(ChequePrintingSaveSuccessPTWComponent, {\n size: 'md',\n data: {},\n });\n popupRef.afterClosed().subscribe(() => {\n this._edited = false;\n this.searchButtonDisabled = this._edited;\n this.resetButtonDisabled = this._edited;\n this._confirmed = false;\n this._selectedAll = false;\n this.loadTable();\n });\n }\n\n toConfirm() {\n // if (this._saveDisable) {\n // return;\n // }\n this._confirmed = true;\n }\n\n selectButtonsDisableRefresh() {\n // if (this.dataSource.some(item => item.checked)) {\n // this.exportSelectedDisabled = false;\n // } else {\n // this.exportSelectedDisabled = true;\n // }\n // if (this.dataSource.some(item => item.checked && item.recordStatus === PaymentStatusE.APPROVED_TO_PRINT)) {\n // this.editSelectedDisabled = false;\n // } else {\n // this.editSelectedDisabled = true;\n // }\n const _checkedList = this.dataSource.filter(item => item.checked);\n // if(_checkedList.length == 0){\n // return\n // }\n this._checkedDatasourceMap = new Map();\n _checkedList.forEach(item => {\n this._checkedDatasourceMap.set(item.id, item);\n });\n const _length = _checkedList.length > 0;\n this._stopPaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.HOLD_PAYMENT).length == _checkedList.length);\n this._completePaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.STOP_PAYMENT).length == _checkedList.length);\n // this.editSelectedDisabled = !(_length && _checkedList.filter(item => this._canEditStatus.includes(item.recordStatus)).length == _checkedList.length);\n this.exportSelectedDisabled = !_length;\n // this.exportMailMergeTrigger();\n this.exportMailMerge =\n _checkedList.filter(x => x.recordStatus !== PaymentStatusE.READY_TO_PRINT_ADDRESS && x.recordStatus !== PaymentStatusE.PRINTED).length > 0;\n // _temp.filter(x => x.selected && x.value !== PaymentStatusE.NEW && x.value !== PaymentStatusE.READY_TO_REISSUE).length > 0\n }\n\n _editToolFun() {}\n\n trigger(index: number) {\n this.dataSource[index].checked = !this.dataSource[index].checked;\n this.selectButtonsDisableRefresh();\n }\n\n triggerAll() {\n this._selectedAll = !this._selectedAll;\n this.dataSource.forEach(item => {\n item.checked = this._selectedAll;\n });\n this.selectButtonsDisableRefresh();\n }\n\n sizeSelect(index: number) {\n this._pageSelected = index;\n this.searchDTO.size = this.pageSelectSize[index];\n this.pageCount = pageInit();\n this.loadTable();\n }\n\n paymentStatusSelecte(index: number) {\n this.pageCount = pageInit();\n this._paymentStatusList[index].selected = !this._paymentStatusList[index].selected;\n // this.exportMailMergeTrigger();\n this.loadTable();\n }\n\n exportPdf() {\n if (this.dataSource.length === 0 || this.exportMailMerge) {\n return;\n }\n const _checkedIds = this.dataSource.filter(x => x.checked).map(x => x.id);\n this._downloading = true;\n const _exprotStatus = this._paymentStatusList\n .filter(x => x.selected && (x.value === PaymentStatusE.READY_TO_PRINT_ADDRESS || x.value === PaymentStatusE.PRINTED))\n .map(x => x.value);\n if (this._selectedAll && _exprotStatus.length > 0) {\n this.service\n .exportPdfStatus(_exprotStatus)\n .pipe(\n finalize(() => {\n // this._progress = false;\n this._downloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n window.open(res.data, '_blank');\n } else {\n this.toastError('export Pdf error');\n }\n });\n } else {\n this.service\n .exportPdf(_checkedIds)\n .pipe(\n finalize(() => {\n // this._progress = false;\n this._downloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n window.open(res.data, '_blank');\n } else {\n this.toastError('export Pdf error');\n }\n });\n }\n }\n\n exportAll() {\n if (this.dataSource.length === 0 || this.exportMailMerge) {\n return;\n }\n const _statusList = [PaymentStatusE.NEW, PaymentStatusE.READY_TO_REISSUE];\n const _param: ChequeSearchDTO = {\n page: 0,\n size: 12000,\n recordStatusList: _statusList,\n };\n _param.payMethod = PaymentMethodE.CHQ;\n // this._progress = true;\n this._downloading = true;\n this.service\n .getPaymentIssuance(_param)\n .pipe(\n finalize(() => {\n // this._progress = false;\n this._downloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data?.content) {\n jsonToSheet(\n {\n fileName: 'PTW Cheque Printing Record List',\n fileType: 'csv',\n header: this.sheetHeader,\n },\n this.createData(res.data.content)\n );\n\n this.printCount(res.data.content);\n } else {\n this.toastError('no ready to print data');\n }\n });\n }\n\n printCount(data: ChequeDTO[]) {\n const ids = data.map(item => item.id);\n this.service.paymentIssuancePrintCount(ids).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n createData(data: ChequeDTO[]) {\n return data.map(item => {\n return {\n outChequeNo: item.outChequeNo,\n recordStatus: item.recordStatus,\n curr: item.curr,\n amt: item.amt,\n payeeName: item.payeeName,\n feedReceiveDate: this.formatDate2(item.feedReceiveDate),\n isReissue: item.isReissue,\n reissueRefNo: item.reissueRefNo,\n reissueReason: this.formatReason(item.reissueReason + ''),\n payRefNo: item.payRefNo,\n appRefNo: item.appRefNo,\n exptPayIssue: this.formatDate2(item.exptPayIssue),\n chequeIssueDate: this.formatDate2(item.chequeIssueDate),\n lastUpdateDate: this.formatDate2(item.lastUpdateDate),\n schemeCode: item.schemeCode,\n transactionIdentifier: item.transactionIdentifier,\n remarks: item.remarks,\n };\n });\n }\n\n exportSelected() {\n if (this.exportSelectedDisabled) {\n return;\n }\n this._downloading = true;\n const data = this.dataSource.filter(item => item.checked);\n\n jsonToSheet(\n {\n fileName: 'PTW Cheque Printing Record List',\n fileType: 'csv',\n header: this.sheetHeader,\n },\n this.createData(data)\n );\n this._downloading = false;\n }\n\n editTrigger(isCancel = false) {\n // if (this.editSelectedDisabled) {\n // return;\n // }\n if (isCancel) {\n if (JSON.stringify(this.checkedDatasource) !== JSON.stringify(this.OriginCheckedDatasource)) {\n this.editReset(true);\n } else {\n this.doEditReset();\n this.editStatusToggle();\n }\n } else {\n this.checkedDatasource = [];\n this.dataSource.forEach(item => {\n if (item.checked) {\n const item2 = deepCopy(item);\n // item2.recordStatus = PaymentStatusE.UN_PRESENTED;\n if (this._editPaymentStatusMap.has(item2.recordStatus)) {\n const _config = this._editPaymentStatusMap.get(item2.recordStatus);\n if (_config) {\n item2.downConfig = this._returnStatusFilter(item2.acctType, _config, item2.recordStatus);\n }\n }\n if (item2.outstandingFlag && !this._reEdit) {\n item2.downConfig = undefined;\n }\n if (item2.recordStatus == PaymentStatusE.PRINTED) {\n item2.canInputChequeNo = true;\n }\n if (item2.recordStatus == PaymentStatusE.UN_PRESENTED && this._reEdit) {\n item2.canInputChequeNo = true;\n }\n this.outChqValidate(item2);\n this.checkedDatasource.push(item2);\n }\n });\n this.OriginCheckedDatasource = deepCopy(this.checkedDatasource);\n // this._saveConfigValidate();\n this.editStatusToggle();\n }\n }\n\n _saveConfigValidate() {\n this._saveDisable = this.checkedDatasource.find(x => x.cheqNoError) != undefined;\n }\n\n _returnStatusFilter(type: string, config: CdsDropdownConfig, itemStatus: PaymentStatusE) {\n const _config = deepCopy(config);\n if (itemStatus == PaymentStatusE.UN_PRESENTED && type == 'EE') {\n _config.options.push({ label: 'ReturnedFromEE', value: PaymentStatusE.RETURNED_FROM_EE });\n }\n if (itemStatus == PaymentStatusE.UN_PRESENTED && type == 'ER') {\n _config.options.push({ label: 'ReturnedFromER', value: PaymentStatusE.RETURNED_FROM_ER });\n }\n if (itemStatus == PaymentStatusE.REISSUE_COMPLETE && type == 'EE') {\n _config.options.push({ label: 'ReturnedFromEE', value: PaymentStatusE.RETURNED_FROM_EE });\n }\n if (itemStatus == PaymentStatusE.REISSUE_COMPLETE && type == 'ER') {\n _config.options.push({ label: 'ReturnedFromER', value: PaymentStatusE.RETURNED_FROM_ER });\n }\n return _config;\n }\n\n reissueChnage(val: boolean) {\n this.searchDTO.isReissue = val ? 'Y' : undefined;\n this._valid = true;\n }\n validating() {\n if (!!this.searchDTO.chequeIssueDateFrom || !!this.searchDTO.chequeIssueDateTo || !!this.searchDTO.outChequeNo) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n\n inputChange(val: string, label: string) {\n switch (label) {\n case 'outChequeNo':\n this.searchDTO.outChequeNo = val;\n break;\n case 'payeeName':\n this.searchDTO.payeeName = val;\n break;\n }\n this.validating();\n }\n\n editReset(cancelEdit = false) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.cancel'),\n cancelButtonName: 'Back',\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doEditReset();\n if (cancelEdit) {\n this.editStatusToggle();\n }\n }\n });\n }\n\n editStatusToggle() {\n this._edited = !this._edited;\n this.searchButtonDisabled = this._edited;\n this.resetButtonDisabled = this._edited;\n }\n\n doEditReset() {\n this.checkedDatasource = deepCopy(this.OriginCheckedDatasource);\n this._confirmed = false;\n // this._saveConfigValidate();\n }\n\n reset() {\n this.initForm();\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n this.pageCount = pageInit();\n this.validating();\n this.loadTable();\n }\n\n prefill(value: string) {\n this.checkedDatasource = this.checkedDatasource.map((item, index) => {\n let zeroCount = 0;\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '0') {\n zeroCount++;\n } else {\n break;\n }\n }\n if (item.canInputChequeNo) {\n item.outChequeNo = '0'.repeat(zeroCount) + (Number(value) + index);\n this.outChequeNoChange(item);\n }\n return item;\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n const contentWidth = this.elemRef.nativeElement.getElementsByClassName('row')[0].offsetWidth;\n const screenWidth = document.body.clientWidth;\n\n this.scrollBarWidth = screenWidth - contentWidth - (this.isMobile ? 0 : 80) + 'px';\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
\n
\n {{ 'list.search-record' | lang }}\n
\n
\n
\n \n\n
\n
\n \n \n \n\n {{ 'create.dateError' | lang }} \n
\n
-
\n
\n \n \n \n {{ 'create.dateError' | lang }} \n
\n
\n
\n \n
\n \n \n
\n\n
\n
\n
\n
\n {{ 'list.record-list' | lang }}\n
\n
\n {{ 'page.total' | lang }} {{ _edited ? checkedDatasource.length : _totalCount }} {{ 'page.records' | lang }}\n
\n
\n
\n
\n\n
\n
\n
\n
\n {{ 'cheque.list.number-of-records-shown' | lang }}\n
\n
\n \n {{ size }}\n
\n
\n
\n\n
\n Export Selected\n
\n
\n
\n
Total amount of transaction:
\n
\n {{ _currList[_currSelected].type }} {{ transactionAmount | number : '1.2-2' }}\n N/A\n
\n
\n
\n
\n\n
\n
\n {{ 'cheque.list.currency' | lang }}\n
\n
\n
\n \n {{ item.type }}\n
\n
\n
\n \n\n
\n
\n {{ 'cheque.list.status' | lang }}\n
\n
\n
\n \n {{ item.label }}\n
\n
\n
\n \n Reset Status Filters\n
\n
\n \n\n\n
\n \n
\n
\n \n \n \n 0\" (change)=\"triggerAll()\">\n \n \n \n \n \n \n Cheque No. \n \n \n
{{ element.outChequeNo }}
\n
\n
\n
\n\n \n Payment Status \n \n
\n
\n
\n
{{ getPaymentStatus | fn : element.recordStatus }}
\n \n
\n
\n
\n\n \n Amount\n \n
{{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}
\n
\n
\n\n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n\n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n\n \n Reissuance \n \n {{ element.isReissue }}\n \n \n\n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n\n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n\n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n\n \n Application Reference No. \n \n {{ element.appRefNo }}\n \n \n\n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n\n \n Cheque Issue Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n\n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n\n \n Scheme \n \n {{ element.schemeCode }}\n \n \n\n \n Lawson Transaction Identifier \n \n {{ element.transactionIdentifier }}\n \n \n\n \n Remarks \n \n {{ element.remarks }}\n \n \n\n \n \n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
\n \n
\n
\n \n \n Cheque No.\n \n
{{ element.outChequeNo }}
\n
\n
\n\n \n Payment Status \n \n \n \n
\n \n
\n
\n \n
\n
\n
\n
{{ element.recordStatus }}
\n
\n
\n
\n\n \n
{{ element.recordStatus }}
\n
\n
\n
\n\n \n Amount\n \n
{{ element.curr }} {{ element.amt }}
\n
\n
\n\n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n\n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n\n \n Reissuance \n \n {{ element.isReissue }}\n \n \n\n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n\n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n\n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n\n \n Application Reference No. \n \n {{ element.appRefNo }}\n \n \n\n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n\n \n Cheque Issue Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n\n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n\n \n Secheme \n \n {{ element.schemeCode }}\n \n \n\n \n Lawson Transaction Identifier \n \n \n \n \n \n {{ element.transactionIdentifier }}\n \n \n \n\n \n Remarks \n \n \n \n \n \n {{ element.remarks }}\n \n \n \n\n \n \n
\n
\n
\n\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\" class=\"operation-bar\" [style.right]=\"scrollBarWidth\" [style.left]=\"isMobile ? 0 : '80px'\">\n
Please select record(s) to
\n
\n
\n {{ _checkedDatasourceMap.size }} item(s) selected\n
\n \n Edit Selected\n
\n \n
\n \n Cancel Edit\n \n
\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { ChequePrintingListPTWComponent } from '../cheque-printing-list/cheque-printing-list-ptw.component';\n\n@Component({\n selector: 'app-cheque-printing-back-popup-ptw',\n templateUrl: './cheque-printing-back-popup-ptw.component.html',\n styleUrls: ['./cheque-printing-back-popup-ptw.component.scss'],\n})\nexport class ChequePrintingBackPopupPTWComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n ngOnInit(): void {}\n agree() {\n this.dialogRef.close({ agree: false });\n }\n disagree() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n {{ 'cheque.list.the-changes-you' | lang }}\n {{ 'cheque.list.will-be-lost' | lang }}\n {{ 'cheque.list.sure-to-continue' | lang }}\n \n \n \n \n \n \n\n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { configPrimary, configSecondary, BaseChequeSearch, I18N_KEY, maxDate, minDate, SchemeCode } from '../../benefit-payment';\nimport { PaymentServicePTW } from '../../paymentPTW.service';\nimport { dateValidator } from 'src/app/core/validators';\n\n@Component({\n selector: 'app-cheque-printing-list-ptw',\n templateUrl: './cheque-printing-list-ptw.component.html',\n styleUrls: ['./cheque-printing-list-ptw.component.scss'],\n})\nexport class ChequePrintingListPTWComponent implements OnInit {\n constructor(private cdsPopup: CdsPopupService, private service: PaymentServicePTW, private permissionService: PermissionService) {}\n\n searchButtonConfig: CdsButtonConfig = configPrimary();\n\n resetButtonConfig: CdsButtonConfig = configSecondary();\n\n _valid = true;\n\n searchDTO: BaseChequeSearch = {\n schemeCodeList: [SchemeCode.ORSO, SchemeCode.MACAUCPF, SchemeCode.MACAUPPS],\n };\n\n isMobile = false;\n\n I18N_KEY = I18N_KEY;\n maxDate = maxDate;\n minDate = minDate;\n\n _search = 0;\n _tabIndex = 0;\n\n _schemeList = {\n orso: true,\n macaupps: true,\n macaucpf: true,\n };\n\n form = new FormGroup({\n instructionFileDateFrom: new FormControl('', [dateValidator()]),\n instructionFileDateTo: new FormControl('', [dateValidator()]),\n // instructionFileDate: new FormControl('', [dateValidator()]),\n payRefNo: new FormControl('', []),\n appRefNo: new FormControl('', []),\n payeeName: new FormControl('', []),\n isReissue: new FormControl(),\n orso: new FormControl(true),\n macaupps: new FormControl(true),\n macaucpf: new FormControl(true),\n transactionIdentifier: new FormControl('', []),\n });\n\n ngOnInit(): void {\n this.onResize();\n this.initForm();\n }\n\n reissueChnage(val: boolean) {\n this.searchDTO.isReissue = val ? 'Y' : undefined;\n this._valid = true;\n }\n\n schemeChange(val: boolean, name: string) {\n this._valid = true;\n switch (name) {\n case 'orso':\n this._schemeList.orso = val;\n break;\n case 'macaupps':\n this._schemeList.macaupps = val;\n break;\n case 'macaucpf':\n this._schemeList.macaucpf = val;\n break;\n }\n const _selectedList: string[] = [];\n if (this._schemeList.orso) {\n _selectedList.push(SchemeCode.ORSO);\n }\n if (this._schemeList.macaupps) {\n _selectedList.push(SchemeCode.MACAUPPS);\n }\n if (this._schemeList.macaucpf) {\n _selectedList.push(SchemeCode.MACAUCPF);\n }\n this.searchDTO.schemeCodeList = _selectedList;\n }\n\n async validFn() {\n return this.form.valid && this._valid;\n }\n\n search() {\n this.validFn().then(r => {\n if (r) {\n this._search = this._search + 1;\n }\n });\n }\n reset() {\n this.initForm();\n }\n\n initForm() {\n this.searchDTO = {\n schemeCodeList: [SchemeCode.ORSO, SchemeCode.MACAUCPF, SchemeCode.MACAUPPS],\n };\n this._search = 0;\n this._schemeList.orso = true;\n this._schemeList.macaupps = true;\n this._schemeList.macaucpf = true;\n this.validating();\n }\n\n selectedTabIndexChange(index: number) {\n this._tabIndex = index;\n }\n\n validating() {\n if (\n !!this.searchDTO.instructionFileDateFrom ||\n !!this.searchDTO.instructionFileDateTo ||\n !!this.searchDTO.payRefNo ||\n !!this.searchDTO.appRefNo ||\n !!this.searchDTO.payeeName ||\n !!this.searchDTO.isReissue ||\n !!this.searchDTO.transactionIdentifier\n ) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n\n inputChange(val: string, label: string) {\n switch (label) {\n case 'payRefNo':\n this.searchDTO.payRefNo = val;\n break;\n case 'instructionFileDateFrom':\n this.searchDTO.instructionFileDateFrom = val;\n break;\n case 'instructionFileDateTo':\n this.searchDTO.instructionFileDateTo = val;\n break;\n case 'appRefNo':\n this.searchDTO.appRefNo = val;\n break;\n case 'payeeName':\n this.searchDTO.payeeName = val;\n break;\n case 'transactionIdentifier':\n this.searchDTO.transactionIdentifier = val;\n break;\n }\n this.validating();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","
\n
\n \n
\n
\n
\n Search Records\n
\n
\n Related cheque printing and bank transfer result will be displayed\n
\n
\n
\n
\n \n \n \n\n {{ 'create.dateError' | lang }} \n
\n
-
\n
\n \n \n \n {{ 'create.dateError' | lang }} \n
\n
\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n
\n \n \n
\n
\n \n \n
\n
\n \n \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 } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { ChequePrintingListPTWComponent } from '../cheque-printing-list/cheque-printing-list-ptw.component';\n\n@Component({\n selector: 'app-cheque-printing-save-success-ptw',\n templateUrl: './cheque-printing-save-success-ptw.component.html',\n styleUrls: ['./cheque-printing-save-success-ptw.component.scss'],\n})\nexport class ChequePrintingSaveSuccessPTWComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n {{ 'cheque.list.your-message' | lang }}\n {{ 'cheque.list.update-success' | lang }}\n \n \n \n \n \n\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { finalize } from 'rxjs';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { jsonToSheet } from 'src/app/utils/xlsx';\n\nimport { Sort } from '@cds/ng-data-table/sort';\nimport {\n getColor,\n formatDate2,\n formatReason,\n PaymentMethodE,\n PaymentStatusSelected,\n PaymentStatusE,\n pageInit,\n ChequeSearchDTO,\n BaseChequeSearch,\n ChequeDTO,\n ChequeSearch,\n formatDate,\n _TxnType,\n} from '../../benefit-payment';\nimport { PaymentServiceSHKP } from '../../paymentSHKP.service';\n\n@Component({\n selector: 'app-bank-transfer',\n templateUrl: './bank-transfer.component.html',\n styleUrls: ['./bank-transfer.component.scss'],\n})\nexport class BankTransferComponent implements OnInit {\n constructor(private service: PaymentServiceSHKP, private toastAlert: ToastAlertService, private elemRef: ElementRef) {}\n\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n getColor = getColor;\n formatDate = formatDate;\n formatDate2 = formatDate2;\n formatReason = formatReason;\n\n transferTypeConfig: CdsDropdownConfig = {\n label: 'Choose Bank Transfer Type',\n placeholder: 'Select Payment Method',\n options: [\n { label: 'Local Bank Transfer', value: PaymentMethodE.BTL },\n { label: 'Oversea Bank Transfer', value: PaymentMethodE.BTO },\n ],\n };\n\n _paymentStatusList: PaymentStatusSelected[] = [\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'New', value: PaymentStatusE.NEW, selected: true },\n { label: 'Passed to Bank', value: PaymentStatusE.PASSED_TO_BANK },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ];\n\n pageSelectSize: number[] = [10, 20, 50, 100];\n _pageSelected = 1;\n pageCount: IPaginationCount = pageInit();\n searchDTO: ChequeSearchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n payMethod: PaymentMethodE.BTL,\n };\n isMobile = false;\n notfoundConfig: CdsIconConfig = { color: '#8e90a2', size: 'md' };\n\n _totalCount = 0;\n _progress = false;\n _downloading = false;\n\n transactionAmount?: number = 0;\n\n displayedColumns: string[] = [\n 'selected',\n 'payeeName',\n 'paymentStatus',\n 'amt',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n // 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'empfid',\n 'mpfAcctNo',\n 'erempfId',\n 'erName',\n 'payrollGroupID',\n 'txnType',\n 'remarks',\n ];\n sheetHeader = {\n payeeName: 'Payee Name',\n recordStatus: 'Payment Status',\n curr: 'Currency',\n amt: 'Amount',\n feedReceiveDate: 'Payment Instruction File Date',\n isReissue: 'Reissuance',\n reissueRefNo: 'Reissuance Ref No.',\n reissueReason: 'Reissurance Reason',\n payRefNo: 'Payment Ref No.',\n // appRefNo: 'Application Reference No.',\n exptPayIssue: '\tExpected Payment Issue Date on Statement',\n chequeIssueDate: 'Bank Value Date',\n lastUpdateDate: 'Status Update Date',\n empfid: 'EMPF ID',\n mpfAcctNo: 'Account No.',\n erempfId: 'EMPF ID of ER',\n erName: 'Name of ER',\n payrollGroupID: 'Payroll Group ID',\n txnType: 'Transaction Type',\n remarks: 'Remarks',\n };\n\n exportAllButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n exportSelectedButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n\n _selectedAll = false;\n\n @Input() baseParam?: BaseChequeSearch;\n @Input() search?: number;\n\n dataSource: ChequeDTO[] = [];\n _checkedDatasourceMap: Map = new Map();\n scrollBarWidth = '15px';\n\n _sortString = '';\n\n ngOnInit(): void {\n // this.loadTable();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['search'] && !changes['search'].firstChange) {\n this.pageCount = pageInit();\n if (Number(changes['search'].currentValue) > 0) {\n this._paymentStatusList.forEach(x => (x.selected = false));\n }\n this.loadTable();\n }\n }\n\n onSortChange(event: Sort) {\n if (event.direction) {\n this._sortString = event.active + ',' + event.direction;\n } else {\n this._sortString = '';\n }\n this.loadTable();\n }\n\n formatTxnType(type: string) {\n return _TxnType.get(type) || '';\n }\n\n getAmount(params: ChequeSearch) {\n this.service\n .getPaymentIssuanceAmount(params)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n // this._progress = false;\n this.transactionAmount = data.data;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n resetStatus() {\n this._paymentStatusList.forEach(x => (x.selected = false));\n this.loadTable();\n }\n\n typeChange(val: PaymentMethodE) {\n this.searchDTO.payMethod = val;\n this.loadTable();\n }\n\n // reloadTable(event: any) {\n // // this.pageConfig = {\n // // ...this.pageConfig,\n // // current: event.current,\n // // };\n // this.loadTable();\n // }\n\n sizeSelect(index: number) {\n this._pageSelected = index;\n this.searchDTO.size = this.pageSelectSize[index];\n this.pageCount = pageInit();\n // this.pageConfig.pageSize = this.pageSelectSize[index];\n this.loadTable();\n }\n\n getPaymentStatus = (value: string) => {\n let label = '';\n if (!value) return label;\n const obj = this._paymentStatusList.find(x => x.value === value);\n label = obj?.label || '';\n return label;\n };\n\n trigger(index: number) {\n this.dataSource[index].checked = !this.dataSource[index].checked;\n this.selectButtonsDisableRefresh();\n }\n triggerAll() {\n this._selectedAll = !this._selectedAll;\n this.dataSource.forEach(item => {\n item.checked = this._selectedAll;\n });\n this.selectButtonsDisableRefresh();\n }\n selectButtonsDisableRefresh() {\n const _checkedList = this.dataSource.filter(item => item.checked);\n // if(_checkedList.length == 0){\n // return\n // }\n this._checkedDatasourceMap = new Map();\n _checkedList.forEach(item => {\n this._checkedDatasourceMap.set(item.id, item);\n });\n // const _length = _checkedList.length > 0;\n // this._stopPaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.HOLD_PAYMENT).length == _checkedList.length);\n // this._completePaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.STOP_PAYMENT).length == _checkedList.length);\n // this.editSelectedDisabled = !(\n // _length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.HOLD_PAYMENT || PaymentStatusE.STOP_PAYMENT).length == _checkedList.length\n // );\n // this.exportSelectedDisabled = !_length;\n }\n\n exportSelected() {\n this._downloading = true;\n const data = this.dataSource.filter(item => item.checked);\n\n jsonToSheet(\n {\n fileName: 'SHK Cheque Printing Record List',\n fileType: 'csv',\n header: this.sheetHeader,\n },\n this.createData(data)\n );\n setTimeout(() => {\n this._downloading = false;\n }, 1000);\n }\n\n exportAll() {\n if (!this.dataSource.length) {\n return;\n }\n const params: ChequeSearch = this.getRequestParams();\n const _param: ChequeSearchDTO = {\n ...this.searchDTO,\n ...params,\n page: 0,\n size: 12000,\n };\n _param.payMethod = PaymentMethodE.BTL;\n this._progress = true;\n this.service\n .getPaymentIssuance(_param)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data?.content) {\n jsonToSheet(\n {\n fileName: 'SHK Cheque Printing Record List',\n fileType: 'csv',\n header: this.sheetHeader,\n },\n this.createData(res.data.content)\n );\n } else {\n this.toastError('no ready to print data');\n }\n });\n }\n\n createData(data: ChequeDTO[]) {\n return data.map(item => {\n return {\n payeeName: item.payeeName,\n recordStatus: item.recordStatus,\n curr: item.curr,\n amt: item.amt,\n feedReceiveDate: this.formatDate2(item.feedReceiveDate),\n isReissue: item.isReissue,\n reissueRefNo: item.reissueRefNo,\n reissueReason: this.formatReason(item.reissueReason + ''),\n payRefNo: item.payRefNo,\n // appRefNo: item.appRefNo,\n exptPayIssue: this.formatDate2(item.exptPayIssue),\n chequeIssueDate: this.formatDate2(item.chequeIssueDate),\n lastUpdateDate: this.formatDate2(item.lastUpdateDate),\n empfid: item.empfid,\n mpfAcctNo: item.mpfAcctNo,\n erempfId: item.erempfId,\n erName: item.erName,\n payrollGroupID: item.payrollGroupID,\n txnType: this.formatTxnType(item.txnType || ''),\n remarks: item.remarks,\n };\n });\n }\n\n getRequestParams() {\n const params: ChequeSearchDTO = this.searchDTO;\n params.recordStatusList = this._paymentStatusList.filter(x => x.selected).map(x => x.value);\n params.payRefNo = this.baseParam?.payRefNo;\n // params.appRefNo = this.baseParam?.appRefNo;\n params.instructionFileDateFrom = this.formatDate(this.baseParam?.instructionFileDateFrom);\n params.instructionFileDateTo = this.formatDate(this.baseParam?.instructionFileDateTo);\n params.payeeName = this.baseParam?.payeeName;\n params.isReissue = this.baseParam?.isReissue;\n if (!params.isReissue) {\n delete params.isReissue;\n }\n if (!params.payMethod) {\n params.payMethod = PaymentMethodE.BTL;\n }\n return params;\n }\n\n getList(params: ChequeSearchDTO) {\n this._progress = true;\n this.service\n .getPaymentIssuance(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dataSource = data.data.empty ? [] : data.data.content;\n this._totalCount = data.data.totalElements;\n if (this.pageCount.current != data.data.number + 1) {\n this.pageCount.current = data.data.number + 1;\n }\n if (this.pageCount.count !== data.data.totalPages) {\n this.pageCount.count = data.data.totalPages;\n }\n // this.pageConfig = {\n // ...this.pageConfig,\n // totalCount: data.data.totalElements,\n // };\n // console.log(this.pageConfig);\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n loadTable() {\n const params: ChequeSearch = this.getRequestParams();\n const listParms: ChequeSearchDTO = {\n ...this.searchDTO,\n ...params,\n page: this.pageCount.current - 1,\n sort: this._sortString,\n // size: this.pageConfig.pageSize ? this.pageConfig.pageSize : 10,\n };\n this.getAmount(params);\n this.getList(listParms);\n }\n\n paymentStatusSelecte(index: number) {\n this.pageCount = pageInit();\n this._paymentStatusList[index].selected = !this._paymentStatusList[index].selected;\n this.loadTable();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n const contentWidth = this.elemRef.nativeElement.getElementsByClassName('row')[0].offsetWidth;\n const screenWidth = document.body.clientWidth;\n\n this.scrollBarWidth = screenWidth - contentWidth - (this.isMobile ? 0 : 80) + 'px';\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
\n
\n \n
\n
\n
\n
\n
\n {{ 'list.record-list' | lang }}\n
\n
\n {{ 'page.total' | lang }} {{ _totalCount }} {{ 'page.records' | lang }}\n
\n
\n
\n\n
\n
\n
\n
\n {{ 'cheque.list.number-of-records-shown' | lang }}\n
\n
\n \n {{ size }}\n
\n
\n
\n\n
\n Export Selected\n
\n
\n
\n
Total amount of transaction:
\n
\n HKD {{ transactionAmount | number : '1.2-2' }}\n
\n
\n
\n
\n\n\n
\n
\n
\n {{ 'cheque.list.status' | lang }}\n
\n
\n
\n \n {{ item.label }}\n
\n
\n
\n \n Reset Status Filters\n
\n
\n
\n\n\n
\n \n
\n
\n \n \n \n 0\" (change)=\"triggerAll()\">\n \n \n \n \n \n \n Payee Name \n \n {{ element.payeeName }}\n \n \n \n Payment Status \n \n
\n \n {{ getPaymentStatus | fn : element.recordStatus }}\n
\n
\n
\n \n Amount\n \n {{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}\n \n \n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n \n Reissuance \n \n {{ element.isReissue }}\n \n \n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n \n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n \n Bank Value Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n\n \n EMPF ID \n \n {{ element.empfid }}\n \n \n \n Account No. \n \n {{ element.mpfAcctNo }}\n \n \n \n EMPF ID of ER \n \n {{ element.erempfId }}\n \n \n \n Name of ER \n \n {{ element.erName }}\n \n \n \n Payroll Group ID \n \n {{ element.payrollGroupID }}\n \n \n \n Transaction Type \n \n {{ formatTxnType(element.txnType) }}\n \n \n\n \n Remarks \n \n {{ element.remarks }}\n \n \n\n \n \n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
0\" class=\"operation-bar\" [style.right]=\"scrollBarWidth\" [style.left]=\"isMobile ? 0 : '80px'\">\n
Please select record(s) to
\n
\n
\n {{ _checkedDatasourceMap.size }} item(s) selected\n
\n \n \n
\n\n Export Selected\n
\n
\n
\n\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { Component, ElementRef, HostListener, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Subject, debounceTime, finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { jsonToSheet } from 'src/app/utils/xlsx';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { dateValidator } from 'src/app/core/validators';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport { ChequePrintingSaveSuccessComponent } from '../cheque-printing-save-success/cheque-printing-save-success.component';\nimport {\n getColor,\n formatReason,\n formatDate2,\n maxDate,\n minDate,\n PaymentStatusE,\n PaymentStatusSelected,\n configPrimary,\n configSecondary,\n ChequeSearchDTO,\n ChequeDTO,\n pageInit,\n I18N_KEY,\n BaseChequeSearch,\n ChequeSearch,\n PaymentMethodE,\n formatDate,\n _TxnType,\n} from '../../benefit-payment';\nimport { PaymentServiceSHKP } from '../../paymentSHKP.service';\n\n@Component({\n selector: 'app-cheque-issuance',\n templateUrl: './cheque-issuance.component.html',\n styleUrls: ['./cheque-issuance.component.scss'],\n})\nexport class ChequeIssuanceComponent implements OnInit {\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private service: PaymentServiceSHKP,\n private toastAlert: ToastAlertService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private elemRef: ElementRef\n ) {}\n\n PermissionAccess = PermissionAccess;\n PermissionItem = PermissionItem;\n\n getColor = getColor;\n\n formatReason = formatReason;\n\n formatDate = formatDate;\n formatDate2 = formatDate2;\n\n maxDate = maxDate;\n minDate = minDate;\n\n _editPaymentStatusMap = new Map([\n [\n PaymentStatusE.NEW,\n {\n options: [\n { label: 'New', value: PaymentStatusE.NEW },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.PRINTED,\n {\n options: [\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.UN_PRESENTED,\n {\n options: [\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n ],\n },\n ],\n [\n PaymentStatusE.REISSUE,\n {\n options: [\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.PENDING,\n {\n options: [\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.READY_TO_REISSUE,\n {\n options: [\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.READY_TO_REISSUE,\n {\n options: [\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.HOLD_PAYMENT,\n {\n options: [\n { label: 'HoldPayment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n ],\n },\n ],\n [\n PaymentStatusE.STOP_PAYMENT,\n {\n options: [\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Reissue Complete', value: PaymentStatusE.REISSUE_COMPLETE },\n ],\n },\n ],\n ]);\n\n _paymentStatusList: PaymentStatusSelected[] = [\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT, selected: true },\n { label: 'New', value: PaymentStatusE.NEW, selected: true },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE, selected: true },\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n ];\n\n // _canCheckStatus: (string | undefined)[] = [\n // PaymentStatusE.READY_TO_REISSUE,\n // PaymentStatusE.NEW,\n // PaymentStatusE.PRINTED,\n // PaymentStatusE.HOLD_PAYMENT,\n // PaymentStatusE.STOP_PAYMENT,\n // PaymentStatusE.UN_PRESENTED,\n // ];\n _canEditStatus: (string | undefined)[] = [\n PaymentStatusE.NEW,\n PaymentStatusE.PRINTED,\n PaymentStatusE.READY_TO_REISSUE,\n PaymentStatusE.PRESENTED,\n PaymentStatusE.UN_PRESENTED,\n PaymentStatusE.HOLD_PAYMENT,\n PaymentStatusE.STOP_PAYMENT,\n PaymentStatusE.PRESENTED,\n PaymentStatusE.EXPIRED,\n PaymentStatusE.REISSUE_COMPLETE,\n ];\n\n _toolBarPermission: PermissionItem[] = [PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF, PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER];\n\n _reEditPermission: PermissionItem[] = [PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER];\n _toolBar = false;\n _reEdit = false;\n\n // _permissionMap = new Map([\n // [PermissionItem.SHK_PAYMENT_ISSUANCE_APPROVE_TO_PRINT.toString(), [PaymentStatusE.READY_TO_REISSUE, PaymentStatusE.NEW,PaymentStatusE.PRINTED,PaymentStatusE.HOLD_PAYMENT,PaymentStatusE.STOP_PAYMENT]]\n // ]);\n\n paymentSelectedList: CdMultidropdownTopping[] = [];\n\n searchButtonConfig = configPrimary();\n _searchDisable = false;\n\n resetButtonConfig = configSecondary();\n _resetDisable = false;\n\n _valid = false;\n\n resetEditConfig = configSecondary();\n\n _resetEditDisable = false;\n\n saveEditConfig = configPrimary();\n\n exportAllButtonConfig = configPrimary();\n\n exportSelectedButtonConfig = configSecondary();\n\n editSelectedButtonConfig = configPrimary();\n\n _stopPaymentDisable = true;\n _completePaymentDisable = true;\n\n notfoundConfig: CdsIconConfig = { color: '#8e90a2', size: 'md' };\n\n pageSelectSize: number[] = [10, 20, 50, 100];\n _pageSelected = 1;\n\n _totalCount = 0;\n searchDTO: ChequeSearchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n };\n displayedColumns: string[] = [\n 'selected',\n 'outChequeNo',\n 'paymentStatus',\n 'amt',\n 'payeeName',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n // 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'empfid',\n 'mpfAcctNo',\n 'erempfId',\n 'erName',\n 'payrollGroupID',\n 'txnType',\n 'remarks',\n ];\n checkedDisplayedColumns: string[] = [\n 'outChequeNo',\n 'paymentStatus',\n 'amt',\n 'payeeName',\n 'feedReceiveDate',\n 'isReissue',\n 'reissueRefNo',\n 'reissueReason',\n 'payRefNo',\n // 'appRefNo',\n 'exptPayIssue',\n 'chequeIssueDate',\n 'lastUpdateDate',\n 'empfid',\n 'mpfAcctNo',\n 'erempfId',\n 'erName',\n 'payrollGroupID',\n 'txnType',\n 'remarks',\n ];\n dataSource: ChequeDTO[] = [];\n originData: ChequeDTO[] = [];\n\n checkedDatasource: ChequeDTO[] = [];\n _checkedDatasourceMap: Map = new Map();\n\n OriginCheckedDatasource: ChequeDTO[] = [];\n\n sheetHeader = {\n outChequeNo: 'Cheque No.',\n recordStatus: 'Payment Status',\n curr: 'Currency',\n amt: 'Transaction Amount',\n payeeName: 'Payee Name',\n feedReceiveDate: 'Payment Instruction File Date',\n isReissue: 'Reissuance',\n reissueRefNo: 'Reissuance Ref No.',\n reissueReason: 'Reissurance Reason',\n payRefNo: 'Payment Ref No.',\n // appRefNo: 'Application Reference No.',\n exptPayIssue: 'Expected Payment Issue Date on Statement',\n chequeIssueDate: 'Cheque Issue Date',\n lastUpdateDate: 'Status Update Date',\n empfid: 'EMPF ID',\n mpfAcctNo: 'Account No.',\n erempfId: 'EMPF ID of ER',\n erName: 'Name of ER',\n payrollGroupID: 'Payroll Group ID',\n txnType: 'Transaction Type',\n remarks: 'Remarks',\n };\n\n isMobile = false;\n\n searchButtonDisabled = false;\n resetButtonDisabled = false;\n exportSelectedDisabled = true;\n editSelectedDisabled = false;\n exportMailMerge = true;\n\n _selectedAll = false;\n _edited = false;\n _confirmed = false;\n\n _inputNumber = 1;\n _progress = false;\n _downloading = false;\n scrollBarWidth = '15px';\n\n pageCount: IPaginationCount = pageInit();\n\n transactionAmount?: number = 0;\n\n I18N_KEY = I18N_KEY;\n\n _saveDisable = true;\n private search$ = new Subject();\n\n form = new FormGroup({\n chequeIssueDateFrom: new FormControl('', [dateValidator()]),\n chequeIssueDateTo: new FormControl('', [dateValidator()]),\n outChequeNo: new FormControl('', []),\n });\n\n @Input() baseParam?: BaseChequeSearch;\n @Input() search?: number;\n\n @Input() systemType?: string;\n _sortString = '';\n\n numberBetween(end: number, start?: number): number {\n start = start || 1;\n return Math.round(Math.random() * end) + start;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['search'] && !changes['search'].firstChange) {\n this.pageCount = pageInit();\n if (Number(changes['search'].currentValue) > 0) {\n this._paymentStatusList.forEach(x => (x.selected = false));\n }\n\n this.loadTable();\n }\n }\n\n ngOnInit(): void {\n this.onResize();\n this._toolBarPermission.forEach(x => {\n this.permissionService.hasPermission(PermissionAccess.R, x).then(has => {\n this._toolBar = this._toolBar || has;\n });\n });\n this._reEditPermission.forEach(x => {\n this.permissionService.hasPermission(PermissionAccess.R, x).then(has => {\n this._reEdit = this._reEdit || has;\n });\n });\n\n // chq 输入防抖\n this.search$.pipe(debounceTime(300)).subscribe(item => {\n this.outChequeNoChange(item);\n });\n\n this.initForm();\n this.loadTable();\n }\n\n async validFn() {\n return this._valid && this.form.valid;\n }\n\n onSortChange(event: Sort) {\n if (event.direction) {\n this._sortString = event.active + ',' + event.direction;\n } else {\n this._sortString = '';\n }\n\n this.loadTable();\n }\n\n formatTxnType(type: string) {\n return _TxnType.get(type) || '';\n }\n\n resetStatus() {\n this._paymentStatusList.forEach(x => (x.selected = false));\n this.loadTable();\n }\n\n searchFn() {\n this.validFn().then(r => {\n if (r) {\n this.pageCount = pageInit();\n this._paymentStatusList.forEach(x => (x.selected = false));\n this.loadTable();\n }\n });\n }\n\n itemStatusChange(item: ChequeDTO) {\n if (item.recordStatus == PaymentStatusE.STOP_PAYMENT) {\n item.canInputChequeNo = false;\n item.cheqNoError = '';\n this.outChequeNoChange(item);\n }\n this._saveConfigValidate();\n }\n\n outChqValidate(item: ChequeDTO) {\n if (item.canInputChequeNo && !item.outChequeNo) {\n item.cheqNoError = 'Please input the cheque no.';\n }\n }\n remarksInput(item: ChequeDTO, event: any) {\n const temp: string = event.target.value;\n item.remarksInputError = undefined;\n if (temp && temp.length > 500) {\n // temp = temp.substring(0,500)\n item.remarksInputError = 'max length is 500';\n }\n item.remarks = temp;\n this._saveConfigValidate();\n }\n\n chqInput(item: ChequeDTO, event: any) {\n let temp: string = event.target.value;\n if (temp) {\n if (temp.length > 6 && temp.startsWith('0')) {\n temp = temp.slice(-6);\n }\n if (temp.length < 6) {\n temp = temp.padStart(6, '0');\n }\n }\n item.outChequeNo = temp;\n this.search$.next(item);\n }\n\n outChequeNoChange(item: ChequeDTO) {\n if (!item.canInputChequeNo) {\n this._saveDisable = false;\n return;\n }\n if (item.outChequeNo == undefined || item.outChequeNo == '') {\n this._saveDisable = true;\n item.cheqNoError = 'Please input the cheque no.';\n return;\n }\n this._saveDisable = true;\n item.cheqNoError = 'checking...';\n const ex = this.checkedDatasource.find(x => x.id != item.id && x.outChequeNo == item.outChequeNo) != undefined;\n if (ex) {\n this._saveDisable = true;\n item.cheqNoError = 'Cheque No. allready existed';\n return;\n }\n return this.service\n .getByChqNo(item.outChequeNo)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data != null && item.id != data.data.id) {\n item.cheqNoError = 'Cheque No. allready existed';\n } else {\n item.cheqNoError = undefined;\n }\n this._saveConfigValidate();\n });\n }\n\n loadTable() {\n const params: ChequeSearch = this.getRequestParams();\n const listParms: ChequeSearchDTO = {\n // ...this.searchDTO,\n size: this.pageSelectSize[this._pageSelected],\n ...params,\n page: this.pageCount.current - 1,\n sort: this._sortString,\n };\n this.getAmount(params);\n this.getList(listParms);\n }\n\n getList(params: ChequeSearchDTO) {\n this._progress = true;\n this.service\n .getPaymentIssuance(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._selectedAll = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n // this.dataSource.forEach(item => {\n // item.opsPermission = this._canCheckStatus.filter(x => item.recordStatus == x).length > 0;\n // });\n this.originData = deepCopy(this.dataSource);\n\n this._totalCount = data.data.totalElements;\n if (this.pageCount.current != data.data.number + 1) {\n this.pageCount.current = data.data.number + 1;\n }\n if (this.pageCount.count !== data.data.totalPages) {\n this.pageCount.count = data.data.totalPages;\n }\n this.selectButtonsDisableRefresh();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getAmount(params: ChequeSearch) {\n this.service\n .getPaymentIssuanceAmount(params)\n .pipe(\n finalize(() => {\n // this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n // this._progress = false;\n this.transactionAmount = data.data;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams() {\n const params: ChequeSearchDTO = deepCopy(this.searchDTO);\n params.recordStatusList = this._paymentStatusList.filter(x => x.selected).map(x => x.value);\n params.chequeIssueDateFrom = this.formatDate(params.chequeIssueDateFrom);\n params.chequeIssueDateTo = this.formatDate(params.chequeIssueDateTo);\n params.payRefNo = this.baseParam?.payRefNo;\n // params.appRefNo = this.baseParam?.appRefNo;\n params.instructionFileDateFrom = this.formatDate(this.baseParam?.instructionFileDateFrom);\n params.instructionFileDateTo = this.formatDate(this.baseParam?.instructionFileDateTo);\n params.payeeName = this.baseParam?.payeeName;\n params.isReissue = this.baseParam?.isReissue;\n if (!params.isReissue) {\n delete params.isReissue;\n }\n if (!params.payMethod) {\n params.payMethod = PaymentMethodE.CHQ;\n }\n return params;\n }\n\n getPaymentStatus = (value: string) => {\n let label = '';\n if (!value) return label;\n const obj = this._paymentStatusList.find(x => x.value === value);\n label = obj?.label || '';\n return label;\n };\n\n // formatDate(date?: string) {\n // if (!date) {\n // return '';\n // }\n // return DateTime.fromFormat(date, 'd/M/yyyy').toFormat('yyyy-MM-dd');\n // }\n\n initForm() {\n // const _recordStatusList = this.paymentStatusList.filter(x => this._canCheckStatus.indexOf(x.value) > -1);\n // this.form = new FormGroup({\n // chequePrintDateStart: new FormControl('', [dateValidator()]),\n // chequePrintDateEnd: new FormControl('', [dateValidator()]),\n // // Cheque Number\n // outChequeNo: new FormControl('', []),\n // // recordStatusList: new FormControl([..._recordStatusList]),\n // // payMethod: new FormControl('', []),\n // // feedReceiveDate: new FormControl('', [dateValidator()]),\n // payeeName: new FormControl('', []),\n // isReissue: new FormControl(),\n // });\n this.searchDTO = {\n size: this.pageSelectSize[this._pageSelected],\n page: 0,\n };\n }\n\n backListClick() {\n this._confirmed = false;\n }\n\n confirmClick() {\n this._progress = true;\n this.service\n .changePaymentIssuance(this.checkedDatasource)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n updateList(status: string) {\n this._progress = true;\n const _dataList: ChequeDTO[] = [];\n this.dataSource.forEach(item => {\n if (item.checked) {\n _dataList.push(deepCopy(item));\n }\n });\n _dataList.forEach(item => {\n item.recordStatus = PaymentStatusE[status as keyof typeof PaymentStatusE];\n });\n this.service\n .changePaymentIssuance(_dataList)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n popupWithReload() {\n const popupRef: MatDialogRef = this.cdsPopup.open(ChequePrintingSaveSuccessComponent, {\n size: 'md',\n data: {},\n });\n popupRef.afterClosed().subscribe(() => {\n this._edited = false;\n this.searchButtonDisabled = this._edited;\n this.resetButtonDisabled = this._edited;\n this._confirmed = false;\n this._selectedAll = false;\n this.loadTable();\n });\n }\n\n toConfirm() {\n if (this._saveDisable) {\n return;\n }\n this._confirmed = true;\n }\n\n selectButtonsDisableRefresh() {\n // if (this.dataSource.some(item => item.checked)) {\n // this.exportSelectedDisabled = false;\n // } else {\n // this.exportSelectedDisabled = true;\n // }\n // if (this.dataSource.some(item => item.checked && item.recordStatus === PaymentStatusE.APPROVED_TO_PRINT)) {\n // this.editSelectedDisabled = false;\n // } else {\n // this.editSelectedDisabled = true;\n // }\n const _checkedList = this.dataSource.filter(item => item.checked);\n // if(_checkedList.length == 0){\n // return\n // }\n this._checkedDatasourceMap = new Map();\n _checkedList.forEach(item => {\n this._checkedDatasourceMap.set(item.id, item);\n });\n const _length = _checkedList.length > 0;\n this._stopPaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.HOLD_PAYMENT).length == _checkedList.length);\n this._completePaymentDisable = !(_length && _checkedList.filter(item => item.recordStatus == PaymentStatusE.STOP_PAYMENT).length == _checkedList.length);\n // this.editSelectedDisabled = !(_length && _checkedList.filter(item => this._canEditStatus.includes(item.recordStatus)).length == _checkedList.length);\n this.exportSelectedDisabled = !_length;\n // this.exportMailMergeTrigger();\n this.exportMailMerge =\n _checkedList.filter(\n x => x.recordStatus !== PaymentStatusE.PRINTED && x.recordStatus !== PaymentStatusE.NEW && x.recordStatus !== PaymentStatusE.READY_TO_REISSUE\n ).length > 0;\n // _temp.filter(x => x.selected && x.value !== PaymentStatusE.NEW && x.value !== PaymentStatusE.READY_TO_REISSUE).length > 0\n }\n\n _editToolFun() {}\n\n trigger(index: number) {\n this.dataSource[index].checked = !this.dataSource[index].checked;\n this.selectButtonsDisableRefresh();\n }\n\n triggerAll() {\n this._selectedAll = !this._selectedAll;\n this.dataSource.forEach(item => {\n item.checked = this._selectedAll;\n });\n this.selectButtonsDisableRefresh();\n }\n\n sizeSelect(index: number) {\n this._pageSelected = index;\n this.searchDTO.size = this.pageSelectSize[index];\n this.pageCount = pageInit();\n this.loadTable();\n }\n\n paymentStatusSelecte(index: number) {\n this.pageCount = pageInit();\n this._paymentStatusList[index].selected = !this._paymentStatusList[index].selected;\n // this.exportMailMergeTrigger();\n this.loadTable();\n }\n\n exportMailMergeTrigger() {\n const _temp = this._paymentStatusList.filter(x => x.selected);\n this.exportMailMerge =\n _temp.length == 0 || _temp.filter(x => x.selected && x.value !== PaymentStatusE.NEW && x.value !== PaymentStatusE.READY_TO_REISSUE).length > 0;\n }\n\n exportPdf() {\n if (this.dataSource.length === 0 || this.exportMailMerge) {\n return;\n }\n const _checkedIds = this.dataSource.filter(x => x.checked).map(x => x.id);\n this._downloading = true;\n this.service\n .exportPdf(_checkedIds)\n .pipe(\n finalize(() => {\n // this._progress = false;\n this._downloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n window.open(res.data, '_blank');\n } else {\n this.toastError('export Pdf error');\n }\n });\n }\n\n exportAll() {\n if (this.dataSource.length === 0 || this.exportMailMerge) {\n return;\n }\n const _statusList = [PaymentStatusE.NEW, PaymentStatusE.READY_TO_REISSUE];\n const _param: ChequeSearchDTO = {\n page: 0,\n size: 12000,\n recordStatusList: _statusList,\n };\n _param.payMethod = PaymentMethodE.CHQ;\n // this._progress = true;\n this._downloading = true;\n this.service\n .getPaymentIssuance(_param)\n .pipe(\n finalize(() => {\n // this._progress = false;\n this._downloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data?.content) {\n jsonToSheet(\n {\n fileName: 'SHK Cheque Printing Record List',\n fileType: 'csv',\n header: this.sheetHeader,\n },\n this.createData(res.data.content)\n );\n\n this.printCount(res.data.content);\n } else {\n this.toastError('no ready to print data');\n }\n });\n }\n\n printCount(data: ChequeDTO[]) {\n const ids = data.map(item => item.id);\n this.service.paymentIssuancePrintCount(ids).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n createData(data: ChequeDTO[]) {\n return data.map(item => {\n return {\n outChequeNo: item.outChequeNo,\n recordStatus: item.recordStatus,\n curr: item.curr,\n amt: item.amt,\n payeeName: item.payeeName,\n feedReceiveDate: this.formatDate2(item.feedReceiveDate),\n isReissue: item.isReissue,\n reissueRefNo: item.reissueRefNo,\n reissueReason: this.formatReason(item.reissueReason + ''),\n payRefNo: item.payRefNo,\n // appRefNo: item.appRefNo,\n exptPayIssue: this.formatDate2(item.exptPayIssue),\n chequeIssueDate: this.formatDate2(item.chequeIssueDate),\n lastUpdateDate: this.formatDate2(item.lastUpdateDate),\n empfid: item.empfid,\n mpfAcctNo: item.mpfAcctNo,\n erempfId: item.erempfId,\n erName: item.erName,\n payrollGroupID: item.payrollGroupID,\n txnType: this.formatTxnType(item.txnType || ''),\n remarks: item.remarks,\n };\n });\n }\n\n exportSelected() {\n if (this.exportSelectedDisabled) {\n return;\n }\n this._downloading = true;\n const data = this.dataSource.filter(item => item.checked);\n\n jsonToSheet(\n {\n fileName: 'SHK Cheque Printing Record List',\n fileType: 'csv',\n header: this.sheetHeader,\n },\n this.createData(data)\n );\n setTimeout(() => {\n this._downloading = false;\n }, 1000);\n }\n\n editTrigger(isCancel = false) {\n // if (this.editSelectedDisabled) {\n // return;\n // }\n if (isCancel) {\n if (JSON.stringify(this.checkedDatasource) !== JSON.stringify(this.OriginCheckedDatasource)) {\n this.editReset(true);\n } else {\n this.doEditReset();\n this.editStatusToggle();\n }\n } else {\n this.checkedDatasource = [];\n this.dataSource.forEach(item => {\n if (item.checked) {\n const item2 = deepCopy(item);\n // item2.recordStatus = PaymentStatusE.UN_PRESENTED;\n if (this._editPaymentStatusMap.has(item2.recordStatus)) {\n const _config = this._editPaymentStatusMap.get(item2.recordStatus);\n if (_config) {\n item2.downConfig = this._returnStatusFilter(item2.acctType, _config, item2.recordStatus);\n }\n }\n if (item2.recordStatus == PaymentStatusE.PRINTED) {\n item2.canInputChequeNo = true;\n }\n if (item2.recordStatus == PaymentStatusE.UN_PRESENTED && this._reEdit) {\n item2.canInputChequeNo = true;\n }\n this.outChqValidate(item2);\n this.checkedDatasource.push(item2);\n }\n });\n this.checkedDatasource.reverse();\n this.OriginCheckedDatasource = deepCopy(this.checkedDatasource);\n this._saveConfigValidate();\n this.editStatusToggle();\n }\n }\n\n _saveConfigValidate() {\n this._saveDisable = this.checkedDatasource.find(x => x.cheqNoError) != undefined || this.checkedDatasource.find(x => x.remarksInputError) != undefined;\n }\n\n _returnStatusFilter(type: string, config: CdsDropdownConfig, itemStatus: PaymentStatusE) {\n const _config = deepCopy(config);\n if (itemStatus == PaymentStatusE.UN_PRESENTED && type == 'EE') {\n _config.options.push(\n { label: 'Returned From EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT }\n );\n }\n if (itemStatus == PaymentStatusE.UN_PRESENTED && type == 'ER') {\n _config.options.push(\n { label: 'Returned From ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT }\n );\n }\n return _config;\n }\n\n reissueChnage(val: boolean) {\n this.searchDTO.isReissue = val ? 'Y' : undefined;\n this._valid = true;\n }\n validating() {\n if (!!this.searchDTO.chequeIssueDateFrom || !!this.searchDTO.chequeIssueDateTo || !!this.searchDTO.outChequeNo) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n\n inputChange(val: string, label: string) {\n switch (label) {\n case 'outChequeNo':\n this.searchDTO.outChequeNo = val;\n break;\n case 'payeeName':\n this.searchDTO.payeeName = val;\n break;\n }\n this.validating();\n }\n\n editReset(cancelEdit = false) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.cancel'),\n cancelButtonName: 'Back',\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doEditReset();\n if (cancelEdit) {\n this.editStatusToggle();\n }\n }\n });\n }\n\n editStatusToggle() {\n this._edited = !this._edited;\n this.searchButtonDisabled = this._edited;\n this.resetButtonDisabled = this._edited;\n }\n\n doEditReset() {\n this.checkedDatasource = deepCopy(this.OriginCheckedDatasource);\n this._confirmed = false;\n this._saveConfigValidate();\n }\n\n reset() {\n this.initForm();\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n this.pageCount = pageInit();\n this.validating();\n this.loadTable();\n }\n\n prefill(value: string) {\n this.checkedDatasource = this.checkedDatasource.map((item, index) => {\n let zeroCount = 0;\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '0') {\n zeroCount++;\n } else {\n break;\n }\n }\n if (item.canInputChequeNo) {\n item.outChequeNo = '0'.repeat(zeroCount) + (Number(value) + index);\n this.outChequeNoChange(item);\n }\n return item;\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n const contentWidth = this.elemRef.nativeElement.getElementsByClassName('row')[0].offsetWidth;\n const screenWidth = document.body.clientWidth;\n\n this.scrollBarWidth = screenWidth - contentWidth - (this.isMobile ? 0 : 80) + 'px';\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
\n
\n {{ 'list.search-record' | lang }}\n
\n
\n
\n \n\n
\n
\n \n \n \n\n {{ 'create.dateError' | lang }} \n
\n
-
\n
\n \n \n \n {{ 'create.dateError' | lang }} \n
\n
\n
\n \n
\n \n \n
\n\n
\n
\n
\n
\n {{ 'list.record-list' | lang }}\n
\n
\n {{ 'page.total' | lang }} {{ _edited ? checkedDatasource.length : _totalCount }} {{ 'page.records' | lang }}\n
\n
\n
\n
\n\n
\n
\n
\n
\n {{ 'cheque.list.number-of-records-shown' | lang }}\n
\n
\n \n {{ size }}\n
\n
\n
\n\n
\n Export Selected\n
\n
\n
\n
Total amount of transaction:
\n
\n HKD {{ transactionAmount | number : '1.2-2' }}\n
\n
\n
\n
\n\n
\n
\n {{ 'cheque.list.status' | lang }}\n
\n
\n
\n \n {{ item.label }}\n
\n
\n
\n \n Reset Status Filters\n
\n
\n \n\n\n
\n \n
\n
\n \n \n \n 0\" (change)=\"triggerAll()\">\n \n \n \n \n \n \n Cheque No. \n \n \n
{{ element.outChequeNo }}
\n
\n
\n
\n\n \n Payment Status \n \n
\n
\n
\n
{{ getPaymentStatus | fn : element.recordStatus }}
\n
\n
\n
\n\n \n Amount\n \n
{{ element.curr }} {{ element.amt | number : '1.2-2' | mynumber }}
\n
\n
\n\n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n\n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n\n \n Reissuance \n \n {{ element.isReissue }}\n \n \n\n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n\n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n\n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n\n \n\n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n\n \n Cheque Issue Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n\n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n\n \n EMPF ID \n \n {{ element.empfid }}\n \n \n \n Account No. \n \n {{ element.mpfAcctNo }}\n \n \n \n EMPF ID of ER \n \n {{ element.erempfId }}\n \n \n \n Name of ER \n \n {{ element.erName }}\n \n \n \n Payroll Group ID \n \n {{ element.payrollGroupID }}\n \n \n \n Transaction Type \n \n {{ formatTxnType(element.txnType) }}\n \n \n\n \n Remarks \n \n {{ element.remarks }}\n \n \n\n \n \n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
\n \n
\n
\n \n \n Cheque No. \n \n
\n \n \n \n {{ element.cheqNoError }}\n \n \n
\n \n Prefill Remaining No.\n
\n
\n \n
\n \n Prefill Remaining No.\n
\n
\n
\n \n
{{ element.outChequeNo }}
\n
\n
\n
\n
\n\n \n Payment Status \n \n \n \n
\n \n
\n
\n \n
\n
\n
\n
{{ getPaymentStatus | fn : element.recordStatus }}
\n
\n
\n
\n\n \n
{{ getPaymentStatus | fn : element.recordStatus }}
\n
\n
\n
\n\n \n Amount\n \n
HKD {{ element.amt }}
\n
\n
\n\n \n Payee Name \n \n
{{ element.payeeName }}
\n
\n
\n\n \n Payment Instruction File Date \n \n {{ element.feedReceiveDate | ssmsDate }}\n \n \n\n \n Reissuance \n \n {{ element.isReissue }}\n \n \n\n \n Reissuance Ref No. \n \n {{ element.reissueRefNo }}\n \n \n\n \n Reissurance Reason \n \n {{ formatReason(element.reissueReason) }}\n \n \n\n \n Payment Ref No. \n \n {{ element.payRefNo }}\n \n \n\n \n\n \n Expected Payment Issue Date on Statement \n \n {{ formatDate2(element.exptPayIssue) }}\n \n \n\n \n Cheque Issue Date \n \n {{ element.chequeIssueDate | ssmsDate }}\n \n \n\n \n Status Update Date \n \n {{ element.lastUpdateDate | ssmsDate }}\n \n \n \n EMPF ID \n \n {{ element.empfid }}\n \n \n \n Account No. \n \n {{ element.mpfAcctNo }}\n \n \n \n EMPF ID of ER \n \n {{ element.erempfId }}\n \n \n \n Name of ER \n \n {{ element.erName }}\n \n \n \n Payroll Group ID \n \n {{ element.payrollGroupID }}\n \n \n \n Transaction Type \n \n {{ formatTxnType(element.txnType) }}\n \n \n\n \n Remarks \n \n \n \n \n {{ element.remarksInputError }}\n \n \n \n {{ element.remarks }}\n \n \n \n\n \n \n
\n
\n
\n\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\" class=\"operation-bar\" [style.right]=\"scrollBarWidth\" [style.left]=\"isMobile ? 0 : '80px'\">\n
Please select record(s) to
\n
\n
\n {{ _checkedDatasourceMap.size }} item(s) selected\n
\n \n Edit Selected\n
\n \n
\n \n Cancel Edit\n \n
\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { ChequePrintingListComponent } from '../cheque-printing-list/cheque-printing-list.component';\n\n@Component({\n selector: 'app-cheque-printing-back-popup',\n templateUrl: './cheque-printing-back-popup.component.html',\n styleUrls: ['./cheque-printing-back-popup.component.scss'],\n})\nexport class ChequePrintingBackPopupComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n ngOnInit(): void {}\n agree() {\n this.dialogRef.close({ agree: false });\n }\n disagree() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n {{ 'cheque.list.the-changes-you' | lang }}\n {{ 'cheque.list.will-be-lost' | lang }}\n {{ 'cheque.list.sure-to-continue' | lang }}\n \n \n \n \n \n \n\n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { configPrimary, configSecondary, BaseChequeSearch, I18N_KEY, maxDate, minDate } from '../../benefit-payment';\nimport { PaymentServiceSHKP } from '../../paymentSHKP.service';\nimport { dateValidator } from 'src/app/core/validators';\n\n@Component({\n selector: 'app-cheque-printing-list',\n templateUrl: './cheque-printing-list.component.html',\n styleUrls: ['./cheque-printing-list.component.scss'],\n})\nexport class ChequePrintingListComponent implements OnInit {\n constructor(private cdsPopup: CdsPopupService, private service: PaymentServiceSHKP, private permissionService: PermissionService) {}\n\n searchButtonConfig: CdsButtonConfig = configPrimary();\n\n resetButtonConfig: CdsButtonConfig = configSecondary();\n\n _valid = true;\n\n searchDTO: BaseChequeSearch = {};\n\n isMobile = false;\n\n I18N_KEY = I18N_KEY;\n maxDate = maxDate;\n minDate = minDate;\n\n _search = 0;\n _tabIndex = 0;\n\n form = new FormGroup({\n instructionFileDateFrom: new FormControl('', [dateValidator()]),\n instructionFileDateTo: new FormControl('', [dateValidator()]),\n payRefNo: new FormControl('', []),\n // appRefNo: new FormControl('', []),\n payeeName: new FormControl('', []),\n isReissue: new FormControl(),\n });\n\n ngOnInit(): void {\n this.onResize();\n this.initForm();\n }\n\n async validFn() {\n return this.form.valid && this._valid;\n }\n\n reissueChnage(val: boolean) {\n this.searchDTO.isReissue = val ? 'Y' : undefined;\n this._valid = true;\n }\n\n search() {\n this.validFn().then(r => {\n if (r) {\n this._search = this._search + 1;\n }\n });\n }\n reset() {\n this.initForm();\n }\n\n initForm() {\n this.searchDTO = {};\n this._search = 0;\n this.validating();\n }\n\n selectedTabIndexChange(index: number) {\n this._tabIndex = index;\n }\n\n validating() {\n if (\n !!this.searchDTO.instructionFileDateFrom ||\n !!this.searchDTO.instructionFileDateTo ||\n !!this.searchDTO.payRefNo ||\n // !!this.searchDTO.appRefNo ||\n !!this.searchDTO.payeeName ||\n !!this.searchDTO.isReissue\n ) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n\n inputChange(val: string, label: string) {\n switch (label) {\n case 'payRefNo':\n this.searchDTO.payRefNo = val;\n break;\n case 'instructionFileDateFrom':\n this.searchDTO.instructionFileDateFrom = val;\n break;\n case 'instructionFileDateTo':\n this.searchDTO.instructionFileDateTo = val;\n break;\n case 'appRefNo':\n this.searchDTO.appRefNo = val;\n break;\n case 'payeeName':\n this.searchDTO.payeeName = val;\n break;\n }\n this.validating();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","
\n
\n \n
\n
\n
\n Search Records\n
\n
\n Related cheque printing and bank transfer result will be displayed\n
\n
\n
\n
\n \n \n \n\n {{ 'create.dateError' | lang }} \n
\n
-
\n
\n \n \n \n {{ 'create.dateError' | lang }} \n
\n
\n\n
\n \n
\n \n
\n \n
\n\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 } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { ChequePrintingListComponent } from '../cheque-printing-list/cheque-printing-list.component';\n\n@Component({\n selector: 'app-cheque-printing-save-success',\n templateUrl: './cheque-printing-save-success.component.html',\n styleUrls: ['./cheque-printing-save-success.component.scss'],\n})\nexport class ChequePrintingSaveSuccessComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n {{ 'cheque.list.your-message' | lang }}\n {{ 'cheque.list.update-success' | lang }}\n \n \n \n \n \n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-scb-statement-upload-success',\n templateUrl: './scb-statement-upload-success.component.html',\n styleUrls: ['./scb-statement-upload-success.component.scss'],\n})\nexport class ScbStatementUploadSuccessComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n total: number;\n updated: number;\n }\n ) {}\n\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n\n agree() {\n this.dialogRef.close({ agree: false });\n }\n\n ngOnInit(): void {}\n}\n","\n \n
\n
Total {{ data.total }} record(s) is/are found and {{ data.updated }} records(s) is/are updated.
\n
\n \n \n \n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { UploadAudienceListFileComponent } from 'src/app/views/mobile-subscription/upload-audience-list-file/upload-audience-list-file.component';\nimport { ScbStatementUploadSuccessComponent } from '../scb-statement-upload-success/scb-statement-upload-success.component';\nimport { PaymentServiceSHKP } from '../../../paymentSHKP.service';\n\n@Component({\n selector: 'app-scb-statement-upload',\n templateUrl: './scb-statement-upload.component.html',\n styleUrls: ['./scb-statement-upload.component.scss'],\n})\nexport class ScbStatementUploadComponent implements OnInit {\n show = true;\n\n cancelButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n uploadFormControl = new FormControl();\n\n file!: File;\n\n noFileSelect = true;\n\n fileAvailable = true;\n\n errorMsg = '';\n\n isLoading = false;\n\n errorMessageIconConfig: CdsIconConfig = {\n color: '#830A10',\n size: 'xs',\n };\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: PaymentServiceSHKP,\n private toastAlert: ToastAlertService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n audienceList: string;\n }\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.errorMsg = '';\n this.noFileSelect = true;\n } else {\n this.noFileSelect = false;\n }\n });\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n this.errorMsg = this.ifFileAvailable(this.file);\n if (this.errorMsg !== '') {\n return;\n }\n\n this.errorMsg = 'checking...';\n this.service\n .fileNameCheck(this.file.name)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.errorMsg = 'There is a file with the same name. Please update the file name.';\n } else {\n this.errorMsg = '';\n }\n });\n }\n\n ifFileAvailable(file: any) {\n // return 'Please upload a file less than 10 MB';\n if (!file || !file.size || !file.type || !file.name) {\n return 'Invalid file selected.';\n }\n if (file.type !== 'text/csv') {\n return 'Please upload a csv file.';\n }\n // file size limit is 8MB, file name (with suffix)\n if (file.size >= 8388608 && file.type == 'text/csv') {\n return 'Please upload a file less than 10 MB';\n }\n\n return '';\n }\n\n confirm() {\n if (this.noFileSelect || this.errorMsg) {\n return;\n }\n\n this.upload();\n }\n\n upload() {\n this.isLoading = true;\n this.service\n .uploadScb(this.file)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.cdsPopup.open(ScbStatementUploadSuccessComponent, {\n size: 'md',\n data: {\n total: res.data?.total,\n updated: res.data?.updated,\n },\n });\n this.dialogRef.close({\n agree: true,\n });\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n cancel() {\n if (this.noFileSelect) {\n this.dialogRef.close({\n agree: false,\n });\n return;\n }\n this.show = false;\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'md',\n data: {\n message: this.langService.translate('common.action.cancel'),\n // cancelButtonName: 'Back',\n },\n })\n .afterClosed()\n .subscribe(result => {\n this.show = true;\n if (result?.agree) {\n this.dialogRef.close({\n agree: false,\n });\n }\n });\n }\n}\n","\n {{ 'scb.upload-statement' | lang }}\n\n \n
\n {{ 'notification.fileRequirements' | lang }}\n
\n
\n {{ 'scb.file-requirements-tips' | lang }}\n
\n\n
\n \n \n
\n {{ errorMsg }}\n
\n
\n \n
\n\n \n \n {{ 'common.cancel' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n \n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { PageConfig, ColumnConfig } from 'src/app/shared/data-table';\nimport { dateValidator } from 'src/app/core/validators';\nimport { ScbStatementUploadComponent } from '../scb-statement-upload/scb-statement-upload.component';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { ScbStatementDTO, ScbStatementSearchDTO } from '../../../benefit-payment';\nimport { PaymentServiceSHKP } from '../../../paymentSHKP.service';\n\n@Component({\n selector: 'app-scb-statement',\n templateUrl: './scb-statement.component.html',\n styleUrls: ['./scb-statement.component.scss'],\n})\nexport class ScbStatementComponent implements OnInit {\n constructor(private service: PaymentServiceSHKP, private cdsPopup: CdsPopupService, private permissionService: PermissionService) {}\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n form = new FormGroup({\n uploadDate: new FormControl('', [dateValidator()]),\n fileName: new FormControl('', []),\n });\n _showDatePicker = true;\n\n uploadButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n disabled: true,\n };\n\n approveButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: true,\n };\n exportButtonConfig: CdsButtonConfig = {\n size: 'lg',\n style: 'secondary',\n };\n searchDTO: ScbStatementSearchDTO = {\n page: 0,\n size: 10,\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n columnsConfig: ColumnConfig[] = [\n { key: 'uploadDate', title: 'Upload Date' },\n { key: 'fileName', title: 'File Name' },\n { key: 'uploadBy', title: 'Uploaded By' },\n ];\n\n _progress = false;\n\n dataList: ScbStatementDTO[] = [];\n\n _canUpload = false;\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF).then(has => {\n this._canUpload = this._canUpload || has;\n });\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER).then(has => {\n this._canUpload = this._canUpload || has;\n });\n this.loadTable();\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable();\n }\n\n loadTable() {\n const params: ScbStatementSearchDTO = this.getRequestParams();\n this._progress = true;\n this.service\n .getScbStatmentList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._progress = false;\n this.dataList = data.data.empty ? [] : data.data.content;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data?.totalElements,\n };\n }\n });\n }\n\n getRequestParams() {\n const params: ScbStatementSearchDTO = { ...this.searchDTO };\n params.uploadDate = this.dateTrans(params.uploadDate);\n params.page = (this.pageConfig.current as number) - 1;\n return params;\n }\n\n dateTrans(date?: string) {\n if (!date) {\n return '';\n }\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n inputChange(val: string, label: string) {\n if (val == undefined) {\n return;\n }\n switch (label) {\n case 'fileName':\n this.searchDTO.fileName = val;\n break;\n default:\n break;\n }\n this.validating();\n }\n validating() {\n if (!!this.searchDTO.uploadDate || !!this.searchDTO.fileName) {\n this.searchButtonConfig = {\n size: 'sm',\n disabled: false,\n };\n this.resetButtonConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: false,\n };\n } else {\n this.searchButtonConfig = {\n size: 'sm',\n disabled: true,\n };\n this.resetButtonConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: true,\n };\n }\n if (!this.form.valid) {\n this.searchButtonConfig = {\n size: 'sm',\n disabled: true,\n };\n }\n }\n\n uploadTrigger() {\n if (!this._canUpload) {\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(ScbStatementUploadComponent, {\n size: 'md',\n data: {},\n });\n popupRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.loadTable();\n }\n });\n }\n search() {\n if (this.searchButtonConfig.disabled) {\n return;\n }\n this.loadTable();\n }\n\n reset() {\n this.searchDTO = {\n page: 0,\n size: 10,\n };\n this.validating();\n this.loadTable();\n }\n}\n","
\n
\n {{ 'list.search-record' | lang }}\n
\n
\n\n
\n
\n \n \n \n {{ 'create.dateError' | lang }} \n
\n
\n \n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n {{ 'common.recordList' | lang }}\n
\n
\n Total {{ pageConfig.totalCount }} records\n
\n
\n \n
\n\n
\n
\n \n \n {{ element.uploadDate | ssmsDate }}\n \n \n
\n
\n","import { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { dateValidator, descriptionValidator, idValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { DateTime } from 'luxon';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport moment from 'moment';\nimport { Campaign, CampaignTypeOptions, productTypeOptions, agentCommunicationOptions } from '../campaign';\nimport { YesOrNoFlagNumberE, yesOrNoFlagNumberOptions } from '../../employee/employee';\nimport { findOptionLabelByValue } from 'src/app/utils/utils';\nimport { EmployeeService } from '../../employee/employee.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\n\n@Component({\n selector: 'app-add-campaign',\n templateUrl: './add-campaign.component.html',\n styleUrls: ['./add-campaign.component.scss'],\n})\nexport class AddCampaignComponent implements OnInit {\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n backToEditButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n originFormValue: Campaign = {};\n\n formSendValue: Campaign = {};\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n showDatePicker = true;\n\n inEdit = true;\n\n invalidHkidTip = 'Please input HKID with format XXXXXXX(X)';\n\n invalidPassportTip = 'Please enter the correct passport number';\n\n form: FormGroup = new FormGroup({});\n\n isLoading = false;\n\n nowTime = DateTime.now();\n\n nowTimeInstr = this.nowTime.toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n yesOrNoFlagNumberOptions = yesOrNoFlagNumberOptions;\n\n findOptionLabelByValue = findOptionLabelByValue;\n\n CampaignTypeOptions = CampaignTypeOptions;\n\n productTypeOptions = productTypeOptions;\n\n agentCommunicationOptions = agentCommunicationOptions;\n\n get saveDisabled() {\n return !(this.form.dirty && this.form.valid) || this.isLoading;\n // return false;\n }\n\n get resetDisabled() {\n return !this.form.dirty || this.isLoading;\n }\n\n get campaignIdControl() {\n return this.form.get('campaignId');\n }\n\n get campaignNameControl() {\n return this.form.get('campaignName');\n }\n\n get campaignOwnerControl() {\n return this.form.get('campaignOwner');\n }\n\n get campaignPeriodFromControl() {\n return this.form.get('campaignPeriodFrom');\n }\n\n get campaignPeriodFromValue() {\n return this.campaignPeriodFromControl?.value || '';\n }\n\n get campaignPeriodToControl() {\n return this.form.get('campaignPeriodTo');\n }\n\n get campaignPeriodToValue() {\n return this.campaignPeriodToControl?.value || '';\n }\n\n get campaignDescriptionControl() {\n return this.form.get('campaignDescription');\n }\n\n get campaignTypeControl() {\n return this.form.get('campaignType');\n }\n\n get productTypesControl() {\n return this.form.get('productTypes');\n }\n\n get multipleAgentDisplayControl() {\n return this.form.get('multipleAgentDisplay');\n }\n\n get displayToServicingAgentControl() {\n return this.form.get('displayToServicingAgent');\n }\n\n get agentCommunicationControl() {\n return this.form.get('agentCommunication');\n }\n\n get workbasketControl() {\n return this.form.get('workbasket');\n }\n\n get agentSamControl() {\n return this.form.get('agentSam');\n }\n\n get multipleAgentDisplayDisabled() {\n return this.displayToServicingAgentControl?.value !== YesOrNoFlagNumberE.Y;\n }\n\n campaignTypeConfig: CdsDropdownConfig = {\n label: this.langService.translate('campaign.campaign-type'),\n options: CampaignTypeOptions,\n placeholder: this.langService.translate('campaign.select-campaign-type'),\n };\n\n productTypeConfig: CdsDropdownConfig = {\n label: this.langService.translate('campaign.product-type'),\n options: [],\n placeholder: this.langService.translate('campaign.select-product-type'),\n };\n\n multipleAgentDisplayConfig: CdsDropdownConfig = {\n label: this.langService.translate('campaign.multiple-agent-display'),\n options: yesOrNoFlagNumberOptions,\n placeholder: this.langService.translate('campaign.select-multiple-agent-display'),\n };\n\n displayCampaignToServicingAgentConfig: CdsDropdownConfig = {\n label: this.langService.translate('campaign.display-the-campaign'),\n options: yesOrNoFlagNumberOptions,\n placeholder: this.langService.translate('campaign.select-display-the-campaign'),\n };\n\n agentCommunicationConfig: CdsDropdownConfig = {\n label: this.langService.translate('campaign.agent-communication'),\n options: [],\n placeholder: this.langService.translate('campaign.agent-communication'),\n };\n\n iconConfig: CdsIconConfig = {\n color: '#00A758',\n size: 'sm',\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n checkResultInfoList: any[] = [];\n\n // AgentSepCheckResultTypeE = AgentSepCheckResultTypeE;\n\n checked = false;\n\n checkOk = true;\n\n warnIconConfig: CdsIconConfig = {\n color: '#D77D28',\n };\n\n errorIconConfig: CdsIconConfig = {\n color: '#C14A36',\n };\n\n warningTitle = 'The same agent was enrolled before.';\n warningText = 'Existing records will be replaced by clicking confirm to proceed.';\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: EmployeeService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n campaign: Campaign;\n editMode: boolean;\n }\n ) {}\n\n ngOnInit() {\n this.initForm();\n // console.log('data:', this.data);\n }\n\n initData() {\n this.originFormValue = {\n // agent: this.data.value.agent ? this.data.value.agent : '',\n // companyName: this.data.value.companyName ? this.data.value.companyName : '',\n // trusteeEmployerAccountNumber: this.data.value.trusteeEmployerAccountNumber ? this.data.value.trusteeEmployerAccountNumber : '',\n // remarks: this.data.value.remarks ? this.data.value.remarks : '',\n };\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n const initData = this.data.editMode\n ? this.originFormDataTrans(this.data.campaign)\n : {\n campaignId: '',\n campaignName: '',\n campaignOwner: '',\n campaignPeriodFrom: '',\n campaignPeriodTo: '',\n campaignDescription: '',\n campaignType: '',\n productTypes: [],\n multipleAgentDisplay: YesOrNoFlagNumberE.N,\n displayToServicingAgent: YesOrNoFlagNumberE.Y,\n agentCommunication: [],\n workbasket: '',\n agentSam: '',\n };\n\n this.form = new FormGroup(\n {\n campaignId: new FormControl(initData.campaignId, [Validators.required, Validators.maxLength(50), idValidator('employer.invalid-description')]),\n campaignName: new FormControl(initData.campaignName, [Validators.required, Validators.maxLength(100), idValidator('employer.invalid-description')]),\n campaignOwner: new FormControl(initData.campaignOwner, [\n Validators.required,\n Validators.maxLength(200),\n descriptionValidator('employer.invalid-description'),\n ]),\n campaignPeriodFrom: new FormControl(initData.campaignPeriodFrom, [Validators.required, dateValidator('create.dateError')]),\n campaignPeriodTo: new FormControl(initData.campaignPeriodTo, [Validators.required, dateValidator('create.dateError')]),\n campaignDescription: new FormControl(initData.campaignDescription, [\n Validators.required,\n Validators.maxLength(200),\n descriptionValidator('employer.invalid-description'),\n ]),\n campaignType: new FormControl(initData.campaignType, [Validators.required]),\n productTypes: new FormControl(initData.productTypes, [Validators.required]),\n multipleAgentDisplay: new FormControl(initData.multipleAgentDisplay, [Validators.required]),\n displayToServicingAgent: new FormControl(initData.displayToServicingAgent, [Validators.required]),\n agentCommunication: new FormControl(initData.agentCommunication, [Validators.required]),\n workbasket: new FormControl(initData.workbasket, [Validators.maxLength(500), idValidator('employer.invalid-description')]),\n agentSam: new FormControl(initData.agentSam, [Validators.maxLength(500), idValidator('employer.invalid-description')]),\n },\n { validators: startAndEndDateValidator('create.dateError', 'campaignPeriodFrom', 'campaignPeriodTo') }\n );\n }\n\n // changeFormImmediately(key: string, value: string) {\n // if (value && typeof value === 'string') {\n // this.form.get(key)?.setValue(value.trim());\n // }\n // }\n\n getRequestParams() {\n const params: Campaign = deepCopy(this.form.value);\n params.productTypes = this.getMultiSelectRequestValue(params.productTypes as CdMultidropdownTopping[]);\n params.agentCommunication = this.getMultiSelectRequestValue(params.agentCommunication as CdMultidropdownTopping[]);\n params.campaignPeriodFrom = this.requestDateTrans(params.campaignPeriodFrom);\n params.campaignPeriodTo = this.requestDateTrans(params.campaignPeriodTo);\n if (this.data.editMode) {\n params.id = this.data.campaign.id;\n }\n return params;\n }\n\n continue() {\n if (this.saveDisabled) {\n return;\n }\n this.inEdit = false;\n this.checkResultInfoList = [];\n this.checked = false;\n this.checkOk = true;\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n this.doSave();\n }\n\n check() {\n const params = this.getRequestParams();\n\n this.isLoading = true;\n\n this.service\n .campaignAdd(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.result === false) {\n this.checked = true;\n this.checkResultInfoList = res.data.tips || [];\n } else {\n this.popupWithReload();\n }\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n\n doSave() {\n const params = this.getRequestParams();\n\n this.isLoading = true;\n\n const ovservable = this.data.editMode ? this.service.campaignEdit : this.service.campaignAdd;\n\n ovservable(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.initForm();\n });\n }\n });\n }\n\n delete() {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate(\n this.data.campaign.isEngaged === YesOrNoFlagNumberE.Y ? 'campaign.delete-engaged-confirm' : 'campaign.delete-confirm'\n ),\n continueButtonName: this.langService.translate('common.delete'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.isLoading = true;\n this.service\n .campaignDelete(this.data.campaign?.id as string)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n });\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr = '31/12/9999') => {\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n\n requestAlert(message: string) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n title: 'Error',\n message: `${message}`,\n buttonName: this.langService.translate('confirm'),\n },\n })\n .afterClosed()\n .subscribe(() => {});\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close({\n agree: true,\n reload: true,\n });\n });\n }\n\n dateTrans(date?: string) {\n if (!date) return '';\n return DateTime.fromFormat(date, 'yyyy-MM-dd').toFormat('dd/MM/yyyy');\n }\n\n requestDateTrans(date?: string) {\n if (!date) return '';\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toFormat('yyyy-MM-dd');\n }\n\n backToEdit() {\n this.inEdit = true;\n }\n\n displayToServicingAgentChange(value: YesOrNoFlagNumberE) {\n if (value === YesOrNoFlagNumberE.N) {\n this.multipleAgentDisplayControl?.setValue(YesOrNoFlagNumberE.N);\n }\n }\n\n multiSelectRender(data: CdMultidropdownTopping[]) {\n if (!data) return '';\n return data.map(item => item.label).join(', ');\n }\n\n getMultiSelectRequestValue(data: CdMultidropdownTopping[]) {\n if (!data) return '';\n return data.map(item => item.value);\n }\n\n multidropdownToppingTrans(list: number[], options: CdMultidropdownTopping[]) {\n if (!list) return [];\n return options.filter(item => list.includes(item.value));\n }\n\n originFormDataTrans(data: Campaign) {\n if (!data) return {};\n const result = deepCopy(data);\n result.productTypes = this.multidropdownToppingTrans(result.productTypes, productTypeOptions);\n result.agentCommunication = this.multidropdownToppingTrans(result.agentCommunication, agentCommunicationOptions);\n result.campaignPeriodFrom = this.dateTrans(result.campaignPeriodFrom);\n result.campaignPeriodTo = this.dateTrans(result.campaignPeriodTo);\n return result;\n }\n}\n","\n \n
\n
{{ 'campaign.edit-campaign' | lang }}
\n
{{ (inEdit ? 'campaign.add-new-campaign' : 'campaign.add-new-campaign-summary') | lang }}
\n\n
\n
\n \n
Delete Record
\n
\n
\n\n \n
\n\n
\n \n
\n
\n\n \n
\n \n\n
\n
\n
\n \n\n
\n {{\n 'campaign.missing-campaign-id' | lang\n }}\n\n {{\n 'common.max-length-is' | lang : { p1: '50' }\n }}\n\n {{ campaignIdControl?.errors?.['descriptionInvalid'] }}\n
\n
\n
\n\n
\n \n\n
\n {{\n 'campaign.missing-campaign-name' | lang\n }}\n\n {{\n 'common.max-length-is' | lang : { p1: '100' }\n }}\n\n {{ campaignNameControl?.errors?.['idInvalid'] | lang }}\n
\n
\n\n
\n \n\n
\n {{\n 'campaign.missing-campaign-owner' | lang\n }}\n\n {{\n 'common.max-length-is' | lang : { p1: '200' }\n }}\n\n {{ campaignOwnerControl?.errors?.['idInvalid'] | lang }}\n
\n
\n\n
\n
\n \n \n \n\n
\n {{\n 'campaign.missing-campaign-period-from' | lang\n }}\n\n {{ 'create.dateError' | lang }}\n
\n
\n
-
\n
\n \n \n \n\n
\n {{\n 'campaign.missing-campaign-period-to' | lang\n }}\n {{ 'create.dateError' | lang }}\n
\n
\n
\n\n
\n \n
\n {{\n 'campaign.missing-campaign-description' | lang\n }}\n {{\n 'common.max-length-is' | lang : { p1: '200' }\n }}\n
\n
\n\n
\n \n\n
\n {{\n 'campaign.select-campaign-type' | lang\n }}\n
\n
\n\n
\n \n\n
\n {{\n 'campaign.select-product-type' | lang\n }}\n
\n
\n\n
\n \n\n
\n {{\n 'campaign.select-display-the-campaign' | lang\n }}\n
\n
\n\n
\n \n \n\n \n {{\n 'campaign.select-display-the-campaign' | lang\n }}\n
\n
\n\n
\n \n\n
\n {{\n 'campaign.select-agent-communication' | lang\n }}\n
\n
\n\n
\n \n\n
\n {{\n 'common.max-length-is' | lang : { p1: '500' }\n }}\n\n {{ workbasketControl?.errors?.['idInvalid'] | lang }}\n
\n
\n\n
\n \n\n
\n {{\n 'common.max-length-is' | lang : { p1: '500' }\n }}\n\n {{ agentSamControl?.errors?.['idInvalid'] | lang }}\n
\n
\n
\n\n
\n
\n
{{ 'campaign.campaign-id' | lang }}
\n
\n {{ campaignIdControl?.value }}\n
\n
\n\n
\n
{{ 'campaign.campaign-name' | lang }}
\n
\n {{ campaignNameControl?.value }}\n
\n
\n\n
\n
{{ 'campaign.campaign-owner' | lang }}
\n
\n {{ campaignOwnerControl?.value }}\n
\n
\n\n
\n
{{ 'campaign-period' | lang }}
\n
{{ campaignPeriodFromControl?.value }} - {{ campaignPeriodToControl?.value }}
\n
\n\n
\n
{{ 'campaign.campaign-description' | lang }}
\n
\n {{ campaignDescriptionControl?.value }}\n
\n
\n\n
\n
{{ 'campaign.campaign-type' | lang }}
\n
\n {{ findOptionLabelByValue | fn : campaignTypeControl?.value : CampaignTypeOptions }}\n
\n
\n\n
\n
{{ 'campaign.product-type' | lang }}
\n
\n {{ multiSelectRender | fn : productTypesControl?.value }}\n
\n
\n\n
\n
{{ 'campaign.multiple-agent-display' | lang }}
\n
\n {{ findOptionLabelByValue | fn : multipleAgentDisplayControl?.value : yesOrNoFlagNumberOptions }}\n
\n
\n\n
\n
{{ 'campaign.display-the-campaign' | lang }}
\n
\n {{ findOptionLabelByValue | fn : displayToServicingAgentControl?.value : yesOrNoFlagNumberOptions }}\n
\n
\n\n
\n
{{ 'campaign.agent-communication' | lang }}
\n
\n {{ multiSelectRender | fn : agentCommunicationControl?.value }}\n
\n
\n\n
\n
{{ 'campaign.workbasket' | lang }}
\n
\n {{ workbasketControl?.value }}\n
\n
\n\n
\n
{{ 'campaign.agentsam' | lang }}
\n
\n {{ agentSamControl?.value }}\n
\n
\n
\n \n
\n\n \n
\n \n {{ 'common.reset' | lang }}\n\n {{\n 'common.continue' | lang\n }}\n\n {{ 'common.confirm' | lang }}\n \n\n \n {{ 'common.backToEdit' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n
\n
\n
\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { DateTime } from 'luxon';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { dateValidator, descriptionValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Campaign, CampaignSearchRequest, CampaignTypeOptions, agentCommunicationOptions, productTypeOptions } from '../campaign';\nimport { ColumnSort } from '../../employer/employer';\nimport { EmployeeService } from '../../employee/employee.service';\nimport { EmployerService } from '../../employer/employer.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { BTN_CONFIG_PRIMARY, BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { AddCampaignComponent } from '../add-campaign/add-campaign.component';\nimport { UploadCustomerListComponent } from '../upload-customer-list/upload-customer-list.component';\nimport { findOptionLabelByValue } from 'src/app/utils/utils';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { yesOrNoFlagNumberOptions } from '../../employee/employee';\n\n@Component({\n selector: 'app-campaign-master-list-member',\n templateUrl: './campaign-master-list-member.component.html',\n styleUrls: ['./campaign-master-list-member.component.scss'],\n})\nexport class CampaignMasterListMemberComponent implements OnInit {\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n exportButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n exportButtonDisabled = true;\n\n isLoading = false;\n\n _totalPages = 0;\n\n totalElements = 0;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n dataSource: Campaign[] = [];\n\n _number = 1;\n\n _inputNumber = 1;\n\n isMobile = false;\n\n showDatePicker = true;\n\n formReady = false;\n\n canEdit = false;\n\n campaignTypeConfig: CdsDropdownConfig = {\n label: 'Campaign Type',\n placeholder: 'Select Campaign Type',\n options: CampaignTypeOptions,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'campaignName',\n title: 'Campaign Name',\n sticky: true,\n },\n {\n key: 'campaignDescription',\n title: 'Campaign Description',\n },\n {\n key: 'campaignOwner',\n title: 'Campaign Owner',\n },\n {\n key: 'campaignType',\n title: 'Campaign Type',\n },\n {\n key: 'productTypes',\n title: 'Product Type',\n },\n {\n key: 'multipleAgentDisplay',\n title: 'Multiple Agent Display',\n },\n {\n key: 'displayToServicingAgent',\n title: 'Display the campaign to Servicing Agent',\n },\n {\n key: 'agentCommunication',\n title: 'Agent Communication',\n },\n {\n key: 'links',\n title: 'Links',\n },\n ];\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n tempSeardhParams: CampaignSearchRequest = {\n page: 1,\n size: 10,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n columnSort: ColumnSort = {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n form: FormGroup = new FormGroup({});\n\n campaignNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n campaignOwnerValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get trusteeEmployerAccountNumberControl() {\n return this.form?.get('trusteeEmployerAccountNumber');\n }\n\n get campaignNameControl() {\n return this.form?.get('campaignName');\n }\n\n get campaignPeriodFromControl() {\n return this.form?.get('campaignPeriodFrom');\n }\n\n get campaignPeriodToControl() {\n return this.form?.get('campaignPeriodTo');\n }\n\n get campaignTypeControl() {\n return this.form?.get('campaignType');\n }\n\n get campaignOwnerControl() {\n return this.form?.get('campaignOwner');\n }\n\n addBtnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n uploadBtnCfg: CdsButtonConfig = BTN_CONFIG_PRIMARY;\n\n productTypeOptions = productTypeOptions;\n agentCommunicationOptions = agentCommunicationOptions;\n CampaignTypeOptions = CampaignTypeOptions;\n yesOrNoFlagNumberOptions = yesOrNoFlagNumberOptions;\n\n findOptionLabelByValue = findOptionLabelByValue;\n\n constructor(\n public service: EmployeeService,\n private toastAlert: ToastAlertService,\n private cdsPopup: CdsPopupService,\n private permissionService: PermissionService,\n public employerService: EmployerService,\n private langService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n this.getPermission();\n this.initForm();\n this.loadTable();\n }\n\n getPermission() {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_EMPLOYER).then(hasPermission => {\n this.canEdit = hasPermission;\n });\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n campaignName: new FormControl('', [Validators.maxLength(100), descriptionValidator(this.campaignNameValidTip, true)]),\n campaignPeriodFrom: new FormControl('', [dateValidator('create.dateError', '', '')]),\n campaignPeriodTo: new FormControl('', [dateValidator('create.dateError', '', '')]),\n campaignOwner: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.campaignOwnerValidTip)]),\n campaignType: new FormControl(''),\n },\n { validators: startAndEndDateValidator('create.dateError', 'campaignPeriodFrom', 'campaignPeriodTo') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n add() {\n this.cdsPopup\n .open(AddCampaignComponent, {\n size: 'lg',\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n edit(campaign: Campaign) {\n this.cdsPopup\n .open(AddCampaignComponent, {\n size: 'lg',\n data: {\n campaign,\n editMode: true,\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n upload() {\n this.cdsPopup\n .open(UploadCustomerListComponent, {\n size: 'md',\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.popupWithReload();\n } else {\n this.isLoading = false;\n }\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort = event.column\n ? {\n key: event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n this.loadTable();\n }\n\n loadTable() {\n const params: CampaignSearchRequest = this.getRequestParams();\n this.isLoading = true;\n this.exportButtonDisabled = true;\n this.service\n .getCampaignMemberList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.totalElements = data.data.totalElements;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTempSearchParams() {\n const params: CampaignSearchRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n params.campaignPeriodFrom = params.campaignPeriodFrom ? this.dateTrans(params.campaignPeriodFrom) : '';\n params.campaignPeriodTo = params.campaignPeriodTo ? this.dateTrans(params.campaignPeriodTo) : '';\n\n return params;\n }\n\n getRequestParams() {\n const params: CampaignSearchRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n dateTransToDisplay(date: string) {\n if (date) {\n return moment(date, 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n\n return date;\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.tempSeardhParams = {\n page: 1,\n size: 10,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n getMinTime() {\n return moment().subtract(5, 'year').add(1, 'day').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return null;\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('campaign.action.message.update.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n listValueRender(list: any[], options: CdsOption[]) {\n if (!list) return '';\n return list\n .map(item => {\n return findOptionLabelByValue(item, options);\n })\n .join(' & ');\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n jumpTo(url: string) {\n window.open(url, '_blank');\n }\n}\n","
\n
\n {{ 'common.searchRecord' | lang }}\n
\n\n
\n
\n {{ 'list.serach-record' | lang }}\n
\n
\n
\n \n\n
\n Max length is 100\n\n {{ campaignNameControl?.errors?.['descriptionInvalid'] }}\n
\n
\n
\n
\n \n \n \n\n
\n {{ 'create.dateError' | lang }}\n
\n
\n
-
\n
\n \n \n \n\n
\n {{ 'create.dateError' | lang }}\n
\n
\n
\n\n
\n \n\n
\n Max length is 200\n\n {{ campaignOwnerControl?.errors?.['descriptionInvalid'] }}\n
\n
\n\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n
\n
\n
{{ 'common.recordList' | lang }}
\n
Total {{ totalElements }} records
\n
\n
\n Add New Campaign \n Upload Customer List \n
\n
\n\n
\n \n \n
\n
\n \n
\n
\n
\n \n {{ element.campaignId }} {{ element.campaignName }}\n \n
\n
\n {{ dateTransToDisplay | fn : element.campaignPeriodFrom }} - {{ dateTransToDisplay | fn : element.campaignPeriodTo }}\n
\n
\n
\n
\n\n \n
\n {{ findOptionLabelByValue | fn : element.campaignType : CampaignTypeOptions }}\n
\n
\n\n \n
\n {{ listValueRender | fn : element.productTypes : productTypeOptions }}\n
\n
\n\n \n
\n {{ findOptionLabelByValue | fn : element.multipleAgentDisplay : yesOrNoFlagNumberOptions }}\n
\n
\n\n \n
\n {{ findOptionLabelByValue | fn : element.displayToServicingAgent : yesOrNoFlagNumberOptions }}\n
\n
\n\n \n
\n
\n \n
\n {{ listValueRender | fn : element.agentCommunication : agentCommunicationOptions }}\n
\n
\n\n \n
\n \n Workbasket\n
\n
\n \n AgentSAM\n
\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-campaign-master-list',\n templateUrl: './campaign-master-list.component.html',\n styleUrls: ['./campaign-master-list.component.scss'],\n})\nexport class CampaignMasterListComponent implements OnInit {\n tabIndex = 0;\n activedIndexList: number[] = [0];\n\n constructor() {}\n\n ngOnInit(): void {}\n\n fakeTabIndexChange(index: number) {\n console.log('fakeTabIndexChange:', index);\n this.tabIndex = index;\n }\n}\n","
\n
\n \n
\n
\n
\n
\n
Todo
\n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from 'src/app/views/layout/admin-layout/admin-layout.component';\nimport { CampaignMasterListComponent } from './campaign-master-list/campaign-master-list.component';\nconst routes: Routes = [\n {\n path: 'campaign',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: CampaignMasterListComponent,\n data: {\n title: 'campaign.campaign-master-list',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n CUSTOMER_EMPLOYER_INTERMEDIARY: PermissionAccess.R,\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n CUSTOMER_EMPLOYEE_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CampaignRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CampaignMasterListComponent } from './campaign-master-list/campaign-master-list.component';\nimport { CampaignRoutingModule } from './campaign-routing.module';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\nimport { CdAccordionModule } from 'src/app/components/accordion/cd-accordion.module';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { LoadingModule } from 'src/app/shared/loading/loading.modules';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsPillModule } from '@cds/ng-web-components/pill';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { CdsAccordionModule } from '@cds/ng-web-components/accordion';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { CdsInlineAlertModule } from '@cds/ng-web-components/inline-alert';\nimport { CampaignMasterListMemberComponent } from './campaign-master-list-member/campaign-master-list-member.component';\nimport { UploadCustomerListComponent } from './upload-customer-list/upload-customer-list.component';\nimport { AddCampaignComponent } from './add-campaign/add-campaign.component';\n\n@NgModule({\n declarations: [CampaignMasterListComponent, CampaignMasterListMemberComponent, UploadCustomerListComponent, AddCampaignComponent],\n imports: [\n CommonModule,\n CampaignRoutingModule,\n CdsTextfieldModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsButtonModule,\n CdsPaginationModule,\n FormsModule,\n CdsPopupModule,\n HttpClientModule,\n CdsProgressModule,\n CdsTableModule,\n CdsSortModule,\n CdsCheckboxModule,\n CdsTabsModule,\n CdsDropdownModule,\n CdsTooltipModule,\n ReactiveFormsModule,\n CdsTextareaModule,\n ExpandTableModule,\n CdAccordionModule,\n RowItemModule,\n CdsDatepickerModule,\n CdsSearchModule,\n MatRadioModule,\n CdsRadioModule,\n LoadingModule,\n SharedModule,\n CdsPillModule,\n BrowserAnimationsModule,\n CdsAccordionModule,\n MatAutocompleteModule,\n MatSelectModule,\n CdsAssistiveTextModule,\n CdsFormFieldModule,\n CdsFileUploadModule,\n CdsInlineAlertModule,\n ],\n})\nexport class CampaignModule {}\n","import { CdsOption } from '@cds/ng-core/configuration';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { YesOrNoFlagNumberE } from '../employee/employee';\n\nexport interface CampaignSearchRequest extends IPageableRequest {\n campaignName?: string;\n campaignPeriodFrom?: string;\n campaignPeriodTo?: string;\n campaignOwner?: string;\n campaignType?: CampaignTypeE;\n pageChannel?: string;\n md5?: string;\n}\n\nexport interface Campaign {\n id?: string;\n campaignId?: string;\n campaignName?: string;\n campaignPeriodFrom?: string;\n campaignPeriodTo?: string;\n campaignOwner?: string;\n campaignType?: CampaignTypeE;\n campaignDescription?: string;\n productTypes?: ProductTypeE[] | CdMultidropdownTopping[] | string;\n multipleAgentDisplay?: YesOrNoFlagNumberE;\n displayToServicingAgent?: YesOrNoFlagNumberE;\n agentCommunication?: AgentCommunicationE[] | CdMultidropdownTopping[] | string;\n workbasket?: string;\n agentSam?: string;\n customerCommunicationChannel?: string;\n customerPreferenceLanguage?: string;\n memberAccountCode?: string;\n policyType?: string;\n agentCommunicationChannel?: string;\n assignedAgent?: string;\n messageDelivered?: string;\n opened?: string;\n customerFirstResponseDate?: string;\n customerLastResponseDate?: string;\n isEngaged?: YesOrNoFlagNumberE;\n}\n\nexport interface CustomerListFileCheckRes {\n messageType?: CustomerListUploadErrorMessageTypeE;\n campaignErrorInfoList?: CampaignErrorInfo[];\n campaignId?: string;\n}\n\nexport interface CampaignErrorInfo {\n serialNumber?: number;\n campaignName?: string;\n memberAccountCode?: string;\n}\n\nexport interface CustomerListCheckResult {\n row: number;\n message: string;\n}\n\nexport enum CampaignTypeE {\n SALES = 0,\n SERVICE = 1,\n SURVEY = 2,\n DIGITAL = 3,\n STRENGTHEN_RELATIONSHIP = 4,\n OTHERS = 5,\n}\n\nexport const CampaignTypeOptions: CdsOption[] = [\n {\n label: 'Sales',\n value: CampaignTypeE.SALES,\n },\n {\n label: 'Service',\n value: CampaignTypeE.SERVICE,\n },\n {\n label: 'Survey',\n value: CampaignTypeE.SURVEY,\n },\n {\n label: 'Digital',\n value: CampaignTypeE.DIGITAL,\n },\n {\n label: 'Strengthen Relationship',\n value: CampaignTypeE.STRENGTHEN_RELATIONSHIP,\n },\n {\n label: 'Others',\n value: CampaignTypeE.OTHERS,\n },\n];\n\nexport enum ProductTypeE {\n MPF = 0,\n ORSO = 1,\n MACAU = 2,\n}\n\nexport const productTypeOptions: CdMultidropdownTopping[] = [\n {\n label: 'MPF',\n value: ProductTypeE.MPF,\n },\n {\n label: 'ORSO',\n value: ProductTypeE.ORSO,\n },\n {\n label: 'Macau',\n value: ProductTypeE.MACAU,\n },\n];\n\nexport enum AgentCommunicationE {\n WORKBASKET = 0,\n ANS = 1,\n WHATS_APP = 2,\n EMAIL = 3,\n AGENT_SAM = 4,\n NA = 5,\n}\n\nexport const agentCommunicationOptions: CdMultidropdownTopping[] = [\n {\n label: 'Workbasket',\n value: AgentCommunicationE.WORKBASKET,\n },\n {\n label: 'ANS',\n value: AgentCommunicationE.ANS,\n },\n {\n label: 'WhatsApp',\n value: AgentCommunicationE.WHATS_APP,\n },\n {\n label: 'Email',\n value: AgentCommunicationE.EMAIL,\n },\n {\n label: 'Agent SAM',\n value: AgentCommunicationE.AGENT_SAM,\n },\n {\n label: 'N/A',\n value: AgentCommunicationE.NA,\n },\n];\n\nexport enum CustomerListUploadErrorMessageTypeE {\n INCORRECT_NAME = 1,\n ONLY_EXCEL = 2,\n WRONG_MEMBER_ACCOUNT_CODE = 3,\n MISSING_MEMBER_ACCOUNT_CODE = 4,\n WRONG_CAMPAIGN_ID = 5,\n MISSIONG_CAMPAIGN_ID = 6,\n}\n\nexport const customerListUploadErrorMessageTypeMap = new Map([\n [CustomerListUploadErrorMessageTypeE.INCORRECT_NAME, 'campaign.incorrect-file-name'],\n [CustomerListUploadErrorMessageTypeE.ONLY_EXCEL, 'campaign.only-excel'],\n [CustomerListUploadErrorMessageTypeE.WRONG_MEMBER_ACCOUNT_CODE, 'campaign.wrong-member-account-code'],\n [CustomerListUploadErrorMessageTypeE.MISSING_MEMBER_ACCOUNT_CODE, 'campaign.missiong-member-account-code'],\n [CustomerListUploadErrorMessageTypeE.WRONG_CAMPAIGN_ID, 'campaign.wrong-campaign-id'],\n [CustomerListUploadErrorMessageTypeE.MISSIONG_CAMPAIGN_ID, 'campaign.upload-missing-campaign-id'],\n]);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { EmployeeService } from '../../employee/employee.service';\nimport { CommontsPopupComponent } from '../../employer/commonts-popup/commonts-popup.component';\nimport { CampaignErrorInfo, CustomerListFileCheckRes, CustomerListUploadErrorMessageTypeE, customerListUploadErrorMessageTypeMap } from '../campaign';\nimport { AgentSepCheckResultTypeE } from '../../employer/employer';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { DateTime } from 'luxon';\n\n@Component({\n selector: 'app-upload-customer-list',\n templateUrl: './upload-customer-list.component.html',\n styleUrls: ['./upload-customer-list.component.scss'],\n})\nexport class UploadCustomerListComponent implements OnInit {\n show = true;\n\n cancelButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n uploadFormControl = new FormControl();\n\n warnIconConfig: CdsIconConfig = {\n color: '#D77D28',\n };\n\n errorIconConfig: CdsIconConfig = {\n color: '#C14A36',\n };\n\n file!: File;\n\n noFileSelect = true;\n\n fileAvailable = true;\n\n get showFileErrorMessage() {\n return !this.fileValid.size || !this.fileValid.type || !this.fileValid.type;\n }\n\n isLoading = false;\n\n checked = false;\n\n checkOk = true;\n\n checkResultInfoList: CustomerListFileCheckRes[] = [];\n\n displayedColumns = ['serialNumber', 'campaignName', 'memberAccountCode'];\n\n AgentSepCheckResultTypeE = AgentSepCheckResultTypeE;\n\n CustomerListUploadErrorMessageTypeE = CustomerListUploadErrorMessageTypeE;\n\n fileValid = this.fileValidinit();\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: EmployeeService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.fileValid = this.fileValidinit();\n this.noFileSelect = true;\n } else {\n this.noFileSelect = false;\n }\n });\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n this.checkFile(this.file);\n this.checked = false;\n this.checkOk = true;\n this.checkResultInfoList = [];\n }\n\n fileValidinit() {\n return {\n type: true,\n size: true,\n name: true,\n };\n }\n\n checkFile(file: any) {\n if (!file || !file.size || !file.type || !file.name) {\n this.fileValid = this.fileValidinit();\n }\n\n // file size limit is 10MB\n if (file.size <= 10485760) {\n this.fileValid.size = true;\n } else {\n this.fileValid.size = false;\n }\n\n if (file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {\n this.fileValid.type = true;\n } else {\n this.fileValid.type = false;\n }\n\n const regexPattern = /^HKR Customer Engagement Tracking_Member_\\d{8}.xlsx$/;\n\n const nameOk = regexPattern.test(file.name);\n\n if (nameOk) {\n const dateStr = file.name.substr(-8);\n const dateStrValid = DateTime.fromFormat(dateStr, 'yyyyMMdd').isValid;\n\n if (dateStrValid) {\n this.fileValid.name = true;\n } else {\n this.fileValid.name = false;\n }\n } else {\n this.fileValid.name = false;\n }\n }\n\n confirm() {\n if (this.noFileSelect || this.showFileErrorMessage) {\n return;\n }\n this.upload();\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n cancel() {\n if (this.noFileSelect) {\n this.dialogRef.close({\n agree: false,\n });\n return;\n }\n this.show = false;\n const popupRef: MatDialogRef = this.cdsPopup.open(CommontsPopupComponent, {\n size: 'md',\n data: {\n message: this.langService.translate('common.action.cancel'),\n noCloseIcon: true,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n this.show = true;\n if (data.agree) {\n this.dialogRef.close({\n agree: false,\n });\n }\n });\n }\n\n upload() {\n this.isLoading = true;\n this.service\n .uploadCustomerList(this.file)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.length === 0) {\n this.dialogRef.close({\n agree: true,\n });\n } else {\n this.checkResultInfoList = res.data;\n this.checkOk = false;\n }\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n\n warningTitleRender = (item: CustomerListFileCheckRes) => {\n const i18nKey = customerListUploadErrorMessageTypeMap.get(item.messageType as CustomerListUploadErrorMessageTypeE) || '';\n if (item.messageType === CustomerListUploadErrorMessageTypeE.WRONG_CAMPAIGN_ID) {\n return this.langService.translate(i18nKey, { p1: item.campaignId as string });\n }\n return this.langService.translate(i18nKey);\n };\n\n warningTextRender = (item: CustomerListFileCheckRes) => {\n if (item.messageType === CustomerListUploadErrorMessageTypeE.MISSING_MEMBER_ACCOUNT_CODE) {\n return this.langService.translate('campaign.wrong-campaign-id-tip');\n }\n return '';\n };\n\n tableDataTrans(list: CampaignErrorInfo[]) {\n if (!list) {\n return [];\n }\n return list.map((item, index) => {\n const data = deepCopy(item);\n data.serialNumber = index + 1;\n return data;\n });\n }\n}\n","\n {{ 'campaign.upload-member-engagement-list' | lang }}\n\n \n
\n {{ 'notification.fileRequirements' | lang }}\n
\n
\n {{ 'campaign.upload-file-tip' | lang }}\n
\n\n
\n
\n
\n \n\n
\n
Failed Cases:
\n\n \n \n \n \n {{ element.serialNumber }}\n \n\n \n \n Campaign Name \n {{ element.campaignName }}\n \n\n \n \n Member Account Code \n {{ element.memberAccountCode }}\n \n\n \n \n \n
\n
\n
\n
\n\n
\n \n \n
\n\n \n {{ 'campaign.only-excel' | lang }}\n {{ 'campaign.incorrect-file-name' | lang }}\n {{ 'campaign.maximum-file-size' | lang }}\n \n\n \n
\n\n \n \n {{ 'common.cancel' | lang }}\n\n {{\n 'common.upload' | lang\n }}\n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { faCog } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'app-footer-dots',\n templateUrl: './footer-dots.component.html',\n})\nexport class FooterDotsComponent implements OnInit {\n faCog = faCog;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n
\n \n
\n
\n
\n
\n
\n
Notifications
\n
You have 21 unread messages
\n
\n
\n
\n
\n
\n
    \n
  • \n Messages\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n

    All Hands Meeting

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

    Another meeting today, at 12:00 PM

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

    Build the production release

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

    All Hands Meeting

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

    FontAwesome Icons

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

    Build the production release

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

    Another meeting today, at 12:00 PM

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
  • \n
  • \n Events\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n

    All Hands Meeting

    \n

    Lorem ipsum dolor sic amet, today at 12:00 PM

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

    Another meeting today, at 12:00 PM

    \n

    Yet another one, at 15:00 PM

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

    Build the production release

    \n

    \n Lorem ipsum dolor sit amit,consectetur eiusmdd tempor incididunt ut labore et dolore magna elit enim at minim veniam quis\n nostrud\n

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

    Something not important

    \n

    Lorem ipsum dolor sit amit,consectetur elit enim at minim veniam quis nostrud

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

    All Hands Meeting

    \n

    Lorem ipsum dolor sic amet, today at 12:00 PM

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

    Another meeting today, at 12:00 PM

    \n

    Yet another one, at 15:00 PM

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

    Build the production release

    \n

    \n Lorem ipsum dolor sit amit,consectetur eiusmdd tempor incididunt ut labore et dolore magna elit enim at minim veniam quis\n nostrud\n

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

    Something not important

    \n

    Lorem ipsum dolor sit amit,consectetur elit enim at minim veniam quis nostrud

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
  • \n
  • \n Status\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    All caught up!
    \n
    There are no system errors!
    \n
    \n
    \n
  • \n
\n
\n
\n
    \n
  • \n
  • \n \n
  • \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
Choose Language
\n
\n
\n
\n \n \n \n \n
\n
Others
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
Users Online
\n
Recent Account Activity Overview
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
344k
\n
Profile views since last login
\n
\n
\n
    \n
  • \n
  • \n \n
  • \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer-menu',\n templateUrl: './footer-menu.component.html',\n})\nexport class FooterMenuComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","
    \n
  • \n \n
  • \n
  • \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    Two Column Grid
    \n
    Easy grid navigation inside popovers
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
      \n
    • \n
    • \n
      \n \n
      \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 } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n})\nexport class FooterComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n \n
\n","import { Component, OnInit } from '@angular/core';\n// import { faRefresh } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'app-dots',\n templateUrl: './dots.component.html',\n})\nexport class DotsComponent implements OnInit {\n // faRefresh = faRefresh;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n
\n \n
\n
\n
\n
\n
\n
Grid Dashboard
\n
Easy grid navigation inside dropdowns
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
    \n
  • \n
  • \n \n
  • \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
Notifications
\n
You have 21 unread messages
\n
\n
\n
\n
\n
\n
    \n
  • \n Messages\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n

    All Hands Meeting

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

    Another meeting today, at 12:00 PM

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

    Build the production release

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

    All Hands Meeting

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

    FontAwesome Icons

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

    Build the production release

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

    Another meeting today, at 12:00 PM

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
  • \n
  • \n Events\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n

    All Hands Meeting

    \n

    Lorem ipsum dolor sic amet, today at 12:00 PM

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

    Another meeting today, at 12:00 PM

    \n

    Yet another one, at 15:00 PM

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

    Build the production release

    \n

    \n Lorem ipsum dolor sit amit,consectetur eiusmdd tempor incididunt ut labore et dolore magna elit enim at minim veniam quis\n nostrud\n

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

    Something not important

    \n

    Lorem ipsum dolor sit amit,consectetur elit enim at minim veniam quis nostrud

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

    All Hands Meeting

    \n

    Lorem ipsum dolor sic amet, today at 12:00 PM

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

    Another meeting today, at 12:00 PM

    \n

    Yet another one, at 15:00 PM

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

    Build the production release

    \n

    \n Lorem ipsum dolor sit amit,consectetur eiusmdd tempor incididunt ut labore et dolore magna elit enim at minim veniam quis\n nostrud\n

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

    Something not important

    \n

    Lorem ipsum dolor sit amit,consectetur elit enim at minim veniam quis nostrud

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
  • \n
  • \n Status\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    All caught up!
    \n
    There are no system errors!
    \n
    \n
    \n
  • \n
\n
\n
\n
    \n
  • \n
  • \n \n
  • \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
Choose Language
\n
\n
\n
\n
Popular Languages
\n \n \n \n \n
\n
Others
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
Users Online
\n
Recent Account Activity Overview
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
344k
\n
Profile views since last login
\n
\n 176%\n chart\n
\n
\n
\n
    \n
  • \n
  • \n \n
  • \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { ThemeOptions } from '../../../../../theme-options';\nimport { faFile } from '@fortawesome/free-solid-svg-icons';\nimport { faCloudDownloadAlt } from '@fortawesome/free-solid-svg-icons';\nimport { faFilePdf } from '@fortawesome/free-solid-svg-icons';\nimport { faFileExcel } from '@fortawesome/free-solid-svg-icons';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport { faTrash } from '@fortawesome/free-solid-svg-icons';\nimport { faEllipsisH } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'app-drawer',\n templateUrl: './drawer.component.html',\n})\nexport class DrawerComponent implements OnInit {\n faFile = faFile;\n faCloudDownloadAlt = faCloudDownloadAlt;\n faFilePdf = faFilePdf;\n faFileExcel = faFileExcel;\n faCheck = faCheck;\n faTrash = faTrash;\n faEllipsisH = faEllipsisH;\n\n toggleDrawer() {\n this.globals.toggleDrawer = !this.globals.toggleDrawer;\n }\n\n constructor(public globals: ThemeOptions) {}\n\n ngOnInit() {}\n}\n","
\n
\n \n
\n
\n
\n \n

Servers Status

\n
\n
\n
\n
\n

Server Load 1

\n
\n
\n 34%\n \n \n
\n
\n
\n
\n
\n
\n

Server Load 2

\n
\n
\n 66%\n \n \n
\n
\n
\n
\n
\n
\n

Server Load 3

\n
\n
\n 54%\n \n \n
\n
\n
\n
\n
\n
\n
\n
Live Statistics
\n
\n \n
\n
\n
\n
\n
\n
43
\n
Packages
\n
\n
\n
\n
\n
\n
\n
65
\n
Dropped
\n
\n
\n
\n
\n
\n
\n
18
\n
Invalid
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n

File Transfers

\n
\n
\n
    \n
  • \n
    \n
    \n
    \n \n
    \n
    \n
    TPSReport.docx
    \n
    \n
    \n \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n \n
    \n
    \n
    Latest_photos.zip
    \n
    \n
    \n \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n \n
    \n
    \n
    Annual Revenue.pdf
    \n
    \n
    \n \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n \n
    \n
    \n
    Analytics_GrowthReport.xls
    \n
    \n
    \n \n
    \n
    \n
    \n
  • \n
\n
\n
\n

Tasks in Progress

\n
\n
\n
    \n
  • \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n Wash the car\n
    Rejected
    \n
    \n
    Written by Bob
    \n
    \n
    \n \n \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    Task with action button
    \n
    \n
    \n By Johnny\n
    NEW
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    Badge on the right task
    \n
    This task has show on hover actions!
    \n
    \n
    \n \n
    \n
    \n
    Latest Task
    \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    Go grocery shopping
    \n
    A short description ...
    \n
    \n
    \n \n \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    Development Task
    \n
    Finish React ToDo List App
    \n
    \n
    \n
    69
    \n
    \n
    \n \n \n
    \n
    \n
    \n
  • \n
\n
\n
\n

Urgent Notifications

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

All Hands Meeting

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

Yet another one, at 15:00 PM

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

\n Build the production release\n
NEW
\n

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

\n Something not important\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
+
\n
\n
\n

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

This dot has an info state

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

This dot has a dark state

\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-megapopover',\n templateUrl: './megapopover.component.html',\n})\nexport class MegapopoverComponent {\n name = 'World';\n}\n","Hello, {{ name }}!\nFancy content!!\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-mega-menu',\n templateUrl: './mega-menu.component.html',\n})\nexport class MegamenuComponent implements OnInit {\n public value = false;\n constructor() {}\n\n ngOnInit() {}\n\n hideMegamenu() {\n this.value = !this.value;\n }\n}\n","
\n \n
    \n
  • \n \n
  • \n
  • \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    Overview
    \n
    Dropdown menus for everyone
    \n
    \n
    \n
    \n
    \n \n
    Key Figures
    \n \n \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
    Unlimited options
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n \n \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 } from '@angular/core';\n\n@Component({\n selector: 'app-search-box',\n templateUrl: './search-box.component.html',\n})\nexport class SearchBoxComponent implements OnInit {\n public isActive: any;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n
\n \n \n
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { faCalendar } from '@fortawesome/free-solid-svg-icons';\nimport { ThemeOptions } from '../../../../../theme-options';\n\n@Component({\n selector: 'app-user-box',\n templateUrl: './user-box.component.html',\n})\nexport class UserBoxComponent implements OnInit {\n faCalendar = faCalendar;\n\n toggleDrawer() {\n this.globals.toggleDrawer = !this.globals.toggleDrawer;\n }\n\n constructor(public globals: ThemeOptions) {}\n\n ngOnInit() {}\n}\n","
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\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, HostBinding } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { faEllipsisV } from '@fortawesome/free-solid-svg-icons';\nimport { ThemeOptions } from '../../../theme-options';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n})\nexport class HeaderComponent {\n faEllipsisV = faEllipsisV;\n\n constructor(public globals: ThemeOptions) {}\n\n @HostBinding('class.isActive')\n get isActiveAsGetter() {\n return this.isActive;\n }\n\n isActive: boolean = false;\n\n toggleSidebarMobile() {\n this.globals.toggleSidebarMobile = !this.globals.toggleSidebarMobile;\n }\n\n toggleHeaderMobile() {\n this.globals.toggleHeaderMobile = !this.globals.toggleHeaderMobile;\n }\n}\n","
\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 } from '@angular/core';\n\n@Component({\n selector: 'app-logo',\n templateUrl: './logo.component.html',\n})\nexport class LogoComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","

logo works!

\n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { ThemeOptions } from '../../../theme-options';\nimport { Observable } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport { PerfectScrollbarConfigInterface, PerfectScrollbarComponent, PerfectScrollbarDirective } from 'ngx-perfect-scrollbar';\n\n@Component({\n selector: 'app-sidebar',\n templateUrl: './sidebar.component.html',\n})\nexport class SidebarComponent implements OnInit {\n public extraParameter: any;\n\n constructor(public globals: ThemeOptions, private activatedRoute: ActivatedRoute) {}\n\n public config: PerfectScrollbarConfigInterface = {};\n private newInnerWidth: number = 0;\n private innerWidth: number = 0;\n activeId = 'dashboards';\n\n toggleSidebar() {\n this.globals.toggleSidebar = !this.globals.toggleSidebar;\n this.globals.sidebarHover = !this.globals.toggleSidebar;\n }\n\n sidebarHover() {\n this.globals.sidebarHover = !this.globals.sidebarHover;\n }\n\n sidebarHoverMouseOut() {\n this.globals.sidebarHover = false;\n }\n\n sidebarHoverMouseIn() {\n this.globals.sidebarHover = true;\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.innerWidth = window.innerWidth;\n if (this.innerWidth < 1200) {\n this.globals.toggleSidebar = true;\n }\n });\n\n this.extraParameter = this.activatedRoute?.snapshot?.firstChild?.routeConfig?.path;\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: any) {\n this.newInnerWidth = event.target.innerWidth;\n\n if (this.newInnerWidth < 1200) {\n this.globals.toggleSidebar = true;\n } else {\n this.globals.toggleSidebar = false;\n }\n }\n}\n","
\n
\n
ChataBot
\n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ConfigActions } from '../../ThemeOptions/store/config.actions';\nimport { ThemeOptions } from '../../theme-options';\nimport { animate, query, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'app-apps-layout',\n templateUrl: './apps-layout.component.html',\n animations: [\n trigger('architectUIAnimation', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n opacity: 0,\n display: 'flex',\n flex: '1',\n transform: 'translateY(-20px)',\n flexDirection: 'column',\n }),\n ]),\n query(':enter', [animate('600ms ease', style({ opacity: 1, transform: 'translateY(0)' }))], { optional: true }),\n\n query(':leave', [animate('600ms ease', style({ opacity: 0, transform: 'translateY(-20px)' }))], { optional: true }),\n ]),\n ]),\n ],\n})\nexport class AppsLayoutComponent {\n // @ts-ignore\n\n constructor(public globals: ThemeOptions, public configActions: ConfigActions) {}\n\n toggleSidebarMobile() {\n this.globals.toggleSidebarMobile = !this.globals.toggleSidebarMobile;\n }\n}\n","\n \n \n
\n
\n
\n \n
\n
\n \n
\n \n \n
\n\n\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { ConfigActions } from '../../ThemeOptions/store/config.actions';\nimport { ThemeOptions } from '../../theme-options';\nimport { animate, query, style, transition, trigger } from '@angular/animations';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { environment } from 'src/environments/environment';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { Router } from '@angular/router';\nimport { CannedService } from '../../_services/canned.service';\nimport { loadGoHomeFunc } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-base-layout',\n templateUrl: './base-layout.component.html',\n animations: [\n trigger('architectUIAnimation', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n opacity: 0,\n display: 'flex',\n flex: '1',\n transform: 'translateY(-20px)',\n flexDirection: 'column',\n }),\n ]),\n query(':enter', [animate('100ms ease', style({ opacity: 1, transform: 'translateY(0)' }))], { optional: true }),\n\n query(':leave', [animate('100ms ease', style({ opacity: 0, transform: 'translateY(-20px)' }))], { optional: true }),\n ]),\n ]),\n ],\n styleUrls: ['../../styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BaseLayoutComponent {\n langList: CdsOption[] = environment.languageList;\n selectedLang = 'en';\n isHideNavigationLang = false;\n private sharData: Subject = new Subject();\n constructor(\n public globals: ThemeOptions,\n public configActions: ConfigActions,\n private languageChangeService: LanguageChangeService,\n private authenticationService: AuthenticationService,\n private cannedService: CannedService,\n\n public router: Router,\n private notifyService: NotifyService\n ) {}\n\n toggleSidebarMobile() {\n this.globals.toggleSidebarMobile = !this.globals.toggleSidebarMobile;\n }\n\n logout() {\n let loginType = localStorage.getItem('loginType');\n if (!loginType) {\n loginType = 'sso';\n }\n // this.authenticationService.logout(loginType, this.router)\n }\n\n ngAfterViewInit(): void {\n loadGoHomeFunc(() => {\n this.router.navigate(['/home']);\n });\n }\n\n ngOnInit(): void {\n const styleTags = document.getElementsByTagName('style');\n for (let i = 0; i < styleTags.length; i++) {\n const styleTag = styleTags[i] as any;\n if (styleTag.textContent.includes('chatbot-admin-style-marker-deletion-prohibited')) {\n if (styleTag.hasAttribute('media')) {\n styleTag.removeAttribute('media');\n }\n }\n\n this.notifyService.getHideNavigationLang().subscribe(boo => {\n setTimeout(() => {\n this.isHideNavigationLang = boo;\n const mobileNavigation = document.querySelector('div.cds-mobile-menu-util.order-1 cds-navigation-dropdown-utility');\n if (mobileNavigation && mobileNavigation.parentElement) {\n (mobileNavigation.parentElement as HTMLElement).style.display = boo ? 'none' : 'unset';\n }\n }, 100);\n });\n }\n }\n\n changeLang(lang: string) {\n this.selectedLang = lang;\n this.languageChangeService.setLang(lang);\n this.sendData(lang);\n }\n\n sendData(value: string) {\n this.sharData.next(value);\n }\n\n TerminateChat() {\n this.cannedService.terminateChat().subscribe((resp: any) => {});\n }\n\n ngOnDestroy(): void {\n const styleTags = document.getElementsByTagName('style');\n for (let i = 0; i < styleTags.length; i++) {\n const styleTag = styleTags[i] as any;\n if (styleTag.textContent.includes('chatbot-admin-style-marker-deletion-prohibited')) {\n styleTag.setAttribute('media', 'max-width: 1px');\n }\n }\n }\n}\n","\n\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n {{ 'common.footerText' | lang }}\n
\n
\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { animate, query, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'app-pages-layout',\n templateUrl: './pages-layout.component.html',\n animations: [\n trigger('architectUIAnimation', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n opacity: 0,\n display: 'flex',\n flex: '1',\n flexDirection: 'column',\n }),\n ]),\n query(':enter', [animate('600ms ease', style({ opacity: 1 }))], { optional: true }),\n\n query(':leave', [animate('600ms ease', style({ opacity: 0 }))], { optional: true }),\n ]),\n ]),\n ],\n})\nexport class PagesLayoutComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n \n
\n\n","import { Component } from '@angular/core';\nimport { faCog } from '@fortawesome/free-solid-svg-icons';\nimport { ConfigActions } from '../store/config.actions';\nimport { ThemeOptions } from '../../theme-options';\n\n@Component({\n selector: 'app-options-drawer',\n templateUrl: './options-drawer.component.html',\n})\nexport class OptionsDrawerComponent {\n faCog = faCog;\n\n toggleOptionsDrawer() {\n this.globals.toggleThemeOptions = !this.globals.toggleThemeOptions;\n }\n\n toggleFixedFooter() {\n this.globals.toggleFixedFooter = !this.globals.toggleFixedFooter;\n }\n\n constructor(public globals: ThemeOptions, public configActions: ConfigActions) {}\n}\n","
\n \n
\n
\n \n
\n

Layout Options

\n
\n
    \n
  • \n
    \n
    \n
    \n \n
    \n
    \n
    Fixed Footer
    \n
    Makes the app footer bottom fixed, always visible!
    \n
    \n
    \n
    \n
  • \n
\n
\n

\n
Header Options
\n \n

\n
\n
    \n
  • \n
    Choose Color Scheme
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
  • \n
\n
\n

\n
Sidebar Options
\n \n Restore Default\n \n

\n
\n
    \n
  • \n
    Choose Color Scheme
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \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 { ArchitectUIState } from './index';\n\n@Injectable()\nexport class ConfigActions {\n static CONFIG_GET = 'CONFIG_GET';\n static CONFIG_UPDATE = 'CONFIG_UPDATE';\n\n constructor() {}\n\n getConfig() {\n // this.ngRedux.dispatch({\n // type: ConfigActions.CONFIG_GET,\n // });\n }\n\n updateConfig(config: any): void {\n // this.ngRedux.dispatch({\n // type: ConfigActions.CONFIG_UPDATE,\n // payload: config\n // });\n }\n}\n","import Swal from 'sweetalert2';\nexport const MessageTypes = {\n error: 'Error',\n info: 'Info',\n failure: 'Failure',\n success: 'Success',\n warning: 'Warning',\n question: 'Question',\n};\n\nexport class Alerts {\n public static showErrorMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.error,\n text: message,\n type: 'error',\n });\n }\n\n public static showSuccessMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.success,\n text: message,\n type: 'success',\n });\n }\n\n public static showMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : '',\n text: message,\n });\n }\n\n public static showInfoMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.info,\n text: message,\n type: 'info',\n });\n }\n\n public static showWarningMessage(message: string, showCancelButton: boolean, confirmButtonText: string, cancelButtonText: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.warning,\n text: message,\n type: 'warning',\n showCancelButton: showCancelButton,\n confirmButtonText: confirmButtonText,\n cancelButtonText: cancelButtonText,\n });\n }\n\n public static showConfirmationMessage(confirmMessage?: string, confirmButtonText?: string, title?: string) {\n return Swal({\n title: confirmMessage != null ? confirmMessage : 'Are you sure to delete the record?',\n text: title,\n type: 'warning',\n showCancelButton: true,\n confirmButtonColor: '#3085d6',\n cancelButtonColor: '#d33',\n confirmButtonText: confirmButtonText != null ? confirmButtonText : 'Delete',\n allowOutsideClick: false,\n });\n }\n\n public static showInfoMessageWithConfirmation(title?: string, html?: any, cancelButton?: boolean, confirmButtonText?: string) {\n return Swal({\n title: title != null ? title : '',\n html: html,\n type: 'info',\n showCancelButton: cancelButton,\n confirmButtonText: confirmButtonText ? confirmButtonText : 'OK',\n allowOutsideClick: false,\n });\n }\n\n public static showDeletedSuccessfully(message?: string, title?: string) {\n return Swal({\n title: title != null ? title : 'Deleted!',\n text: message != null ? message : 'Your record has been deleted.',\n type: 'success',\n });\n }\n public static showQustionMessage(message: string, showCancelButton: boolean, confirmButtonText: string, cancelButtonText: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.question,\n text: message,\n type: 'question',\n showCancelButton: showCancelButton,\n confirmButtonText: confirmButtonText,\n cancelButtonText: cancelButtonText,\n });\n }\n}\n","import { environment } from 'src/environments/environment';\n\nconst baseUrl = environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v1/';\nconst baseUrl2 = environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v2/';\n\nexport const APIPaths = {\n subresponse: baseUrl + 'subresponse',\n autoResponse: baseUrl + 'auto',\n agreements: baseUrl + 'agreements',\n alerts: baseUrl + 'alerts',\n users: baseUrl + 'users',\n closeChat: baseUrl + 'agent/log/',\n getCanedResponse: baseUrl + 'canned',\n getsubCanedResponse: baseUrl + 'canned',\n getAgentcanned: baseUrl + 'agentcanned',\n getAgetnList: baseUrl + 'user/get-all-agents',\n getAllAgetnList: baseUrl + 'user/get-all-agents-without-user-id',\n transferChat: baseUrl + 'room/transfer',\n getActiveCloseChatList: baseUrl2 + 'rooms-with-status',\n getChatListForSupervisor: baseUrl + 'supervisor/rooms-with-status',\n downloadChatHistor: baseUrl + 'download-history',\n getAutoResponse: baseUrl + 'auto',\n feedBack: baseUrl + 'feedback',\n getNewChatRoom: baseUrl + 'room',\n getUsreList: baseUrl + 'rooms',\n upload: environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v1/files/uploadFile',\n download: environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/files/download/',\n websocket: environment.chatbotWebsocket + '/ext/eb-ssms/chatbot-service/ws',\n //websocket: 'ws://localhost:8080/ws',\n //websocket: environment.apiPrefix + '/ws',\n changeRoomStatus: baseUrl + 'room/',\n changeUsertatus: baseUrl + 'user/status/',\n gethistory: baseUrl + 'history',\n getServicesAgree: baseUrl + 'agreements',\n getAllRoomForHistory: baseUrl + 'rooms',\n getReports: baseUrl2 + 'admin/download-excel',\n\n staticData: baseUrl + 'staticdata',\n supervisor: baseUrl + 'user/get-supervisor-report',\n terminateChat: baseUrl + 'agent/log/terminateAllBotChats',\n};\n\nexport const languagesDDL = [\n {\n id: 'zh',\n text: 'Chinese',\n },\n {\n id: 'en',\n text: 'English',\n },\n];\n\nexport const msgTypeDDL = [\n {\n id: 1,\n text: 'IDLE',\n },\n {\n id: 2,\n text: 'SESSION_OUT',\n },\n {\n id: 3,\n text: 'NO_CSO',\n },\n {\n id: 4,\n text: 'AGENT_OFFLINE',\n },\n {\n id: 5,\n text: 'CSO_OFFLINE',\n },\n];\n","export * from './tokenHelper';\n","import * as jwtDecode from 'jwt-decode';\nconst APIPaths = {\n accessTokenKey: 'lmsAuth',\n};\nexport class TokenHelper {\n public static getAccessToken(): string {\n return localStorage.getItem(APIPaths.accessTokenKey) || '';\n }\n\n public static setAccessToken(token: string): void {\n return localStorage.setItem(APIPaths.accessTokenKey, token);\n }\n\n public static setToken(token: any): void {\n this.setAccessToken(token.access_token);\n localStorage.setItem('image', token.img);\n }\n\n public static removeAccessToken(): void {\n return localStorage.removeItem(APIPaths.accessTokenKey);\n }\n\n public static getBearerToken() {\n const token = localStorage.getItem(APIPaths.accessTokenKey);\n return {\n Authorization: token ? 'Bearer ' + token : null,\n };\n }\n\n // public static isTokenCurrent(value: string | AuthenticatedUser) {\n\n // let user: AuthenticatedUser = null;\n\n // if (typeof value === 'string') {\n // user = TokenHelper.parseUserToken(value);\n // } else {\n // user = value;\n // }\n // if (!user)\n // return null;\n // else if (!user.authenticated)\n // return false;\n // else\n // return user.exp && user.exp > new Date();\n // }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, CanLoad, Route } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { TokenHelper } from '../_common';\n\n@Injectable()\nexport class AuthGuard implements CanActivate, CanLoad {\n constructor(private router: Router) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean {\n window.scrollTo(0, 0);\n let token = TokenHelper.getAccessToken();\n if (!token) {\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\n }\n // if (!token) {\n // return false;\n // }\n // else if (!token) {\n // this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\n // }\n return true;\n }\n\n canLoad(route: Route): boolean {\n window.scrollTo(0, 0);\n let token = TokenHelper.getAccessToken();\n if (token) {\n return true;\n } else if (!token) {\n this.router.navigate(['/login'], { queryParams: { returnUrl: route.path } });\n return true;\n } else {\n this.router.navigate([route.path ? route.path : '/main']);\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { APIPaths } from '../_common/constant';\nimport { Observable, Subject } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Alerts } from '../_common/alerts';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CannedService {\n constructor(public httpClient: HttpClient) {}\n\n getCanedResponse() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getCanedResponse).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getSingleCannde(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getCanedResponse + '/' + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n addCanedResponse(model: any) {\n let onSuccess = (data: any) => {\n if (data) {\n Alerts.showSuccessMessage('Message Added Successfully');\n return true;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n return false;\n }\n };\n if (model?.id) {\n return this.httpClient.put(APIPaths.getCanedResponse + '/' + model.id, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n } else {\n return this.httpClient.post(APIPaths.getCanedResponse, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n }\n\n getAgentCanedResponse() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAgentcanned).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAgetnList() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAgetnList).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAllAgetnList() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAllAgetnList).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n deleteAgentCanned(id: any) {\n let onSuccess = (data: any) => {\n return true;\n // if (data) {\n // return data;\n // } else {\n // Alerts.showErrorMessage(data.meta.message);\n // }\n };\n return this.httpClient.delete(APIPaths.getAgentcanned + '/' + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n deleteCanned(id: any) {\n let onSuccess = (data: any) => {\n return true;\n // if (data) {\n // return data;\n // } else {\n // Alerts.showErrorMessage(data.meta.message);\n // }\n };\n return this.httpClient.delete(APIPaths.getCanedResponse + '/' + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n deleteAutoMessage(id: any) {\n let onSuccess = (data: any) => {\n return true;\n // if (data) {\n // return data;\n // } else {\n // Alerts.showErrorMessage(data.meta.message);\n // }\n };\n return this.httpClient.delete(APIPaths.autoResponse + '/' + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n deleteAgreement(id: any) {\n let onSuccess = (data: any) => {\n return true;\n // if (data) {\n // return data;\n // } else {\n // Alerts.showErrorMessage(data.meta.message);\n // }\n };\n return this.httpClient.delete(APIPaths.agreements + '/' + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n transferChat(geentID: any, item: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.put(APIPaths.transferChat + `/${item.roomId}/${geentID}`, null).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getSingleAgentCannde(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAgentcanned + '/' + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n addAgentCanedResponse(model: any) {\n let onSuccess = (data: any) => {\n if (data) {\n Alerts.showSuccessMessage('Message Added Successfully');\n return true;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n return false;\n }\n };\n if (model?.id) {\n return this.httpClient.put(APIPaths.getAgentcanned + '/' + model.id, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n } else {\n return this.httpClient.post(APIPaths.getAgentcanned, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n }\n\n addSubCanedResponse(model: any) {\n let onSuccess = (data: any) => {\n if (data) {\n Alerts.showSuccessMessage('Message Added Successfully');\n\n return true;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n return false;\n }\n };\n\n return this.httpClient.post(APIPaths.subresponse + '/' + model.cannedId, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n getSubCanedResponse() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getsubCanedResponse).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n // Auto response message\n getAutoResponse() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.autoResponse).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n addAutoResponse(model: any) {\n let onSuccess = (data: any) => {\n if (data) {\n Alerts.showSuccessMessage('Add Successfully');\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n if (model.id) {\n return this.httpClient.put(APIPaths.autoResponse + `/${model.id}`, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n } else {\n return this.httpClient.post(APIPaths.autoResponse, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n }\n\n getSingleAutoResponse(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.autoResponse + `/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n // Services Agreement Apis\n getServicesAgreement() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.agreements).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n addServicesAgreement(model: any) {\n let onSuccess = (data: any) => {\n if (data) {\n Alerts.showSuccessMessage('Add Successfully');\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n if (model.id) {\n return this.httpClient.put(APIPaths.agreements + `/${model.id}`, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n } else {\n return this.httpClient.post(APIPaths.agreements, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n }\n\n getSingleServicesAgreement(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.agreements + `/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n closeChat(modal: any, item: any, closeType: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.post(APIPaths.closeChat + item.roomId + '/' + closeType, modal).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getReport(item: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient\n .get(APIPaths.getReports + `?startDate=${item?.startDate}&endDate=${item?.endDate}&agent=${item?.agent}`, { responseType: 'blob' })\n .pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n addStaticData(model: any) {\n let onSuccess = (data: any) => {\n if (data) {\n Alerts.showSuccessMessage('Add Successfully');\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n if (model.id) {\n return this.httpClient.put(APIPaths.staticData + `/${model.id}`, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n } else {\n return this.httpClient.post(APIPaths.staticData, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n }\n\n getStaticDataById(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.staticData + `/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getStaticDataByParentId(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.staticData + `/type/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getStaticData() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.staticData).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n deleteStaticData(id: any) {\n let onSuccess = (data: any) => {\n return true;\n };\n return this.httpClient.delete(APIPaths.staticData + `/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getSupervisorData() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.supervisor).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n terminateChat() {\n let onSuccess = (data: any) => {\n if (data.status === 200) {\n Alerts.showSuccessMessage(data.message);\n } else {\n Alerts.showErrorMessage(data.message);\n }\n };\n return this.httpClient.post(APIPaths.terminateChat, null).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { APIPaths } from '../_common/constant';\nimport { Observable, Subject } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Alerts } from '../_common/alerts';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChatService {\n constructor(public httpClient: HttpClient) {}\n\n getChatHistory() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.gethistory).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAllRoomForHistory() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAllRoomForHistory).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getCloseChatList(cso: any, agent: any, type: any, keyword: any, page: any) {\n let param = new HttpParams()\n .set('status', 'CLOSED')\n .set('cso', cso)\n .set('agent', agent)\n .set('type', type)\n .set('keyword', keyword)\n .set('page', page?.current - 1)\n .set('limit', page?.pageSize);\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getChatListForSupervisor, { params: param }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getCloseChatListForSupervisor(cso: any, agent: any, type: any, keyword: any, page: any) {\n let param = new HttpParams()\n .set('status', 'CLOSED')\n .set('cso', cso)\n .set('agent', agent)\n .set('type', type)\n .set('keyword', keyword)\n .set('page', page?.current - 1)\n .set('limit', page?.pageSize);\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getChatListForSupervisor, { params: param }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n downloadChatHistor(roomId: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.downloadChatHistor + `?roomId=${roomId}`, { responseType: 'blob' }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class DataService {\n private dataSource = new BehaviorSubject(null);\n currentData = this.dataSource.asObservable();\n\n constructor() {}\n passData(data: any) {\n this.dataSource.next(data);\n }\n\n //for form state\n private formValueSubject: BehaviorSubject = new BehaviorSubject(null);\n\n setFormValue(value: any) {\n this.formValueSubject.next(value);\n }\n\n getFormValue() {\n return this.formValueSubject.getValue();\n }\n\n public model: any;\n\n public getModel() {\n return this.model;\n }\n public setModel(model: any): void {\n this.model = model;\n }\n public resetModel() {\n this.model = null;\n return this.model;\n }\n}\n","// idle.service.ts\nimport { Injectable, NgZone } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdleService {\n private timeoutInMs: any; // 3 minutes\n private userTimeoutInMs: any; // 3 minutes\n private idleCSOTimer: any;\n public onCSOIdle = new Subject();\n private idleUserTimer: any;\n public onUserIdle = new Subject();\n\n constructor(private ngZone: NgZone) {}\n\n public startSCOListening(timeoutInMs: any) {\n this.timeoutInMs = timeoutInMs;\n ['click', 'mousemove', 'keypress'].forEach(event => {\n window.addEventListener(event, () => this.resetSCOTimer(), true);\n });\n this.resetSCOTimer();\n }\n\n private resetSCOTimer() {\n if (this.idleCSOTimer) {\n clearTimeout(this.idleCSOTimer);\n }\n this.ngZone.runOutsideAngular(() => {\n this.idleCSOTimer = setTimeout(() => {\n this.ngZone.run(() => this.onCSOIdle.next());\n }, this.timeoutInMs);\n });\n }\n\n public startUserListening(userTimeoutInMs: number) {\n this.userTimeoutInMs = userTimeoutInMs;\n this.resetTimer();\n }\n\n private resetTimer() {\n if (this.idleUserTimer) {\n clearTimeout(this.idleUserTimer);\n }\n this.ngZone.runOutsideAngular(() => {\n this.idleUserTimer = setTimeout(() => {\n this.ngZone.run(() => this.onUserIdle.next());\n }, this.userTimeoutInMs);\n });\n }\n\n public clearTimer() {\n if (this.idleUserTimer) {\n clearTimeout(this.idleUserTimer);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { BaseLayoutComponent } from './Layout/base-layout/base-layout.component';\nimport { PagesLayoutComponent } from './Layout/pages-layout/pages-layout.component';\nimport { AuthGuard } from './_guard/authGuard';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\n// // Pages\n\nconst routes: Routes = [\n {\n path: 'chatbot-admin',\n component: BaseLayoutComponent,\n // runGuardsAndResolvers: 'always',\n children: [\n {\n path: '',\n loadChildren: () => import('./main/main.module').then(m => m.MainModule),\n // canActivate: [AuthGuard]\n data: {\n roles: {\n [PermissionItem.CHATBOT_ADMIN]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n {\n path: 'chatbot-supervisor',\n children: [\n {\n path: '',\n loadChildren: () => import('./chatbot-supervisor/supervisor.module').then(m => m.SupervisorModule),\n // canActivate: [AuthGuard]\n data: {\n roles: {\n [PermissionItem.CHATBOT_SUPERVISOR]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, {\n scrollPositionRestoration: 'enabled',\n anchorScrolling: 'enabled',\n relativeLinkResolution: 'legacy',\n }),\n ],\n exports: [RouterModule],\n})\nexport class ChatbotAdminRoutingModule {}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ConfigActions } from './ThemeOptions/store/config.actions';\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\n\nimport { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\n\n// BOOTSTRAP COMPONENTS\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\nimport { PERFECT_SCROLLBAR_CONFIG } from 'ngx-perfect-scrollbar';\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';\nimport { LaddaModule } from 'angular2-ladda';\nimport { NgxLoadingModule } from 'ngx-loading';\nimport { RoundProgressModule } from 'angular-svg-round-progressbar';\n// import {SweetAlert2Module} from '@toverux/ngx-sweetalert2';\nimport { ToastrModule } from 'ngx-toastr';\nimport { CalendarModule } from 'angular-calendar';\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\n// import { CountUpModule } from 'countup.js-angular2';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { NouisliderModule } from 'ng2-nouislider';\nimport { NgSelectModule } from '@ng-select/ng-select';\n// import { SelectDropDownModule } from 'ngx-select-dropdown';\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\nimport { JwBootstrapSwitchNg2Module } from 'jw-bootstrap-switch-ng2';\nimport { AngularEditorModule } from '@kolkov/angular-editor';\n// import { TextMaskModule } from 'angular2-text-mask';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { TextareaAutosizeModule } from 'ngx-textarea-autosize';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\nimport { DROPZONE_CONFIG } from 'ngx-dropzone-wrapper';\nimport { DropzoneConfigInterface } from 'ngx-dropzone-wrapper';\n\n// ANGULAR MATERIAL COMPONENTS\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n// LAYOUT\n\nimport { BaseLayoutComponent } from './Layout/base-layout/base-layout.component';\nimport { AppsLayoutComponent } from './Layout/apps-layout/apps-layout.component';\nimport { PagesLayoutComponent } from './Layout/pages-layout/pages-layout.component';\nimport { ThemeOptions } from './theme-options';\nimport { OptionsDrawerComponent } from './ThemeOptions/options-drawer/options-drawer.component';\n// import {PageTitleComponent} from './Layout/Components/page-title/page-title.component';\n\n// HEADER\n\nimport { HeaderComponent } from './Layout/Components/header/header.component';\nimport { SearchBoxComponent } from './Layout/Components/header/elements/search-box/search-box.component';\nimport { MegamenuComponent } from './Layout/Components/header/elements/mega-menu/mega-menu.component';\nimport { MegapopoverComponent } from './Layout/Components/header/elements/mega-menu/elements/megapopover/megapopover.component';\nimport { UserBoxComponent } from './Layout/Components/header/elements/user-box/user-box.component';\n\n// SIDEBAR\n\nimport { SidebarComponent } from './Layout/Components/sidebar/sidebar.component';\nimport { LogoComponent } from './Layout/Components/sidebar/elements/logo/logo.component';\n\n// FOOTER\n\nimport { FooterComponent } from './Layout/Components/footer/footer.component';\nimport { FooterDotsComponent } from './Layout/Components/footer/elements/footer-dots/footer-dots.component';\nimport { FooterMenuComponent } from './Layout/Components/footer/elements/footer-menu/footer-menu.component';\n\n// Pages\n\n// Components\n\n// Apex Charts\n// Gauges Charts\n\nimport { GaugeModule } from 'angular-gauge';\nimport { TrendModule } from 'ngx-trend';\n// import { AuthModule } from './auth/auth.module';\nimport { AuthGuard } from './_guard/authGuard';\nimport { DataService } from './_services/data.service';\nimport { DotsComponent } from './Layout/Components/header/elements/dots/dots.component';\nimport { DrawerComponent } from './Layout/Components/header/elements/drawer/drawer.component';\nimport { ChatbotAdminRoutingModule } from './chatbot-admin-routing.module';\nimport { CdsLangService, CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDatepickerModule, CDS_DATE_FORMATS, DateAdapter } from '@cds/ng-web-components/datepicker';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsNavigationModule } from '@cds/ng-web-components/navigation';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsStepperModule } from '@cds/ng-web-components/stepper';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { AuthHttpInterceptor } from 'src/app/core/interceptors/auth.http-interceptor';\n\n// Angular Material\n\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\n suppressScrollX: true,\n};\n\nconst DEFAULT_DROPZONE_CONFIG: DropzoneConfigInterface = {\n // Change this to your upload POST address:\n url: 'https://httpbin.org/post',\n maxFilesize: 50,\n acceptedFiles: 'image/*',\n};\n\n@NgModule({\n declarations: [\n // LAYOUT\n BaseLayoutComponent,\n AppsLayoutComponent,\n PagesLayoutComponent,\n OptionsDrawerComponent,\n\n // HEADER\n\n HeaderComponent,\n SearchBoxComponent,\n MegamenuComponent,\n MegapopoverComponent,\n UserBoxComponent,\n DotsComponent,\n DrawerComponent,\n\n // SIDEBAR\n\n SidebarComponent,\n LogoComponent,\n\n // FOOTER\n\n FooterComponent,\n FooterDotsComponent,\n FooterMenuComponent,\n // // User Pages\n ],\n imports: [\n BrowserModule.withServerTransition({ appId: 'serverApp' }),\n ChatbotAdminRoutingModule,\n BrowserAnimationsModule,\n CommonModule,\n LoadingBarRouterModule,\n // Angular Bootstrap Components\n CdsLinkModule,\n CdsNavigationModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsButtonModule,\n CdsTextfieldModule,\n CdsPaginationModule,\n CdsTableModule,\n CdsStepperModule,\n CdsCheckboxModule,\n CdsSearchModule,\n CdsPopupModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsDropdownModule,\n CdsProgressModule,\n CdsTabsModule,\n CdsRadioModule,\n CdsDatepickerModule,\n CdsSortModule,\n PerfectScrollbarModule,\n NgbModule,\n FontAwesomeModule,\n LaddaModule,\n FormsModule,\n ReactiveFormsModule,\n NgxLoadingModule.forRoot({}),\n RoundProgressModule,\n ToastrModule.forRoot(),\n CalendarModule.forRoot({\n provide: DateAdapter,\n useFactory: adapterFactory,\n }),\n // CountUpModule,\n SharedModule,\n ImageCropperModule,\n NouisliderModule,\n NgSelectModule,\n // SelectDropDownModule,\n NgMultiSelectDropDownModule.forRoot(),\n JwBootstrapSwitchNg2Module,\n AngularEditorModule,\n HttpClientModule,\n // TextMaskModule,\n ClipboardModule,\n TextareaAutosizeModule,\n ColorPickerModule,\n DropzoneModule,\n\n // Charts\n\n // Angular Material Components\n\n MatCheckboxModule,\n ],\n providers: [\n {\n provide: PERFECT_SCROLLBAR_CONFIG,\n // DROPZONE_CONFIG,\n useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG,\n // DEFAULT_DROPZONE_CONFIG,\n },\n ConfigActions,\n AuthGuard,\n ThemeOptions,\n DataService,\n ],\n})\nexport class ChatbotAdminModule {\n // constructor(private ngRedux: NgRedux,\n // private devTool: DevToolsExtension) {\n // this.ngRedux.configureStore(\n // rootReducer,\n // {} as ArchitectUIState,\n // [],\n // [this.devTool.isEnabled() ? this.devTool.enhancer() : f => f]\n // );\n // }\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { PageConfig } from 'src/app/shared/data-table';\nimport { ChatService } from 'src/app/views/chatbot/_service/chat.service';\n\n@Component({\n selector: 'app-chat-list',\n templateUrl: './chat-list.component.html',\n styleUrls: ['./chat-list.component.scss'],\n})\nexport class ChatListComponent implements OnInit {\n tab = 0;\n activeChat: any = [];\n pendingChat: any = [];\n closeChat: any = [];\n closeChatFilter: any = [];\n botChat: any = [];\n loading: boolean = false;\n count = 0;\n rows = [];\n activheaders = [\n { key: 'agent', title: 'CSO' },\n { key: 'userc', title: 'AGENT' },\n { key: 'liveChatDuration', title: 'Live chat duration(Minutes)' },\n { key: 'status', title: 'Status' },\n ];\n\n pendingheaders = [\n { key: 'userc', title: 'AGENT' },\n { key: 'waitingDuration', title: 'Waiting Duration(Minutes)' },\n { key: 'status', title: 'Status' },\n ];\n closeheaders = [\n { key: 'agent', title: 'CSO' },\n { key: 'userc', title: 'AGENT' },\n { key: 'liveChatDuration', title: 'Live chat duration(Minutes)' },\n { key: 'status', title: 'Status' },\n ];\n botheaders = [\n { key: 'userc', title: 'AGENT' },\n { key: 'lastTopic', title: 'Last topic enquired' },\n { key: 'waitingDuration', title: 'Duration (Minutes)' },\n { key: 'msgDate', title: 'Chatbot Start Datetime' },\n ];\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n constructor(public chatService: ChatService, public cdk: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.getActiveChatList();\n }\n tabChange(item: any) {\n debugger;\n this.pageConfig.current = 1;\n if (item.index == 0) {\n this.tab = 0;\n this.getActiveChatList();\n }\n if (item.index == 1) {\n this.tab = 1;\n this.getPendingChatList();\n }\n if (item.index == 2) {\n this.tab = 2;\n this.getCloseChatList();\n }\n if (item.index == 3) {\n this.tab = 3;\n this.getBotChatList();\n }\n }\n\n handlePageChange(event: { current: number; pageSize: number }) {\n debugger;\n if (this.pageConfig.current !== event.current) {\n this.pageConfig.current = event.current;\n this.pageConfig.pageSize = event.pageSize;\n debugger;\n if (this.tab == 0) {\n this.getActiveChatList();\n }\n if (this.tab == 1) {\n this.getPendingChatList();\n }\n if (this.tab == 2) {\n this.getCloseChatList();\n }\n if (this.tab == 3) {\n this.getBotChatList();\n }\n }\n }\n\n getActiveChatList() {\n this.count = 0;\n this.loading = true;\n this.rows = [];\n this.chatService.getActiveChatListForSupervisor(this.pageConfig).subscribe(resp => {\n this.loading = false;\n if (resp.data) {\n this.rows = resp.data;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: resp?.total_count,\n };\n }\n });\n }\n pendingrows = [];\n getPendingChatList() {\n this.count = 0;\n this.loading = true;\n this.pendingrows = [];\n this.chatService.getPendingChatList(this.pageConfig).subscribe(resp => {\n this.loading = false;\n if (resp.data) {\n this.pendingrows = resp.data;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: resp?.total_count,\n };\n }\n this.cdk.detectChanges();\n });\n }\n closerows = [];\n getCloseChatList() {\n this.count = 0;\n\n this.loading = true;\n this.closerows = [];\n this.chatService.getCloseChatListForSupervisor('', this.pageConfig).subscribe(resp => {\n this.loading = false;\n if (resp.data) {\n this.closerows = resp.data;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: resp?.total_count,\n };\n }\n this.cdk.detectChanges();\n });\n }\n botrows = [];\n getBotChatList() {\n this.count = 0;\n this.loading = true;\n this.botrows = [];\n this.chatService.getBotChatList(this.pageConfig).subscribe(resp => {\n this.loading = false;\n if (resp.data) {\n this.botrows = resp.data;\n this.count = resp?.total_count;\n }\n });\n }\n\n findUser(user: any, type: any) {\n if (type == 1) {\n let username = user.find((item: any) => item.type == 'CUSTOMER_SERVICING_AGENT')?.name;\n return username ? username : '-';\n } else if (type == 0) {\n let username = user.find((item: any) => item.type != 'CUSTOMER_SERVICING_AGENT')?.name;\n return username ? username : '-';\n }\n }\n}\n","
\n
\n
\n Chatbot / Live Chat\n \n
\n
\n \n \n \n \n \n {{ element.userc }}\n \n \n \n \n {{ element.agent }}\n \n \n \n \n \n \n \n \n {{ element.userc }}\n \n \n \n \n {{ element.agent }}\n \n \n \n \n \n \n \n \n {{ element.userc }}\n \n \n \n \n {{ element.agent }}\n \n \n \n \n \n \n \n \n {{ element.userc }}\n \n \n \n \n {{ element.agent }}\n \n \n \n {{ element.users[0].lastMessage }}\n \n \n {{ element.users[0].msgDate | date : 'yyyy/MM/dd HH:mm' }}\n \n \n \n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DataService } from '../../_services/data.service';\nimport { CannedService } from '../../_services/canned.service';\nimport { ActionState } from '../../_common/_interface';\n\n@Component({\n selector: 'app-supervisor-dashboard',\n templateUrl: './supervisor-dashboard.component.html',\n styleUrls: ['./supervisor-dashboard.component.scss'],\n})\nexport class SupervisorDashboardComponent implements OnInit {\n loading: boolean = false;\n count = 0;\n rows = [];\n modalOptions: NgbModalOptions = {};\n modalRef: any;\n stateModel: ActionState = { data: null, isNew: false, isReadonly: false, isEdit: false };\n headers = [\n { key: 'agentName', title: 'CSO' },\n { key: 'status', title: 'Status' },\n { key: 'completedChats', title: 'Complete Chats' },\n { key: 'activeChats', title: 'Active Chats' },\n { key: 'averageTimePerChat', title: 'Average Time Per Chats(Minutes)' },\n { key: 'timeEngaged', title: 'Time Engaged(Minutes)' },\n { key: 'lastMessageTime', title: 'Last Message Time' },\n ];\n\n constructor(public modalService: NgbModal, public dataService: DataService, public cannedService: CannedService, private cdsPopup: CdsPopupService) {}\n\n ngOnInit(): void {\n this.getSupervisorData();\n }\n\n getSupervisorData() {\n this.loading = true;\n this.cannedService.getSupervisorData().subscribe(resp => {\n this.loading = false;\n if (resp) {\n this.rows = resp;\n }\n });\n }\n}\n","
\n
\n
\n Supervisor Dashboard\n \n
\n \n \n {{ element.activeChats == 0 && element.completedChats == 0 ? 0 : element.timeEngaged }}\n \n \n \n \n \n {{ element.lastMessageTime ? (element.lastMessageTime | date : 'yyyy/MM/dd HH:mm') : '-' }}\n \n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ChatService } from '../../_services/chat.service';\nimport { ViewChatComponent } from '../../main/chat-history/view-chat/view-chat.component';\nimport { CannedService } from '../../_services/canned.service';\nimport { Alerts } from '../../_common/alerts';\nimport { PageConfig } from 'src/app/shared/data-table';\n\n@Component({\n selector: 'app-supervisor-history',\n templateUrl: './supervisor-history.component.html',\n styleUrls: ['./supervisor-history.component.scss'],\n})\nexport class SupervisorHistoryComponent implements OnInit {\n public pageCount: IPaginationCount = { current: 1, count: 1 };\n @Input() frontPagination = true;\n\n loading: boolean = false;\n count = 0;\n rows = [];\n cso: any = '';\n agent: any = '';\n roomId: any = '';\n type: any = '';\n keyword: any = '';\n filterRows = [];\n headers = [\n { key: 'cso', title: 'CSO' },\n { key: 'agent', title: 'Agent' },\n { key: 'enquiryType', title: 'Type' },\n { key: 'roomId', title: 'Session Id' },\n { key: 'date', title: 'Date' },\n { key: 'liveChatDuration', title: 'Chat Duration(Minutes)' },\n { key: 'schemeCd', title: 'Action' },\n ];\n modalOptions: NgbModalOptions = {};\n modalRef: any;\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n constructor(public modalService: NgbModal, public chatServices: ChatService) {}\n\n ngOnInit(): void {\n this.getChatHistory();\n }\n\n view(item: any) {\n this.openFormModal(item);\n }\n\n download(item: any) {\n debugger;\n this.chatServices.downloadChatHistor(item.roomId).subscribe(resp => {\n this.loading = false;\n if (resp) {\n if (resp.size > 0) {\n const blob = new Blob([resp], { type: resp.type });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const contentDisposition = resp.headers?.get('content-disposition');\n let fileName = 'report';\n if (contentDisposition) {\n const match = contentDisposition.match(/filename=\"(.+)\"/);\n if (match) {\n fileName = match[1];\n }\n }\n link.download = fileName;\n link.click();\n window.URL.revokeObjectURL(url);\n } else {\n Alerts.showInfoMessage('Report is not available');\n }\n } else {\n Alerts.showErrorMessage('No File Found');\n }\n });\n }\n\n handlePageChange(event: { current: number; pageSize: number }) {\n debugger;\n if (this.pageConfig.current !== event.current) {\n this.pageConfig.current = event.current;\n this.pageConfig.pageSize = event.pageSize;\n this.getChatHistory();\n }\n }\n\n getChatHistory() {\n debugger;\n this.loading = true;\n this.chatServices.getCloseChatListForSupervisor(this.cso, this.agent, this.type, this.keyword, this.pageConfig).subscribe(resp => {\n this.loading = false;\n if (resp) {\n this.rows = resp?.data\n ?.sort((a: any, b: any) => new Date(b.date).getTime() - new Date(a.date).getTime())\n .map((item: any) => {\n let agent = item.users.find((x: any) => x.type != 'CHATBOT_CSO')?.name;\n let obj = {\n id: item.roomId,\n roomId: item.roomId,\n liveChatDuration: item.liveChatDuration,\n enquiryType: item.enquiryType,\n cso: item.agent ? item.agent : '-',\n agent: item.userc ? item.userc : '-',\n date: item.users[0].msgDate,\n };\n return obj;\n })\n .filter((item: any) => item !== null)\n .sort((a: any, b: any) => new Date(b.date).getTime() - new Date(a.date).getTime());\n }\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: resp?.total_count,\n };\n this.filterRows = this.rows;\n console.log(this.rows);\n });\n }\n\n openFormModal(item: any) {\n this.modalOptions.backdrop = 'static';\n this.modalOptions.keyboard = false;\n this.modalOptions.size = 'lg';\n this.modalOptions.centered = true;\n this.modalRef = this.modalService.open(ViewChatComponent, this.modalOptions);\n this.modalRef.componentInstance.data = item;\n this.modalRef.result.then((result: any) => {}).catch((error: any) => {});\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n // if (this.frontPagination) {\n // this.setTable();\n // // return;\n // }\n // this.reloadTable.emit({\n // pageSize: this.pageSize,\n // ...this.pageCount,\n // column: this.activeClounm,\n // });\n }\n\n Delete(val: any) {}\n Edit(val: any) {}\n}\n","
\n
\n Chat History\n \n\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n Search\n
\n
\n \n \n \n {{ element.date | date : 'yyyy/MM/dd HH:mm' }}\n \n \n
\n \n \n
\n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ChatHistoryComponent } from '../main/chat-history/chat-history.component';\nimport { ReportsComponent } from '../main/reports/reports.component';\nimport { ChatListComponent } from './chat-list/chat-list.component';\nimport { SupervisorDashboardComponent } from './supervisor-dashboard/supervisor-dashboard.component';\nimport { SupervisorComponent } from './supervisor.component';\nimport { SupervisorHistoryComponent } from './supervisor-history/supervisor-history.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: SupervisorComponent,\n children: [\n {\n path: '',\n redirectTo: 'dashboard',\n pathMatch: 'full',\n },\n {\n path: 'dashboard',\n component: SupervisorDashboardComponent,\n },\n {\n path: 'history',\n component: SupervisorHistoryComponent,\n },\n {\n path: 'reports',\n component: ReportsComponent,\n },\n {\n path: 'chats',\n component: ChatListComponent,\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SupervisorRoutingModule {}\n","import { AfterViewInit, Component, ViewEncapsulation } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { animate, query, style, transition, trigger } from '@angular/animations';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { environment } from 'src/environments/environment';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { Router } from '@angular/router';\nimport { ThemeOptions } from '../theme-options';\nimport { ConfigActions } from '../ThemeOptions/store/config.actions';\nimport { LoginType } from '../../user/login/login.component';\nimport { loadGoHomeFunc } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-supervisor',\n templateUrl: './supervisor.component.html',\n styleUrls: ['./../styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SupervisorComponent implements AfterViewInit {\n langList: CdsOption[] = environment.languageList;\n selectedLang = 'en';\n isHideNavigationLang = false;\n private sharData: Subject = new Subject();\n constructor(\n public globals: ThemeOptions,\n public configActions: ConfigActions,\n private languageChangeService: LanguageChangeService,\n private authenticationService: AuthenticationService,\n public router: Router,\n private notifyService: NotifyService\n ) {}\n\n toggleSidebarMobile() {\n this.globals.toggleSidebarMobile = !this.globals.toggleSidebarMobile;\n }\n\n logout() {\n let loginType = localStorage.getItem('loginType') as LoginType;\n if (!loginType) {\n loginType = 'sso';\n }\n this.authenticationService.logout(loginType, this.router);\n }\n\n ngAfterViewInit(): void {\n loadGoHomeFunc(() => {\n this.router.navigate(['/home']);\n });\n }\n\n ngOnInit(): void {\n const styleTags = document.getElementsByTagName('style');\n for (let i = 0; i < styleTags.length; i++) {\n const styleTag = styleTags[i] as any;\n if (styleTag.textContent.includes('chatbot-admin-style-marker-deletion-prohibited')) {\n if (styleTag.hasAttribute('media')) {\n styleTag.removeAttribute('media');\n }\n }\n }\n }\n\n changeLang(lang: string) {\n this.selectedLang = lang;\n this.languageChangeService.setLang(lang);\n this.sendData(lang);\n }\n\n sendData(value: string) {\n this.sharData.next(value);\n }\n\n ngOnDestroy(): void {\n const styleTags = document.getElementsByTagName('style');\n for (let i = 0; i < styleTags.length; i++) {\n const styleTag = styleTags[i] as any;\n if (styleTag.textContent.includes('chatbot-admin-style-marker-deletion-prohibited')) {\n styleTag.setAttribute('media', 'max-width: 1px');\n }\n }\n }\n}\n","\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n {{ 'common.footerText' | lang }}\n
\n
\n
\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SupervisorRoutingModule } from './supervisor-routing.module';\nimport { SupervisorComponent } from './supervisor.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ChatHistoryComponent } from '../main/chat-history/chat-history.component';\nimport { ReportsComponent } from '../main/reports/reports.component';\nimport { SupervisorDashboardComponent } from './supervisor-dashboard/supervisor-dashboard.component';\nimport { CdsNavigationModule } from '@cds/ng-web-components/navigation';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { ChatListComponent } from './chat-list/chat-list.component';\nimport { SupervisorHistoryComponent } from './supervisor-history/supervisor-history.component';\n\n@NgModule({\n declarations: [SupervisorComponent, ReportsComponent, SupervisorDashboardComponent, ChatListComponent, SupervisorHistoryComponent],\n imports: [CommonModule, SharedModule, SupervisorRoutingModule, CdsNavigationModule, CdsLanguageModule],\n})\nexport class SupervisorModule {}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ChatUser } from '../json/canned';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { ViewChatComponent } from './view-chat/view-chat.component';\nimport { ChatService } from 'src/app/views/chatbot-admin/_services/chat.service';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { Alerts } from '../../_common/alerts';\nimport { PageConfig } from 'src/app/shared/data-table';\n\n@Component({\n selector: 'app-chat-history',\n templateUrl: './chat-history.component.html',\n styleUrls: ['./chat-history.component.scss'],\n})\nexport class ChatHistoryComponent implements OnInit {\n public pageCount: IPaginationCount = { current: 1, count: 1 };\n @Input() frontPagination = true;\n\n loading: boolean = false;\n count = 0;\n rows: any = [];\n cso: any = '';\n agent: any = '';\n roomId: any = '';\n type: any = '';\n keyword: any = '';\n filterRows = [];\n headers = [\n { key: 'cso', title: 'CSO' },\n { key: 'agent', title: 'Agent' },\n { key: 'enquiryType', title: 'Type' },\n { key: 'roomId', title: 'Session Id' },\n { key: 'date', title: 'Date' },\n { key: 'liveChatDuration', title: 'Chat Duration(Minutes)' },\n { key: 'schemeCd', title: 'Action' },\n ];\n modalOptions: NgbModalOptions = {};\n modalRef: any;\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n constructor(public modalService: NgbModal, public chatServices: ChatService, public cd: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.getChatHistory();\n }\n\n view(item: any) {\n this.openFormModal(item);\n }\n\n download(item: any) {\n this.chatServices.downloadChatHistor(item.roomId).subscribe(resp => {\n this.loading = false;\n if (resp) {\n if (resp.size > 0) {\n const blob = new Blob([resp], { type: resp.type });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const contentDisposition = resp.headers?.get('content-disposition');\n let fileName = 'report';\n if (contentDisposition) {\n const match = contentDisposition.match(/filename=\"(.+)\"/);\n if (match) {\n fileName = match[1];\n }\n }\n link.download = fileName;\n link.click();\n window.URL.revokeObjectURL(url);\n } else {\n Alerts.showInfoMessage('Report is not available');\n }\n } else {\n Alerts.showErrorMessage('No File Found');\n }\n });\n }\n\n updateFilteredRows() {\n const currentPage = this.pageConfig.current ?? 1; // Default to page 1 if undefined\n const pageSize = this.pageConfig.pageSize ?? 5; // Default to 5 rows if undefined\n const startIndex = (currentPage - 1) * pageSize;\n const endIndex = startIndex + pageSize;\n this.filterRows = this.rows.slice(startIndex, endIndex);\n this.pageConfig.totalCount = this.rows.length;\n }\n\n handlePageChange(event: { current: number; pageSize: number }) {\n debugger;\n if (this.pageConfig.current !== event.current) {\n this.pageConfig.current = event.current;\n this.pageConfig.pageSize = event.pageSize;\n this.getChatHistory();\n }\n }\n getChatHistory() {\n this.loading = true;\n this.filterRows = [];\n debugger;\n this.chatServices.getCloseChatList(this.cso, this.agent, this.type, this.keyword, this.pageConfig).subscribe(resp => {\n this.loading = false;\n if (resp) {\n this.rows = resp?.data\n ?.sort((a: any, b: any) => new Date(b.date).getTime() - new Date(a.date).getTime())\n .map((item: any) => {\n let obj = {\n id: item.roomId,\n roomId: item.roomId,\n liveChatDuration: item.liveChatDuration,\n enquiryType: item.enquiryType,\n cso: item.agent ? item.agent : '-',\n agent: item.userc ? item.userc : '-',\n date: item.users[0].msgDate,\n };\n return obj;\n })\n .filter((item: any) => item !== null)\n .sort((a: any, b: any) => new Date(b.date).getTime() - new Date(a.date).getTime());\n }\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: resp?.total_count,\n };\n this.filterRows = this.rows;\n });\n }\n\n openFormModal(item: any) {\n this.modalOptions.backdrop = 'static';\n this.modalOptions.keyboard = false;\n this.modalOptions.size = 'lg';\n this.modalOptions.centered = true;\n this.modalRef = this.modalService.open(ViewChatComponent, this.modalOptions);\n this.modalRef.componentInstance.data = item;\n this.modalRef.result.then((result: any) => {}).catch((error: any) => {});\n }\n\n Delete(val: any) {}\n Edit(val: any) {}\n}\n","
\n
\n Chat History\n \n\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n Search\n
\n
\n \n \n \n {{ element.date | date : 'yyyy/MM/dd HH:mm' }}\n \n \n
\n \n \n
\n
\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ChatService } from 'src/app/views/chatbot/_service/chat.service';\n\n@Component({\n selector: 'app-view-chat',\n templateUrl: './view-chat.component.html',\n styleUrls: ['./view-chat.component.scss'],\n})\nexport class ViewChatComponent implements OnInit {\n @Input() data: any;\n constructor(public activeModal: NgbActiveModal, public chatService: ChatService) {}\n\n ngOnInit(): void {\n console.log(this.data);\n this.onClickChat(this.data);\n }\n\n chatJson: any = [];\n onClickChat(item: any) {\n this.chatService.getUserChatHistory(this.data.id).subscribe(resp => {\n if (resp) {\n this.chatJson = resp || [];\n }\n });\n }\n}\n","
\n
\n
\n
\n Chat history of {{ data.cso }} and\n {{ data.agent }}\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n {{ obj.sender }}\n
\n
\n \n {{ obj.msgDate | date : 'yyyy/MM/dd HH:mm' }}\n \n
\n
\n\n
\n
\n
\n {{ obj.sender }}\n
\n
\n \n {{ obj.msgDate | date : 'yyyy/MM/dd HH:mm' }}\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CannedService } from '../../_services/canned.service';\nimport { Alerts } from '../../_common/alerts';\n\n@Component({\n selector: 'app-reports',\n templateUrl: './reports.component.html',\n styleUrls: ['./reports.component.scss'],\n})\nexport class ReportsComponent implements OnInit {\n form: FormGroup;\n loading: boolean = true;\n agentDDL: any;\n monthDDL = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n constructor(private formBuilder: FormBuilder, public router: Router, public cannedServices: CannedService) {\n this.form = this.formBuilder.group({\n startDate: new FormControl('', Validators.required),\n endDate: new FormControl('', Validators.required),\n agent: new FormControl(null),\n });\n }\n\n ngOnInit(): void {\n this.getAgetnList();\n }\n\n onSubmit() {\n let model = this.form.value;\n this.loading = true;\n this.cannedServices.getReport(model).subscribe(resp => {\n this.loading = false;\n if (resp) {\n if (resp.size > 0) {\n const blob = new Blob([resp], { type: resp.type });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const contentDisposition = resp.headers?.get('content-disposition');\n let fileName = 'report';\n if (contentDisposition) {\n const match = contentDisposition.match(/filename=\"(.+)\"/);\n if (match) {\n fileName = match[1];\n }\n }\n link.download = fileName;\n link.click();\n window.URL.revokeObjectURL(url);\n } else {\n Alerts.showInfoMessage('Report is not available');\n }\n } else {\n Alerts.showErrorMessage('No File Found');\n }\n });\n }\n\n getAgetnList() {\n this.loading = true;\n this.cannedServices.getAllAgetnList().subscribe((resp: any) => {\n this.loading = false;\n if (resp) {\n this.agentDDL = resp;\n }\n });\n }\n}\n","
\n
\n Chatbot - Reports\n
\n
\n\n
\n
\n Filter\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n
\n Reset\n
\n
\n Download\n
\n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ThemeOptions {\n sidebarHover = false;\n toggleSidebar = false;\n toggleSidebarMobile = false;\n toggleHeaderMobile = false;\n toggleThemeOptions = false;\n toggleDrawer = false;\n toggleFixedFooter = false;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Swal from 'sweetalert2';\nexport const MessageTypes = {\n error: 'Error',\n info: 'Info',\n failure: 'Failure',\n success: 'Success',\n warning: 'Warning',\n question: 'Question',\n};\n\nexport class Alerts {\n public static showErrorMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.error,\n text: message,\n type: 'error',\n });\n }\n\n public static showSuccessMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.success,\n text: message,\n type: 'success',\n });\n }\n\n public static showMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : '',\n text: message,\n });\n }\n\n public static showInfoMessage(message: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.info,\n text: message,\n html: message,\n type: 'info',\n });\n }\n\n public static showWarningMessage(message: string, showCancelButton: boolean, confirmButtonText: string, cancelButtonText: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.warning,\n text: message,\n type: 'warning',\n showCancelButton: showCancelButton,\n confirmButtonText: confirmButtonText,\n cancelButtonText: cancelButtonText,\n });\n }\n\n public static showConfirmationMessage(confirmMessage?: string, confirmButtonText?: string, title?: string) {\n return Swal({\n title: confirmMessage != null ? confirmMessage : 'Are you sure to delete the record?',\n text: title,\n type: 'warning',\n showCancelButton: true,\n confirmButtonColor: '#3085d6',\n cancelButtonColor: '#d33',\n confirmButtonText: confirmButtonText != null ? confirmButtonText : 'Delete',\n allowOutsideClick: false,\n });\n }\n\n public static showInfoMessageWithConfirmation(title?: string, html?: any, cancelButton?: boolean, confirmButtonText?: string) {\n return Swal({\n title: title != null ? title : '',\n html: html,\n type: 'info',\n showCancelButton: cancelButton,\n confirmButtonText: confirmButtonText ? confirmButtonText : 'OK',\n allowOutsideClick: false,\n });\n }\n\n public static showDeletedSuccessfully(message?: string, title?: string) {\n return Swal({\n title: title != null ? title : 'Deleted!',\n text: message != null ? message : 'Your record has been deleted.',\n type: 'success',\n });\n }\n public static showQustionMessage(message: string, showCancelButton: boolean, confirmButtonText: string, cancelButtonText: string, title?: string) {\n return Swal({\n title: title != null ? title : MessageTypes.question,\n text: message,\n type: 'question',\n showCancelButton: showCancelButton,\n confirmButtonText: confirmButtonText,\n cancelButtonText: cancelButtonText,\n });\n }\n}\n","import { environment } from 'src/environments/environment';\n\nconst baseUrl = environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v1/';\nconst baseUrl2 = environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v2/';\n//const baseUrl = 'http://localhost:8080/api/v1/';\n\nexport const APIPaths = {\n getCanedResponse: baseUrl + 'canned',\n getParent: baseUrl + 'canned/parent',\n getsubCanedResponse: baseUrl + 'canned',\n getAutoResponse: baseUrl + 'auto',\n feedBack: baseUrl + 'feedback',\n getNewChatRoom: baseUrl + 'room',\n getUsreList: baseUrl + 'rooms',\n getPendingChatList: baseUrl + 'pending-rooms',\n getActiveCloseChatList: baseUrl2 + 'rooms-with-status',\n getChatListForSupervisor: baseUrl + 'supervisor/rooms-with-status',\n getAgentcanned: baseUrl + 'agentcanned',\n bot_room: baseUrl + 'bot-rooms',\n getRoomInfo: baseUrl + 'room',\n upload: environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v1/files/uploadFile',\n download: environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/files/download/',\n websocket: environment.chatbotWebsocket + '/ext/eb-ssms/chatbot-service/ws',\n //websocket: 'ws://localhost:8080/ws',\n //websocket: environment.apiPrefix + '/ws',\n changeRoomStatus: baseUrl + 'room/',\n changeUsertatus: baseUrl + 'user/status/',\n gethistory: baseUrl + 'history/',\n getServicesAgree: baseUrl + 'agreements',\n botUser: baseUrl + 'user/get-bot-user',\n user: baseUrl + 'user/get-user',\n checkAgentCert: environment.apiPrefix + '/ext/eb-ssms/chatbot-service/api/v1/verify/customer-service/customer-agents/',\n checkAvailableCSO: baseUrl + 'check-room-availability',\n updateChatCount: baseUrl + 'history/status/',\n};\n","export class Helper {\n constructor() {}\n\n public static maskPII(value: number | string): string {\n if (typeof value === 'number' || (typeof value === 'string' && !isNaN(parseFloat(value)))) {\n const stringValue = value.toString();\n // Check if the length is greater than 6\n if (stringValue.length > 6) {\n // Mask all but the last 4 digits\n return '*'.repeat(stringValue.length - 4) + stringValue.slice(-4);\n } else {\n // For shorter values, return the original value\n return stringValue;\n }\n } else {\n // For other types, return the original value\n return String(value);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs';\nimport { APIPaths } from '../_common/constant';\nimport { Alerts } from '../_common/alerts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChatService {\n constructor(public httpClient: HttpClient) {}\n\n getCanedResponse() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getCanedResponse).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getParent() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getParent).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getParentById(id: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getParent + `/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getsubCanedResponse() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getCanedResponse).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAutoResponse(val: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getCanedResponse + '/' + val).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getNewChatRoom(userId: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getNewChatRoom, { params: { userId: userId } }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n submitFeedBack(model: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.post(APIPaths.feedBack, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getFeedBack() {\n const onSuccess = (data: any) => {\n if (data.success) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.feedBack).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getUsreList() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getUsreList).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getActiveChatList() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getActiveCloseChatList + `?status=ACTIVE`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getBotUser() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n }\n };\n return this.httpClient.get(APIPaths.botUser).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getPendingChatList(page?: any) {\n let params = new HttpParams().set('page', page?.current - 1).set('limit', page?.pageSize);\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getPendingChatList, { params: params }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n // getCloseChatList(keyword?: any) {\n // const onSuccess = (data: any) => {\n // if (data) {\n // return data;\n // } else {\n // Alerts.showErrorMessage(data.meta.message);\n // }\n // };\n // return this.httpClient.get(APIPaths.getActiveCloseChatList + `?status=CLOSED&keyword=${keyword}`).pipe(\n // map(value => value),\n // map(onSuccess)\n // );\n // }\n\n getBotChatList(page?: any) {\n let params = new HttpParams().set('page', page?.current - 1).set('limit', page?.pageSize);\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.bot_room, { params: params }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getUserChatHistory(id: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.gethistory + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n updateChatCount(id: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n }\n };\n return this.httpClient.get(APIPaths.updateChatCount + id).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n changeChatStatus(id: any, model: any) {\n const onSuccess = (data: any) => {\n if (data && !data?.error) {\n return data;\n } else {\n Alerts.showErrorMessage(data?.error);\n }\n };\n return this.httpClient.put(APIPaths.changeRoomStatus + id, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n changeUserStatus(id: any, model: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.put(APIPaths.changeUsertatus + id, model).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getServicesAgree() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getServicesAgree).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n checkGroupNo(memberAccCode: any, errAccountCode: any, userId: any, roomId: any) {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.checkAgentCert + `${errAccountCode}/${memberAccCode}/user/${userId}/room/${roomId}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n checkAvailableCSO() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data?.error);\n }\n };\n return this.httpClient.get(APIPaths.checkAvailableCSO).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getIdleTime() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getServicesAgree).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAgentCanedResponse() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAgentcanned).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getRoomInfo(roomId: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getRoomInfo + `/${roomId}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAgentInfo(id: any) {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.user + `/${id}`).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getAlert() {\n let onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getAutoResponse).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getActiveChatListForSupervisor(page: any) {\n let params = new HttpParams()\n .set('page', page?.current - 1)\n .set('limit', page?.pageSize)\n .set('status', 'ACTIVE');\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getChatListForSupervisor, { params: params }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getPendingChatListForSupervisor() {\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getPendingChatList).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n\n getCloseChatListForSupervisor(keyword?: any, page?: any) {\n let params = new HttpParams()\n .set('page', page?.current - 1)\n .set('limit', page?.pageSize)\n .set('status', 'CLOSED')\n .set('keyword', keyword);\n const onSuccess = (data: any) => {\n if (data) {\n return data;\n } else {\n Alerts.showErrorMessage(data.meta.message);\n }\n };\n return this.httpClient.get(APIPaths.getChatListForSupervisor, { params: params }).pipe(\n map(value => value),\n map(onSuccess)\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { APIPaths } from '../_common/constant';\nimport { Observable, Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare const SockJS: any;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare const Stomp: any;\ndeclare const StompJs: any;\n// var destination = '/queue/someQueueName';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessageService implements OnDestroy {\n public stompClient: any;\n public msg: any = [];\n private receivedMessagesSubject = new Subject();\n subscription: any;\n roomId: any;\n private manualClose = false;\n username: any;\n constructor() {}\n\n // async initializeWebSocketConnection(roomId: any, username: string) {\n // const serverUrl = APIPaths.websocket;\n // const socket = new SockJS(serverUrl);\n // this.stompClient = Stomp.over(socket);\n // this.stompClient.connect({}, (frame: any) => {\n // this.stompClient.subscribe(`/topic/public/${roomId}`, (message: any) => {\n // // Tell your username to the server\n // const receivedMessage = JSON.parse(message.body);\n // var d = new Date();\n // receivedMessage.time = d.getHours() +':'+ d.getMinutes() +':'+ d.getSeconds()\n // this.receivedMessagesSubject.next(receivedMessage);\n // });\n // });\n // }\n\n // sendMessage(message: any, roomId: any) {\n // this.stompClient.send(`/app/chat.sendMessage/${roomId}`, {}, JSON.stringify(message));\n // }\n\n // joinMessage(message: any, roomId: any) {\n // this.stompClient.send(`/app/chat.addUser/${roomId}`, {}, JSON.stringify(message));\n // }\n\n // receiveMessages(): Observable {\n // return this.receivedMessagesSubject.asObservable();\n // }\n\n // async initializeWebSocketConnection(roomId: any, username: string) {\n // this.roomId = roomId\n // this.username = username\n // return new Promise((resolve, reject) => {\n\n // if (this.stompClient && this.stompClient.connected) {\n // this.stompClient.deactivate(); // Gracefully close the previous connection\n // }\n // this.stompClient = new StompJs.Client();\n // this.stompClient.webSocketFactory = () => new WebSocket(environment.wsPrefix);\n // this.stompClient.activate();\n\n // this.stompClient.onConnect = (frame: any) => {\n // console.log('Connected: ' + frame);\n // if (this.subscription) {\n // this.subscription.unsubscribe(); // Unsubscribe from previous room\n // }\n // this.subscription = this.stompClient.subscribe(`/topic/public/${roomId}`, (message: any) => {\n // const receivedMessage = JSON.parse(message.body);\n // this.receivedMessagesSubject.next(receivedMessage);\n // });\n // resolve(true);\n // };\n\n // this.stompClient.onWebSocketError = (error: any) => {\n // console.error('Error with websocket', error);\n // reject(false);\n // };\n\n // this.stompClient.onWebSocketClose = () => {\n // console.log(\"WebSocket connection closed. Attempting to reconnect...\");\n // setTimeout(() => {\n // this.initializeWebSocketConnection(roomId, username);\n // }, 5000); // Reconnect after a delay (e.g., 5 seconds)\n // };\n\n // this.stompClient.onStompError = (frame: any) => {\n // console.error('Broker reported error: ' + frame.headers['message']);\n // console.error('Additional details: ' + frame.body);\n // reject(false);\n // };\n // })\n // }\n\n async initializeWebSocketConnection(roomId: any, username: string) {\n return new Promise((resolve, reject) => {\n this.manualClose = false;\n // if (this.roomId === roomId) {\n // console.log('Already connected to the room:', roomId);\n // return;\n // }\n\n // Close existing WebSocket connection if it's open\n if (this.stompClient && this.stompClient.connected) {\n this.closeWebSocketConnection(); // Gracefully close the previous connection\n }\n this.roomId = roomId;\n this.username = username;\n try {\n this.stompClient = new StompJs.Client();\n this.stompClient.webSocketFactory = () => new WebSocket(APIPaths.websocket);\n this.stompClient.activate();\n this.stompClient.onConnect = (frame: any) => {\n console.log('Connected: ' + frame);\n\n // Unsubscribe from any existing subscription\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n\n // Subscribe to the new room\n if (this.stompClient.connected) {\n this.subscription = this.stompClient.subscribe(`/topic/public/${roomId}`, (message: any) => {\n const receivedMessage = JSON.parse(message.body);\n this.receivedMessagesSubject.next(receivedMessage);\n });\n } else {\n console.error('Attempted to subscribe without a valid connection.');\n }\n\n resolve(true);\n };\n this.stompClient.onWebSocketError = (error: any) => {\n console.error('Error with websocket', error);\n reject('WebSocket error occurred');\n };\n\n this.stompClient.onWebSocketClose = () => {\n console.log('WebSocket connection closed.');\n if (!this.manualClose) {\n console.log('Attempting to reconnect...');\n setTimeout(() => {\n this.initializeWebSocketConnection(roomId, username);\n }, 5000); // Reconnect after a delay\n }\n };\n\n this.stompClient.onStompError = (frame: any) => {\n console.error('Broker reported error: ' + frame.headers['message']);\n console.error('Additional details: ' + frame.body);\n reject('STOMP error occurred');\n };\n } catch (error) {\n console.error('Failed to initialize WebSocket connection:', error);\n // this.isConnecting = false; // Reset flag on failure\n }\n });\n }\n\n closeWebSocketConnection() {\n if (this.stompClient && this.stompClient.connected) {\n // Set the flag to indicate a manual closure\n this.manualClose = true;\n\n // Unsubscribe from the current subscription\n if (this.subscription) {\n this.subscription.unsubscribe();\n console.log('Unsubscribed from room subscription.');\n }\n\n // Deactivate the STOMP client asynchronously\n this.stompClient\n .deactivate()\n .then(() => {\n // this.stompClient = null\n console.log('WebSocket connection successfully closed.');\n })\n .catch((error: any) => {\n console.error('Error closing WebSocket connection:', error);\n });\n } else {\n console.warn('WebSocket connection is already closed or not established.');\n }\n }\n\n sendMessage(message: any, roomId: any) {\n //this.stompClient.send(`/app/chat.sendMessage/${roomId}`, {}, JSON.stringify(message));\n if (this.stompClient && this.stompClient.connected) {\n this.stompClient.publish({\n destination: `/app/chat.sendMessage/${roomId}`,\n body: JSON.stringify(message),\n });\n } else {\n console.warn('WebSocket is not connected. Cannot send message.');\n }\n }\n\n joinMessage(message: any, roomId: any) {\n this.stompClient.publish({\n destination: `/app/chat.addUser/${roomId}`,\n body: JSON.stringify(message),\n });\n // this.stompClient.send(`/app/chat.addUser/${roomId}`, {}, JSON.stringify(message));\n }\n\n leaveRoom(message: any, roomId: any) {\n this.stompClient.publish({\n destination: `/app/chat.closeChat/${roomId}`,\n body: JSON.stringify(message),\n });\n }\n\n receiveMessages(): Observable {\n return this.receivedMessagesSubject.asObservable();\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.stompClient && this.stompClient.connected) {\n this.stompClient.deactivate(); // Gracefully close the WebSocket connection\n }\n }\n}\n","import { Component, ViewEncapsulation, OnInit, AfterViewInit } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { animate, query, style, transition, trigger } from '@angular/animations';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { environment } from 'src/environments/environment';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { Router } from '@angular/router';\nimport { ThemeOptions } from '../../chatbot-admin/theme-options';\nimport { ConfigActions } from '../../chatbot-admin/ThemeOptions/store/config.actions';\nimport { LoginType } from '../../user/login/login.component';\nimport { loadGoHomeFunc } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-agent-dashboard',\n templateUrl: './agent-dashboard.component.html',\n animations: [\n trigger('architectUIAnimation', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n opacity: 0,\n display: 'flex',\n flex: '1',\n transform: 'translateY(-20px)',\n flexDirection: 'column',\n }),\n ]),\n query(':enter', [animate('100ms ease', style({ opacity: 1, transform: 'translateY(0)' }))], { optional: true }),\n\n query(':leave', [animate('100ms ease', style({ opacity: 0, transform: 'translateY(-20px)' }))], { optional: true }),\n ]),\n ]),\n ],\n styleUrls: ['./../styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AgentDashboardComponent implements OnInit, AfterViewInit {\n langList: CdsOption[] = environment.languageList;\n selectedLang = 'en';\n isHideNavigationLang = false;\n private sharData: Subject = new Subject();\n constructor(\n public globals: ThemeOptions,\n public configActions: ConfigActions,\n private languageChangeService: LanguageChangeService,\n private authenticationService: AuthenticationService,\n public router: Router,\n private notifyService: NotifyService\n ) {}\n\n toggleSidebarMobile() {\n this.globals.toggleSidebarMobile = !this.globals.toggleSidebarMobile;\n }\n\n logout() {\n let loginType = localStorage.getItem('loginType') as LoginType;\n if (!loginType) {\n loginType = 'sso';\n }\n this.authenticationService.logout(loginType, this.router);\n }\n\n ngAfterViewInit(): void {\n loadGoHomeFunc(() => {\n this.router.navigate(['/home']);\n });\n }\n\n ngOnInit(): void {\n const styleTags = document.getElementsByTagName('style');\n for (let i = 0; i < styleTags.length; i++) {\n const styleTag = styleTags[i] as any;\n if (styleTag.textContent.includes('chatbot-admin-style-marker-deletion-prohibited')) {\n if (styleTag.hasAttribute('media')) {\n styleTag.removeAttribute('media');\n }\n }\n\n this.notifyService.getHideNavigationLang().subscribe(boo => {\n setTimeout(() => {\n this.isHideNavigationLang = boo;\n const mobileNavigation = document.querySelector('div.cds-mobile-menu-util.order-1 cds-navigation-dropdown-utility');\n if (mobileNavigation && mobileNavigation.parentElement) {\n (mobileNavigation.parentElement as HTMLElement).style.display = boo ? 'none' : 'unset';\n }\n }, 100);\n });\n }\n }\n\n changeLang(lang: string) {\n this.selectedLang = lang;\n this.languageChangeService.setLang(lang);\n this.sendData(lang);\n }\n\n sendData(value: string) {\n this.sharData.next(value);\n }\n\n ngOnDestroy(): void {\n const styleTags = document.getElementsByTagName('style');\n for (let i = 0; i < styleTags.length; i++) {\n const styleTag = styleTags[i] as any;\n if (styleTag.textContent.includes('chatbot-admin-style-marker-deletion-prohibited')) {\n styleTag.setAttribute('media', 'max-width: 1px');\n }\n }\n }\n}\n","\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n {{ 'common.footerText' | lang }}\n
\n
\n
\n\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n OnInit,\n HostListener,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n DebugElement,\n ViewChild,\n ViewEncapsulation,\n Renderer2,\n} from '@angular/core';\nimport { Subject, Subscription, finalize, switchMap } from 'rxjs';\nimport { Imsg } from '../../user/user.component';\nimport { ChatService } from '../../_service/chat.service';\nimport { MessageService } from '../../_service/message.service';\nimport { Alerts } from '../../_common/alerts';\nimport { Helper } from '../../_common/helper';\nimport { DataService } from 'src/app/views/chatbot-admin/_services/data.service';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { AddEditCannedComponent } from 'src/app/views/chatbot-admin/main/canned/add-edit-canned/add-edit-canned.component';\nimport { CdsDialogService, CdsDialogPosition, CdsDialogType, CdsDialogPositionStylesBuilder } from '@cds/ng-experimental/dialog';\nimport { CloseChatComponent } from '../close-chat/close-chat.component';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdsSwitchConfig } from '@cds/ng-core/switch';\nimport { FormControl } from '@angular/forms';\nimport { APIPaths } from '../../_common/constant';\nimport { TransferChatComponent } from '../transfer-chat/transfer-chat.component';\nimport { IffService } from 'src/app/views/salesjourney/service/iff.service';\nimport { LoginType } from 'src/app/views/user/login/login.component';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { IdleService } from 'src/app/views/chatbot-admin/_services/idle.service';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CsoCannedMsgComponent } from '../cso-canned-msg/cso-canned-msg.component';\n\n@Component({\n selector: 'app-agent',\n templateUrl: './agent.component.html',\n styleUrls: ['../../styles.scss', './agent.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AgentComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('messageContainer') messageContainer: any;\n chats: Imsg[] = [];\n showAgent = true;\n agentCode: any;\n loading = false;\n showChat = false;\n Awaiting = false;\n Archive = false;\n roomId: any;\n agrement = false;\n message: any;\n chatJson: any = [];\n cannedMessageDDL: any = [];\n input: any = '';\n modalOptions: NgbModalOptions = {};\n modalRef: any;\n receivedMessages: string[] = [];\n subscription: any;\n users: any;\n langList: CdsOption[] = environment.languageList;\n selectedLang = 'en';\n private sharData: Subject = new Subject();\n label = 'Online';\n tabIndx: number = 0;\n config: CdsSwitchConfig = {\n size: 'sm',\n label: this.label,\n value: true,\n };\n agentName: any = '';\n roomInfo: any = null;\n agentInfo: any;\n cannedMessage = null;\n messagesSubscription: Subscription = new Subscription();\n isActive = true;\n activeChat: any = [];\n pendingChat: any = [];\n closeChat: any = [];\n closeChatFilter: any = [];\n botChat: any = [];\n lang = '';\n agentStatus: boolean = false;\n status: any = 0;\n intervalId: any;\n dropdownConfig: CdsDropdownConfig = {\n options: [\n { label: 'Online', value: 1 },\n { label: 'Offline', value: 0 },\n ],\n };\n searchTerm: string = '';\n @ViewChild('switchControl') switchControl: any; // Adjust type if needed\n formControl: FormControl = new FormControl(); // Initialize as needed\n\n // Method to set active value\n setActiveValue(value: boolean) {\n this.formControl.setValue(value);\n }\n constructor(\n public chatService: ChatService,\n private messageService: MessageService,\n private dataService: DataService,\n public cdsDialogService: CdsDialogService,\n public modalService: NgbModal,\n public cdk: ChangeDetectorRef,\n public permissionService: PermissionService,\n public IffService: IffService,\n private languageChangeService: LanguageChangeService,\n private authenticationService: AuthenticationService,\n private router: Router,\n public languageService: LanguageChangeService,\n private idleService: IdleService,\n private renderer: Renderer2\n ) {\n this.languageService.initLanNotice.subscribe(res => {\n this.lang = res;\n // Alerts.showErrorMessage('You are idle for 5 minutes, Please click on the screen to continue');\n });\n this.renderer.listen('window', 'click', (event: Event) => {\n this.closePopUpIfClickedOutside(event);\n });\n\n this.getActiveChatList();\n this.getPendingChatList();\n // this.getCloseChatList();\n // this.getBotChatList();\n this.getMessage();\n this.recallFucntion();\n this.getIdleAgent();\n }\n\n closePopUpIfClickedOutside(event: Event) {\n const targetElement = event.target as HTMLElement;\n const chatPopup = document.querySelector('.cb-agentchatbot');\n\n // If the click target is outside the chat popup, close it\n if (this.isShowChatBot && chatPopup && !chatPopup.contains(targetElement)) {\n this.isShowChatBot = false;\n }\n }\n\n changeLang(lang: string) {\n this.selectedLang = lang;\n this.languageChangeService.setLang(lang);\n this.sendData(lang);\n }\n\n sendData(value: string) {\n this.sharData.next(value);\n }\n\n logout() {\n let loginType = localStorage.getItem('loginType') as LoginType;\n if (!loginType) {\n loginType = 'sso';\n }\n this.authenticationService.logout(loginType, this.router);\n }\n\n ngOnInit(): void {\n this.idleService.onCSOIdle.subscribe(() => {\n this.notifyIdle();\n });\n\n this.messagesSubscription = this.messageService.receiveMessages().subscribe(messages => {\n console.log('Received messages:', messages);\n this.chatJson.push(messages);\n this.scrollToBottom();\n this.cdk.detectChanges();\n });\n\n this.permissionService.getUserInfo().then(info => {\n this.agentInfo = info;\n this.IffService.getAgentCode(info.id).subscribe({\n next: (res: any) => {\n if (res?.result !== 0) {\n } else {\n this.getAgentInfo();\n this.agentCode = res.data.agentCode;\n }\n },\n });\n });\n }\n\n notifyIdle() {\n let msg = this.lang == 'en' ? decodeURIComponent(this.idleObject?.msg) : decodeURIComponent(this.idleObject.chineseMsg);\n this.activeChat.forEach((item: any) => {\n if (item.status !== 'CLOSED_BY_AGENT') {\n this.messageService.initializeWebSocketConnection(item.roomId, 'Agent!').then(res => {\n if (res) {\n const mode = {\n type: 'CHAT',\n content: Helper.maskPII(msg),\n userId: this.agentInfo.id,\n userType: 'AGENT',\n sender: this.agentCode,\n };\n this.messageService.sendMessage(mode, item.roomId);\n }\n });\n this.showChat = false;\n }\n });\n }\n\n searchChat(event: any) {\n this.loading = true;\n this.searchTerm = event.target.value;\n // this.getCloseChatList();\n // this.closeChatFilter = this.closeChat.filter((chat: any) =>\n // chat.users.some((user: any) =>\n // user.name?.toLowerCase().includes(this.searchTerm) ||\n // user.lastMessage?.toLowerCase().includes(this.searchTerm)\n // )\n // );\n }\n\n ngOnDestroy(): void {\n this.messagesSubscription.unsubscribe();\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n ngAfterViewInit(): void {\n // setTimeout(() => {\n // const menu = document.querySelector('aside.cds-menu-container') as HTMLElement;\n // menu.style.display = 'none';\n // const appAgent = document.querySelector('app-agent') as HTMLElement;\n // if (appAgent.parentElement) {\n // appAgent.parentElement.style.background = 'white';\n // }\n // }, 0);\n // setTimeout(() => {\n // const menu = document.querySelector('aside.cds-menu-container') as HTMLElement;\n // menu.style.display = 'none';\n // const head = document.getElementsByClassName('cds-navigation-toolbar');\n // if (head.length > 0) {\n // (head[1] as HTMLElement).style.display = 'none';\n // }\n // }, 1000);\n }\n\n isCloseByAgent: boolean = false;\n\n onClickChat(item: any) {\n this.isCloseByAgent = item.status == 'CLOSED_BY_AGENT' ? true : false;\n this.isShowChatBot = false;\n this.agentName = item.users[0].name;\n this.Awaiting = false;\n this.Archive = false;\n this.showAgent = true;\n this.showChat = true;\n this.roomId = item.roomId;\n this.gerRoomInfo();\n this.chatService.getUserChatHistory(item.roomId).subscribe(resp => {\n if (resp) {\n this.updateChatCount(item);\n this.chatJson = resp || [];\n this.messageService.initializeWebSocketConnection(item.roomId, 'Agent!');\n this.scrollToBottom();\n }\n });\n }\n\n updateChatCount(item: any) {\n debugger;\n this.chatService.updateChatCount(item.roomId).subscribe(resp => {\n if (resp) {\n this.scrollToBottom();\n }\n });\n }\n\n onClickAwaitingChat(item: any) {\n this.agentName = item.users[0].name;\n this.showAgent = true;\n this.showChat = true;\n this.roomId = item.roomId;\n this.Awaiting = true;\n this.Archive = true;\n this.chatJson = [];\n this.gerRoomInfo();\n this.chatService.getUserChatHistory(item.roomId).subscribe(resp => {\n if (resp) {\n this.updateChatCount(item);\n this.chatJson = resp || [];\n }\n });\n }\n\n onClickArchiveChat(item: any) {\n this.agentName = item.users[0].name;\n this.showAgent = true;\n this.showChat = true;\n this.roomId = item.roomId;\n this.Awaiting = false;\n this.Archive = true;\n this.chatJson = [];\n this.gerRoomInfo();\n this.chatService.getUserChatHistory(item.roomId).subscribe(resp => {\n if (resp) {\n this.chatJson = resp || [];\n this.messageService.initializeWebSocketConnection(item.roomId, 'Agent!');\n }\n });\n }\n\n updateStatus(val: any) {\n debugger;\n let event = val?.value;\n if (event != 1 && event != 0) {\n return;\n }\n this.cdk.detectChanges();\n this.loading = true;\n this.agentStatus = event == 1 ? true : false;\n const model = {\n userStatus: event == 1 ? 'ONLINE' : 'OFFLINE',\n };\n return this.chatService\n .changeUserStatus(this.agentInfo.id, model)\n .pipe(\n finalize(() => {\n this.loading = false;\n debugger;\n if (model.userStatus == 'OFFLINE') {\n let msg =\n this.lang == 'en'\n ? decodeURIComponent(\n 'The CSO is currently unavailable to receive messages. Please leave your inquiry and contact email so that the CSO can follow up with you. '\n )\n : decodeURIComponent('CSO 暫時未能接收信息,請留低你的查詢和聯絡電郵,以便CSO跟進。');\n this.activeChat.forEach((item: any) => {\n this.messageService.initializeWebSocketConnection(item.roomId, 'Agent!').then(res => {\n if (res) {\n const mode = {\n type: 'CHAT',\n content: Helper.maskPII(msg),\n userId: this.agentInfo.id,\n userType: 'AGENT',\n sender: 'System',\n };\n this.messageService.sendMessage(mode, item.roomId);\n }\n });\n });\n }\n })\n )\n .subscribe((data: any) => {\n if (data) {\n Alerts.showSuccessMessage(`Your status is now ${event == 1 ? 'ONLINE' : 'OFFLINE'}`);\n } else {\n Alerts.showErrorMessage(data.message);\n }\n });\n }\n\n getMessage() {\n return this.chatService\n .getAgentCanedResponse()\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe((data: any) => {\n if (data) {\n this.cannedMessageDDL = data;\n } else {\n Alerts.showErrorMessage(data.message);\n }\n });\n }\n\n onShowChats() {\n this.showAgent = true;\n this.showChat = true;\n }\n\n openCannedMoal() {\n this.dataService.setModel({ agent: this.agentInfo, roomId: this.roomId });\n this.modalOptions.backdrop = 'static';\n this.modalOptions.keyboard = true;\n this.modalOptions.size = 'lg';\n this.modalOptions.centered = true;\n this.modalRef = this.modalService.open(CsoCannedMsgComponent, this.modalOptions);\n this.modalRef.result.then((result: any) => {}).catch((error: any) => {});\n }\n\n onCloseChatModal(model?: any, content?: any) {\n this.isShowChatBot = false;\n if (this.agentInfo?.permissions && this.agentInfo?.permissions?.CHATBOT_CSO) {\n let obj = this.activeChat.find((x: any) => x.roomId == this.roomId);\n let item = {\n users: obj.users,\n roomId: obj.roomId,\n certificateNumber: this.roomInfo.cert_no == 'null' || !this.roomInfo.cert_no ? '' : this.roomInfo.cert_no,\n policyNumber: this.roomInfo.group_no == 'null' || !this.roomInfo.group_no ? '' : this.roomInfo.group_no,\n };\n this.dataService.setModel(item);\n this.modalOptions.backdrop = 'static';\n this.modalOptions.keyboard = true;\n this.modalOptions.size = 'lg';\n this.modalOptions.centered = true;\n this.modalRef = this.modalService.open(CloseChatComponent, this.modalOptions);\n this.modalRef.result\n .then((result: any) => {\n this.getActiveChatList();\n // this.getCloseChatList();\n this.isCloseByAgent = false;\n this.chatJson = [];\n this.leaveRoom();\n this.showChat = false;\n })\n .catch((error: any) => {});\n } else {\n Alerts.showErrorMessage('You do not have permission to close chat');\n }\n }\n\n onTrasnferChat(model?: any, content?: any) {\n let item = this.activeChat.find((x: any) => x.roomId == this.roomId);\n this.dataService.setModel(item);\n this.modalOptions.backdrop = 'static';\n this.modalOptions.keyboard = false;\n this.modalOptions.size = 'lg';\n this.modalOptions.centered = true;\n this.modalRef = this.modalService.open(TransferChatComponent, this.modalOptions);\n this.modalRef.result\n .then((result: any) => {\n this.getActiveChatList();\n // this.getCloseChatList();\n this.chatJson = [];\n this.showChat = false;\n })\n .catch((error: any) => {});\n }\n\n getObjectFilePath(content: any): string {\n const parsedContent = JSON.parse(content);\n return parsedContent?.filePath;\n }\n tab = 0;\n tabChange(item: any) {\n this.tab = item.index;\n this.isShowChatBot = false;\n this.isCloseByAgent = false;\n console.log(item);\n console.log(item.tab.label.includes('Active'));\n this.chatJson = [];\n this.showChat = false;\n\n if (item.index == 0) {\n this.getActiveChatList();\n }\n if (item.index == 1) {\n this.getPendingChatList();\n }\n if (item.index == 2) {\n this.Archive = true;\n // this.getCloseChatList();\n }\n if (item.index == 3) {\n // this. = true\n // this.getBotChatList();\n }\n }\n\n joinChat(roomId: any) {\n this.isShowChatBot = false;\n if (!this.agentStatus) {\n Alerts.showErrorMessage('You are not online');\n } else {\n if (this.activeChat.length < 3) {\n this.roomId = roomId;\n let i = this.pendingChat.findIndex((x: any) => x.roomId == roomId);\n const model = {\n status: 'ACTIVE',\n };\n this.chatService.changeChatStatus(this.roomId, model).subscribe(resp => {\n if (resp) {\n this.showAgent = true;\n this.showChat = true;\n this.chatJson = resp.messages || [];\n this.Awaiting = false;\n this.getActiveChatList();\n this.getPendingChatList();\n this.messageService.initializeWebSocketConnection(this.roomId, 'Agent!').then(() => {\n const mode = {\n type: 'JOIN',\n content: this.lang == '' ? `CSO ${this.agentName} is currently handling your enquiry.` : `客戶服務主任${this.agentName} 正在處理您的查詢。`,\n userId: this.agentInfo.id,\n userType: 'AGENT',\n sender: this.agentInfo?.displayName,\n };\n this.messageService.sendMessage(mode, this.roomId);\n });\n this.tab = 0;\n const divs = document.getElementsByClassName('ink-bar');\n if (divs.length > 0) {\n const firstDiv = divs[0] as HTMLElement; // Type assertion to HTMLElement\n firstDiv.style.left = '40px'; // Set the left position\n firstDiv.style.width = '65px'; // Set the width\n }\n this.cdk.detectChanges();\n }\n });\n } else {\n Alerts.showErrorMessage('You cannot handle more than 3 chats at a time');\n }\n }\n }\n\n getActiveChatList() {\n this.chatService.getActiveChatList().subscribe(resp => {\n if (resp.data.length > 0) {\n this.activeChat = resp.data;\n if (resp.data.length > 0 && (this.tab == 0 || this.tab == null)) {\n let filer = resp.data.find((item: any) => this.roomId == item.roomId);\n if (filer && filer.status == 'CLOSED_BY_AGENT') {\n this.isCloseByAgent = true;\n }\n }\n } else {\n this.activeChat = [];\n }\n });\n }\n\n getPendingChatList() {\n this.chatService.getPendingChatList().subscribe(resp => {\n if (resp.data.length > 0) {\n this.pendingChat = resp.data;\n\n if (resp.data.length > 0 && this.tab == 1) {\n let filer = resp.data.find((item: any) => this.roomId == item.roomId);\n if (!filer) {\n this.isShowChatBot = false;\n this.isCloseByAgent = false;\n this.chatJson = [];\n this.showChat = false;\n }\n }\n } else {\n this.pendingChat = [];\n }\n });\n }\n\n // getCloseChatList() {\n // this.chatService.getCloseChatList(this.searchTerm).subscribe(resp => {\n // this.loading = false\n // debugger\n // if (resp.data.length > 0) {\n // this.closeChat = resp.data;\n // this.closeChatFilter = resp.data;\n // // if (this.searchTerm) {\n // // this.closeChatFilter = resp.filter((chat: any) =>\n // // chat.users.some((user: any) =>\n // // user.name?.toLowerCase().includes(this.searchTerm) ||\n // // user.lastMessage?.toLowerCase().includes(this.searchTerm)\n // // )\n // // );\n // // }\n // }\n // else{\n // this.closeChat = [];\n // }\n // });\n // }\n // getBotChatList() {\n // this.chatService.getBotChatList().subscribe(resp => {\n // debugger\n // if (resp.data.length > 0) {\n // this.botChat = resp.data;\n // if (resp.data.length > 0 && this.tab == 3) {\n\n // let filer = resp.data.find((item: any) => this.roomId == item.roomId)\n // if (!filer) {\n // this.isShowChatBot = false\n // this.isCloseByAgent = false\n // this.chatJson = [];\n // this.showChat = false;\n // }\n // }\n // }else{\n // this.botChat = [];\n // }\n // });\n // }\n\n // getUserChatHistory(item: any) {\n // item;\n // }\n\n async sendMessage() {\n if (this.input) {\n const mode = {\n type: 'CHAT',\n content: Helper.maskPII(this.input),\n userId: this.agentInfo.id,\n userType: 'AGENT',\n sender: this.agentInfo?.displayName,\n };\n this.messageService.sendMessage(mode, this.roomId);\n this.input = '';\n }\n }\n\n leaveRoom() {\n const mode = {\n type: 'LEAVE',\n content: '',\n userId: this.agentInfo.id,\n userType: 'AGENT',\n sender: this.agentInfo?.displayName,\n };\n this.messageService.leaveRoom(mode, this.roomId);\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.sendMessage();\n }\n }\n scrollToBottom(): void {\n try {\n setTimeout(() => {\n if (this.messageContainer?.nativeElement) this.messageContainer.nativeElement.scrollTop = this.messageContainer.nativeElement.scrollHeight + 350;\n }, 300);\n } catch (err) {}\n }\n\n selectMessage(event: any) {\n this.cannedMessage = null;\n let mode = {\n type: 'CHAT',\n content: this.lang == 'en' ? event.ans : event.chineseAns,\n userId: this.agentInfo?.id,\n userType: 'AGENT',\n sender: this.agentInfo?.displayName,\n };\n this.messageService.sendMessage(mode, this.roomId);\n }\n\n fileChange() {\n this.isShowChatBot = false;\n document.getElementById('file')?.click();\n }\n\n onFileChange(event: any) {\n this.isShowChatBot = false;\n this.uploadFile(event.target.files[0]);\n event.target.value = '';\n }\n uploadFile(file: any) {\n /* eslint-disable @typescript-eslint/no-this-alias */\n const that = this;\n const xhr = new XMLHttpRequest();\n const formData = new FormData();\n formData.append('file', file);\n this.fileUploaded(xhr, that, (data: any) => {\n data;\n });\n\n if (xhr.upload) {\n this.updateProgress(xhr, (data: any) => {\n // this.statusBar = data;\n data;\n });\n }\n xhr.open('POST', APIPaths.upload, true);\n xhr.setRequestHeader('Authorization', `${this.agentInfo.token}`);\n xhr.setRequestHeader('DisplayName', encodeURIComponent(this.agentInfo?.displayName));\n xhr.setRequestHeader('Email', this.agentInfo?.email);\n xhr.setRequestHeader('Id', this.agentInfo?.id);\n xhr.setRequestHeader('CurrentLastUpdate', this.agentInfo?.currentLastUpdate.toString());\n xhr.setRequestHeader('Permissions', JSON.stringify(this.agentInfo?.permissions));\n xhr.send(formData);\n }\n\n fileUploaded(xhr: any, that: any, callback: any) {\n callback;\n xhr.onreadystatechange = function (e: any) {\n e;\n if (xhr.readyState === 4) {\n //Done\n if (xhr.status === 200) {\n //Loading/Done\n const response = JSON.parse(xhr.response);\n const mode = {\n type: 'FILE',\n content: xhr.response,\n userId: that.agentInfo?.id,\n userType: 'AGENT',\n sender: that.agentInfo?.displayName,\n };\n that.messageService.sendMessage(mode, that.roomId);\n }\n } else if (xhr.readyState === 1) {\n //loading\n }\n };\n }\n\n updateProgress(xhr: any, callback: any) {\n xhr.upload.onprogress = function (e: any) {\n if (e.lengthComputable) {\n this.statusBar = (e.loaded / e.total) * 100;\n callback((e.loaded / e.total) * 100);\n }\n };\n xhr.upload.onloadstart = function (e: any) {\n e;\n callback(0);\n };\n xhr.upload.onloadend = function (e: any) {\n e;\n callback(100);\n };\n }\n\n isShowChatBot = false;\n\n showModal(event: Event) {\n event.stopPropagation();\n this.isShowChatBot = !this.isShowChatBot;\n }\n\n gerRoomInfo() {\n this.chatService.getRoomInfo(this.roomId).subscribe(resp => {\n console.log(resp);\n this.roomInfo = resp.room;\n });\n }\n\n getAgentInfo() {\n this.chatService.getAgentInfo(this.agentInfo?.id).subscribe(resp => {\n console.log(resp);\n this.agentStatus = resp.userStatus == 'ONLINE' ? true : false;\n this.status = resp.userStatus == 'ONLINE' ? 1 : 0;\n this.config.value = true;\n this.cdk.detectChanges();\n });\n }\n\n idleObject: any;\n getIdleAgent() {\n this.chatService.getAlert().subscribe((resp: any) => {\n this.idleObject = resp.find((item: any) => item.autoMsgType == 'IDLE');\n let sec = this.idleObject?.minutes * 60 * 1000;\n this.idleService.startSCOListening(sec);\n });\n }\n\n recallFucntion() {\n this.intervalId = setInterval(() => {\n this.getActiveChatList();\n this.getPendingChatList();\n // this.getCloseChatList();\n // this.getBotChatList();\n }, 30000);\n }\n}\n","
\n
\n
\n
\n

All Chats - {{ activeChat?.length + pendingChat?.length + closeChat?.length }}

\n\n \n \n \n \n \n
\n
\n \n \n
\n \n
  • \n \n \n\n
    \n
    \n

    \n

    \n

    {{ item.users ? (item.users[0]?.msgDate | date : 'yyyy/MM/dd HH:mm') : '' }}

    \n
    \n
    \n \n \n \n 0\"\n style=\"\n font-weight: 600;\n background-color: green;\n border-radius: 50%;\n height: 20px;\n width: 20px;\n text-align: center;\n margin-top: 5px;\n \">\n {{ item.count }}\n

    \n
    \n
    \n
    \n
  • \n \n \n
    \n \n \n
    \n
    \n \n
  • \n
    \n
    \n
    \n

    \n

    \n

    {{ item.users ? (item.users[0]?.msgDate | date : 'yyyy/MM/dd HH:mm') : '' }}

    \n
    \n
    \n \n \n 0\"\n style=\"\n font-weight: 600;\n background-color: green;\n border-radius: 50%;\n height: 20px;\n width: 20px;\n text-align: center;\n margin-top: 5px;\n \">\n {{ item.count }}\n

    \n
    \n
    \n
    \n
    \n
  • \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n {{ agentName }} ({{ roomId }})\n
    \n {{ roomInfo?.group_no && roomInfo?.group_no != 'null' ? roomInfo?.group_no + ' -' : '' }}\n {{ roomInfo?.cert_no && roomInfo?.cert_no != 'null' ? roomInfo?.cert_no : '' }}\n
    \n
    \n
    \n\n
    \n \n
    \n

    {{ obj.sender }}

    \n
    \n
    \n\n
    \n
    \n \"\"\n
    \n
    \n
    {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}
    \n
    \n
    \n

    {{ obj.sender }}

    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    \n
    {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}
    \n
    \n
    \n

    {{ obj.sender }}

    \n
    \n {{\n lang == 'en'\n ? '\n You have accepted the chat'\n : ' 您已接受聊天'\n }}\n
    \n
    {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}
    \n
    \n \n
    \n
    \n {{ lang == 'en' ? 'The agent has terminated the chat.' : ' 代理人已終止對話。' }}\n
    \n
    \n \n
      \n
    • \n Accept Chat\n
    • \n
    \n
    \n
    \n
      \n
    • \n \n
    • \n
    \n \n
      \n \n
    • \n
      \n \n \n \n
      \n
    • \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
      \n \n
    • Close Chat
    • \n
    • Transfer Chat
    • \n
    • \n

      Canned Message

      \n \n
    • \n
    \n
    \n
    \n
    \n
    \n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AgentComponent } from './agent/agent.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../../layout/admin-layout/admin-layout.component';\nimport { AgentDashboardComponent } from './agent-dashboard.component';\nimport { ChatHistoryComponent } from '../../chatbot-admin/main/chat-history/chat-history.component';\n\nconst routes: Routes = [\n {\n path: 'chatbot',\n component: AgentDashboardComponent,\n children: [\n {\n path: 'cso',\n component: AgentComponent,\n data: {\n roles: {\n [PermissionItem.CHATBOT_CSO]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'history',\n component: ChatHistoryComponent,\n data: {\n roles: {\n [PermissionItem.CHATBOT_CSO]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AngentRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AngentRoutingModule } from './angent-routing.module';\nimport { AgentComponent } from './agent/agent.component';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { LanguageSwitchModule } from 'src/app/shared/language-switch/language-switch.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { CdsNavigationModule } from '@cds/ng-web-components/navigation';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CloseChatComponent } from './close-chat/close-chat.component';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { AuthHttpInterceptor } from 'src/app/core/interceptors/auth.http-interceptor';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { TransferChatComponent } from './transfer-chat/transfer-chat.component';\nimport { CsoCannedMsgComponent } from './cso-canned-msg/cso-canned-msg.component';\n\n@NgModule({\n declarations: [AgentComponent, CloseChatComponent, TransferChatComponent, CsoCannedMsgComponent],\n imports: [\n CommonModule,\n AngentRoutingModule,\n CdsIconModule,\n LanguageSwitchModule,\n CdsLanguageModule,\n FormsModule,\n CdsNavigationModule,\n NgSelectModule,\n ReactiveFormsModule,\n SharedModule,\n NgbModule,\n CdsButtonModule,\n UiSwitchModule.forRoot({\n size: 'small',\n checkedLabel: 'online',\n uncheckedLabel: 'offline',\n }),\n ],\n})\nexport class AngentModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionState } from 'src/app/views/chatbot-admin/_common/_interface';\nimport { CannedService } from 'src/app/views/chatbot-admin/_services/canned.service';\nimport { DataService } from 'src/app/views/chatbot-admin/_services/data.service';\nimport { MessageService } from '../../_service/message.service';\nimport { Alerts } from '../../_common/alerts';\n\n@Component({\n selector: 'app-close-chat',\n templateUrl: './close-chat.component.html',\n styleUrls: ['./close-chat.component.scss'],\n})\nexport class CloseChatComponent implements OnInit {\n form: FormGroup;\n loading: boolean = false;\n stateModel: any;\n modalRef: any;\n typeDDL = [];\n data = [];\n subtypeDDL = [];\n enquiryDDL = [];\n statusDDL = [\n { id: true, text: 'OPEN' },\n { id: false, text: 'CLOSED' },\n ];\n disable: boolean = false;\n DDL: any[] = [];\n icon: string = 'contract';\n validationMessages = {\n policyNumber: [{ type: 'required', message: 'Policy Number is required' }],\n certificateNumber: [{ type: 'required', message: 'Certificate Number is required' }],\n type: [{ type: 'required', message: 'Type is required' }],\n subType: [{ type: 'required', message: 'Sub Type is required' }],\n enquiryType: [{ type: 'required', message: 'Enquiry Type is required' }],\n contactName: [\n { type: 'required', message: 'Value is required' },\n { type: 'pattern', message: 'Enter a number Value only' },\n { type: 'maxlength', message: 'Value must not be greater than 10 characters ' },\n { type: 'whitespace', message: 'Only whitespace is not allowed' },\n { type: 'compareValue', message: 'Value can not be greater' },\n ],\n description: [{ type: 'required', message: 'Description is required' }],\n status: [{ type: 'required', message: 'status is required' }],\n };\n constructor(\n private formBuilder: FormBuilder,\n public router: Router,\n public activeModal: NgbActiveModal,\n private modalService: NgbModal,\n public cannedServices: CannedService,\n public dataService: DataService,\n private messageService: MessageService\n ) {\n this.form = this.formBuilder.group({\n id: new FormControl(),\n policyNumber: new FormControl(''),\n certificateNumber: new FormControl(''),\n type: new FormControl(null, Validators.required),\n subType: new FormControl(null),\n enquiryType: new FormControl(null),\n contactName: new FormControl('', Validators.compose([])),\n status: new FormControl(true),\n description: new FormControl(''),\n });\n\n this.stateModel = this.dataService.getModel() as ActionState;\n this.form.get('policyNumber')?.setValue(this.stateModel?.policyNumber ? this.stateModel?.policyNumber : '');\n this.form.get('certificateNumber')?.setValue(this.stateModel?.certificateNumber ? this.stateModel?.certificateNumber : '');\n\n this.getStaticDate();\n // if (this.stateModel?.data) {\n //\n // this.getSingle(this.stateModel.data);\n // }\n }\n\n ngOnInit(): void {\n this.ngOnChanges();\n }\n\n ngOnChanges(): void {\n this.form.get('type')?.valueChanges.subscribe(val => {\n this.subtypeDDL = this.data.filter((x: any) => x.parentId == val);\n });\n this.form.get('subType')?.valueChanges.subscribe(val => {\n this.enquiryDDL = this.data.filter((x: any) => x.parentId == val);\n });\n }\n\n onSubmit() {\n let modal = this.form.value;\n this.cannedServices.closeChat(modal, this.stateModel, 0).subscribe((resp: any) => {\n if (resp) {\n this.messageService.closeWebSocketConnection();\n Alerts.showSuccessMessage('Chat Closed Successfully');\n this.activeModal.close('Cross click');\n }\n });\n }\n\n getSingle(id: any) {\n this.cannedServices.getSingleCannde(id).subscribe((resp: any) => {\n if (resp) {\n this.form.patchValue(resp);\n }\n });\n }\n\n getStaticDate() {\n this.cannedServices.getStaticData().subscribe((resp: any) => {\n if (resp) {\n this.data = resp;\n this.typeDDL = resp.filter((x: any) => x.type == 1);\n // this.statusDDL = resp.filter((x: any) => x.type == 4);\n }\n });\n }\n}\n","
    \n
    \n
    \n
    Close Chat
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n {{ validation.message }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Cancel\n Save\n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionState } from 'src/app/views/chatbot-admin/_common/_interface';\nimport { CannedService } from 'src/app/views/chatbot-admin/_services/canned.service';\nimport { DataService } from 'src/app/views/chatbot-admin/_services/data.service';\nimport { MessageService } from '../../_service/message.service';\nimport { Alerts } from '../../_common/alerts';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { finalize } from 'rxjs';\nimport { ChatService } from '../../_service/chat.service';\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\n\n@Component({\n selector: 'app-cso-canned-msg',\n templateUrl: './cso-canned-msg.component.html',\n styleUrls: ['./cso-canned-msg.component.scss'],\n})\nexport class CsoCannedMsgComponent implements OnInit {\n loading: boolean = false;\n stateModel: any;\n modalRef: any;\n typeDDL = [];\n data = [];\n subtypeDDL = [];\n enquiryDDL = [];\n statusDDL = [\n { id: true, text: 'OPEN' },\n { id: false, text: 'CLOSED' },\n ];\n disable: boolean = false;\n DDL: any[] = [];\n icon: string = 'contract';\n lang = '';\n config: AngularEditorConfig = {\n editable: true,\n showToolbar: true,\n spellcheck: true,\n height: '5rem',\n minHeight: '3rem',\n placeholder: 'Enter text here...',\n translate: 'no',\n customClasses: [\n {\n name: 'quote',\n class: 'quote',\n },\n\n {\n name: 'redText',\n class: 'redText',\n },\n {\n name: 'titleText',\n class: 'titleText',\n tag: 'h1',\n },\n ],\n };\n constructor(\n private formBuilder: FormBuilder,\n public router: Router,\n public activeModal: NgbActiveModal,\n private modalService: NgbModal,\n public chatService: ChatService,\n public dataService: DataService,\n private messageService: MessageService,\n public languageService: LanguageChangeService\n ) {\n this.languageService.initLanNotice.subscribe(res => {\n this.lang = res;\n // Alerts.showErrorMessage('You are idle for 5 minutes, Please click on the screen to continue');\n });\n\n this.stateModel = this.dataService.getModel() as ActionState;\n }\n\n cannedMessage = null;\n cannedMessageDetail = null;\n ngOnInit(): void {\n this.getMessage();\n }\n\n cannedMessageDDL: any = [];\n\n getMessage() {\n return this.chatService\n .getAgentCanedResponse()\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe((data: any) => {\n if (data) {\n this.cannedMessageDDL = data;\n } else {\n Alerts.showErrorMessage(data.message);\n }\n });\n }\n\n selectMessage(event: any) {\n this.cannedMessage = null;\n this.cannedMessageDetail = this.lang == 'en' ? event.ans : event.chineseAns;\n // let model = {\n // type: 'CHAT',\n // content: this.lang == 'en' ? event.ans : event.chineseAns,\n // userId: this.agentInfo?.id,\n // userType: 'AGENT',\n // sender: this.agentInfo?.displayName,\n // };\n // this.messageService.sendMessage(model, this.roomId);\n }\n\n sendMessage() {\n debugger;\n let model = {\n type: 'CHAT',\n content: this.cannedMessageDetail,\n userId: this.stateModel?.agent?.id,\n userType: 'AGENT',\n sender: this.stateModel?.agent?.displayName,\n };\n this.messageService.sendMessage(model, this.stateModel?.roomId);\n this.activeModal.close('Cross click');\n }\n}\n","
    \n
    \n
    \n
    Send Canned 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
    \n Cancel\n\n Send\n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionState } from 'src/app/views/chatbot-admin/_common/_interface';\nimport { CannedService } from 'src/app/views/chatbot-admin/_services/canned.service';\nimport { DataService } from 'src/app/views/chatbot-admin/_services/data.service';\nimport { Alerts } from '../../_common/alerts';\n\n@Component({\n selector: 'app-transfer-chat',\n templateUrl: './transfer-chat.component.html',\n styleUrls: ['./transfer-chat.component.scss'],\n})\nexport class TransferChatComponent implements OnInit {\n loading: boolean = false;\n stateModel: any;\n modalRef: any;\n agentID: any;\n agentDDL = [];\n disable: boolean = false;\n DDL: any[] = [];\n icon: string = 'contract';\n constructor(\n private formBuilder: FormBuilder,\n public router: Router,\n public activeModal: NgbActiveModal,\n private modalService: NgbModal,\n public cannedServices: CannedService,\n public dataService: DataService\n ) {\n this.stateModel = this.dataService.getModel() as ActionState;\n\n this.getAgetnList();\n }\n\n ngOnInit(): void {}\n\n onSubmit() {\n if (this.agentID) {\n this.loading = true;\n this.cannedServices.transferChat(this.agentID, this.stateModel).subscribe((resp: any) => {\n this.loading = true;\n if (resp) {\n this.activeModal.close('Cross click');\n }\n });\n } else {\n Alerts.showInfoMessage('Please select Agent');\n }\n }\n\n getAgetnList() {\n this.loading = true;\n this.cannedServices.getAgetnList().subscribe((resp: any) => {\n this.loading = false;\n if (resp) {\n this.agentDDL = resp;\n }\n });\n }\n}\n","
    \n
    \n
    \n
    Transfer Chat
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Cancel\n Transfer\n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-close-chat-confirm',\n templateUrl: './close-chat-confirm.component.html',\n styleUrls: ['./close-chat-confirm.component.scss'],\n})\nexport class CloseChatConfirmComponent implements OnInit {\n agreeButtonConfig: CdsButtonConfig = {\n /* ... */\n };\n disagreeButtonConfig: CdsButtonConfig = {\n /* ... */\n };\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n agree() {\n this.dialogRef.close(true);\n }\n disagree() {\n this.dialogRef.close(false);\n }\n}\n","\n You are going to Close this Chat. Are you sure you want to proceed ?\n \n Yes\n No\n \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, HostListener, ChangeDetectorRef, ElementRef, ViewChild, Renderer2 } from '@angular/core';\nimport { finalize, Subject } from 'rxjs';\nimport { ChatService } from '../_service/chat.service';\nimport { MessageService } from '../_service/message.service';\nimport { Helper } from '../_common/helper';\nimport { APIPaths } from '../_common/constant';\nimport { Alerts } from '../../chatbot-admin/_common/alerts';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { ActivatedRoute, Route, Router } from '@angular/router';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { CloseChatComponent } from '../angent/close-chat/close-chat.component';\nimport { IdleService } from '../../chatbot-admin/_services/idle.service';\nimport { CannedService } from '../../chatbot-admin/_services/canned.service';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CloseChatConfirmComponent } from '../close-chat-confirm/close-chat-confirm.component';\n\nexport interface Imsg {\n id: any;\n msg: string;\n msg_Code: any;\n type: string;\n}\n@Component({\n selector: 'app-user',\n templateUrl: './user.component.html',\n styleUrls: ['./user.component.scss'],\n})\nexport class UserComponent implements OnInit {\n @ViewChild('messageContainer') messageContainer: any;\n @ViewChild('cbChatbot', { static: false }) cbChatbot!: ElementRef;\n\n chats: any[] = [\n // {\n // \"msg\": \"Hi, good day. I will try my best to answer your questions about MPF business. Please select below topics of enquiry.\",\n // \"enabled\": false,\n // \"chineseMsg\": \"您好,我會盡我所能為您解答強積金業務方面的疑問。請選擇以下詢問主題。\"\n // },\n ];\n\n wecloemsg = {\n en: {\n head: 'Welcome',\n msg: 'This Chatbot and Live Chat function assist you in finding answers to support your MPF business and provides the latest MPF information.',\n },\n zh: {\n head: '歡迎',\n msg: '此聊天機械人及實時真人對話功能可協助您尋找支援您的強積金業務的答案,並提供最新的強積金資訊。',\n },\n };\n isShowChatBot = false;\n showBotOnMobile = true;\n showBack = false;\n isShowChatBotIcon = true;\n isShowChatBotCloseIcon = false;\n chatJson: any = [];\n canedList: any = [];\n oldcanedList: any = [];\n roomId: any = null;\n encodRoom: any = null;\n agrement = false;\n message: any;\n liveChat = false;\n index = 0;\n groupNumber = false;\n introJson: any[] = [];\n introServiceson: any[] = [];\n groupNo: any = '';\n certNo: any = '';\n token: any = '';\n username = '';\n noCsoAvailable: boolean = false;\n allCsobusy: boolean = false;\n userInfo: any;\n botUser: any;\n roomInfo: any;\n chatlogs: any;\n lang: any;\n showNext: boolean = false;\n showLiveButton: boolean = false;\n screenWidth: number = 0;\n private reloadSubject = new Subject<{ roomId: string; verify: boolean } | undefined>();\n constructor(\n public chatService: ChatService,\n public messageService: MessageService,\n public idleService: IdleService,\n public route: ActivatedRoute,\n public modalService: NgbModal,\n public router: Router,\n private cdsPopup: CdsPopupService,\n public cannedServices: CannedService,\n public languageService: LanguageChangeService,\n public permissionService: PermissionService,\n public cdk: ChangeDetectorRef,\n private renderer: Renderer2\n ) {\n this.languageService.initLanNotice.subscribe(res => {\n this.lang = res;\n // Alerts.showErrorMessage('You are idle for 5 minutes, Please click on the screen to continue');\n });\n this.renderer.listen('window', 'click', (event: Event) => {\n this.closePopUpIfClickedOutside(event);\n });\n this.roomId = localStorage.getItem('roomId');\n let verify = localStorage.getItem('verify');\n\n if (this.roomId && verify == 'true') {\n this.agrement = true;\n this.groupNumber = true;\n this.isShowChatBot = true;\n this.liveChat = true;\n this.gerRoomInfo();\n this.chatService.getUserChatHistory(this.roomId).subscribe(resp => {\n if (resp) {\n let check = resp.find((item: any) => item.userType == 'AGENT' && item.sender != 'BOT');\n if (!check) {\n this.getIdleUser();\n }\n this.chatJson = resp || [];\n this.messageService.initializeWebSocketConnection(this.roomId, 'User!').then(() => {\n this.scrollToBottom();\n });\n }\n });\n } else if (this.roomId && verify == 'false') {\n this.agrement = true;\n this.groupNumber = false;\n this.isShowChatBot = true;\n this.chatService.getUserChatHistory(this.roomId).subscribe(resp => {\n if (resp) {\n this.chatJson = resp || [];\n this.messageService.initializeWebSocketConnection(this.roomId, 'User!').then(() => {\n this.chatService.getParent().subscribe(resp => {\n if (resp) {\n this.chats = resp;\n this.canedList = resp;\n this.scrollToBottom();\n }\n });\n });\n }\n });\n }\n this.getBotUser();\n this.permissionService.getUserInfo().then(info => {\n this.token = info.token;\n this.username = info.displayName;\n this.userInfo = info;\n });\n }\n\n @HostListener('window:resize', [])\n onResize() {\n this.checkChatbotWidth();\n }\n ngAfterViewInit() {\n this.checkChatbotWidth();\n }\n\n private checkChatbotWidth() {\n this.screenWidth = this.cbChatbot?.nativeElement?.offsetWidth;\n console.log('cb-chatbot width:', this.screenWidth);\n // Assuming mobile width to be less than 768px\n if (window.innerWidth < 426) {\n if (this.isShowChatBot) {\n this.showBotOnMobile = false;\n }\n\n console.log('Mobile screen detected');\n // Perform any additional actions if needed\n } else {\n this.showBotOnMobile = true;\n }\n }\n\n ngOnInit(): void {\n this.idleService.onUserIdle.subscribe(() => {\n this.noCsoAvailable = true;\n // Alerts.showErrorMessage('You are idle for 5 minutes, Please click on the screen to continue');\n });\n\n this.message = this.messageService.msg;\n this.messageService.receiveMessages().subscribe((messages: any) => {\n console.log('Received messages:', messages);\n if (messages.type != 'LEAVE') {\n this.chatJson.push(messages);\n } else {\n this.gerRoomInfo();\n localStorage.removeItem('roomId');\n localStorage.removeItem('verify');\n }\n this.scrollToBottom();\n if (messages.userType === 'AGENT' && messages.sender != 'BOT') {\n this.idleService.clearTimer();\n }\n this.cdk.detectChanges();\n });\n this.getServicesAgree();\n }\n\n getBotUser() {\n this.chatService.getBotUser().subscribe(resp => {\n this.botUser = resp;\n });\n }\n\n liveChatEnable() {\n this.liveChat = true;\n this.chats = [];\n // this.chatJson.push();\n const modal = {\n type: 'CHAT',\n content: this.lang == 'en' ? 'Please wait when we are connecting you to our Customer Service Officer.' : '請稍候,我們正在為您連接到我們的客戶服務主任。',\n userId: this.botUser.identityId,\n userType: 'AGENT',\n sender: 'BOT',\n };\n this.messageService.sendMessage(modal, this.roomId);\n this.getIdleUser();\n this.gerRoomInfo();\n\n // this.chatJson=this.messageService.receiveMessages()\n // element.value = '';\n }\n\n closePopUpIfClickedOutside(event: Event) {\n const targetElement = event.target as HTMLElement;\n const chatPopup = document.querySelector('.cb-userchatbot');\n\n // If the click target is outside the chat popup, close it\n if (this.showPopUp && chatPopup && !chatPopup.contains(targetElement)) {\n this.showPopUp = false;\n }\n }\n\n checkGroupNo() {\n this.liveChat = true;\n this.groupNumber = false;\n this.chats = [];\n const model = {\n type: 'CHAT',\n content:\n this.lang == 'en'\n ? `

    If the enquiry is policy-related, please provide the customer's policy number in the fields below. If it is a general enquiry, please leave the fields blank. Then please press the \"Send\"/ button on the right to connect to CSO live chat.

    `\n : '如果是與保單相關查詢,請於下方欄位提供客戶的保單號碼。如果是一般查詢,請將欄位留空。之後請按右側的 \"Send\"/ 按鈕連接到 CSO 即時聊天',\n userId: '',\n userType: 'AGENT',\n sender: 'BOT',\n };\n this.chatJson.push(model);\n // this.messageService.sendMessage(mode, this.roomId);\n // this.chatJson=this.messageService.receiveMessages()\n }\n\n sendGroupNo() {\n if (this.groupNo || (!this.certNo && !this.groupNo)) {\n this.chatService\n .checkGroupNo(this.certNo || null, this.groupNo || null, this.userInfo.id, this.roomId)\n .pipe(finalize(() => {}))\n .subscribe((data: any) => {\n if (data.result === -99) {\n Alerts.showErrorMessage(data.message);\n } else {\n this.checkAvailableCSO();\n }\n });\n } else {\n Alerts.showErrorMessage('You must input both Group No. and Cert No');\n }\n }\n\n checkAvailableCSO() {\n this.chatService.checkAvailableCSO().subscribe((resp: any) => {\n if (resp?.status) {\n this.groupNumber = true;\n localStorage.setItem('verify', 'true');\n this.liveChatEnable();\n } else {\n this.allCsobusy = true;\n }\n });\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n if (this.groupNumber && this.liveChat) {\n this.sendMessage();\n }\n }\n }\n\n backToMessage() {\n this.chats = this.canedList;\n this.showBack = false;\n this.oldcanedList = [];\n this.showLiveButton = false;\n }\n\n backToPrevousMessage() {\n this.showBack = this.oldcanedList.length > 0 ? true : false;\n this.showLiveButton = false;\n let item = this.oldcanedList.pop();\n if (item.parentId) {\n this.chatService.getParentById(item.parentId).subscribe(resp => {\n if (resp) {\n this.chats = resp;\n }\n });\n } else {\n this.chats = [item];\n }\n }\n\n async sendMessage() {\n const element = document.getElementById('chatMessage') as HTMLInputElement;\n if (element.value) {\n const val = Helper.maskPII(element.value);\n const mode = {\n type: 'CHAT',\n content: val,\n userId: this.userInfo.id,\n userType: 'USER',\n sender: this.username,\n };\n this.messageService.sendMessage(mode, this.roomId);\n this.scrollToBottom();\n // this.chatJson=this.messageService.receiveMessages()\n element.value = '';\n }\n }\n sendNumber() {}\n\n inrecmentIndex() {\n if (this.index + 1 < this.introJson.length) {\n this.index = this.index + 1;\n } else {\n this.index = 0;\n }\n this.introJson.forEach((item: any, i: any) => {\n if (this.index == i) {\n item.active = true;\n } else {\n item.active = false;\n }\n });\n this.cdk.detectChanges();\n }\n\n previousIndex() {\n if (this.index - 1 >= 0) {\n this.index = this.index - 1;\n } else {\n this.index = this.introJson.length - 1;\n }\n this.introJson.forEach((item: any, i: any) => {\n if (this.index == i) {\n item.active = true;\n } else {\n item.active = false;\n }\n });\n this.cdk.detectChanges();\n }\n\n clickinrecmentIndex(ind: any) {\n this.introJson.forEach((item: any, i: any) => {\n if (ind == i) {\n this.index = ind;\n item.active = true;\n } else {\n item.active = false;\n }\n });\n }\n // /topic/public / { room }\n // / chat.addUser / { room }\n // {\n // \"type\": \"\",\n // \"content\" : \"\",\n // \"sender\" : \"\"\n // }\n\n getCanedResponse() {\n this.chatService.getParent().subscribe(resp => {\n if (resp) {\n if (!this.roomId) {\n this.chatService.getNewChatRoom(this.userInfo?.id).subscribe(val => {\n this.roomId = val.roomId;\n localStorage.setItem('roomId', this.roomId);\n localStorage.setItem('verify', 'false');\n this.messageService.initializeWebSocketConnection(this.roomId, 'User!').then(() => {\n this.chats = resp;\n this.canedList = resp;\n this.encodRoom = btoa(this.roomId);\n this.reloadSubject.next({ roomId: this.encodRoom, verify: false });\n this.cdk.detectChanges();\n });\n });\n } else {\n this.chats = resp;\n this.canedList = resp;\n this.cdk.detectChanges();\n }\n }\n });\n }\n\n onShowChatbot() {\n this.isShowChatBot = true;\n if (this.screenWidth < 425) {\n this.showBotOnMobile = false;\n }\n this.isShowChatBotIcon = false;\n this.isShowChatBotCloseIcon = true;\n this.cdk.detectChanges();\n }\n\n onHideChatbot() {\n this.isShowChatBot = false;\n if (this.screenWidth < 425) {\n this.showBotOnMobile = true;\n }\n this.isShowChatBotIcon = true;\n this.isShowChatBotCloseIcon = false;\n }\n\n onFileSelected(event: any) {\n console.log(event);\n }\n\n onFileChange(event: any) {\n this.uploadFile(event.target.files[0]);\n event.target.value = '';\n }\n\n uploadFile(file: any) {\n this.showPopUp = false;\n /* eslint-disable @typescript-eslint/no-this-alias */\n const that = this;\n const xhr = new XMLHttpRequest();\n const formData = new FormData();\n formData.append('file', file);\n this.fileUploaded(xhr, that, (data: any) => {\n data;\n });\n\n if (xhr.upload) {\n this.updateProgress(xhr, (data: any) => {\n // this.statusBar = data;\n data;\n });\n }\n xhr.open('POST', APIPaths.upload, true);\n xhr.setRequestHeader('Authorization', `${this.token}`);\n xhr.setRequestHeader('DisplayName', encodeURIComponent(this.userInfo?.displayName));\n xhr.setRequestHeader('Email', this.userInfo.email);\n xhr.setRequestHeader('Id', this.userInfo.id);\n xhr.setRequestHeader('CurrentLastUpdate', this.userInfo.currentLastUpdate.toString());\n xhr.setRequestHeader('Permissions', JSON.stringify(this.userInfo.permissions));\n xhr.send(formData);\n }\n\n fileUploaded(xhr: any, that: any, callback: any) {\n callback;\n xhr.onreadystatechange = function (e: any) {\n e;\n if (xhr.readyState === 4) {\n //Done\n if (xhr.status === 200) {\n //Loading/Done\n\n const response = JSON.parse(xhr.response);\n const mode = {\n type: 'FILE',\n content: xhr.response,\n userId: that.userInfo?.id,\n userType: 'USER',\n sender: that.username,\n };\n that.messageService.sendMessage(mode, that.roomId);\n }\n } else if (xhr.readyState === 1) {\n //loading\n }\n };\n }\n\n updateProgress(xhr: any, callback: any) {\n xhr.upload.onprogress = function (e: any) {\n if (e.lengthComputable) {\n this.statusBar = (e.loaded / e.total) * 100;\n callback((e.loaded / e.total) * 100);\n }\n };\n xhr.upload.onloadstart = function (e: any) {\n e;\n callback(0);\n };\n xhr.upload.onloadend = function (e: any) {\n e;\n callback(100);\n };\n }\n\n getServicesAgree() {\n this.chatService\n .getServicesAgree()\n .pipe(finalize(() => {}))\n .subscribe((data: any) => {\n if (data.length > 0) {\n this.introJson = data;\n this.introJson[0].active = true;\n }\n });\n }\n\n getresponce(item: any) {\n this.showBack = false;\n this.showLiveButton = false;\n this.oldcanedList.push(item);\n this.chats = [];\n\n const model = {\n type: 'CHAT',\n content: this.lang == 'en' ? item.msg : item.chineseMsg,\n userId: this.userInfo.id,\n username: this.username,\n sender: this.username,\n userType: 'USER',\n };\n this.messageService.sendMessage(model, this.roomId);\n // this.chatJson.push(model);\n\n setTimeout(() => {\n let ag = {\n type: 'CHAT',\n content: this.lang == 'en' ? item.ans : item.chineseAns,\n userId: this.botUser.identityId,\n userType: 'AGENT',\n sender: 'BOT',\n };\n\n this.messageService.sendMessage(ag, this.roomId);\n }, 300);\n setTimeout(() => {\n this.chatService.getParentById(item.id).subscribe(resp => {\n if (resp) {\n this.chats = resp;\n this.showLiveButton = item.enabled;\n\n this.showBack = true;\n }\n });\n }, 1000);\n }\n\n scrollToBottom(): void {\n try {\n setTimeout(() => {\n if (this.messageContainer?.nativeElement) this.messageContainer.nativeElement.scrollTop = this.messageContainer.nativeElement.scrollHeight + 350;\n }, 300);\n } catch (err) {}\n }\n gerRoomInfo() {\n this.chatService.getRoomInfo(this.roomId).subscribe(resp => {\n console.log(resp);\n this.roomInfo = resp.room;\n this.chatlogs = resp.log;\n this.cdk.detectChanges();\n });\n }\n\n showPopUp = false;\n showModal(event: Event) {\n event.stopPropagation();\n this.showPopUp = !this.showPopUp;\n }\n modalOptions: NgbModalOptions = {};\n modalRef: any;\n\n onCloseChatModal(model?: any, content?: any) {\n const popupRef = this.cdsPopup.open(CloseChatConfirmComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(data => {\n console.log(data); // { agree: true/false }\n if (data) {\n let modal = {\n policyNumber: this.roomInfo?.group_no,\n certificateNumber: this.roomInfo?.cert_no,\n type: '',\n subType: '',\n enquiryType: '',\n contactName: '',\n status: '',\n description: '',\n };\n this.exitChat();\n // this.cannedServices.closeChat(modal, { roomId: this.roomId }, 1).subscribe((resp: any) => {\n\n // });\n }\n });\n }\n\n getPath(content: any) {\n let dat = JSON.parse(content);\n return dat.filePath;\n }\n\n exitChat() {\n this.reloadSubject.next(undefined);\n let modal = {\n policyNumber: this.roomInfo?.group_no,\n certificateNumber: this.roomInfo?.cert_no,\n type: '',\n subType: '',\n enquiryType: '',\n contactName: '',\n status: '',\n description: '',\n };\n this.cannedServices.closeChat(modal, { roomId: this.roomId }, 1).subscribe((resp: any) => {\n this.messageService.closeWebSocketConnection();\n });\n this.noCsoAvailable = false;\n this.allCsobusy = false;\n localStorage.removeItem('roomId');\n localStorage.removeItem('verify');\n this.chatlogs = null;\n this.liveChat = false;\n this.agrement = false;\n this.showNext = false;\n this.showPopUp = false;\n this.certNo = '';\n this.groupNo = '';\n this.chatJson = [];\n this.roomInfo = null;\n this.roomId = null;\n this.showBack = false;\n this.showLiveButton = false;\n this.cdk.detectChanges();\n }\n\n idleTimer: any;\n getIdleUser() {\n this.chatService.getAlert().subscribe((resp: any) => {\n let obj = resp.find((item: any) => item?.autoMsgType == 'NO_CSO');\n if (obj) {\n let sec = obj.minutes * 60 * 1000;\n this.idleService.startUserListening(sec);\n }\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n

    iPension chatbot

    \n {{ roomInfo?.group_no && roomInfo?.group_no != 'null' ? roomInfo?.group_no + ' -' : '' }}\n {{ roomInfo?.cert_no && roomInfo?.cert_no != 'null' ? roomInfo?.cert_no : '' }}\n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n

    {{ lang == 'en' ? 'Connection Failed' : '現在線路繁忙 ' }}

    \n

    {{ lang == 'en' ? 'Please try again later' : '請稍後重試。' }}

    \n

    \n {{\n lang == 'en'\n ? 'You can contact us via email and we will reply you within 3 working days.'\n : '您可以透過電子郵件聯絡我們,我們將在 3 個工作天內回覆您。'\n }}\n \n

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

    Session Full

    \n

    Please come back in 30 mins

    \n

    \n You can send your question to\n {{ 'DEC_MPF_HK@manulife.com' }}\n and our CSOs will reply to you within 2 working days.\n

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

    {{ lang == 'en' ? 'The live chat has ended.' : '即時聊天已結束' }}

    \n

    {{ lang == 'en' ? 'Thank you for using our service.' : '感謝您使用我們的服務。 ' }}.

    \n
    \n \n
    \n
    \n\n \n\n \n \n\n \n\n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n {{ lang == 'en' ? 'Next' : '下一步' }}\n \n 0\" [size]=\"'sm'\" [style]=\"'primary'\" (click)=\"previousIndex()\">\n {{ lang == 'en' ? 'Previous' : '上一步' }}\n \n\n {{ lang == 'en' ? 'Start' : '開始' }}\n\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n \n
    \n
    \n
    \n\n
    {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}
    \n\n
    \n
    \n \"\"\n
    \n {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n

    {{ obj.sender }}

    \n
    \n
    \n
    {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}
    \n
    \n\n
    \n

    \n
    \n \n CSO {{ obj.sender }} is currently handling your enquiry.\n \n \n 客戶服務主任 {{ obj.sender }} 正在處理您的查詢。\n \n
    \n
    {{ obj?.msgDate | date : 'yyyy/MM/ddy HH:mm' }}
    \n
    \n\n
    \n

    {{ obj.sender }}

    \n
    \n \"\"\n
    \n {{ obj?.msgDate | date : 'yyyy/MM/dd HH:mm' }}\n
    \n
    \n
    \n
    \n\n \n \n
      \n \n
    • \n
    \n \n
  • \n
    \n
  • \n \n \n
      \n
    • \n
      \n {{ lang == 'en' ? 'Return to home directory' : '返回主目錄' }}\n
      \n
    • \n
    • 0\">\n
      \n {{ lang == 'en' ? 'Return to previous directory' : '返回上一個目錄' }}\n
      \n
    • \n
    • \n
      \n {{ lang == 'en' ? 'Chat with CSO' : '與 CSO 對話' }}\n
      \n
    • \n
    \n \n
    \n \n \n \n\n \n \n
    \n
      \n
    • \n {{ lang == 'en' ? 'Next' : '下一步' }}\n
    • \n
    \n \n
    \n\n\n
    \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n
      \n \n
    • Close Chat
    • \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport Big from 'big.js';\nimport { deepCopy } from 'src/app/utils/copy';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\n\nimport { texts } from 'src/app/views/commission/summary/pool-info.model';\nimport { AdjustmentService } from 'src/app/core/services/commission/commission-adjustment.service';\nimport { CommissionPoolService } from 'src/app/core/services/commission/commission-pool.service';\nimport { AccountType, AccountTypesIndividual, CustomerStatus } from 'src/app/core/models/enum';\n\nimport { AdjustTypes, AccountAdjMap } from './ad-individual-transfer.model';\nimport { Validator } from '../adjustment.validator';\n\n@Component({\n selector: 'app-ad-individual-transfer',\n templateUrl: './ad-individual-transfer.component.html',\n styleUrls: ['./ad-individual-transfer.component.scss'],\n})\nexport class adIndividualTransferComponent implements OnInit {\n accountType = AccountType;\n constructor(\n private cdsPopup: CdsPopupService,\n private adjustmentService: AdjustmentService,\n private poolService: CommissionPoolService,\n private validator: Validator\n ) {}\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n loading = false;\n searchForm0 = {\n type: 2,\n commissionPoolId: '',\n accountType: '',\n accountTypeStr: '',\n accountCode: '',\n accountName: '',\n searchDisabled: true,\n errorMsg: '',\n warningMsg: '',\n policyWarning: '',\n };\n searchForm = deepCopy(this.searchForm0);\n\n saveDisabled = true;\n editStatus = true;\n isConfirm = false;\n accountTypes = AccountTypesIndividual;\n adjustTypes = AdjustTypes;\n adjustItems: any = {\n adjustType: '',\n adjustTypeStr: '',\n amount: '0.00',\n amountPremium: '0.00',\n hide: false,\n adjustTypes2: deepCopy(AdjustTypes),\n };\n item = {\n config: { size: 'sm', label: 'Negative Values On' },\n negativeOn: false,\n accountCode: '',\n agentCode: '',\n adjustItems: [deepCopy(this.adjustItems)],\n };\n dataSource = [deepCopy(this.item)];\n\n selectNegative(value: any, i: number) {\n this.saveDisabled = true;\n this.validator.negativeValidation(this.dataSource, value, i, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputMember(event: any, i: number) {\n this.saveDisabled = true;\n event.target.value = event.target.value.replace(/[^\\d]+/g, '');\n this.validator.memberValidation(this.dataSource, event.target.value, i, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputAgentCode(event: any, i: number, j: number) {\n this.saveDisabled = true;\n event.target.value = event.target.value.replace(/[^\\d]+/g, '');\n this.validator.agentCodeValidation(this.dataSource, event.target.value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputAdjustType(event: any, i: number, j: number) {\n this.saveDisabled = true;\n this.dataSource[i].adjustItems[j].adjustTypes2 = this.adjustTypes.filter(item => item.label && item.label.indexOf(event.target.value) != -1);\n this.validator\n .adjustTypeValidation(this.dataSource, this.dataSource[i].adjustItems[j].adjustTypes2, event.target.value, i, j, this.searchForm)\n .then(res => {\n this.checkOpen(res);\n });\n }\n\n selectAdjustType(value: any, i: number, j: number) {\n this.saveDisabled = true;\n this.validator.adjustTypeValidation(this.dataSource, this.dataSource[i].adjustItems[j].adjustTypes2, value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputAmount(event: any, i: number, j: number) {\n this.saveDisabled = true;\n if (event && event.target.value && event.target.value != '-') {\n this.validator.amountValidation(this.dataSource, event.target.value, i, j, this.searchForm).then(res => {\n console.log('amountValidation');\n this.checkOpen(res);\n });\n }\n }\n\n inputAmountPremium(event: any, i: number, j: number) {\n this.saveDisabled = true;\n if (event && event.target.value && event.target.value != '-') {\n this.validator.amountPremiumValidation(this.dataSource, event.target.value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n }\n\n checkOpen(res: any) {\n this.saveDisabled = res.disable;\n if (res.errorMsg) {\n this.open(\n {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: res.errorMsg },\n },\n res.result\n );\n }\n }\n\n addAdjust(i: number) {\n this.dataSource[i].adjustItems.push(deepCopy(this.adjustItems));\n this.saveDisabled = this.validator.formValidation(this.dataSource, this.searchForm);\n }\n\n addAgent() {\n this.dataSource.push(deepCopy(this.item));\n this.saveDisabled = this.validator.formValidation(this.dataSource, this.searchForm);\n }\n\n delete(i: number, j: number) {\n if (this.dataSource[i].adjustItems && this.dataSource[i].adjustItems.length > j) {\n if (i > 0) {\n if (j == 0) {\n this.dataSource.splice(i, 1);\n } else {\n this.dataSource[i].adjustItems.splice(j, 1);\n }\n } else if (i == 0 && j > 0) {\n this.dataSource[i].adjustItems.splice(j, 1);\n }\n }\n this.validator.requestCheck(this.dataSource, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n backToEdit() {\n this.isConfirm = false;\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n this.isConfirm = true;\n this.searchForm.policyWarning = '';\n let policyCount = new Big(0);\n this.dataSource.forEach(item => {\n const adjustItems: any[] = item.adjustItems;\n adjustItems.forEach(subItem => {\n this.adjustTypes.forEach(type => {\n if (subItem.adjustType == type.value) {\n subItem.adjustTypeStr = type.label;\n }\n });\n if (subItem.adjustType == 'POLICY') {\n policyCount = policyCount.plus(new Big(subItem.amount));\n }\n });\n });\n if (!policyCount.eq(new Big(0)) && !policyCount.eq(new Big(1)) && !policyCount.eq(new Big(-1))) {\n this.searchForm.policyWarning =\n 'The total amount in Adjust Type: “20: Policy count (Individual Transfer)” isn’t integer and the sum range aren’t between -1 to 1';\n }\n }\n\n confirm() {\n this.loading = true;\n this.adjustmentService.addAdjustment(this.validator.mapList(this.dataSource, this.searchForm)).subscribe(resp => {\n this.loading = false;\n let popData, result: number;\n if (resp && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n this.open(popData, result);\n });\n }\n\n open(popData: any, result: number) {\n popData.size = 'lg';\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (result == 0) {\n this.reset(false);\n } else {\n this.backToEdit();\n }\n }\n });\n }\n\n searchChange(event?: any) {\n this.searchForm.errorMsg = '';\n this.searchForm.warningMsg = '';\n if (event && event.target) {\n event.target.value = event.target.value.replace(/[^\\d]+/g, '');\n this.searchForm.accountCode = event.target.value;\n if (!this.searchForm.accountCode) {\n this.searchForm.errorMsg = 'Account Type & Employer Account Code/ Member Account Code is (blank)';\n }\n }\n if (this.searchForm.accountType && this.searchForm.accountCode) {\n this.searchForm.searchDisabled = false;\n } else {\n this.searchForm.searchDisabled = true;\n }\n }\n\n search() {\n if (this.searchForm.searchDisabled) {\n return;\n }\n this.searchForm.commissionPoolId = '';\n this.searchForm.warningMsg = '';\n this.searchForm.errorMsg = '';\n const form = {\n accountType: this.searchForm.accountType,\n accountCode: this.searchForm.accountCode,\n currentEffective: true,\n page: 0,\n size: 1,\n status: 'VALID',\n };\n this.dataSource = [deepCopy(this.item)];\n this.isConfirm = false;\n this.saveDisabled = true;\n this.loading = true;\n this.poolService.selectList(form).subscribe(resp => {\n this.loading = false;\n if (resp && resp.data && resp.result == 0 && resp.data.content && resp.data.content.length > 0) {\n const commissionPoolCustomers: any[] = resp.data.content[0].commissionPoolCustomers;\n this.searchForm.commissionPoolId = resp.data.content[0].id;\n if (commissionPoolCustomers) {\n this.searchForm.accountTypeStr = commissionPoolCustomers[0].accountTypeStr;\n this.searchForm.accountName = commissionPoolCustomers[0].accountName;\n this.searchForm.warningMsg = commissionPoolCustomers[0].customerStatus == CustomerStatus.TERMINATED ? 'Terminated Account Code' : '';\n }\n this.loadInfo();\n }\n if (!this.searchForm.commissionPoolId) {\n this.searchForm.errorMsg = 'Cannot find the Employer Account Code/ Member Account Code on this Account Type';\n }\n });\n }\n\n reset(b: boolean) {\n if (b) {\n this.searchForm = deepCopy(this.searchForm0);\n }\n this.adjustItems.adjustTypes2 = deepCopy(this.adjustTypes);\n this.item.adjustItems = [deepCopy(this.adjustItems)];\n this.dataSource = [deepCopy(this.item)];\n this.backToEdit();\n }\n\n loadInfo() {\n if (!this.searchForm.commissionPoolId) {\n return;\n }\n this.adjustTypes = [];\n const arr = AccountAdjMap.get(this.searchForm.accountType);\n if (arr) {\n arr.forEach(adjustType => {\n AdjustTypes.forEach(item => {\n if (adjustType == item.value) {\n this.adjustTypes.push(item);\n }\n });\n });\n }\n this.reset(false);\n }\n\n alert() {\n const msg =\n '
    Only available for searching below account code:

    ' +\n '
    Employer Account Code on MPF-ER,MACAU-ER(CPF)
    ' +\n '
    Member Account Code on MPF-SEP, MPF-SEP(AGENT), MPF-TVC, MPF-PAP,MACAU-PAP,MACAU-IVC

    ';\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: msg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n ngOnInit(): void {}\n}\n","\n
    \n
    \n
    \n \n
    \n
    \n
    Account Type
    \n \n \n {{ option.label | lang }}\n \n \n
    \n
    \n
    \n Employer/Member Account Code\n \n
    \n \n
    \n Search \n Reset\n
    \n \n {{ searchForm.errorMsg | lang }}\n \n \n {{ searchForm.warningMsg | lang }}\n \n
    \n
    \n
    \n
    \n\n
    \n Make Adjustment \n
    \n
    \n
    \n \n
    \n
    \n {{ searchForm.accountName }}\n
    \n
    \n
    \n
    \n
    \n Account No. & Type      {{ searchForm.accountCode }},{{\n searchForm.accountTypeStr\n }}\n
    \n
    \n
    Commission Pool No.    {{ searchForm.commissionPoolId }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Member Account Code[PAC Flag]Agent codeAdjust TypeAdjust AmountPremium AdjustAction
    \n
    \n
    \n {{ item.accountCode }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ item.agentCode }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ subItem.adjustTypeStr }}\n
    \n
    \n \n \n \n \n
    \n \n \n {{ option.label | lang }}\n \n \n
    \n
    \n {{ subItem.amount }}\n
    \n \n
    \n
    \n {{ subItem.amountPremium }}\n
    \n \n
    \n
    \n Delete\n
    \n
    \n \n {{ item.memberError | lang }}\n \n \n \n {{ item.agentCodeError | lang }}\n \n \n \n {{ subItem.adjustTypeStr }} {{ subItem.adjustTypeError | lang }}\n \n \n {{ subItem.adjustTypeWarning | lang }}\n \n \n \n {{ subItem.amountError | lang }}\n \n \n {{ subItem.amountWarning | lang }}\n \n \n \n {{ subItem.amountPremiumError | lang }}\n \n \n {{ subItem.amountPremiumWarning | lang }}\n \n
    \n
    \n
    \n
    \n \n
    \n Add Adjust Type\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Add agent\n
    \n
    \n
    \n {{ searchForm.policyWarning | lang }} \n
    \n
    \n Reset\n Save\n
    \n
    \n Back to edit\n confirm\n
    \n
    \n
    \n
    \n","import { AccountType } from 'src/app/core/models/enum/account-type.enum';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\n\nconst adjustArray0: string[] = [ScaleType.IND_TRF_SP_PC, ScaleType.IND_TRF_SP, 'POLICY'];\nconst adjustArray1: string[] = [ScaleType.IND_FS_PC, ScaleType.IND_TRF_SP_PC, ScaleType.IND_TRF_SP, 'POLICY'];\n\nexport const AccountAdjMap = new Map([\n [AccountType.MPF_ER, adjustArray0],\n [AccountType.MPF_SEP, adjustArray0],\n [AccountType.MPF_SEP_AGENT, adjustArray0],\n [AccountType.MACAU_CPF_ER, adjustArray0],\n [AccountType.MACAU_PAP, adjustArray0],\n [AccountType.MPF_TVC, adjustArray0],\n [AccountType.MACAU_IVC, adjustArray0],\n [AccountType.MPF_PAP, adjustArray1],\n]);\n\nexport const AdjustTypes = [\n {\n label: '01: FS HKPC (Individual Transfer)',\n value: ScaleType.IND_FS_PC,\n correspondingScale: '',\n ptd: 'FS HKPC PTD',\n },\n {\n label: '03: TRF SP HKPC (Individual Transfer)',\n value: ScaleType.IND_TRF_SP_PC,\n correspondingScale: 'TRF SP HKPC Scale',\n ptd: 'TRF SP HKPC PTD',\n },\n {\n label: '13: TRF SP COMM (Individual Transfer)',\n value: ScaleType.IND_TRF_SP,\n correspondingScale: 'TRF SP COMM Scale',\n ptd: 'TRF SP COMM PTD',\n },\n {\n label: '20: Policy count (Individual Transfer)',\n value: 'POLICY',\n correspondingScale: '',\n ptd: '',\n },\n];\n","import { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\n\nexport const TAB = [\n {\n label: 'Normal Compensation',\n value: 'normalCompensation',\n backTabType: 'agents',\n permissionAccess: PermissionAccess.W,\n permissionItem: PermissionItem.COMM_ADJ_NORMAL,\n },\n {\n label: 'Individual Transfer',\n value: 'individualTransfer',\n backTabType: 'agents',\n permissionAccess: PermissionAccess.W,\n permissionItem: PermissionItem.COMM_ADJ_INDIVIDUAL,\n },\n {\n label: 'Appeal Case',\n value: 'appealCase',\n backTabType: 'individualTransfer',\n permissionAccess: PermissionAccess.W,\n permissionItem: PermissionItem.COMM_ADJ_APPEAL,\n },\n];\n","/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { TAB } from './adjustment.component.config';\n\n@Component({\n selector: 'app-commission-adjustment',\n templateUrl: './adjustment.component.html',\n styleUrls: ['./adjustment.component.scss'],\n})\nexport class AdjustmentComponent implements OnInit {\n isshowBack = false;\n commissionPoolId = '';\n referenceNo = '';\n\n tab: any[] = [];\n tabSelected: any;\n\n constructor(private router: Router, private route: ActivatedRoute, private permissionService: PermissionService) {}\n\n ngOnInit(): void {\n const promiseAll: Promise[] = [];\n TAB.forEach(item => {\n promiseAll.push(this.permissionService.hasPermission(item.permissionAccess, item.permissionItem));\n });\n Promise.all(promiseAll).then(arr => {\n const tab: any[] = [];\n arr.forEach((item: any, index: number) => {\n if (item) tab.push(TAB[index]);\n });\n this.tab = tab;\n this.commissionPoolId = this.route.snapshot.paramMap.get('commissionPoolId') || '';\n const tabSelected = this.route.snapshot.paramMap.get('tabSelected');\n this.referenceNo = this.route.snapshot.paramMap.get('referenceNo') || '';\n this.tabSelected = this.tab.find(item => item.value === tabSelected) || this.tab[0];\n if (this.commissionPoolId || this.referenceNo) {\n this.isshowBack = true;\n }\n });\n }\n\n doBackMethod() {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: this.commissionPoolId,\n tabType: this.tabSelected?.backTabType,\n },\n });\n }\n\n tabClick(tab: any) {\n this.tabSelected = tab;\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n {{ item.label | lang }}\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport Big from 'big.js';\nimport { generateUUID } from 'src/app/utils/uuid';\nimport { AdjustmentService } from 'src/app/core/services/commission/commission-adjustment.service';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { AccountType } from 'src/app/core/models/enum';\n\n@Injectable({ providedIn: 'root' })\nexport class Validator {\n constructor(private adjustmentService: AdjustmentService) {}\n\n negativeValidation(list: any[], b: boolean, i: number, form: any) {\n const adjustItems: any[] = list[i].adjustItems;\n if (adjustItems) {\n list[i].negativeOn = b;\n adjustItems.forEach(item => {\n if (item.amount) {\n if (item.amount > 0 && b) {\n item.amount = new Big(item.amount).neg();\n }\n if (item.amount < 0 && !b) {\n item.amount = new Big(item.amount).abs();\n }\n if (item.adjustType && item.adjustType.indexOf('PC') == -1) {\n item.amount = String(new Big(item.amount).toFixed(2));\n }\n }\n if (item.amountPremium) {\n if (item.amountPremium > 0 && b) {\n item.amountPremium = String(new Big(item.amountPremium).neg().toFixed(2));\n }\n if (item.amountPremium < 0 && !b) {\n item.amountPremium = String(new Big(item.amountPremium).abs().toFixed(2));\n }\n }\n });\n }\n return this.requestCheck(list, form);\n }\n\n memberValidation(list: any[], value: any, i: number, form: any) {\n list[i].accountCode = value;\n list[i].memberError = '';\n if (!value && (form.accountType == AccountType.MPF_ER || form.accountType == AccountType.MACAU_CPF_ER)) {\n list[i].memberError = 'Member Account Code [PAC Flag] is blank';\n }\n list.forEach(item => {\n if (item.accountCode && form.accountType == AccountType.MPF_SEP && item.accountCode != form.accountCode) {\n item.memberError = 'Member Account Code on [PAC Flag] isn’t equal the number of searched MPF-SEP';\n }\n if (item.accountCode && form.accountType == AccountType.MPF_SEP_AGENT && item.accountCode != form.accountCode) {\n item.memberError = 'Member Account Code on [PAC Flag] isn’t equal the number of searched MPF-SEP (AGENT)';\n }\n });\n return this.requestCheck(list, form);\n }\n\n agentCodeValidation(list: any[], value: any, i: number, j: number, form: any) {\n list[i].agentCode = value;\n list[i].agentCodeError = '';\n if (!value) {\n list[i].agentCodeError = 'Agent code is blank';\n }\n return this.requestCheck(list, form);\n }\n\n adjustTypeValidation(list: any[], adjustTypes: any[], value: any, i: number, j: number, form: any): Promise {\n list.forEach(item => {\n const adjustItems: any[] = item.adjustItems;\n adjustItems.forEach(subItem => {\n subItem.adjustTypeError = '';\n });\n });\n if (list[i].adjustItems[j].adjustTypes2.length == 0) {\n list[i].adjustItems[j].adjustTypeError = 'Input Adjust type is Invalid';\n }\n list[i].adjustItems[j].adjustType = '';\n list[i].adjustItems[j].correspondingScale = '';\n list[i].adjustItems[j].ptd = '';\n adjustTypes.forEach(item => {\n if (item.label == value) {\n list[i].adjustItems[j].adjustType = item.value;\n list[i].adjustItems[j].correspondingScale = item.correspondingScale;\n list[i].adjustItems[j].ptd = item.ptd;\n }\n });\n value = list[i].adjustItems[j].adjustType;\n if (value) {\n list[i].adjustItems[j].hide = false;\n const amount: string = list[i].adjustItems[j].amount;\n const amountPremium: string = list[i].adjustItems[j].amountPremium;\n if (amount) {\n if (value.indexOf('PC') !== -1) {\n list[i].adjustItems[j].amount = new Big(amount).toFixed(0);\n } else {\n list[i].adjustItems[j].amount = new Big(amount).toFixed(2);\n }\n }\n if (amountPremium && amountPremium !== '-') {\n list[i].adjustItems[j].amountPremium = new Big(amountPremium).toFixed(2);\n }\n // 'IND_FS_PC' for Individual Transfer page\n if (value.indexOf('POLICY') !== -1 || value == 'IND_FS_PC') {\n list[i].adjustItems[j].hide = true;\n list[i].adjustItems[j].amount = '0.00';\n list[i].adjustItems[j].amountPremium = '0.00';\n }\n }\n return this.requestCheck(list, form);\n }\n\n amountValidation(list: any[], value: any, i: number, j: number, form: any): Promise {\n const adjustType: string = list[i].adjustItems[j].adjustType;\n if (adjustType && adjustType.indexOf('PC') !== -1) {\n list[i].adjustItems[j].amount = new Big(value).toFixed(0);\n } else {\n list[i].adjustItems[j].amount = new Big(value).toFixed(2);\n }\n return this.requestCheck(list, form);\n }\n\n amountPremiumValidation(list: any[], value: any, i: number, j: number, form: any): Promise {\n list[i].adjustItems[j].amountPremium = new Big(value).toFixed(2);\n return this.requestCheck(list, form);\n }\n\n formValidation(list: any[], form: any, response?: boolean) {\n if (!response) {\n const map = new Map();\n const set = new Set();\n list.forEach(item => {\n const adjustItems: any[] = item.adjustItems;\n adjustItems.forEach(subItem => {\n subItem.adjustTypeError = '';\n subItem.adjustTypeWarning = '';\n if (subItem.adjustType) {\n if (!set.has(item.agentCode + subItem.adjustType)) {\n set.add(item.agentCode + subItem.adjustType);\n } else {\n subItem.adjustTypeError = 'occur one more time in this adjustment';\n }\n }\n subItem.amountError = '';\n subItem.amountWarning = '';\n subItem.amountPremiumError = '';\n subItem.amountPremiumWarning = '';\n // subItem.hide unuse, always be false\n if (!subItem.hide) {\n const key: string = item.agentCode + subItem.adjustType;\n if (!map.get(key)) {\n map.set(key, { adjustTypeStr: subItem.adjustTypeStr, amountPremium: subItem.amountPremium });\n }\n const adjustTypeMap = new Map([\n [ScaleType.FS_PC, ScaleType.FY],\n [ScaleType.PS_PC, ScaleType.PS],\n [ScaleType.TRF_SP_PC, ScaleType.TRF_SP],\n [ScaleType.RY_PC, ScaleType.FS_SF],\n [ScaleType.IND_TRF_SP_PC, ScaleType.IND_TRF_SP],\n\n [ScaleType.FY, ScaleType.FS_PC],\n [ScaleType.PS, ScaleType.PS_PC],\n [ScaleType.TRF_SP, ScaleType.TRF_SP_PC],\n [ScaleType.FS_SF, ScaleType.RY_PC],\n [ScaleType.IND_TRF_SP, ScaleType.IND_TRF_SP_PC],\n ]);\n const relatedAdjustType = adjustTypeMap.get(subItem.adjustType);\n if (relatedAdjustType) {\n const obj: any = map.get(item.agentCode + String(relatedAdjustType));\n if (subItem.adjustTypeStr && obj && !new Big(obj.amountPremium).eq(subItem.amountPremium)) {\n subItem.amountPremiumError =\n (item.agentCode ? item.agentCode + ': ' : '') + 'The Premium amount should be the same in ' + obj.adjustTypeStr + '&' + subItem.adjustTypeStr;\n }\n }\n }\n });\n });\n }\n let b = false;\n list.forEach(item => {\n if (item.memberError) {\n b = true;\n }\n // type == 2 for Individual Transfer page, type = 1 for Normal Compensation\n if (form.type == 2) {\n if (form.accountType == 'MPF_ER' && !item.accountCode) {\n b = true;\n }\n }\n if (!item.agentCode) {\n b = true;\n }\n if (item.agentCodeError) {\n b = true;\n }\n if (item.agentCode && item.agentCode.length < 6) {\n b = true;\n }\n const adjustItems: any[] = item.adjustItems;\n adjustItems.forEach(subItem => {\n if (!subItem.adjustType || !subItem.amount || !subItem.amountPremium) {\n b = true;\n }\n if (subItem.amount == 0) {\n b = true;\n }\n if (subItem.amount == 0 && subItem.amountPremium == 0) {\n b = true;\n }\n if (subItem.adjustTypeError) {\n b = true;\n }\n if (subItem.amountPremiumError) {\n b = true;\n }\n if (subItem.amountError) {\n b = true;\n }\n });\n });\n return b;\n }\n\n requestId = '';\n requestCheck(list: any[], form: any): Promise {\n return new Promise(resolve => {\n if (this.formValidation(list, form)) {\n resolve({ disable: true });\n } else {\n const params: any = this.mapList(list, form);\n this.requestId = generateUUID();\n console.log('request Id: ' + this.requestId);\n params.requestId = this.requestId;\n this.adjustmentService.check(params).subscribe(res => {\n if (res.requestId == this.requestId) {\n if (res && res.result == 0 && res.data) {\n this.reverseList(list, res.data, params.type);\n resolve({ disable: this.formValidation(list, form, true) });\n } else {\n resolve({ disable: true, errorMsg: res.message });\n }\n }\n });\n }\n });\n }\n\n mapList(list: any[], form: any) {\n const params: any[] = [];\n list.forEach(i => {\n const adjustItems: any[] = i.adjustItems;\n adjustItems.forEach(j => {\n const id = generateUUID();\n j.id = id;\n params.push({\n id: id,\n commissionPoolId: form.commissionPoolId,\n accountCode: i.accountCode,\n agentCode: i.agentCode,\n adjustType: j.adjustType,\n amount: j.amount,\n amountPremium: j.amountPremium,\n adjustTypeError: 0,\n amountError: 0,\n premiumError: 0,\n });\n });\n });\n return { list: params, type: form.type, searchAccountCode: form.accountCode, searchAccountType: form.accountType };\n }\n\n reverseList(list: any[], resList: any[], type: number) {\n list.forEach(i => {\n const adjustItems: any[] = i.adjustItems;\n adjustItems.forEach(j => {\n resList.forEach(item => {\n if (j.id == item.id) {\n i.memberError = '';\n i.agentCodeError = '';\n j.adjustTypeError = '';\n j.adjustTypeWarning = '';\n j.amountError = '';\n j.amountWarning = '';\n j.amountPremiumError = '';\n j.amountPremiumWarning = '';\n if (item.memberError == 1) {\n i.memberError = 'Member Account Code on [PAC Flag] isn’t one of the member of searched MPF-ER/MACAU-ER(CPF) ';\n }\n if (item.agentCodeError == 1) {\n i.agentCodeError = 'Agent code is Invalid';\n }\n if (item.duplicateError == 1) {\n j.adjustTypeError = 'occur one more time in this adjustment';\n }\n if (item.adjustTypeError == 2) {\n j.adjustTypeWarning = j.adjustTypeStr + ': The corresponding scale is without any scale code or the scale code is equal to NOCOMM';\n }\n if (item.amountError == 1) {\n j.amountError =\n 'The reverse value on “Adjust Amount” is larger than ' +\n j.ptd +\n ' field on this Agent Code in the ' +\n (type == 1 ? 'Agent Compensation Section' : 'Individual Transfer Section');\n }\n if (item.amountError == 1 && type == 1 && item.agentCodeError == 2) {\n j.amountError =\n 'Not allow to revise the negative value on Adjust Amount, this Agent Code isn’t one of the regular agent in the Agent Compensation Section';\n }\n if (item.amountError == 2) {\n j.amountWarning =\n 'The reverse value on “Adjust Amount” is larger than ' +\n j.ptd +\n ' field on this Agent Code in the ' +\n (type == 1 ? 'Agent Compensation Section' : 'Individual Transfer Section');\n }\n if (item.amountPremiumError == 1) {\n j.amountPremiumError =\n 'The reverse value on “Premium Adjust” is larger than “Prem PTD” field on ' +\n j.correspondingScale +\n ' in ' +\n (type == 1 ? 'Scale Record Detail section' : 'Individual Transfer section');\n }\n if (item.amountPremiumError == 2) {\n j.amountPremiumWarning =\n 'The reverse value on “Premium Adjust” is larger than “Prem PTD” field on ' +\n j.correspondingScale +\n ' in ' +\n (type == 1 ? 'Scale Record Detail section' : 'Individual Transfer section');\n }\n }\n });\n });\n });\n }\n}\n","/* eslint-disable no-useless-escape */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { finalize } from 'rxjs';\nimport moment from 'moment';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_SIZE } from '@cds/ng-core/configuration';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\n\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\n\nimport { CommissionAppealCaseService } from 'src/app/core/services/commission/commission-appeal-case.service';\nimport { CommissionDefaultScaleService } from '../../commission-default-scale/commission-default-scale.service';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport { I18N_KEY, PENDING_TRANSACTION_COLUMNS, COMM_FLAGS, COMM_FLAGS_OTHER, BLANK, PAGE_SIZE } from './appeal-case.config';\nimport { AgentCodeAsyncValidator } from './appeal-case.validators';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { AccountTypes } from 'src/app/core/models/enum/account-type.enum';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { requiredValidator, agentCodeValidator, ScaleCodeAsyncValidator } from 'src/app/core/validators';\nimport { DefaultScaleType } from 'src/app/core/models/enum/default-scale-type.enum';\n\n@Component({\n selector: 'app-appeal-case',\n templateUrl: './appeal-case.component.html',\n styleUrls: ['./appeal-case.component.scss'],\n})\nexport class appealCaseComponent implements OnInit {\n @Input() commissionPoolId = '';\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n searchRecord: any;\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n\n errors: any;\n isSearchloading = false;\n previousSearchParams: any;\n pageConfig: PageConfig = {};\n columnsConfig: Array = PENDING_TRANSACTION_COLUMNS;\n dataDisplayed: Array = [];\n\n defaultScales: any;\n editRow: any;\n dataMakeAppealSource: any;\n dataMakeAppeal: Array = [];\n isEdit = false;\n isSaveLoading = false;\n commFlagConfig: CdsDropdownConfig = {\n options: [],\n };\n\n formGroup: FormGroup = new FormGroup({\n details: new FormArray([]),\n commFlag: new FormControl('', [Validators.required]),\n trfsppcCode: new FormControl('', {\n validators: [requiredValidator({ error: I18N_KEY.SCALE_CODE_NULL })],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n }),\n trfspCode: new FormControl('', {\n validators: [requiredValidator({ error: I18N_KEY.SCALE_CODE_NULL })],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n }),\n fshkpcCode: new FormControl('', {\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n }),\n });\n\n get makeAppeal() {\n return this.formGroup?.get('details') as FormArray;\n }\n get commFlag() {\n return this.formGroup?.get('commFlag') as FormControl;\n }\n get trfsppcCode() {\n return this.formGroup?.get('trfsppcCode') as FormControl;\n }\n get trfspCode() {\n return this.formGroup?.get('trfspCode') as FormControl;\n }\n get fshkpcCode() {\n return this.formGroup.get('fshkpcCode') as FormControl;\n }\n\n get isResetDisable() {\n if (this.dataMakeAppealSource.length !== this.dataMakeAppeal.length) {\n return false;\n }\n const rawRalue = this.formGroup.getRawValue();\n let tag = true;\n for (const key in rawRalue) {\n if (key === 'details') {\n rawRalue[key].forEach((item: any) => {\n const tempAgentInfo = this.dataMakeAppeal.find(agent => agent.agentCode == item.agentCode);\n if (!tempAgentInfo) {\n tag = false;\n } else {\n const keys = Object.keys(item);\n keys.forEach(key => {\n if (tempAgentInfo[key] != item[key]) {\n tag = false;\n }\n });\n }\n });\n } else {\n const rawRalueTemp = rawRalue[key] || '';\n const originalValueTemp = this.editRow[key] || '';\n if (rawRalueTemp !== originalValueTemp) {\n tag = false;\n }\n }\n }\n return tag;\n }\n\n get isSaveDisable() {\n let tag = false;\n const rawRalue = this.formGroup.getRawValue()['details'];\n rawRalue.forEach((item: any) => {\n const keys = Object.keys(item);\n let sumSharing = 0;\n keys.forEach(key => {\n if (key !== 'agentCode') {\n sumSharing += item[key] * 1;\n }\n if (!item[key]) {\n tag = true;\n }\n });\n if (sumSharing === 0) {\n tag = true;\n }\n });\n return tag || this.isResetDisable || this.formGroup.invalid || !this.formGroup.dirty || this.formGroup.pending || this.isSaveLoading;\n }\n\n constructor(\n private commissionAppealCaseService: CommissionAppealCaseService,\n private scaleCodeAsyncValidator: ScaleCodeAsyncValidator,\n private agentCodeAsyncValidator: AgentCodeAsyncValidator,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private route: ActivatedRoute,\n private router: Router,\n private permissionService: PermissionService,\n private commissionDefaultScaleService: CommissionDefaultScaleService\n ) {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.COMM_INFO_INDIVIDUAL_TRF).then(hasPermission => {\n if (!hasPermission) {\n this.columnsConfig = PENDING_TRANSACTION_COLUMNS.slice(1);\n }\n });\n this.commFlag.valueChanges.subscribe(value => {\n const selector = this.commFlagConfig.options.find(item => item.value === value) as any;\n this.trfsppcCode.reset({\n value: selector?.detail?.IND_TRF_SP_PC?.trim() || '',\n disabled: value !== COMM_FLAGS_OTHER.value,\n });\n this.trfspCode.reset({\n value: selector?.detail?.IND_TRF_SP?.trim() || '',\n disabled: value !== COMM_FLAGS_OTHER.value,\n });\n this.fshkpcCode.reset({\n value: selector?.detail?.IND_FS_PC?.trim() || '',\n disabled: value !== COMM_FLAGS_OTHER.value,\n });\n this.validateAgentCode();\n });\n this.fshkpcCode.valueChanges.subscribe(() => {\n this.validateAgentCode();\n });\n }\n\n ngOnInit(): void {\n this.initDefaultScale();\n }\n\n initDefaultScale() {\n this.commissionDefaultScaleService\n .getList({\n page: 0,\n size: 10000,\n defaultScaleType: DefaultScaleType.MPF_IND,\n })\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n const data = res.data.content || [];\n this.defaultScales = data.map((item: any) => {\n item.value = `${item.agentChannel}_${item.compensationRate}`;\n item.label = COMM_FLAGS[item.value as unknown as keyof typeof COMM_FLAGS];\n return item;\n });\n this.initData();\n } else {\n this.openAlertPop(res.message);\n }\n });\n }\n\n initData() {\n this.commissionPoolId = this.route.snapshot.paramMap.get('commissionPoolId') || '';\n const referenceNo = this.route.snapshot.paramMap.get('referenceNo') || '';\n if (this.commissionPoolId && referenceNo) {\n this.getMakeAppealData({\n referenceNo: referenceNo,\n page: 0,\n size: PAGE_SIZE,\n commissionPoolId: this.commissionPoolId,\n });\n } else {\n this.search({});\n }\n }\n\n search(params: any) {\n if (this.isSearchloading) {\n return;\n }\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n const apiParams = { ...params, page: 0, size: PAGE_SIZE };\n if (this.commissionPoolId) {\n apiParams.commissionPoolId = this.commissionPoolId;\n }\n if (apiParams.receivedDateFrom) {\n apiParams.receivedDateFrom = moment(apiParams.receivedDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (apiParams.receivedDateTo) {\n apiParams.receivedDateTo = moment(apiParams.receivedDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n this.getPendingData(apiParams);\n }\n\n getPendingData(params: any) {\n this.isSearchloading = true;\n this.commissionAppealCaseService\n .getPendingTransationData(params)\n .pipe(\n finalize(() => {\n this.isSearchloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.initTableData(res.data);\n this.errors = null;\n } else {\n this.initTableData({\n totalElements: 0,\n content: [],\n });\n this.errors = JSON.parse(res.message);\n }\n });\n }\n\n initTableData(data: any) {\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements || 0,\n };\n const tempData = data.content || [];\n const dataDisplayed: Array = [];\n tempData.forEach((item: any) => {\n item.commFlagLabel = item.commFlag && item.commFlag !== BLANK ? COMM_FLAGS[item.commFlag as unknown as keyof typeof COMM_FLAGS] : BLANK;\n if (item.receivedDate) {\n item.receivedDate = item.receivedDate ? moment(new Date(item.receivedDate)).format('DD/MM/YYYY') : '/';\n }\n if (item.appealDate) {\n item.appealDate = item.appealDate ? moment(new Date(item.appealDate)).format('DD/MM/YYYY') : '/';\n }\n if (item.cancelledOrRejectedDate) {\n item.cancelledOrRejectedDate = item.cancelledOrRejectedDate ? moment(new Date(item.cancelledOrRejectedDate)).format('DD/MM/YYYY') : '/';\n }\n item.isEditable = !item.cancelledOrRejectedDate;\n item.accountType = AccountTypes.find(list => list.value === item.accountType)?.label || item.accountType;\n item.details.forEach((detail: any) => {\n dataDisplayed.push({\n ...item,\n ...detail,\n });\n });\n });\n this.dataDisplayed = dataDisplayed;\n }\n\n rebackTo(item: any) {\n if (this.isEdit) {\n return;\n }\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: item.commissionPoolId,\n tabType: 'individualTransfer',\n },\n });\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n let params = { ...this.pageConfig, size: PAGE_SIZE, page: (this.pageConfig.current as number) - 1 };\n if (this.previousSearchParams) {\n params = { ...this.previousSearchParams, ...params };\n }\n this.getPendingData(params);\n }\n }\n\n alertPendingTransaction() {\n const msg = this.langService.translate('commission.individualTransfer.pendingTransactionAlert');\n this.openPop(msg);\n }\n\n referenceClick(row: any) {\n if (this.isEdit) {\n return;\n }\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.previousSearchParams = null;\n this.getMakeAppealData({\n referenceNo: row.referenceNo,\n commissionPoolId: row.commissionPoolId,\n size: PAGE_SIZE,\n page: 0,\n });\n }\n\n getMakeAppealData(params: any) {\n this.isSaveLoading = true;\n this.commissionAppealCaseService\n .getPendingTransationData(params)\n .pipe(\n finalize(() => {\n this.isSaveLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.initTableData(res.data);\n this.initMakeAppeal(res.data);\n } else {\n this.openAlertPop(res.message);\n }\n });\n }\n\n initMakeAppeal(data: any) {\n const tempData = data.content || [];\n if (tempData.length) {\n this.dataMakeAppealSource = tempData[0].details.map((item: any) => {\n return { ...item };\n });\n this.editRow = tempData[0];\n this.initFromGroup();\n this.initCommFlag();\n this.isEdit = true;\n }\n }\n\n initFromGroup() {\n this.dataMakeAppeal = this.dataMakeAppealSource.map((item: any) => {\n return { ...item };\n });\n const tempArr: Array = [];\n this.dataMakeAppeal.forEach((item: any) => {\n item.sharingPC = (item.sharingPC * 1).toFixed(3);\n item.sharingComm = (item.sharingComm * 1).toFixed(3);\n tempArr.push(this.createChildFormGroup(item));\n });\n this.commFlag.reset(this.editRow.commFlag);\n this.commFlag.markAsDirty();\n this.trfsppcCode.reset({\n value: this.editRow.trfsppcCode || '',\n disabled: this.editRow.commFlag !== COMM_FLAGS_OTHER.value,\n });\n this.trfspCode.reset({\n value: this.editRow.trfspCode || '',\n disabled: this.editRow.commFlag !== COMM_FLAGS_OTHER.value,\n });\n this.fshkpcCode.reset({\n value: this.editRow.fshkpcCode || '',\n disabled: this.editRow.commFlag !== COMM_FLAGS_OTHER.value,\n });\n this.formGroup.setControl('details', new FormArray(tempArr));\n }\n\n createChildFormGroup(item?: any) {\n return new FormGroup({\n agentCode: new FormControl(item ? item.agentCode : '', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.AGENT_CODE_NULL }), agentCodeValidator({ error: I18N_KEY.AGENT_CODE_INVALID })],\n asyncValidators: [this.agentCodeAsyncValidator.myValidate(this.editRow, this.formGroup, this.dataMakeAppeal).bind(this.agentCodeAsyncValidator)],\n }),\n sharingPC: new FormControl(item ? item.sharingPC : ''),\n sharingComm: new FormControl(item ? item.sharingComm : ''),\n });\n }\n\n initCommFlag() {\n const options = this.defaultScales.filter((item: any) => {\n return item.scenario === this.editRow.scenario;\n });\n this.commFlagConfig.options = [...options, COMM_FLAGS_OTHER];\n }\n\n alertAccountCodeInfo() {\n const msg = this.langService.translate('commission.accountCode.futherInfo.appealCase.tableArea');\n this.openPop(msg);\n }\n\n cancleEdit() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n cancel: I18N_KEY.COMMON_CANCLE,\n continue: I18N_KEY.COMMON_CONTINUE,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.isEdit = false;\n this.editRow = null;\n this.dataMakeAppealSource = [];\n this.dataMakeAppeal = [];\n }\n });\n }\n\n addAgent() {\n this.dataMakeAppeal.push({\n agentCode: '',\n sharingPC: '',\n sharingComm: '',\n agentChannel: '',\n });\n this.makeAppeal.push(this.createChildFormGroup());\n }\n\n deleteAgent(index: number) {\n this.dataMakeAppeal.splice(index, 1);\n this.makeAppeal.removeAt(index);\n }\n\n reset() {\n if (this.isResetDisable) {\n return;\n }\n this.initFromGroup();\n }\n\n save() {\n if (this.isSaveDisable) {\n return;\n }\n const value = this.makeAppeal.getRawValue();\n let totalSharingPC = 0;\n let totalSharingComm = 0;\n let duplicateAgent = false;\n const agents: Array = [];\n value.forEach((item: any) => {\n totalSharingPC += item.sharingPC * 1;\n totalSharingComm += item.sharingComm * 1;\n if (agents.includes(item.agentCode)) {\n duplicateAgent = true;\n } else {\n agents.push(item.agentCode);\n }\n });\n if (duplicateAgent) {\n this.openAlertPop(I18N_KEY.AGENT_CODE_DUPLICATE);\n return;\n }\n if (totalSharingPC != 100 || totalSharingComm != 100) {\n this.openAlertPop(I18N_KEY.SHARING_ERROR);\n return;\n }\n this.commissionAppealCaseService.saveMakeAppeal(this.createParams()).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.getMakeAppealData({\n referenceNo: this.editRow.referenceNo,\n commissionPoolId: this.editRow.commissionPoolId,\n size: PAGE_SIZE,\n page: (this.pageConfig.current as number) - 1,\n });\n this.openAlertPop(I18N_KEY.COMMON_ACTION_SUCCESS);\n } else {\n this.openAlertPop(res.message);\n }\n });\n }\n\n createParams() {\n if (!this.editRow) {\n return null;\n }\n const getRawValue = this.formGroup.getRawValue();\n getRawValue.trfsppcCode = getRawValue.trfsppcCode.trim();\n getRawValue.trfspCode = getRawValue.trfspCode.trim();\n getRawValue.fshkpcCode = getRawValue.fshkpcCode.trim();\n const obj: any = {\n referenceNo: this.editRow.referenceNo,\n commissionPoolId: this.editRow.commissionPoolId,\n ...getRawValue,\n };\n return obj;\n }\n\n openAlertPop(key: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n continue: I18N_KEY.COMMON_GOT,\n type: 'alert',\n message: key,\n },\n size: CDS_SIZE['MEDIUM'],\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n openPop(msg: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: CDS_SIZE['SMALL'],\n data: {\n message: msg,\n continue: I18N_KEY.COMMON_GOT,\n type: 'alert',\n actionRight: true,\n },\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n validateAgentCode() {\n const isMPFPAP = this.editRow.accountType === 'MPF-PAP';\n const isPP = this.editRow.formType === 'PP';\n const isOther = this.commFlag.value === COMM_FLAGS_OTHER.value;\n const fshkpcCode = this.fshkpcCode.value;\n if (!this.makeAppeal.controls.length) {\n return;\n }\n this.dataMakeAppeal.forEach((item, index) => {\n const control = (this.makeAppeal.controls[index] as FormGroup).controls['agentCode'];\n let error = control.errors ? control.errors['error'] : null;\n if (error && error === I18N_KEY.SCALE_CODE_LIMIT) {\n control.setErrors(null);\n error = null;\n }\n const isAgency = item.agentChannel === 'AGENCY' || item.agentChannel === 'Agency';\n if (control.value && isOther && fshkpcCode && !error && (!isAgency || !isMPFPAP || !isPP)) {\n control.setErrors({\n error: I18N_KEY.SCALE_CODE_LIMIT,\n });\n }\n });\n }\n\n scaleCodeInput(event: any, key: string) {\n const control = this.formGroup.get(key);\n let value = event.target.value;\n value = value.toUpperCase().replace(/[^\\a-\\z\\A-\\Z0-9\\ ]/g, '');\n value = value.substring(0, 6);\n const pos = event.target.selectionEnd;\n control?.setValue(value);\n event.target.setSelectionRange(pos, pos);\n }\n\n sharingInput(event: any, index: number, key: string) {\n const control = this.makeAppeal.get(index.toString())?.get(key);\n let value = event.target.value;\n value = value.match(/^(([1-9]\\d?)|100|0|(\\d{1,2})\\.(\\d){0,3})$/g); // 只允許數字3位小數點3位\n const pos = event.target.selectionEnd;\n if (value === control?.value) {\n return;\n }\n control?.setValue(value);\n event.target.setSelectionRange(pos, pos);\n }\n\n sharingChange(event: any, index: number, key: string) {\n if (event.target) {\n const control = this.makeAppeal.get(index.toString())?.get(key);\n let value = event.target.value;\n value = value.match(/^(([1-9]\\d?)|100|0|(\\d{1,2})\\.(\\d){0,3})$/g); // 只允許數字3位小數點3位\n value = parseFloat(value ? value : 0).toFixed(3);\n if (value === control?.value) {\n return;\n }\n control?.setValue(value);\n }\n }\n}\n","
    \n

    Appeal Case Handling

    \n
    \n
    \n
    \n Searching the Pending Transaction\n \n
    \n
    \n
    \n \n
    \n \n \n
    {{ element.title | lang }}
    \n
    \n
    \n \n \n \n \n \n {{ element['referenceNo'] }}\n \n \n \n \n {{ element['accountType'] }}\n \n \n \n \n {{ element['commFlagLabel'] }}\n \n \n \n {{ element['sharingPC'] | mynumber : '3' }}% \n \n \n {{ element['sharingComm'] | mynumber : '3' }}% \n \n \n
    \n
    \n\n
    \n
    \n
    \n Making Appeal\n
    \n \n {{ 'commission.pool.common.cancelEdit' | lang }} \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n

    {{ editRow?.accountName }}

    \n
    \n
    \n Account Type\n {{ editRow?.accountType }}\n
    \n
    \n Transaction Reference No.\n {{ editRow?.referenceNo }}\n
    \n
    \n
    \n {{ 'common.business.acconutCode' | lang }}\n \n
    \n {{ editRow?.accountNo ? editRow.accountNo : '-' }}\n
    \n
    \n Commission Pool No.\n {{ editRow?.commissionPoolId }}\n
    \n
    \n
    \n Form Type\n {{ editRow?.formType }}\n
    \n
    \n
    \n
    Commission Details
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Comm FlagTRF SP HKPC Scale CodeTRF SP COMM Scale CodeFS HKPC Scale Code
    \n
    \n \n \n {{\n 'commission.appeal.pendingTransaction.commFlag.empty' | lang\n }}\n \n
    \n
    \n
    \n \n \n {{trfsppcCode.errors?.['error'] | lang}}\n \n
    \n
    \n
    \n \n \n {{trfspCode.errors?.['error'] | lang}}\n \n
    \n
    \n
    \n \n \n {{fshkpcCode.errors?.['error'] | lang}}\n \n
    \n
    \n
    \n
    Agent Details
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Agent codeSharing PCSharing CommAction
    \n
    \n \n \n \n {{makeAppeal.get(index.toString())?.get('agentCode')?.errors?.['error'] | lang}}\n \n \n
    \n
    \n
    \n \n \n \n \n %\n
    \n
    \n
    \n \n \n \n \n %\n
    \n
    \n 1\"\n >Delete\n
    \n
    \n \n Add agent\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n Reset\n Save\n
    \n
    \n\n
    \n \n
    \n","import { ColumnConfig } from 'src/app/shared/data-table';\nexport const PAGE_SIZE = 10;\nexport const I18N_KEY = {\n COMMON_ACTION_CANCLE: 'common.action.cancel',\n COMMON_CANCLE: 'common.cancel',\n COMMON_CONTINUE: 'common.continue',\n COMMON_GOT: 'common.gotItWithExclamation',\n COMMON_ACTION_SUCCESS: 'common.action.success',\n SHARING_ERROR: 'commission.appeal.pendingTransaction.shareSum',\n SCALE_CODE_NULL: 'commission.appeal.pendingTransaction.scaleCode.empty',\n SCALE_CODE_INVALID: 'commission.common.scaleCode.invalid',\n SCALE_CODE_LIMIT: 'commission.appeal.pendingTransaction.scaleCode.limit',\n AGENT_CODE_NULL: 'commission.appeal.pendingTransaction.agentCode.empty',\n AGENT_CODE_INVALID: 'commission.appeal.pendingTransaction.agentCode.invalid',\n AGENT_CODE_DUPLICATE: 'commission.appeal.pendingTransaction.agentCode.duplicate',\n};\n\nexport const PENDING_TRANSACTION_COLUMNS: Array = [\n {\n key: 'edit',\n title: '',\n sticky: true,\n },\n {\n key: 'receivedDate',\n title: 'commission.appeal.pendingTransaction.receivedDate',\n sticky: true,\n },\n {\n key: 'referenceNo',\n title: 'commission.common.referenceNo',\n sticky: true,\n },\n {\n key: 'accountNo',\n title: 'common.business.acconutCode',\n stickyEnd: true,\n },\n { key: 'accountType', title: 'commission.appeal.pendingTransaction.accountType' },\n { key: 'formType', title: 'commission.appeal.pendingTransaction.formType' },\n { key: 'agentCode', title: 'commission.appeal.pendingTransaction.agentCode' },\n { key: 'commFlagLabel', title: 'commission.appeal.pendingTransaction.commFlag' },\n {\n key: 'trfsppcCode',\n title: 'commission.appeal.pendingTransaction.SPHKPCScaleCode',\n },\n {\n key: 'trfspCode',\n title: 'commission.appeal.pendingTransaction.SPCOMMScaleCode',\n },\n {\n key: 'fshkpcCode',\n title: 'commission.appeal.pendingTransaction.FSHKPCScaleCode',\n },\n { key: 'sharingPC', title: 'commission.appeal.pendingTransaction.sharingPC' },\n {\n key: 'sharingComm',\n title: 'commission.appeal.pendingTransaction.sharingComm',\n },\n { key: 'appealDate', title: 'commission.appeal.pendingTransaction.appealDate' },\n {\n key: 'cancelledOrRejectedDate',\n title: 'commission.appeal.pendingTransaction.cancelledOrRejectedDate',\n },\n];\n\nexport enum COMM_FLAGS {\n AGENCY_FULL_COMM = 'Agency-Full Comm',\n AGENCY_PARTIAL_COMM1 = 'Agency-Partial Comm1',\n AGENCY_PARTIAL_COMM2 = 'Agency-Partial Comm2',\n AGENCY_WSM_PARTIAL_COMM1 = 'Agency-WSM Partial Comm1',\n AGENCY_WSM_PARTIAL_COMM2 = 'Agency-WSM Partial Comm2',\n AGENCY_WSM_PARTIAL_COMM3 = 'Agency-WSM Partial Comm3',\n AGENCY_WSM_PARTIAL_COMM4 = 'Agency-WSM Partial Comm4',\n AGENCY_NO_COMM = 'Agency-No Comm',\n IA_BROKER_FULL_COMM = 'IA Broker-Full Comm',\n IA_BROKER_PARTIAL_COMM1 = 'IA Broker-Partial Comm1',\n IA_BROKER_PARTIAL_COMM2 = 'IA Broker-Partial Comm2',\n IA_BROKER_NO_COMM = 'IA Broker-No Comm',\n BROKER_FULL_COMM = 'Broker-Full Comm',\n SCB_FULL_COMM = 'SCB-Full Comm',\n DBS_FULL_COMM = 'DBS-Full Comm',\n CORPORATE_FULL_COMM = 'Corporate-Full Comm',\n CORPORATE_PARTIAL_COMM3 = 'Corporate-Partial Comm3',\n INTERNAL_TRANSFER_NO_COMM = 'Internal Transfer-No Comm',\n AGENCY_SHKP_PARTIAL_COMM1 = 'Agency-SHKP Partial Comm1',\n AGENCY_SHKP_PARTIAL_COMM2 = 'Agency-SHKP Partial Comm2',\n AGENCY_SHKP_PARTIAL_COMM3 = 'Agency-SHKP Partial Comm3',\n CORPORATE_NO_COMM = 'Corporate – No Comm',\n OTHER = 'Other',\n}\n\nexport const COMM_FLAGS_OTHER = {\n label: 'Other',\n value: 'OTHER',\n};\nexport const BLANK = 'BLANK';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\n\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\n\nimport { COMM_FLAGS_OTHER, I18N_KEY } from './appeal-case.config';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentCodeAsyncValidator {\n constructor(private commissionAgentService: CommissionAgentService) {}\n\n myValidate(editRow: any, formGroup: FormGroup, makeAppeal: any) {\n return (control: AbstractControl): Observable => {\n const value = control.value?.trim();\n if (!value || !control.dirty) {\n return of(null);\n }\n const isMPFPAP = editRow.accountType === 'MPF-PAP';\n const isPP = editRow.formType === 'PP';\n const isOther = formGroup.value.commFlag === COMM_FLAGS_OTHER.value;\n const fshkpcCode = formGroup.value.fshkpcCode;\n\n return this.commissionAgentService.getAgentByCode(value).pipe(\n map(res => {\n if (res && res.result === ResponseResult.SUCCESS && res.data) {\n const isAgency = res.data.agentChannel === 'AGENCY' || res.data.agentChannel === 'Agency';\n const index = (formGroup.controls['details'] as FormArray).controls.findIndex(\n controlItem => (controlItem as FormGroup).controls['agentCode'] == control\n );\n makeAppeal[index].agentChannel = res.data.agentChannel;\n makeAppeal[index].agentCode = value;\n if (isOther && fshkpcCode && (!isMPFPAP || !isPP || !isAgency)) {\n return { error: I18N_KEY.SCALE_CODE_LIMIT };\n }\n return null;\n }\n return { error: I18N_KEY.AGENT_CODE_INVALID };\n }),\n catchError(() => of(null))\n );\n };\n }\n}\n","export const I18N_KEY = {\n REFERENCE_NO_NULL: 'commission.appeal.referenceNo.notFound',\n AGENT_CODE_NULL: 'commission.common.agentCode.notFound',\n ACCOUNT_CODE_NULL: 'common.business.acconutCode.notFound',\n ACCOUNT_CODE_FURTHER_INFO: 'commission.accountCode.futherInfo.appealCase.searchArea',\n FROM_RECEIVED_DATE_INVALID: 'commission.appeal.fromReceivedDate.invalid',\n TO_RECEIVED_DATE_INVALID: 'commission.appeal.toReceivedDate.invalid',\n INVALID_DATE_FROM_TO: 'commission.common.dateRangeInvalid',\n INVALID_DATE_RANGE: 'commission.appeal.pendingTransaction.invalidDateRange',\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CDS_SIZE } from '@cds/ng-core/configuration';\nimport { I18N_KEY } from './search-record-transaction.component.config';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport {\n letterAndNumberValidator,\n dateRangeInCompleteValidator,\n dateRangeInvalidValidator,\n dateValidator,\n agentCodeValidator,\n numberValidator,\n} from 'src/app/core/validators';\n\n@Component({\n selector: 'app-search-record-transaction',\n templateUrl: './search-record-transaction.component.html',\n styleUrls: ['./search-record-transaction.component.scss'],\n})\nexport class SearchRecordTransactionComponent implements OnInit, OnChanges {\n @Output() search = new EventEmitter();\n @Input() errors: any;\n\n formGroup = new FormGroup(\n {\n receivedDateFrom: new FormControl('', {\n validators: [dateValidator({ error: I18N_KEY.FROM_RECEIVED_DATE_INVALID })],\n initialValueIsDefault: true,\n }),\n receivedDateTo: new FormControl('', {\n validators: [dateValidator({ error: I18N_KEY.TO_RECEIVED_DATE_INVALID })],\n initialValueIsDefault: true,\n }),\n referenceNo: new FormControl('', {\n validators: [\n letterAndNumberValidator({\n error: I18N_KEY.REFERENCE_NO_NULL,\n }),\n ],\n initialValueIsDefault: true,\n }),\n accountNo: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.ACCOUNT_CODE_NULL,\n }),\n ],\n initialValueIsDefault: true,\n }),\n agentCode: new FormControl('', {\n validators: [\n agentCodeValidator({\n error: I18N_KEY.AGENT_CODE_NULL,\n }),\n ],\n initialValueIsDefault: true,\n }),\n cancelledOrRejected: new FormControl(false, {\n initialValueIsDefault: true,\n }),\n },\n [\n dateRangeInCompleteValidator('receivedDateFrom', 'receivedDateTo', { error: I18N_KEY.INVALID_DATE_RANGE }),\n dateRangeInvalidValidator('receivedDateFrom', 'receivedDateTo', { error: I18N_KEY.INVALID_DATE_FROM_TO }),\n ]\n );\n\n get receivedDateFrom() {\n return this.formGroup.get('receivedDateFrom') as FormControl;\n }\n\n get receivedDateTo() {\n return this.formGroup.get('receivedDateTo') as FormControl;\n }\n\n get referenceNo() {\n return this.formGroup.get('referenceNo') as FormControl;\n }\n\n get accountNo() {\n return this.formGroup.get('accountNo') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get cancelledOrRejected() {\n return this.formGroup.get('cancelledOrRejected') as FormControl;\n }\n\n get isSearchDisable() {\n let tag = true;\n const controls = this.formGroup.controls;\n const keys = Object.keys(controls);\n keys.forEach((key: string) => {\n const defaultValue = (controls[key] as FormControl).defaultValue;\n const controlValue = (controls[key] as FormControl).value;\n const value = key === 'cancelledOrRejected' ? controlValue : controlValue.trim();\n if (defaultValue !== value) {\n tag = false;\n }\n });\n return tag || this.formGroup.invalid;\n }\n\n constructor(private cdsPopup: CdsPopupService) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['errors'].currentValue) {\n const errors = changes['errors'].currentValue;\n Object.keys(errors).forEach(key => {\n this.formGroup.controls[key]?.setErrors({\n error: errors[key],\n });\n });\n }\n }\n\n onSearch() {\n const params = this.createParams();\n this.search.emit(params);\n }\n\n reset() {\n this.formGroup.reset();\n this.onSearch();\n }\n\n createParams() {\n const formValue = this.getFormValue();\n return formValue;\n }\n\n getFormValue() {\n const value: any = {};\n const tempValue = this.formGroup.value;\n const keys: string[] = Object.keys(tempValue);\n keys.forEach(key => {\n const controlValue = key === 'cancelledOrRejected' ? tempValue[key] : tempValue[key].trim();\n if (controlValue !== '') {\n value[key] = controlValue;\n }\n });\n return value;\n }\n\n alertFutherInfo() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: CDS_SIZE['SMALL'],\n data: {\n message: I18N_KEY.ACCOUNT_CODE_FURTHER_INFO,\n continue: 'common.gotIt',\n type: 'alert',\n actionRight: true,\n },\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n \n {{ receivedDateFrom.errors['error'] | lang }}\n {{ formGroup.errors['error'] | lang }}\n \n
    -
    \n
    \n\n \n \n \n \n {{ receivedDateTo.errors['error'] | lang }}\n \n\n \n \n \n \n {{ 'commission.appeal.referenceNo.notFound' | lang }}\n \n \n\n \n \n \n \n {{ 'commission.common.agentCode.notFound' | lang }}\n \n \n\n
    \n
    \n \n \n
    \n \n \n {{ 'common.business.acconutCode.notFound' | lang }}\n \n
    \n\n
    \n
    \n \n \n
    \n \n
    \n\n
    \n
    \n {{ 'common.search' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport Big from 'big.js';\nimport { deepCopy } from 'src/app/utils/copy';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\n\nimport { texts } from 'src/app/views/commission/summary/pool-info.model';\nimport { AdjustmentService } from 'src/app/core/services/commission/commission-adjustment.service';\nimport { CommissionPoolService } from 'src/app/core/services/commission/commission-pool.service';\nimport { AccountTypesNormalCompensation, CustomerStatus } from 'src/app/core/models/enum';\n\nimport { AdjustTypes, AccountAdjMap } from './normal-compensation.model';\nimport { Validator } from '../adjustment.validator';\n\n@Component({\n selector: 'app-normal-compensation',\n templateUrl: './normal-compensation.component.html',\n styleUrls: ['./normal-compensation.component.scss'],\n})\nexport class NormalCompensationComponent implements OnInit {\n constructor(\n private cdsPopup: CdsPopupService,\n private adjustmentService: AdjustmentService,\n private poolService: CommissionPoolService,\n private validator: Validator\n ) {}\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n loading = false;\n searchForm0 = {\n type: 1,\n commissionPoolId: '',\n accountType: '',\n accountTypeStr: '',\n accountCode: '',\n accountName: '',\n searchDisabled: true,\n errorMsg: '',\n warningMsg: '',\n policyWarning: '',\n };\n accountNoTypeStr = '';\n searchForm = deepCopy(this.searchForm0);\n\n saveDisabled = true;\n editStatus = true;\n isConfirm = false;\n accountTypes = AccountTypesNormalCompensation;\n adjustTypes = AdjustTypes;\n customers: any[] = [];\n customers2: any[] = [];\n // hide unuse\n adjustItems: any = {\n adjustType: '',\n adjustTypeStr: '',\n amount: '0.00',\n amountPremium: '0.00',\n hide: false,\n adjustTypes2: deepCopy(AdjustTypes),\n };\n item = {\n config: { size: 'sm', label: 'Negative Values On' },\n negativeOn: false,\n customerId: '',\n accountCode: '',\n agentCode: '',\n adjustItems: [deepCopy(this.adjustItems)],\n };\n dataSource = [deepCopy(this.item)];\n\n selectNegative(value: any, i: number) {\n this.saveDisabled = true;\n this.validator.negativeValidation(this.dataSource, value, i, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputAgentCode(event: any, i: number, j: number) {\n this.saveDisabled = true;\n event.target.value = event.target.value.replace(/[^\\d]+/g, '');\n this.validator.agentCodeValidation(this.dataSource, event.target.value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputAdjustType(event: any, i: number, j: number) {\n this.saveDisabled = true;\n this.dataSource[i].adjustItems[j].adjustTypes2 = this.adjustTypes.filter(item => item.label && item.label.indexOf(event.target.value) != -1);\n this.validator\n .adjustTypeValidation(this.dataSource, this.dataSource[i].adjustItems[j].adjustTypes2, event.target.value, i, j, this.searchForm)\n .then(res => {\n this.checkOpen(res);\n });\n }\n\n selectAdjustType(value: any, i: number, j: number) {\n this.saveDisabled = true;\n this.validator.adjustTypeValidation(this.dataSource, this.dataSource[i].adjustItems[j].adjustTypes2, value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n inputAmount(event: any, i: number, j: number) {\n this.saveDisabled = true;\n if (event && event.target.value && event.target.value != '-') {\n this.validator.amountValidation(this.dataSource, event.target.value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n }\n\n inputAmountPremium(event: any, i: number, j: number) {\n this.saveDisabled = true;\n if (event && event.target.value && event.target.value != '-') {\n this.validator.amountPremiumValidation(this.dataSource, event.target.value, i, j, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n }\n\n checkOpen(res: any) {\n this.saveDisabled = res.disable;\n if (res.errorMsg) {\n this.open(\n {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: res.errorMsg },\n },\n res.result\n );\n }\n }\n\n addAdjust(i: number) {\n this.dataSource[i].adjustItems.push(deepCopy(this.adjustItems));\n this.saveDisabled = this.validator.formValidation(this.dataSource, this.searchForm);\n }\n\n addAgent() {\n this.dataSource.push(deepCopy(this.item));\n this.saveDisabled = this.validator.formValidation(this.dataSource, this.searchForm);\n }\n\n delete(i: number, j: number) {\n if (this.dataSource[i].adjustItems && this.dataSource[i].adjustItems.length > j) {\n if (i > 0) {\n if (j == 0) {\n this.dataSource.splice(i, 1);\n } else {\n this.dataSource[i].adjustItems.splice(j, 1);\n }\n } else if (i == 0 && j > 0) {\n this.dataSource[i].adjustItems.splice(j, 1);\n }\n }\n this.validator.requestCheck(this.dataSource, this.searchForm).then(res => {\n this.checkOpen(res);\n });\n }\n\n backToEdit() {\n this.isConfirm = false;\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n this.isConfirm = true;\n this.searchForm.policyWarning = '';\n let policyCount = new Big(0);\n this.dataSource.forEach(item => {\n const items: any[] = item.adjustItems;\n items.forEach(subItem => {\n this.adjustTypes.forEach(type => {\n if (subItem.adjustType == type.value) {\n subItem.adjustTypeStr = type.label;\n }\n });\n if (subItem.adjustType == 'POLICY') {\n policyCount = policyCount.plus(new Big(subItem.amount));\n }\n });\n });\n if (!policyCount.eq(new Big(0)) && !policyCount.eq(new Big(1)) && !policyCount.eq(new Big(-1))) {\n this.searchForm.policyWarning = 'The total amount in Adjust Type: “20: Policy count” isn’t integer and the sum range aren’t between -1 to 1';\n }\n }\n\n confirm() {\n this.loading = true;\n this.adjustmentService.addAdjustment(this.validator.mapList(this.dataSource, this.searchForm)).subscribe(resp => {\n this.loading = false;\n let popData, result: number;\n if (resp && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n this.open(popData, result);\n });\n }\n\n open(popData: any, result: number) {\n popData.size = 'lg';\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (result == 0) {\n this.reset(false);\n } else {\n this.backToEdit();\n }\n }\n });\n }\n\n searchChange(event?: any) {\n this.searchForm.errorMsg = '';\n this.searchForm.warningMsg = '';\n if (event && event.target) {\n event.target.value = event.target.value.replace(/[^\\d]+/g, '');\n this.searchForm.accountCode = event.target.value;\n if (!this.searchForm.accountCode) {\n this.searchForm.errorMsg = 'Account Type & Employer Account Code/ Member Account Code is (blank)';\n }\n }\n if (this.searchForm.accountType && this.searchForm.accountCode) {\n this.searchForm.searchDisabled = false;\n } else {\n this.searchForm.searchDisabled = true;\n }\n }\n\n search() {\n if (this.searchForm.searchDisabled) {\n return;\n }\n this.searchForm.commissionPoolId = '';\n this.accountNoTypeStr = '';\n const form = {\n accountType: this.searchForm.accountType,\n accountCode: this.searchForm.accountCode,\n currentEffective: true,\n page: 0,\n size: 1,\n status: 'VALID',\n };\n this.dataSource = [deepCopy(this.item)];\n this.isConfirm = false;\n this.saveDisabled = true;\n this.loading = true;\n this.poolService.selectList(form).subscribe(resp => {\n this.loading = false;\n if (resp && resp.data && resp.result == 0 && resp.data.content && resp.data.content.length > 0) {\n const commissionPoolCustomers: any[] = resp.data.content[0].commissionPoolCustomers;\n this.searchForm.commissionPoolId = resp.data.content[0].id;\n if (commissionPoolCustomers) {\n this.searchForm.accountTypeStr = commissionPoolCustomers[0].accountTypeStr;\n this.accountNoTypeStr = `${this.searchForm.accountCode},${commissionPoolCustomers[0].accountTypeStr}`;\n this.searchForm.accountName = commissionPoolCustomers[0].accountName;\n this.searchForm.warningMsg = commissionPoolCustomers[0].customerStatus == CustomerStatus.TERMINATED ? 'Terminated Account Code' : '';\n }\n this.loadInfo();\n }\n if (!this.searchForm.commissionPoolId) {\n this.searchForm.errorMsg = 'Cannot find the Employer Account Code/ Member Account Code on this Account Type';\n }\n });\n }\n\n reset(b: boolean) {\n if (b) {\n this.searchForm = deepCopy(this.searchForm0);\n this.accountNoTypeStr = '';\n }\n this.adjustItems.adjustTypes2 = deepCopy(this.adjustTypes);\n this.item.adjustItems = [deepCopy(this.adjustItems)];\n this.dataSource = [deepCopy(this.item)];\n this.backToEdit();\n }\n\n loadInfo() {\n this.adjustTypes = [];\n const arr = AccountAdjMap.get(this.searchForm.accountType);\n if (arr) {\n arr.forEach(adjustType => {\n AdjustTypes.forEach(item => {\n if (adjustType == item.value) {\n this.adjustTypes.push(item);\n }\n });\n });\n }\n this.reset(false);\n }\n\n alert() {\n const msg =\n '
    Only available for searching below account code:

    ' +\n '
    Employer Account Code on MPF-ER, ORSO-ER, MACAU-ER(PPS), MACAU-ER(CPF)
    ' +\n '
    Member Account Code on MPF-SEP, MPF-SEP(AGENT), MPF-TVC, MPF-FRC , MACAU-IVC

    ';\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: msg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n ngOnInit(): void {}\n}\n","\n
    \n
    \n
    \n \n
    \n
    \n
    Account Type
    \n \n \n {{ option.label | lang }}\n \n \n
    \n
    \n
    \n Employer/Member Account Code\n \n
    \n \n
    \n Search \n Reset\n
    \n \n {{ searchForm.errorMsg | lang }}\n \n \n {{ searchForm.warningMsg | lang }}\n \n
    \n
    \n
    \n
    \n\n
    \n Make Adjustment \n
    \n
    \n
    \n \n
    \n
    \n {{ searchForm.accountName }}\n
    \n
    \n
    \n
    \n
    \n Account No. & Type      {{ accountNoTypeStr }}\n
    \n
    \n
    Commission Pool No.    {{ searchForm.commissionPoolId }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n \n \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 codeAdjust TypeAdjust AmountPremium AdjustAction
    \n
    \n
    \n {{ item.agentCode }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ subItem.adjustTypeStr }}\n
    \n
    \n \n \n \n \n
    \n \n \n {{ option.label | lang }}\n \n \n
    \n
    \n {{ subItem.amount }}\n
    \n \n
    \n
    \n {{ subItem.amountPremium }}\n
    \n \n
    \n
    \n Delete\n
    \n
    \n \n {{ item.agentCodeError | lang }}\n \n \n \n {{ subItem.adjustTypeStr }} {{ subItem.adjustTypeError | lang }}\n \n \n {{ subItem.adjustTypeWarning | lang }}\n \n \n \n {{ subItem.amountError | lang }}\n \n \n {{ subItem.amountWarning | lang }}\n \n \n \n {{ subItem.amountPremiumError | lang }}\n \n \n {{ subItem.amountPremiumWarning | lang }}\n \n
    \n
    \n
    \n
    \n \n
    \n Add Adjust Type\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Add agent\n
    \n
    \n
    \n {{ searchForm.policyWarning | lang }} \n
    \n
    \n Reset\n Save\n
    \n
    \n Back to edit\n confirm\n
    \n
    \n
    \n
    \n","import { AccountType } from 'src/app/core/models/enum/account-type.enum';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\n\nconst adjustArray0: string[] = [ScaleType.FS_PC, ScaleType.TRF_SP_PC, ScaleType.FY, ScaleType.TRF_SP, ScaleType.FS_SF, 'POLICY'];\nconst adjustArray4: string[] = [ScaleType.FS_PC, ScaleType.FY, ScaleType.FS_SF, 'POLICY'];\nconst adjustArray1: string[] = [\n ScaleType.FS_PC,\n ScaleType.PS_PC,\n ScaleType.TRF_SP_PC,\n ScaleType.FY,\n ScaleType.PS,\n ScaleType.TRF_SP,\n ScaleType.FS_SF,\n ScaleType.PS_SF,\n 'POLICY',\n];\nconst adjustArray2: string[] = [ScaleType.TRF_SP_PC, ScaleType.TRF_SP, 'POLICY'];\nconst adjustArray3: string[] = [ScaleType.FS_PC, ScaleType.RY_PC, ScaleType.FY, ScaleType.FS_SF, 'POLICY'];\n\nexport const AccountAdjMap = new Map([\n [AccountType.MPF_ER, adjustArray0],\n [AccountType.MPF_SEP, adjustArray4],\n [AccountType.MPF_SEP_AGENT, adjustArray4],\n [AccountType.MPF_FRC, adjustArray2],\n [AccountType.MPF_TVC, adjustArray3],\n [AccountType.MACAU_IVC, adjustArray3],\n [AccountType.ORSO_ER, adjustArray1],\n [AccountType.MACAU_PPS_ER, adjustArray1],\n [AccountType.MACAU_CPF_ER, adjustArray1],\n]);\n\nexport const AdjustTypes = [\n { label: '01: FS HKPC', value: ScaleType.FS_PC, correspondingScale: 'FS HKPC Scale', ptd: 'FS HKPC PTD' },\n { label: '02: PS HKPC', value: ScaleType.PS_PC, correspondingScale: 'PS HKPC Scale', ptd: 'PS HKPC PTD' },\n { label: '03: TRF SP HKPC', value: ScaleType.TRF_SP_PC, correspondingScale: 'Transfer SP HKPC Scale', ptd: 'TRF SP HKPC PTD' },\n { label: '04: RY HKPC', value: ScaleType.RY_PC, correspondingScale: 'RY HKPC Scale', ptd: 'RY HKPC PTD' },\n { label: '11: FYR COMM', value: ScaleType.FY, correspondingScale: '1st Yr Comm Scale', ptd: '1st Yr COMM PTD' },\n { label: '12: PS COMM', value: ScaleType.PS, correspondingScale: 'PS Comm Scale', ptd: 'PS COMM PTD' },\n { label: '13: TRF SP COMM', value: ScaleType.TRF_SP, correspondingScale: 'Transfer SP Comm Scale', ptd: 'TRF SP COMM PTD' },\n { label: '14: FS Service Fee', value: ScaleType.FS_SF, correspondingScale: 'FS Service Fee Scale', ptd: 'FS Service Fee PTD' },\n { label: '15: PS Service Fee', value: ScaleType.PS_SF, correspondingScale: 'PS Service Fee Scale', ptd: 'PS Service Fee PTD' },\n { label: '20: Policy count', value: 'POLICY', correspondingScale: '', ptd: '' },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport moment from 'moment';\nimport { filter, finalize } from 'rxjs';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\n\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\nimport { CommissionJournalService } from 'src/app/core/services/commission/commission-journal.service';\n\nimport { FileType, aoaToSheet } from 'src/app/utils/xlsx';\n\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { UserAgreementPopupComponent } from '../user-agreement-popup.component';\nimport {\n DATE_TYPE_OPTS,\n ACCOUNT_TYPE_OPTIONS,\n FILE_NAME,\n I18N_KEY,\n APE_JOURNAL_COLUMNS,\n PAGE_SIZE,\n DOWN_LOAD_MAX,\n EXCEL_COLUMNS,\n FILE_HEADER,\n TRANSACTION_TYPE_OPTIONS,\n CHANNEL_OPTIONS,\n} from './ape-journal.config';\n\nimport { CDS_SIZE } from '@cds/ng-core/configuration';\nimport {\n dateRangeInCompleteValidator,\n dateRangeInvalidValidator,\n dateValidator,\n agentCodeValidator,\n numberValidator,\n requiredValidator,\n} from 'src/app/core/validators';\nimport { CommissionCode } from 'src/app/core/models/enum/commission-code.enum';\nimport { ApeTypeLabel } from 'src/app/core/models/enum';\n\n@Component({\n selector: 'app-ape-journal',\n templateUrl: './ape-journal.component.html',\n styleUrls: ['./ape-journal.component.scss'],\n})\nexport class ApeJournalComponent implements OnInit {\n isDownLoadingPdf = false;\n\n dateTypeConfig = { options: DATE_TYPE_OPTS };\n accountTypeOptions = ACCOUNT_TYPE_OPTIONS;\n transactionTypesOptions = TRANSACTION_TYPE_OPTIONS;\n channelOptions = CHANNEL_OPTIONS;\n\n isDownLoading = false;\n isOverMax = false;\n isShowSearchDatePicker = true; // Fix DatePicker Bug\n\n formGroup = new FormGroup(\n {\n dateType: new FormControl(DATE_TYPE_OPTS[0].value, {\n initialValueIsDefault: true,\n }),\n runDateFrom: new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_From_NULL }), dateValidator({ error: I18N_KEY.INVALID_RUN_DATE })],\n }),\n runDateTo: new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_TO_NULL }), dateValidator({ error: I18N_KEY.INVALID_RUN_DATE })],\n }),\n accountType: new FormControl('', {\n initialValueIsDefault: true,\n }),\n transactionType: new FormControl('', {\n initialValueIsDefault: true,\n }),\n agentChannel: new FormControl('', {\n initialValueIsDefault: true,\n }),\n employerAccountCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.ACCOUNT_NO_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n memberAccountCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.MEMBER_NO_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n agentCode: new FormControl('', {\n validators: [\n agentCodeValidator({\n error: I18N_KEY.AGENT_CODE_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n },\n [\n dateRangeInCompleteValidator('runDateFrom', 'runDateTo', { error: I18N_KEY.DATE_RANGE_INCOMPLETE }),\n dateRangeInvalidValidator('runDateFrom', 'runDateTo', { error: I18N_KEY.INVALID_DATE_RANGE }),\n ]\n );\n\n previousSearchParams: any;\n pageConfig: PageConfig = {};\n loading = false;\n dataDisplayed: any[] = [];\n columnsConfig: Array = APE_JOURNAL_COLUMNS;\n\n private _pageSize = PAGE_SIZE;\n\n get dateType() {\n return this.formGroup.get('dateType') as FormControl;\n }\n\n get runDateFrom() {\n return this.formGroup.get('runDateFrom') as FormControl;\n }\n\n get runDateTo() {\n return this.formGroup.get('runDateTo') as FormControl;\n }\n\n get accountType() {\n return this.formGroup.get('accountType') as FormControl;\n }\n\n get transactionType() {\n return this.formGroup.get('transactionType') as FormControl;\n }\n\n get agentChannel() {\n return this.formGroup.get('agentChannel') as FormControl;\n }\n\n get employerAccountCode() {\n return this.formGroup.get('employerAccountCode') as FormControl;\n }\n\n get memberAccountCode() {\n return this.formGroup.get('memberAccountCode') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get totalElements() {\n return this.pageConfig.totalCount || 0;\n }\n\n get searchDisabled() {\n const fromDate = this.runDateFrom.value;\n const toDate = this.runDateTo.value;\n const accountType = this.accountType.value;\n const transactionType = this.transactionType.value;\n const channel = this.agentChannel.value;\n const accountNo = this.employerAccountCode.value?.trim();\n const memberNo = this.memberAccountCode.value?.trim();\n const agentCode = this.agentCode.value?.trim();\n const hasValue = accountType || transactionType || channel || accountNo || memberNo || agentCode;\n return !fromDate || !toDate || !this.formGroup.dirty || this.formGroup.invalid || !hasValue;\n }\n\n get downloadDisabled() {\n return !this.previousSearchParams || this.isDownLoading || !this.totalElements;\n }\n\n constructor(private commissionJournalService: CommissionJournalService, private cdsPopup: CdsPopupService) {}\n\n ngOnInit() {}\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getdata();\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: this._pageSize,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const value = { ...this.formGroup.value };\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (value[key]) {\n params[key] = value[key];\n }\n });\n if (params.runDateFrom) {\n params.runDateFrom = moment(params.runDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (params.runDateTo) {\n params.runDateTo = moment(params.runDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return params;\n }\n\n reset() {\n this.previousSearchParams = null;\n this.formGroup.reset();\n this.dataDisplayed = [];\n this.isShowSearchDatePicker = false;\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n }\n\n download() {\n if (this.isOverMax) {\n this.openAlertPop(I18N_KEY.DOWN_LOAD_MAX_FAIL);\n return;\n }\n\n if (this.downloadDisabled) {\n return;\n }\n\n this.isDownLoading = true;\n const params = {\n ...this.previousSearchParams,\n current: 1,\n size: this.totalElements,\n };\n this.commissionJournalService\n .getApeData(params)\n .pipe(\n finalize(() => {\n this.isDownLoading = false;\n }),\n filter(res => res.result === ResponseResult.SUCCESS)\n )\n .subscribe((res: any) => {\n const data = this.createData(res.data.content || []);\n const excelData = this.createExcelData(data);\n aoaToSheet(\n {\n fileName: `${FILE_NAME} ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.CSV,\n },\n excelData\n );\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push([`${FILE_HEADER}${moment().format('YYYY-MM-DD HH:MM:SS')}`]);\n excelData.push(EXCEL_COLUMNS);\n data.forEach(item => {\n const temp = [];\n temp.push(item.runDate);\n temp.push(item.txnEffectiveDate);\n temp.push(item.employerAccountCode);\n temp.push(item.memberAccountCode);\n temp.push(item.accountType);\n temp.push(item.paySubmitRefNo);\n temp.push(item.groupTransRefNo);\n temp.push(item.transactionType);\n temp.push(item.pacFlag);\n temp.push(item.processor);\n temp.push(item.originalAccountCode);\n temp.push(item.agentChannel);\n temp.push(item.branch);\n temp.push(item.agentCode);\n temp.push(item.share);\n temp.push(item.apeType);\n temp.push(item.commissionCode);\n temp.push(item.apeAmount);\n temp.push(item.apeAdjustAmount);\n temp.push(item.vsfAmount);\n temp.push(item.averageAumAmount);\n temp.push(item.trailerFee);\n excelData.push(temp);\n });\n return excelData;\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getdata();\n }\n }\n\n getdata() {\n this.loading = true;\n const params = this.createParams();\n this.commissionJournalService\n .getApeData(params)\n .pipe(\n finalize(() => {\n this.loading = false;\n }),\n filter(res => res.result === ResponseResult.SUCCESS)\n )\n .subscribe((res: any) => {\n this.previousSearchParams = params;\n const data = res.data;\n this.isOverMax = data.totalElements > DOWN_LOAD_MAX;\n if (this.isOverMax) {\n this.openAlertPop(I18N_KEY.DOWN_LOAD_MAX_LIMMIT);\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements,\n };\n this.dataDisplayed = this.createData(data.content || []);\n });\n }\n\n createData(data: any[]) {\n return data.map(item => {\n item.pacFlag = item.pacFlag ? item.pacFlag : '';\n\n const accountType = ACCOUNT_TYPE_OPTIONS.find(accountType => accountType.value === item.accountType);\n item.accountType = accountType ? accountType.label : '';\n\n item.txnEffectiveDate = item.txnEffectiveDate ? moment(new Date(item.txnEffectiveDate)).format('DD/MM/YYYY') : '';\n item.runDate = item.runDate ? moment(new Date(item.runDate)).format('DD/MM/YYYY') : '';\n item.apeType = ApeTypeLabel.get(item.apeType);\n item.commissionCode = item.commissionCode ? CommissionCode[item.commissionCode] : '';\n\n item.share = item.share !== undefined ? `${item.share.toFixed(3)}%` : '';\n item.apeAmount = item.apeAmount !== undefined ? item.apeAmount.toFixed(2) : '';\n item.apeAdjustAmount = item.apeAdjustAmount !== undefined ? item.apeAdjustAmount.toFixed(2) : '';\n item.vsfAmount = item.vsfAmount !== undefined ? item.vsfAmount.toFixed(2) : '';\n item.averageAumAmount = item.averageAumAmount !== undefined ? item.averageAumAmount.toFixed(2) : '';\n\n return item;\n });\n }\n\n openAlertPop(key: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n continue: I18N_KEY.COMMON_GOT,\n type: 'alert',\n message: key,\n },\n size: CDS_SIZE['MEDIUM'],\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n}\n"," \n
    \n
    \n
    \n {{ 'commission.pool.common.searchRecord' | lang }}\n
    \n
    \n
    \n {{ 'common.filterSearch' | lang }} \n
    \n

    \n {{ 'common.fillIn' | lang }}\n

    \n
    \n
    \n
    \n {{ 'common.dateRange' | lang }}\n
    \n\n \n \n \n \n\n \n
    \n \n \n \n
    \n {{ runDateFrom.errors['error'] | lang }}\n {{ formGroup.errors['error'] | lang }}\n
    \n\n
    -
    \n\n \n
    \n \n \n \n
    \n {{ runDateTo.errors['error'] | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'commission.journal.criteriaType' | lang }}\n
    \n\n \n \n \n\n \n \n \n\n \n \n \n
    \n\n
    \n
    \n {{ 'commission.common.specificNo' | lang }}\n
    \n\n \n \n \n {{\n employerAccountCode.errors['error'] | lang\n }}\n \n\n \n \n \n {{ memberAccountCode.errors['error'] | lang }}\n \n\n \n \n \n {{ agentCode.errors['error'] | lang }}\n \n
    \n
    \n\n
    \n
    \n
    \n {{ 'common.search' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {{ 'common.download' | lang }}\n \n \n \n \n \n {{ element['runDate'] }}\n \n \n {{ element['title'] | lang }}\n \n \n {{ element['txnEffectiveDate'] }}\n \n \n
    \n
    \n\n","import { CdsOption } from '@cds/ng-core/configuration';\nimport { AccountTypesJournal } from 'src/app/core/models/enum/account-type.enum';\nimport { ApeJournalChannels } from 'src/app/core/models/enum/agent-channel.enum';\nimport { DateTypeEnum } from 'src/app/core/models/enum/date-type.enum';\nimport { TransactionType } from 'src/app/core/models/enum/transaction-type.enum';\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const DATE_TYPE_OPTS: CdsOption[] = [\n { label: 'Run Date', value: DateTypeEnum.RUN_DATE },\n { label: 'Txn Effective Date', value: DateTypeEnum.TXN_EFFECTIVE_DATE },\n];\nexport const ACCOUNT_TYPE_OPTIONS: CdsOption[] = AccountTypesJournal;\nexport const TRANSACTION_TYPE_OPTIONS: CdsOption[] = [\n { label: 'APE_ANN_PREM', value: TransactionType.APE_ANN_PREM },\n { label: 'APE_CONTR_115', value: TransactionType.APE_CONTR_115 },\n { label: 'APE_CONTR_133', value: TransactionType.APE_CONTR_133 },\n { label: 'APE_CONTR_112', value: TransactionType.APE_CONTR_112 },\n { label: 'APE_PLAN_TRF', value: TransactionType.APE_PLAN_TRF },\n { label: 'APE_IND_TRF', value: TransactionType.APE_IND_TRF },\n { label: 'APE_COMM_ADJ_112', value: TransactionType.APE_COMM_ADJ_112 },\n { label: 'APE_COMM_ADJ_112P', value: TransactionType.APE_COMM_ADJ_112P },\n { label: 'APE_COMM_ADJ_112I', value: TransactionType.APE_COMM_ADJ_112I },\n { label: 'APE_COMM_ADJ_115', value: TransactionType.APE_COMM_ADJ_115 },\n { label: 'APE_COMM_ADJ_133', value: TransactionType.APE_COMM_ADJ_133 },\n { label: 'SYS_ADJ_APE_RECON', value: TransactionType.SYS_ADJ_APE_RECON },\n { label: 'SYS_ADJ_APE_REJOIN', value: TransactionType.SYS_ADJ_APE_REJOIN },\n { label: 'SYS_ADJ_APE_TERM', value: TransactionType.SYS_ADJ_APE_TERM },\n { label: 'MAN_ADJ_112', value: TransactionType.MAN_ADJ_112 },\n { label: 'MAN_ADJ_112P', value: TransactionType.MAN_ADJ_112P },\n { label: 'MAN_ADJ_112I', value: TransactionType.MAN_ADJ_112I },\n { label: 'MAN_ADJ_115', value: TransactionType.MAN_ADJ_115 },\n { label: 'MAN_ADJ_133', value: TransactionType.MAN_ADJ_133 },\n { label: 'MAN_ADJ_141ANN', value: TransactionType.MAN_ADJ_141ANN },\n { label: 'MAN_ADJ_935ANN', value: TransactionType.MAN_ADJ_935ANN },\n { label: 'SYS_TRAILER_FEE', value: TransactionType.SYS_TRAILER_FEE },\n { label: 'MAN_ADJ_136FEE', value: TransactionType.MAN_ADJ_136FEE },\n];\nexport const CHANNEL_OPTIONS: CdsOption[] = ApeJournalChannels;\n\nexport const APE_JOURNAL_COLUMNS: Array = [\n { key: 'runDate', sticky: true, title: 'commission.common.runDate' },\n { key: 'txnEffectiveDate', sticky: true, title: 'commission.journal.txnEffectiveDate' },\n { key: 'employerAccountCode', sticky: true, title: 'commission.common.accountNo' },\n { key: 'memberAccountCode', sticky: true, title: 'commission.common.memberNo' },\n { key: 'accountType', title: 'commission.common.accountType' },\n { key: 'paySubmitRefNo', title: 'commission.apeJournal.paySubmitRefNo' },\n { key: 'groupTransRefNo', title: 'commission.apeJournal.groupTransRefNo' },\n { key: 'transactionType', title: 'commission.common.transactionType' },\n { key: 'pacFlag', title: 'commission.common.pacPSFlag' },\n { key: 'processor', title: 'commission.common.processor' },\n { key: 'originalAccountCode', title: 'common.journal.originalErMerCode' },\n { key: 'agentChannel', title: 'commission.common.channel' },\n { key: 'branch', title: 'commission.common.branch' },\n { key: 'agentCode', title: 'commission.common.agentCode' },\n { key: 'share', title: 'commission.journal.share' },\n { key: 'apeType', title: 'commission.apeJournal.apeType' },\n { key: 'commissionCode', title: 'commission.journal.commCode' },\n { key: 'apeAmount', title: 'commission.apeJournal.apeAmount' },\n { key: 'apeAdjustAmount', title: 'commission.common.apeAdjustAdjust' },\n { key: 'vsfAmount', title: 'commission.common.vsfAmount' },\n { key: 'averageAumAmount', title: 'commission.common.averageAumAmount' },\n { key: 'trailerFee', title: 'commission.common.trailerFee' },\n];\n\nexport const EXCEL_COLUMNS: Array = [\n 'Run date',\n 'Txn Effective Date',\n 'Employer Account Code',\n 'Member Account code',\n 'Account Type',\n 'Payment Sub / Trans Ref No.',\n 'Group Transaction Ref No.',\n 'Transaction Type',\n 'MPF PAC / ORSO PS Flag',\n 'Processor',\n 'Original ER/Member Acc code',\n 'Channel',\n 'Branch Code',\n 'Agent Code',\n 'Share',\n 'APE Type',\n 'Comm Code',\n 'APE Amount',\n 'APE Adjust Amount',\n 'VSF Amount',\n 'Average AUM Amount',\n 'Trailer Fee',\n];\n\nexport const PAGE_SIZE = 10;\nexport const FILE_NAME = 'APE & VSF, AUM & Trailer Fee Journal report';\nexport const FILE_HEADER = 'Report Date:';\nexport const DOWN_LOAD_MAX = 200000;\n\nexport const I18N_KEY = {\n DATE_From_NULL: 'commission.journal.dateFromNull',\n DATE_TO_NULL: 'commission.journal.dateToNull',\n INVALID_RUN_DATE: 'commission.common.runDate.invalid',\n DATE_RANGE_INCOMPLETE: 'commission.common.dateRangeError',\n INVALID_DATE_RANGE: 'commission.common.dateRangeInvalid',\n ACCOUNT_NO_INVALID: 'commission.common.accountNo.invalid',\n MEMBER_NO_INVALID: 'commission.common.memberNo.invalid',\n AGENT_CODE_INVALID: 'commission.common.agentCode.invalid',\n DOWN_LOAD_MAX_LIMMIT: 'commission.journal.download.limmit',\n DOWN_LOAD_MAX_FAIL: 'commission.journal.download.fail',\n COMMON_GOT: 'common.gotItWithExclamation',\n};\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { ApeJournalComponent } from './ape-journal.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsDropdownModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n CdsIconModule,\n ],\n declarations: [ApeJournalComponent],\n})\nexport class ApeJournalModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-ape-manual',\n templateUrl: './ape-manual.component.html',\n styleUrls: ['./ape-manual.component.scss'],\n})\nexport class ApeManualComponent implements OnInit {\n tabSelected = 0;\n constructor() {}\n\n ngOnInit() {}\n}\n"," \n\n
    \n
    \n
    \n
    \n {{ 'commission.ape.manualAdjustment' | lang }}\n
    \n
    \n {{ 'commission.ape.nbvRatio' | lang }}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const APE_MANUAL_ADJUSTMENT_UPLOAD_COLUMNS: Array = [\n { key: 'createTime', sticky: true, title: 'Upload Date' },\n { key: 'fileName', sticky: true, title: 'File Name' },\n { key: 'processor', sticky: true, title: 'Processor' },\n { key: 'batchStatusLabel', title: 'Status' },\n { key: 'validatedCountStr', title: 'Pass Validate' },\n { key: 'updatedCountStr', title: 'Success Updated' },\n { key: 'lastUpdateTime', title: 'Last Updated Date' },\n { key: 'action', title: 'Action' },\n];\n\nexport const EXCEL_COLUMNS = [\n 'Account Type',\n 'Employer /Member Account Code',\n 'Member Account Code [PAC Flag]',\n 'Agent Code',\n 'Adjust type',\n 'Negative Flag',\n 'APE/AUM',\n 'VSF/Trailer Fee',\n 'Result',\n];\n\nexport const EXCEL_DEMO = [\n {\n accountType: 'MPF-FRC',\n accountCode: '23400024',\n memberCode: '',\n agentCode: '300001',\n adjustType: '112',\n negativeFlag: '',\n apeAum: '100.00',\n vsfTrailerFee: '00',\n },\n];\nexport const FILE_TEMPLATE_NAME = 'APE_VSF_AUM_TRAILERFEE_template';\nexport const BYTE_OF_10M = 10485760;\nexport const FILE_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\nexport const PAGE_SIZE = 10;\nexport const I18N_KEY = {\n COMIS_VALIDATE_CONFIRM: 'commission.ape.validateWarning',\n FILE_ERROR: 'Please use standard template to upload / Over 100 records in the file.',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\n\nimport { RequestFormatComponent } from './manual-adjustment/request-format/request-format.component';\nimport { ApeUploadFileComponent } from './manual-adjustment/ape-upload-file/ape-upload-file.component';\n\nimport { ApeManualComponent } from './ape-manual.component';\nimport { NbvRatioComponent } from './nbv-ratio/nbv-ratio.component';\nimport { ManualAdjustmentComponent } from './manual-adjustment/manual-adjustment.component';\nimport { CdsToastModule } from '@cds/ng-web-components/toast';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdsDropdownModule,\n SharedModule,\n CdsDatepickerModule,\n CdsFileUploadModule,\n CdsIconModule,\n\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n CdsProgressModule,\n CdsToastModule,\n ],\n declarations: [ApeManualComponent, NbvRatioComponent, ManualAdjustmentComponent, RequestFormatComponent, ApeUploadFileComponent],\n})\nexport class ApeManualModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\n\nimport { BasicResponse, IPageResponse } from '../../../core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { ApeType } from 'src/app/core/models/enum/ape-type.enum';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport { EXCEL_COLUMNS } from './ape-manual.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionApeManualService {\n constructor(private http: HttpClient) {}\n\n getList(params: any): Observable>> {\n return this.http.get>>(\n `${environment.apiPrefix}${environment.commissionServiceExt}${'/ape-manual/list'}`,\n {\n params: params,\n }\n );\n }\n\n detail(id: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/ape-manual/list-items/${id}`);\n }\n\n uploadFile(file: File) {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/ape-manual/upload'}`, formData);\n }\n\n delete(id: string): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/ape-manual/delete/${id}`, null);\n }\n\n validate(id: string): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/ape-manual/validate/${id}`, null);\n }\n\n getNbvRatios(): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/setting/nbv-ratio/query'}`);\n }\n\n saveNbvRatios(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/setting/nbv-ratio/save'}`, params);\n }\n\n downLoadExcel(data: Array, fileName: string, isDetail?: boolean) {\n const excelData: any[] = [];\n let arr = [...EXCEL_COLUMNS];\n if (!isDetail) {\n arr = arr.slice(0, -1);\n }\n excelData.push(arr);\n data.forEach(item => {\n const temp = [];\n temp.push(item.accountType);\n temp.push(item.accountCode);\n temp.push(item.memberCode);\n temp.push(item.agentCode);\n temp.push(item.adjustType);\n temp.push(item.negativeFlag);\n temp.push(item.apeAum);\n temp.push(item.vsfTrailerFee);\n if (isDetail) {\n temp.push(item.resultMsg);\n }\n excelData.push(temp);\n });\n aoaToSheet(\n {\n fileName: fileName.split('.')[0],\n fileType: FileType.XLSX,\n },\n excelData\n );\n }\n}\n\nexport interface ApeManaulAdjustItem {\n uploadDate: string;\n conversedFileName: string;\n createBy: CreaterBy;\n Status: string;\n validatedSuccess: string;\n id: string;\n status: string;\n}\nexport interface CreaterBy {\n id?: string;\n name: string;\n}\n\nexport interface NbvRatios {\n lastUpdateTime: string;\n lastUpdater: string;\n nbvRatios?: Array;\n}\nexport interface NbvRatioItem {\n apeType: ApeType;\n value: number;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { finalize } from 'rxjs';\nimport { CdPopupService, CdPopupSize, CdPopupType, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { RequestFormatComponent } from '../request-format/request-format.component';\nimport { CommissionApeManualService } from 'src/app/views/commission/ape-manual/commission-ape-manual.service';\nimport { BYTE_OF_10M, FILE_TYPE, I18N_KEY } from '../../ape-manual.model';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\n@Component({\n selector: 'app-ape-upload-file',\n templateUrl: './ape-upload-file.component.html',\n styleUrls: ['./ape-upload-file.component.scss'],\n})\nexport class ApeUploadFileComponent implements OnInit {\n uploadFormControl: FormControl = new FormControl();\n file!: File | null;\n errorMessage = '';\n\n uploading = false;\n\n get confirmDisabled() {\n return !!this.errorMessage || !this.file;\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdPopupService,\n private commissionApeManualAdjustService: CommissionApeManualService\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.file = null;\n this.errorMessage = '';\n }\n });\n }\n\n requestedFormat() {\n const popupRef: MatDialogRef = this.cdsPopup.open(RequestFormatComponent, {\n size: CdPopupSize.LARGE,\n isShowClose: false,\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n if (!this.file || !this.file.size || !this.file.type || !this.file.name) {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n return;\n }\n if (this.file.type !== FILE_TYPE) {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n return;\n }\n if (this.file.size > BYTE_OF_10M) {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n }\n }\n\n cancel() {\n if (!this.file) {\n this.dialogRef.close();\n return;\n }\n const ref = this.cdsPopup.openCommon({ type: CdPopupType.CONTINUE });\n ref.afterClosed().subscribe(res => {\n if (res && res.continue) {\n this.dialogRef.close();\n }\n });\n }\n\n confirm() {\n if (this.errorMessage) {\n return;\n }\n this.upload();\n }\n\n upload() {\n if (this.file) {\n this.uploading = true;\n this.commissionApeManualAdjustService\n .uploadFile(this.file)\n .pipe(\n finalize(() => {\n this.uploading = false;\n })\n )\n .subscribe(res => {\n if (res.result == ResponseResult.SUCCESS) {\n const ref = this.cdsPopup.openCommon({\n type: CdPopupType.GOT,\n });\n ref.afterClosed().subscribe(() => {\n this.dialogRef.close(true);\n });\n } else {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n }\n });\n }\n }\n}\n","\n \n Upload document\n \n \n
    File requirements
    \n
    • A maximum of .xslx file with file size limit of 10MB can be uploaded
    \n
    • Please input file with requested format.
    \n
    \n \n \n
    \n {{ errorMessage | lang }}\n
    \n
    \n
    \n \n {{ 'common.cancel' | lang }}\n {{ 'common.confirm' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { filter, finalize } from 'rxjs';\nimport moment from 'moment';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\n\nimport { PageConfig } from 'src/app/shared/data-table';\nimport { CommissionApeManualService } from 'src/app/views/commission/ape-manual/commission-ape-manual.service';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { UploadFileStatus, UploadFileStatusText } from 'src/app/core/models/enum/upload-file-status.enum';\nimport { CdPopupService, CdPopupSize, CdPopupType, MatDialogRef } from 'src/app/shared/cd-popup';\n\nimport { RequestFormatComponent } from './request-format/request-format.component';\nimport { ApeUploadFileComponent } from './ape-upload-file/ape-upload-file.component';\nimport { APE_MANUAL_ADJUSTMENT_UPLOAD_COLUMNS, I18N_KEY, PAGE_SIZE } from '../ape-manual.model';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\n\n@Component({\n selector: 'app-manual-adjustment',\n templateUrl: './manual-adjustment.component.html',\n styleUrls: ['./manual-adjustment.component.scss'],\n})\nexport class ManualAdjustmentComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n uploadFileStatus = UploadFileStatus;\n columnsConfig = APE_MANUAL_ADJUSTMENT_UPLOAD_COLUMNS;\n pageConfig: PageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n loading = false;\n dataDisplayed: any[] = [];\n\n get totalElements() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(\n private permissionService: PermissionService,\n private toast: CdsToastService,\n private cdPopup: CdPopupService,\n private commissionApeManualAdjustService: CommissionApeManualService\n ) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.COMM_APE_MANUAL_ADJ_NBV_RATIO).then(hasPermission => {\n if (!hasPermission) {\n this.columnsConfig = APE_MANUAL_ADJUSTMENT_UPLOAD_COLUMNS.slice(0, -1);\n }\n this.getData();\n });\n }\n\n getData() {\n this.loading = true;\n const params = this.createParams();\n this.commissionApeManualAdjustService\n .getList(params)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe((res: any) => {\n if (res.result === ResponseResult.SUCCESS) {\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.totalElements,\n };\n const tempData = res.data.content || [];\n this.dataDisplayed = tempData.map((item: any) => {\n item.createTime = item.createTime ? moment(new Date(item.createTime)).format('DD/MM/YYYY') : '';\n item.lastUpdateTime = item.lastUpdateTime ? moment(new Date(item.lastUpdateTime)).format('DD/MM/YYYY') : '';\n item.processor = item.createBy.name ? item.createBy.name : '';\n item.batchStatusLabel = UploadFileStatusText.get(item.batchStatus);\n item.isShowDelete = item.batchStatus === UploadFileStatus.PENDING_VERIFICATION || item.batchStatus === UploadFileStatus.VALIDATED_PENDING_UPDATED;\n item.isShowValidate = item.batchStatus === UploadFileStatus.PENDING_VERIFICATION;\n return item;\n });\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n fileDetail(el: any) {\n this.commissionApeManualAdjustService.detail(el.id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.commissionApeManualAdjustService.downLoadExcel(res.data, el.fileName, true);\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n requestedFormat() {\n const popupRef: MatDialogRef = this.cdPopup.open(RequestFormatComponent, {\n size: CdPopupSize.LARGE,\n isShowClose: false,\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n delete(id: string) {\n const deleteConfirm: MatDialogRef = this.cdPopup.openCommon({ type: CdPopupType.DELETE });\n deleteConfirm\n .afterClosed()\n .pipe(\n filter(confirm => {\n return confirm && confirm.delete;\n })\n )\n .subscribe(() => {\n this.commissionApeManualAdjustService.delete(id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.getData();\n } else {\n this.toast.error(res.message);\n }\n });\n });\n }\n\n validate(id: string, fileName: string) {\n const popupRef: MatDialogRef = this.cdPopup.openCommon({\n type: CdPopupType.CONTINUE,\n data: {\n message: I18N_KEY.COMIS_VALIDATE_CONFIRM,\n params: { p: fileName },\n },\n });\n popupRef\n .afterClosed()\n .pipe(filter(confirm => confirm && confirm.continue))\n .subscribe(() => {\n this.commissionApeManualAdjustService.validate(id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.getData();\n } else {\n this.toast.error(res.message);\n }\n });\n });\n }\n\n upload() {\n const popupRef: MatDialogRef = this.cdPopup.open(ApeUploadFileComponent, {\n size: CdPopupSize.LARGE,\n });\n popupRef.afterClosed().subscribe(isChange => {\n if (isChange) {\n this.getData();\n }\n });\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: 10,\n };\n return params;\n }\n}\n","
    \n \n

    \n Batch upload for APE, VSF & AUM Trailer Fee Journal. Please input file with\n requested format.\n

    \n
    \n
    \n \n \n \n \n File Upload\n \n \n \n \n \n \n {{ element['fileName'] }}\n \n \n
    \n \n \n \n \n Validate\n \n
    \n
    \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from 'src/app/shared/cd-popup';\nimport { CommissionApeManualService } from 'src/app/views/commission/ape-manual/commission-ape-manual.service';\nimport { EXCEL_DEMO, FILE_TEMPLATE_NAME } from '../../ape-manual.model';\n\n@Component({\n selector: 'app-request-format',\n templateUrl: './request-format.component.html',\n styleUrls: ['./request-format.component.scss'],\n})\nexport class RequestFormatComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef, private commissionApeManualAdjustService: CommissionApeManualService) {}\n\n ngOnInit(): void {}\n\n createTemplate() {\n this.commissionApeManualAdjustService.downLoadExcel(EXCEL_DEMO, FILE_TEMPLATE_NAME);\n }\n\n cancel() {\n this.dialogRef.close();\n }\n}\n","\n \n
    User Guide on batch upload the APE/VSF , AUM/Trailer Fee:
    \n
    \n
      \n
    • Please refer the standard template to upload
    • \n
    • Maximum 100 rows (Except the header) in one file
    • \n
    • \n
      Possible Combination:
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      Adjust Account/Adjust TypeMPF-ER,MACAU-ER(CPF)ORSO-ER,MACAU-ER(PPS)MPF-SEP,MPF-SEP(AGENT)MPF-FRCMPF-TVC,Macau-IVCMPF-PAP,MACAU-PAP
      112NNNMember Acc CodeNN
      112PER Acc CodeER Acc CodeNNNN
      112IER Acc Code + Member Acc Code[PAC Flag]NMember Acc Code+ Optional: Member Acc Code [PAC Flag]NMember Acc CodeMember Acc Code
      115NNNNMember Acc CodeN
      133NNNNMember Acc CodeN
      141ANNMember Acc CodeMember Acc CodeMember Acc CodeNNN
      935ANNMember Acc CodeMember Acc CodeMember Acc CodeNNN
      136FEEMember Acc CodeNNNNN
      \n
    • \n
    • \n APE/AUM\n
        \n
      • Applied to Adjust Type = 112,112P,112I,115,133,141ANN,935ANN
      • \n
      • Numerical within 2 decimal place
      • \n
      \n
    • \n
    • \n VSF/Trailer Fee\n
        \n
      • Applied to Adjust Type =136FEE
      • \n
      • Numerical within 2 decimal place
      • \n
      • Only allow to input agent channel = SCB / DBS / BROKER/ IA BROKER
      • \n
      \n
    • \n
    \n
    \n
    \n \n {{ 'common.gotIt' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { finalize } from 'rxjs';\nimport moment from 'moment';\n\nimport { CdsToastService } from '@cds/ng-web-components/toast';\n\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CommissionApeManualService } from 'src/app/views/commission/ape-manual/commission-ape-manual.service';\nimport { requiredValidator } from 'src/app/core/validators';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { CdPopupService, CdPopupType } from 'src/app/shared/cd-popup';\nimport { I18N_KEY, NbvRatioItem, NbvRatioItems, ResNbvRatioItem } from './nbv-ratio.config';\n\n@Component({\n selector: 'app-nbv-ratio',\n templateUrl: './nbv-ratio.component.html',\n styleUrls: ['./nbv-ratio.component.scss'],\n})\nexport class NbvRatioComponent implements OnInit {\n loading = false;\n isEdit = false;\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n\n updateTime = '';\n updatePeople = '';\n\n formGroup: FormGroup = new FormGroup({\n ratio: new FormArray([]),\n });\n\n nbvRatioItems: NbvRatioItem[] = NbvRatioItems;\n nbvRatios: ResNbvRatioItem[] = [];\n\n get ratio() {\n return this.formGroup.get('ratio') as FormArray;\n }\n\n get isSaveDisable() {\n let empty = false;\n for (let i = 0; i < this.ratio.controls.length; i++) {\n const control = this.ratio.controls[i] as FormControl;\n if (!control.value) {\n empty = true;\n break;\n }\n }\n return this.ratio.invalid || this.isResetDisable || empty;\n }\n\n get isResetDisable() {\n let scaleCodeChange = false;\n for (let i = 0; i < this.ratio.controls.length; i++) {\n const controls = this.ratio.controls[i] as FormControl;\n if (controls.defaultValue !== controls.value) {\n scaleCodeChange = true;\n break;\n }\n }\n return !scaleCodeChange;\n }\n\n constructor(private toast: CdsToastService, private cdPopup: CdPopupService, private commissionApeManualService: CommissionApeManualService) {}\n\n ngOnInit() {\n this.createRatioForm();\n this.getNbvRatios();\n }\n\n createRatioForm() {\n this.nbvRatioItems.forEach(() => {\n this.ratio.push(\n new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.NBV_RATIO_NULL })],\n })\n );\n });\n }\n\n resetRatioForm() {\n this.nbvRatios.forEach(item => {\n const index = this.nbvRatioItems.findIndex((ratio: any) => ratio.apeType === item.apeType);\n if (index > -1) {\n const value = item.value ? item.value.toFixed(3).toString() : '';\n this.ratio.setControl(\n index,\n new FormControl(value, {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.NBV_RATIO_NULL })],\n })\n );\n }\n });\n }\n\n getNbvRatios() {\n this.loading = true;\n this.commissionApeManualService\n .getNbvRatios()\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.initPage(res.data);\n }\n });\n }\n\n initPage(data: any) {\n this.nbvRatios = data.nbvRatios || [];\n this.updateTime = data.lastUpdateTime ? moment(data.lastUpdateTime).format('hh:mma DD/MM/YYYY') : '';\n this.updatePeople = data.lastUpdater || '';\n this.resetRatioForm();\n }\n\n changeMode() {\n if (this.isEdit) {\n const ref = this.cdPopup.openCommon({ type: CdPopupType.CONTINUE });\n ref.afterClosed().subscribe(res => {\n if (res && res.continue) {\n this.isEdit = !this.isEdit;\n this.ratio.reset();\n }\n });\n } else {\n this.isEdit = !this.isEdit;\n }\n }\n\n reset() {\n if (this.isResetDisable) {\n return;\n }\n this.ratio.reset();\n }\n\n save() {\n if (this.isSaveDisable) {\n return;\n }\n this.loading = true;\n const params = this.createParams();\n this.commissionApeManualService\n .saveNbvRatios(params)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n const ref = this.cdPopup.openCommon({\n type: CdPopupType.GOT,\n });\n ref.afterClosed().subscribe(() => {\n this.initPage(res.data);\n });\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createParams() {\n const params: any[] = [];\n this.nbvRatioItems.forEach((item, index) => {\n params.push({\n apeType: item.apeType,\n value: parseFloat(this.ratio.controls[index].value),\n });\n });\n return params;\n }\n\n ratioInput(ev: any, index: number) {\n let value = ev.target.value;\n value = value.match(/^(([1-9]\\d?)|100|0|(\\d{1,2})\\.(\\d){0,3})$/g); // 只允許數字3位小數點3位\n const pos = ev.target.selectionEnd;\n this.ratio.controls[index].setValue(value ? value.toString() : value);\n ev.target.setSelectionRange(pos, pos);\n }\n\n ratioChange(ev: any, index: number) {\n if (!ev.target) {\n return;\n }\n let value = ev.target.value;\n value = value.match(/^(([1-9]\\d?)|100|0|(\\d{1,2})\\.(\\d){0,3})$/g); // 只允許數字3位小數點3位\n if (!value) {\n return;\n }\n value = parseFloat(value).toFixed(3).toString();\n this.ratio.controls[index].setValue(value);\n }\n}\n","
    \n \n
    \n
    \n
    \n
    \n
    \n

    \n {{ 'commission.ape.nbvRatio' | lang }}\n

    \n

    \n {{ 'commission.ape.latestUpdate' | lang : { p: updateTime } }}\n ({{ 'common.HKT' | lang }}),\n {{ 'commission.ape.by' | lang : { p: updatePeople } }}\n

    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n {{ 'commission.ape.item' | lang }}\n
    \n
    \n {{ 'commission.ape.nbvRatioUpper' | lang }}\n
    \n
    \n
    \n
    \n {{ item.label | lang }}\n
    \n
    \n \n \n
    \n {{ ratio.controls[index].errors?.['error'] | lang }} \n
    \n
    \n
    {{ ratio.controls[index].value }}
    \n
    \n
    \n
    \n
    \n {{ 'common.reset' | lang }}\n \n {{ 'common.save' | lang }} \n
    \n
    \n
    \n","import { ApeType } from 'src/app/core/models/enum/ape-type.enum';\n\nexport const I18N_KEY = {\n COMMON_SUCCESS: 'common.action.success',\n COMMON_ACTION_CANCLE: 'common.action.cancel',\n COMMON_CANCLE: 'common.cancel',\n COMMON_CONTINUE: 'common.gotItWithExclamation',\n COMMON_EDIT: 'common.backToEdit',\n NBV_RATIO_NULL: 'commission.ape.nbvRatio.placeholder',\n};\n\nexport const NbvRatioItems: NbvRatioItem[] = [\n {\n apeType: ApeType.MPF_ER_AC,\n label: 'MPF-ER AC \\n [Annualize Contribution]',\n },\n {\n apeType: ApeType.MPF_ER_TA,\n label: 'MPF-ER TA \\n [Plan Transfer Asset]',\n },\n {\n apeType: ApeType.MPF_ER_IT_MPF_PAP,\n label: 'MPF-ER IT & MPF-PAP \\n [Individual Transfer Asset]',\n },\n {\n apeType: ApeType.MPF_TVC,\n label: 'MPF-TVC \\n [Contribution & Transfer Asset]',\n },\n {\n apeType: ApeType.MPF_SEP,\n label: 'MPF-SEP \\n [Contribution & Transfer Asset]',\n },\n {\n apeType: ApeType.MPF_FRC,\n label: 'MPF-FRC \\n [Contribution]',\n },\n {\n apeType: ApeType.OR_MA_PPS_AC,\n label: 'OR MA(PPS) AC \\n [Annualize Contribution]',\n },\n {\n apeType: ApeType.OR_MA_PPS_TA,\n label: 'OR MA(PPS) TA \\n [Plan Transfer Asset]',\n },\n {\n apeType: ApeType.MA_CPF_AC,\n label: 'MA(CPF) AC \\n [Annualize Contribution]',\n },\n {\n apeType: ApeType.MA_CPF_TA,\n label: 'MA(CPF) TA \\n [Plan Transfer Asset]',\n },\n {\n apeType: ApeType.MA_CPF_IT,\n label: 'MA(CPF) IT \\n [Individual Transfer Asset]',\n },\n {\n apeType: ApeType.MA_PAP,\n label: 'MA-PAP \\n [Individual Transfer Asset]',\n },\n {\n apeType: ApeType.MA_IVC,\n label: 'MA-IVC \\n [Contribution & Transfer Asset]',\n },\n];\n\nexport interface NbvRatioItem {\n apeType: string;\n label: string;\n}\nexport interface ResNbvRatioItem {\n apeType: string;\n value: number;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\n\nimport moment from 'moment';\nimport { filter, finalize } from 'rxjs';\nimport { UploadFileStatus, UploadFileStatusText } from 'src/app/core/models/enum/upload-file-status.enum';\n\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CdPopupService, CdPopupSize, CdPopupType, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { PageConfig } from 'src/app/shared/data-table';\nimport { ADJUSTMENT_UPLOAD_COLUMNS, I18N_KEY, PAGE_SIZE } from './batch-upload-adjustment.model';\nimport { BatchUploadAdjustmentService } from './batch-upload-adjustment.service';\nimport { UploadAdjustmentDataComponent } from './upload-adjustment-data/upload-adjustment-data.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\n@Component({\n selector: 'app-batch-upload-adjustment',\n templateUrl: './batch-upload-adjustment.component.html',\n})\nexport class BatchUploadAdjustmentComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n uploadFileStatus = UploadFileStatus;\n columnsConfig = ADJUSTMENT_UPLOAD_COLUMNS;\n pageConfig: PageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n loading = false;\n dataDisplayed: any[] = [];\n\n get totalElements() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(\n private permissionService: PermissionService,\n private toast: CdsToastService,\n private cdPopup: CdPopupService,\n private batchUploadAdjustmentService: BatchUploadAdjustmentService\n ) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.COMM_ADJ_BATCH_UPLOAD).then(hasPermission => {\n if (!hasPermission) {\n this.columnsConfig = ADJUSTMENT_UPLOAD_COLUMNS.slice(0, -1);\n }\n this.getData();\n });\n }\n\n getData() {\n this.loading = true;\n const params = this.createParams();\n this.batchUploadAdjustmentService\n .getList(params)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe((res: any) => {\n if (res.result === ResponseResult.SUCCESS) {\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.totalElements,\n };\n const tempData = res.data.content || [];\n this.dataDisplayed = tempData.map((item: any) => {\n item.createTime = item.createTime ? moment(new Date(item.createTime)).format('DD/MM/YYYY') : '';\n item.lastUpdateTime = item.lastUpdateTime ? moment(new Date(item.lastUpdateTime)).format('DD/MM/YYYY') : '';\n item.processor = item.createBy ? item.createBy.name : '';\n item.batchStatusLabel = UploadFileStatusText.get(item.batchStatus);\n item.isShowDelete = item.batchStatus === UploadFileStatus.PENDING_VERIFICATION || item.batchStatus === UploadFileStatus.VALIDATED_PENDING_UPDATED;\n item.isShowValidate = item.batchStatus === UploadFileStatus.PENDING_VERIFICATION;\n return item;\n });\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n fileDetail(el: any) {\n this.batchUploadAdjustmentService.detail(el.id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.batchUploadAdjustmentService.downLoadExcel(res.data, el.fileName, true);\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n delete(id: string) {\n const deleteConfirm: MatDialogRef = this.cdPopup.openCommon({ type: CdPopupType.DELETE });\n deleteConfirm\n .afterClosed()\n .pipe(\n filter(confirm => {\n return confirm && confirm.delete;\n })\n )\n .subscribe(() => {\n this.batchUploadAdjustmentService.delete(id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.getData();\n } else {\n this.toast.error(res.message);\n }\n });\n });\n }\n\n validate(id: string, fileName: string) {\n const popupRef: MatDialogRef = this.cdPopup.openCommon({\n type: CdPopupType.CONTINUE,\n data: {\n message: I18N_KEY.COMIS_VALIDATE_CONFIRM,\n params: { p: fileName },\n },\n });\n popupRef\n .afterClosed()\n .pipe(filter(confirm => confirm && confirm.continue))\n .subscribe(() => {\n this.batchUploadAdjustmentService.validate(id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.getData();\n } else {\n this.toast.error(res.message);\n }\n });\n });\n }\n\n upload() {\n const popupRef: MatDialogRef = this.cdPopup.open(UploadAdjustmentDataComponent, {\n size: CdPopupSize.LARGE,\n });\n popupRef.afterClosed().subscribe(isChange => {\n if (isChange) {\n this.getData();\n }\n });\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: 10,\n };\n return params;\n }\n}\n"," \n
    \n
    \n \n \n \n \n File Upload\n \n \n \n \n \n \n {{ element['fileName'] }}\n \n \n
    \n \n \n \n \n Validate\n \n
    \n \n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const ADJUSTMENT_UPLOAD_COLUMNS: Array = [\n { key: 'createTime', sticky: true, title: 'Upload Date' },\n { key: 'fileName', sticky: true, title: 'File Name' },\n { key: 'processor', sticky: true, title: 'Processor' },\n { key: 'batchStatusLabel', title: 'Status' },\n { key: 'validatedCountStr', title: 'Pass Validate' },\n { key: 'updatedCountStr', title: 'Success Updated' },\n { key: 'lastUpdateTime', title: 'Last Updated Date' },\n { key: 'action', title: 'Action' },\n];\n\nexport const EXCEL_COLUMNS = [\n 'Scenario',\n 'Account Type',\n 'Employer / Member Acc Code',\n 'Member Account Code [PAC Flag]',\n 'Agent Code',\n 'Negative Flag',\n 'HKPC AMT',\n 'COMM AMT',\n 'HKPC / COMM PREM',\n 'SF/OTHER AMT',\n 'SF/PREM',\n 'CASE COUNT',\n 'RESULT',\n];\n\nexport const EXCEL_DEMO = [\n {\n adjustType: 'N1',\n accountType: 'MPF-ER',\n accountCode: '20000001',\n memberCode: '',\n agentCode: '300001',\n negativeFlag: '',\n hkpcAmount: '300',\n commAmount: '300.01',\n pcCommPremium: '10000.33',\n sfOtherAmount: '100.01',\n sfOtherPremium: '10001.11',\n caseCount: '1',\n },\n {\n adjustType: 'N1',\n accountType: 'MPF-ER',\n accountCode: '20000002',\n memberCode: '',\n agentCode: '300001',\n negativeFlag: '',\n hkpcAmount: '300',\n commAmount: '300.01',\n pcCommPremium: '10000.33',\n sfOtherAmount: '',\n sfOtherPremium: '',\n caseCount: '',\n },\n {\n adjustType: 'N1',\n accountType: 'MPF-SEP',\n accountCode: '91000002',\n memberCode: '',\n agentCode: '999999',\n negativeFlag: 'Y',\n hkpcAmount: '',\n commAmount: '300.01',\n pcCommPremium: '10000.33',\n sfOtherAmount: '',\n sfOtherPremium: '',\n caseCount: '',\n },\n {\n adjustType: 'N3',\n accountType: 'MPF-FRC',\n accountCode: '91000003',\n memberCode: '',\n agentCode: '300001',\n negativeFlag: '',\n hkpcAmount: '',\n commAmount: '',\n pcCommPremium: '',\n sfOtherAmount: '',\n sfOtherPremium: '',\n caseCount: '0.33',\n },\n {\n adjustType: 'N4',\n accountType: 'MPF-TVC',\n accountCode: '91000004',\n memberCode: '',\n agentCode: '300001',\n negativeFlag: '',\n hkpcAmount: '300',\n commAmount: '300.01',\n pcCommPremium: '10000.33',\n sfOtherAmount: '',\n sfOtherPremium: '',\n caseCount: '1',\n },\n {\n adjustType: 'I1',\n accountType: 'MPF-ER',\n accountCode: '20000001',\n memberCode: '91000005',\n agentCode: '300001',\n negativeFlag: '',\n hkpcAmount: '300',\n commAmount: '300.01',\n pcCommPremium: '10000.33',\n sfOtherAmount: '',\n sfOtherPremium: '',\n caseCount: '1',\n },\n {\n adjustType: 'I1',\n accountType: 'MPF-PAP',\n accountCode: '91000006',\n memberCode: '',\n agentCode: '300001',\n negativeFlag: 'Y',\n hkpcAmount: '300',\n commAmount: '300.01',\n pcCommPremium: '10000.33',\n sfOtherAmount: '180',\n sfOtherPremium: '',\n caseCount: '1',\n },\n];\nexport const FILE_TEMPLATE_NAME = 'Comm_Adj_template';\nexport const BYTE_OF_10M = 10485760;\nexport const FILE_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\nexport const PAGE_SIZE = 10;\nexport const I18N_KEY = {\n COMIS_VALIDATE_CONFIRM: 'commission.ape.validateWarning',\n FILE_ERROR: 'Please use standard template to upload / Over 100 records in the file.',\n};\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { BatchUploadAdjustmentComponent } from './batch-upload-adjustment.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UploadAdjustmentDataComponent } from './upload-adjustment-data/upload-adjustment-data.component';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { UploadFileFormatComponent } from './upload-file-format/upload-file-format.component';\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, SharedModule, CdsFileUploadModule],\n declarations: [BatchUploadAdjustmentComponent, UploadAdjustmentDataComponent, UploadFileFormatComponent],\n})\nexport class BatchUploadAdjustmentModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BasicResponse, IPageResponse } from 'src/app/core/models/response/response';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport { environment } from 'src/environments/environment';\nimport { EXCEL_COLUMNS } from './batch-upload-adjustment.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BatchUploadAdjustmentService {\n constructor(private http: HttpClient) {}\n\n getList(params: any): Observable>> {\n return this.http.get>>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/commission-adjust-batch/list'}`, {\n params: params,\n });\n }\n\n detail(id: string): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-adjust-batch/list-items/${id}`);\n }\n\n delete(id: string): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-adjust-batch/delete/${id}`, null);\n }\n\n validate(id: string): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-adjust-batch/validate/${id}`, null);\n }\n\n uploadFile(file: File) {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/commission-adjust-batch/upload'}`, formData);\n }\n\n downLoadExcel(data: Array, fileName: string, isDetail?: boolean) {\n const excelData: any[] = [];\n let arr = [...EXCEL_COLUMNS];\n if (!isDetail) {\n arr = arr.slice(0, -1);\n }\n excelData.push(arr);\n data.forEach(item => {\n const temp = [];\n temp.push(item.adjustType);\n temp.push(item.accountType);\n temp.push(item.accountCode);\n temp.push(item.memberCode);\n temp.push(item.agentCode);\n temp.push(item.negativeFlag);\n temp.push(item.hkpcAmount);\n temp.push(item.commAmount);\n temp.push(item.pcCommPremium);\n temp.push(item.sfOtherAmount);\n temp.push(item.sfOtherPremium);\n temp.push(item.caseCount);\n if (isDetail) {\n temp.push(item.resultMsg);\n }\n excelData.push(temp);\n });\n aoaToSheet(\n {\n fileName: fileName.split('.')[0],\n fileType: FileType.XLSX,\n },\n excelData\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CdPopupService, CdPopupSize, CdPopupType, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { BYTE_OF_10M, FILE_TYPE, I18N_KEY } from '../batch-upload-adjustment.model';\nimport { BatchUploadAdjustmentService } from '../batch-upload-adjustment.service';\nimport { UploadFileFormatComponent } from '../upload-file-format/upload-file-format.component';\n\n@Component({\n selector: 'app-upload-adjustment-data',\n templateUrl: './upload-adjustment-data.component.html',\n styleUrls: ['./upload-adjustment-data.component.scss'],\n})\nexport class UploadAdjustmentDataComponent implements OnInit {\n uploadFormControl: FormControl = new FormControl();\n file!: File | null;\n errorMessage = '';\n\n uploading = false;\n\n get confirmDisabled() {\n return !!this.errorMessage || !this.file;\n }\n\n constructor(\n private batchUploadAdjustmentService: BatchUploadAdjustmentService,\n private dialogRef: MatDialogRef,\n private cdsPopup: CdPopupService\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.file = null;\n this.errorMessage = '';\n }\n });\n }\n\n requestedFormat() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UploadFileFormatComponent, {\n size: CdPopupSize.LARGE,\n isShowClose: false,\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n if (!this.file || !this.file.size || !this.file.type || !this.file.name) {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n return;\n }\n if (this.file.type !== FILE_TYPE) {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n return;\n }\n if (this.file.size > BYTE_OF_10M) {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n }\n }\n\n cancel() {\n if (!this.file) {\n this.dialogRef.close();\n return;\n }\n const ref = this.cdsPopup.openCommon({ type: CdPopupType.CONTINUE });\n ref.afterClosed().subscribe(res => {\n if (res && res.continue) {\n this.dialogRef.close();\n }\n });\n }\n\n confirm() {\n if (this.errorMessage) {\n return;\n }\n this.upload();\n }\n\n upload() {\n if (this.file) {\n this.uploading = true;\n this.batchUploadAdjustmentService\n .uploadFile(this.file)\n .pipe(\n finalize(() => {\n this.uploading = false;\n })\n )\n .subscribe(res => {\n if (res.result == ResponseResult.SUCCESS) {\n const ref = this.cdsPopup.openCommon({\n type: CdPopupType.GOT,\n });\n ref.afterClosed().subscribe(() => {\n this.dialogRef.close(true);\n });\n } else {\n this.errorMessage = I18N_KEY.FILE_ERROR;\n }\n });\n }\n }\n}\n","\n \n Upload document\n \n \n
    File requirements
    \n
    • A maximum of .xslx file with file size limit of 10MB can be uploaded
    \n
    • Please input file with requested format.
    \n
    \n \n \n
    \n {{ errorMessage | lang }}\n
    \n
    \n
    \n \n {{ 'common.cancel' | lang }}\n {{ 'common.confirm' | lang }}\n \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from 'src/app/shared/cd-popup';\nimport { EXCEL_DEMO, FILE_TEMPLATE_NAME } from '../batch-upload-adjustment.model';\nimport { BatchUploadAdjustmentService } from '../batch-upload-adjustment.service';\n\n@Component({\n selector: 'app-upload-file-format',\n templateUrl: './upload-file-format.component.html',\n styleUrls: ['./upload-file-format.component.scss'],\n})\nexport class UploadFileFormatComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef, private batchUploadAdjustmentService: BatchUploadAdjustmentService) {}\n\n ngOnInit() {}\n\n createTemplate() {\n this.batchUploadAdjustmentService.downLoadExcel(EXCEL_DEMO, FILE_TEMPLATE_NAME);\n }\n\n cancel() {\n this.dialogRef.close();\n }\n}\n","\n \n
    User Guide on batch upload the Commission Adjustment:
    \n
      \n
    • Please refer the standard template to upload
    • \n
    • \n Maximum 100 rows\n (Except the header) in one file\n
    • \n
    • \n [Col A# – Scenario ] Possible Value:\n
      N1 / N2 / N3 / N4 / I1
      \n
    • \n
    • \n [Col B# – Account Type ] Possible Value:\n
      MPF-ER/ MPF-SEP/ MPF-SEP(AGENT)/ MPF-FRC/ MPF-TVC/ MPF-PAP/ORSO-ER/ MACAU-ER(PPS)/ MACAU-ER(CPF)/ MACAU-PAP/MACAU-IVC
      \n
    • \n
    • \n [Col C# – Employer/Member Acc Code ]\n
      Input Employer Account Code if account type is MPF-ER/ ORSO-ER/ MACAU-ER(PPS)/ MACAU-ER(CPF)
      \n
      \n Input Member Account Code if account type is\n MPF-SEP/ MPF-SEP(AGENT)/ MPF-FRC/ MPF-TVC/ MPF-PAP/ MACAU-PAP/ MACAU-IVC\n
      \n
      in “Employer/Member Acc Code” [Column B] field
      \n
    • \n
    • \n [Col D% – Member Account Code [PAC Flag]] \n
      \n Only allow to input the Member Account Code if Col A-Section is “I1” & Col B-Account Type is\n MPF-ER/ MPF-SEP/ MPF-SEP(AGENT)/ MACAU-ER(CPF)\n
      \n
    • \n
    • \n [Col E# – Agent Code] is only allowed to input up-to 6 digit\n
    • \n
    • \n [Col F# – Negative Flag] is only allowed to input blank or Y\n
    • \n
    • \n [Col G to L^ ] Column G,H,I,J,K,L,M is corresponding the updating by different Scenario\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      AGHIJKL
      ScenarioHKPC AMTCOMM AMTHKPC / COMM PREMSF/OTHER AMTSF/PREMCASE COUNT
      \n
      MPF-ER
      \n
      ORSO-ER
      \n
      MACAU-ER(PPS)
      \n
      MACAU-ER(CPF)
      \n
      MPF-SEP
      \n
      MPF-SEP(AGENT)
      \n
      MPF-TVC
      \n
      MACAU-IVC
      \n
      N1HKPC for FS HKPC ScaleCOMM for 1st Year COMM ScalePremium for Column G/HService Fee for FS Service Fee Scale[Not apply for MPF-TVC / MACAU-IVC]Premium for Column J [Not apply for MPF-TVC / MACAU-IVC]Case Count
      \n
      ORSO-ER
      \n
      MACAU-ER(PPS)
      \n
      MACAU-ER(CPF)
      \n
      N2HKPC for PS HKPC ScaleCOMM for PS COMM ScalePremium for Column G/HService Fee for PS Service Fee ScalePremium for Column JCase Count
      \n
      MPF-ER
      \n
      ORSO-ER
      \n
      MACAU-ER(PPS)
      \n
      MACAU-ER(CPF)
      \n
      MPF-FRC
      \n
      N3HKPC for TRF SP HKPC ScaleCOMM for TRF SP COMM ScalePremium for Column G/HCase Count
      \n
      MPF-TVC
      \n
      MACAU-IVC
      \n
      N4HKPC for RY HKPC ScaleService Fee for FS Service Fee ScalePremium for Column G/HCase Count
      \n
      MPF-ER
      \n
      MPF-SEP
      \n
      MPF-SEP(AGENT)
      \n
      MPF-TVC
      \n
      MPF-PAP
      \n
      MACAU-ER(CPF)
      \n
      MACAU-PAP
      \n
      MACAU-IVC
      \n
      I1HKPC for TRF SP HKPC Scale(Individual Transfer)COMM for TRF SP COMM Scale(Individual Transfer)Premium for Column G/HSpecial PC for FS HKPC [Only apply for MPF-PAP]Case Count
      \n
    • \n
    • \n Col A#, Col B, Col C#, Col E#, Col F# are compulsory fields.\n
    • \n
    • \n Col D% is compulsory field for MPF-ERER , Macau-ER(CPF) only\n
    • \n
    • \n Col G to M at least one field that need to input\n
    • \n
    \n
    \n \n {{ 'common.gotIt' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { tab } from './commission-default-scale.config';\n\n@Component({\n selector: 'app-commission-default-scale',\n templateUrl: './commission-default-scale.component.html',\n styleUrls: ['./commission-default-scale.component.scss'],\n})\nexport class CommissionDefaultScaleComponent implements OnInit {\n tab = tab;\n tabSelected: any;\n constructor(private route: ActivatedRoute) {}\n\n ngOnInit() {\n this.setTabSelected();\n }\n\n setTabSelected() {\n const tabSelected = this.route.snapshot.paramMap.get('tab') || this.tab[1].value;\n const selectedTab = this.tab.find(item => item.value === tabSelected) || this.tab[0];\n this.tabClick(selectedTab);\n }\n\n tabClick(tab: any) {\n this.tabSelected = tab;\n this.tab.forEach(j => {\n const item: any = j;\n if (item.value == tab.value) {\n item.selected = true;\n } else {\n item.selected = false;\n }\n });\n }\n}\n"," \n
    \n
    \n
    \n
    {{ item.label | lang }}
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n","import { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { CommissionRate } from 'src/app/core/models/enum/commission-rate.enum';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { CommissionScenario } from 'src/app/core/models/enum/commission-scenario.enum';\n\nexport const tab = [\n {\n label: 'New Business - MPF',\n value: 'nbm',\n selected: false,\n },\n {\n label: 'Individual Transfer - MPF',\n value: 'itm',\n selected: true,\n },\n {\n label: 'New Business - ORSO/ Macau',\n value: 'nbom',\n selected: false,\n },\n];\n\nexport const MPFChannelTypes = [\n {\n label: 'Agency',\n value: AgentChannel.AGENCY,\n },\n {\n label: 'IA Broker',\n value: AgentChannel.IA_BROKER,\n },\n {\n label: 'Broker',\n value: AgentChannel.BROKER,\n },\n {\n label: 'SCB',\n value: AgentChannel.SCB,\n },\n {\n label: 'DBS',\n value: AgentChannel.DBS,\n },\n {\n label: 'Corporate',\n value: AgentChannel.CORPORATE,\n },\n];\nexport const MPFCommissionRates = [\n {\n label: 'Full Comm',\n value: CommissionRate.FULL_COMM,\n },\n {\n label: 'Partial Comm 1',\n value: CommissionRate.PARTIAL_COMM1,\n },\n {\n label: 'Partial Comm 2',\n value: CommissionRate.PARTIAL_COMM2,\n },\n {\n label: 'Partial Comm 3',\n value: CommissionRate.PARTIAL_COMM3,\n },\n {\n label: 'No Comm',\n value: CommissionRate.NO_COMM,\n },\n];\nexport const MacauCommissionRates = [\n {\n label: 'Full Comm',\n value: CommissionRate.FULL_COMM,\n },\n {\n label: 'No Comm',\n value: CommissionRate.NO_COMM,\n },\n];\nexport const IndiTrChannelTypes = [\n {\n label: 'Agency',\n value: AgentChannel.AGENCY,\n },\n {\n label: 'IA Broker',\n value: AgentChannel.IA_BROKER,\n },\n {\n label: 'Broker',\n value: AgentChannel.BROKER,\n },\n {\n label: 'SCB',\n value: AgentChannel.SCB,\n },\n {\n label: 'DBS',\n value: AgentChannel.DBS,\n },\n {\n label: 'Corporate',\n value: AgentChannel.CORPORATE,\n },\n {\n label: 'Internal Transfer',\n value: AgentChannel.INTERNAL_TRANSFER,\n },\n];\nexport const CommissionRates = [\n {\n label: 'Full Comm',\n value: CommissionRate.FULL_COMM,\n },\n {\n label: 'Partial Comm 1',\n value: CommissionRate.PARTIAL_COMM1,\n },\n {\n label: 'Partial Comm 2',\n value: CommissionRate.PARTIAL_COMM2,\n },\n {\n label: 'Partial Comm 3',\n value: CommissionRate.PARTIAL_COMM3,\n },\n {\n label: 'No Comm',\n value: CommissionRate.NO_COMM,\n },\n {\n label: 'WSM Partial Comm 1',\n value: CommissionRate.WSM_PARTIAL_COMM1,\n },\n {\n label: 'WSM Partial Comm 2',\n value: CommissionRate.WSM_PARTIAL_COMM2,\n },\n {\n label: 'WSM Partial Comm 3',\n value: CommissionRate.WSM_PARTIAL_COMM3,\n },\n {\n label: 'WSM Partial Comm 4',\n value: CommissionRate.WSM_PARTIAL_COMM4,\n },\n {\n label: 'SHK Partial Comm 1',\n value: CommissionRate.SHKP_PARTIAL_COMM1,\n },\n {\n label: 'SHK Partial Comm 2',\n value: CommissionRate.SHKP_PARTIAL_COMM2,\n },\n {\n label: 'SHK Partial Comm 3',\n value: CommissionRate.SHKP_PARTIAL_COMM3,\n },\n];\nexport const MacauChannelTypes = [\n {\n label: 'Agency',\n value: AgentChannel.AGENCY,\n },\n {\n label: 'Broker',\n value: AgentChannel.BROKER,\n },\n {\n label: 'IA Broker',\n value: AgentChannel.IA_BROKER,\n },\n {\n label: 'Corporate',\n value: AgentChannel.CORPORATE,\n },\n {\n label: 'DBS',\n value: AgentChannel.DBS,\n },\n {\n label: 'SCB',\n value: AgentChannel.SCB,\n },\n];\n\nexport const MacauScaleTypeMap = new Map([\n [ScaleType.FS_PC, 'commission.scale.type.fspc.name'],\n [ScaleType.FY, 'commission.scale.type.fy.name'],\n [ScaleType.FS_SF, 'commission.scale.type.fssf.name'],\n [ScaleType.RY_PC, 'commission.scale.type.rypc.name'],\n [ScaleType.TRF_SP_PC, 'commission.scale.type.trf_sppc.name'],\n [ScaleType.TRF_SP, 'commission.scale.type.trf_sp.name'],\n [ScaleType.PS_PC, 'commission.scale.type.pspc.name'],\n [ScaleType.PS, 'commission.scale.type.ps.name'],\n [ScaleType.PS_SF, 'commission.scale.type.pssf.name'],\n]);\n\nexport const IndiTraScaleTypeMap = new Map([\n [ScaleType.IND_TRF_SP_PC, 'commission.scale.type.ind_trf_sppc.name'],\n [ScaleType.IND_TRF_SP, 'commission.scale.type.ind_trf_sp.name'],\n [ScaleType.IND_FS_PC, 'commission.scale.type.fspc.name'],\n]);\n\nexport const MpfScaleTypeMap = new Map([\n [ScaleType.FS_PC, 'commission.scale.type.fspc.name'],\n [ScaleType.FY, 'commission.scale.type.fy.name'],\n [ScaleType.PS_PC, 'commission.scale.type.pspc.name'],\n [ScaleType.RY_PC, 'commission.scale.type.rypc.name'],\n [ScaleType.TRF_SP_PC, 'commission.scale.type.trf_sppc.name'],\n [ScaleType.PS_SF, 'commission.scale.type.pssf.name'],\n [ScaleType.FS_SF, 'commission.scale.type.fssf.name'],\n [ScaleType.PS, 'commission.scale.type.ps.name'],\n [ScaleType.TRF_SP, 'commission.scale.type.trf_sp.name'],\n]);\n\nexport const IndiTraScenarios = [\n { label: 'MPF-ER(PAC): Individual Transfer', value: CommissionScenario.MPF_ERPAC_IND },\n { label: 'MPF-ER(PAC): Member Choice', value: CommissionScenario.MPF_ERPAC_MC },\n { label: 'MPF-SEP: Individual Transfer & MPF-SEP(PAC): Individual Transfer', value: CommissionScenario.MPF_SEP_IND },\n { label: 'MPF-SEP(PAC): Member Choice', value: CommissionScenario.MPF_SEP_PAC_MC },\n { label: 'MPF-TVC: Individual Transfer', value: CommissionScenario.MPF_TVC_IND },\n { label: 'MPF-PAP: Individual Transfer', value: CommissionScenario.MPF_PAP_IND },\n { label: 'MPF-PAP: Member Choice', value: CommissionScenario.MPF_PAP_MC },\n { label: 'MPF-SEP AGENT: Individual Transfer & MPF-SEP AGENT(PAC): Individual Transfer', value: CommissionScenario.MPF_ASEP_IND },\n { label: 'MPF-SEP AGENT(PAC): Member Choice', value: CommissionScenario.MPF_ASEP_PAC_MC },\n { label: 'MPF-ER(PAC): Min MPF Benefit', value: CommissionScenario.MPF_ERPAC_MIN_BENEFIT },\n { label: 'MPF-PAP: Min MPF Benefit', value: CommissionScenario.MPF_PAP_MIN_BENEFIT },\n { label: 'MACAU-PAP: Individual Transfer', value: CommissionScenario.MACAU_CPF_PAP_IND },\n];\n\nexport const I18N_KEY = {\n COMMON_ACTION_CANCLE: 'common.action.cancel',\n COMMON_CANCEL: 'common.cancel',\n COMMON_CONTINUE: 'common.continue',\n COMMISSION_SCALE_CODE_INPUT: 'commission.pool.scale.recordCreate.input',\n COMMISSION_SCALE_CODE_EMPTY: 'commission.default.scale.code.empty',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { CommissionDefaultScaleComponent } from './commission-default-scale.component';\nimport { NewBusinessMpfComponent } from './new-business-mpf/new-business-mpf.component';\nimport { IndividualTransferMpfComponent } from './individual-transfer-mpf/individual-transfer-mpf.component';\nimport { NewBusinessMacauComponent } from './new-business-macau/new-business-macau.component';\nimport { AutoChangeListComponent } from './new-business-macau/auto-change-list/auto-change-list.component';\n\n@NgModule({\n imports: [\n CommonModule,\n CdsPopupModule,\n CdsLanguageModule,\n CdsIconModule,\n SharedModule,\n FormsModule,\n ReactiveFormsModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n ],\n declarations: [CommissionDefaultScaleComponent, NewBusinessMpfComponent, IndividualTransferMpfComponent, NewBusinessMacauComponent, AutoChangeListComponent],\n exports: [CommissionDefaultScaleComponent, NewBusinessMpfComponent, IndividualTransferMpfComponent, NewBusinessMacauComponent, AutoChangeListComponent],\n})\nexport class CommissionDefaultScaleModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommissionDefaultScaleService {\n scenario: any;\n accountType: any;\n constructor(private http: HttpClient) {}\n\n getList(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-default-scale/list`, { params: params });\n }\n\n update(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-default-scale/update`, params);\n }\n\n getScaleCode(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-scale/list`, { params: params });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const fsHKPCValidator = (errors?: ValidationErrors) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (value) {\n return errors || { agentCodeValidator: true };\n }\n return null;\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { debounceTime, Subject, switchMap } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CommissionDefaultScaleService } from '../commission-default-scale.service';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport { I18N_KEY, CommissionRates, IndiTrChannelTypes, IndiTraScaleTypeMap, IndiTraScenarios } from '../commission-default-scale.config';\n\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { CommissionScenario } from 'src/app/core/models/enum/commission-scenario.enum';\nimport { requiredValidator, ScaleCodeAsyncValidator } from 'src/app/core/validators';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { fsHKPCValidator } from '../commission-default-scale.validators';\nimport { DefaultScaleType } from 'src/app/core/models/enum/default-scale-type.enum';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\n\n@Component({\n selector: 'app-individual-transfer-mpf',\n templateUrl: './individual-transfer-mpf.component.html',\n styleUrls: ['./individual-transfer-mpf.component.scss'],\n})\nexport class IndividualTransferMpfComponent implements OnInit, OnDestroy {\n permissionItem = PermissionItem.COMMISSION_DEFAULT_SCALE;\n permissionAccess = PermissionAccess.W;\n channelType = IndiTrChannelTypes;\n channelTypeSelected: any;\n commissionRate = CommissionRates;\n commissionRateSelected: any;\n searchParam$ = new Subject();\n\n options: CdsOption[] = IndiTraScenarios;\n // scenario: any;\n quickSearchFormcontrol: FormControl = new FormControl();\n disPlayData: any[] = [];\n progress = false;\n totalElements = 0;\n pageCount: IPaginationCount = { current: 1, count: 1 };\n formGroup = this.fb.group({\n details: this.fb.array([]),\n });\n\n get details() {\n return this.formGroup.controls['details'] as FormArray;\n }\n\n constructor(\n private scaleCodeAsyncValidator: ScaleCodeAsyncValidator,\n private cdsPopup: CdsPopupService,\n private fb: FormBuilder,\n private defaultScaleService: CommissionDefaultScaleService\n ) {\n this.searchParam$\n .pipe(\n debounceTime(500),\n // distinctUntilChanged(),\n switchMap(param => {\n return this.defaultScaleService.getList(param);\n })\n )\n .subscribe(res => {\n this.initData(res.data);\n });\n }\n\n ngOnInit() {\n this.search();\n if (this.defaultScaleService.scenario) {\n this.quickSearchFormcontrol.setValue(this.defaultScaleService.scenario);\n }\n }\n\n ngOnDestroy(): void {\n this.searchParam$.unsubscribe();\n }\n\n resetFilter() {\n this.channelTypeSelected = null;\n this.commissionRateSelected = null;\n this.search();\n }\n\n channelFilterClick(item: any) {\n this.channelTypeSelected = this.channelTypeSelected === item ? null : item;\n this.search();\n }\n\n accountFilterClick(item: any) {\n this.commissionRateSelected = this.commissionRateSelected === item ? null : item;\n this.search();\n }\n\n quickSearch(opt: any) {\n this.defaultScaleService.scenario = opt;\n this.search();\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getData();\n }\n\n search() {\n this.pageCount = { current: 1, count: 1 };\n this.getData();\n }\n\n getData() {\n const param = this.createParam();\n this.progress = true;\n this.searchParam$.next(param);\n }\n\n createParam() {\n const param: any = {\n defaultScaleType: DefaultScaleType.MPF_IND,\n };\n param.page = (this.pageCount.current as number) - 1;\n param.size = 10;\n if (this.channelTypeSelected) {\n if (this.channelTypeSelected.value == AgentChannel.INTERNAL_TRANSFER) {\n param.internalTransfer = true;\n } else {\n param.agentChannel = this.channelTypeSelected.value;\n }\n }\n if (this.commissionRateSelected) {\n param.compensationRate = this.commissionRateSelected.value;\n }\n if (this.defaultScaleService.scenario) {\n param.scenario = this.defaultScaleService.scenario.value;\n }\n return param;\n }\n\n initData(data: any) {\n this.progress = false;\n this.totalElements = data.totalElements;\n this.pageCount = {\n ...this.pageCount,\n count: data.totalPages || 0,\n };\n this.details.clear();\n const content = data.content || [];\n this.disPlayData = content.map((item: any, index: number) => {\n const obj = this.createItemFormGroup(item);\n const scenario = this.options.find((e: any) => e.value === item.scenario);\n item.scenarioLabel = scenario ? scenario.label : '';\n const channel = this.channelType.find((e: any) => e.value === item.agentChannel);\n item.agentChannelLabel = channel ? channel.label : '';\n const compensationRate = this.commissionRate.find((e: any) => e.value === item.compensationRate);\n item.compensationRateLabel = compensationRate ? compensationRate.label : '';\n item.detail.index = index;\n item.detail.isEdit = false;\n this.details.push(this.fb.group(obj));\n return item;\n });\n }\n\n createItemFormGroup(item: any) {\n const fp: any = {};\n item.detail.list = [];\n IndiTraScaleTypeMap.forEach((label: string, key: string) => {\n if (item.scenario != CommissionScenario.MPF_PAP_MC && key == ScaleType.IND_FS_PC) {\n fp[key] = new FormControl(item.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n validators: [\n fsHKPCValidator({\n error: I18N_KEY.COMMISSION_SCALE_CODE_EMPTY,\n }),\n ],\n });\n } else if (item.scenario == CommissionScenario.MPF_PAP_MC && key == ScaleType.IND_FS_PC) {\n fp[key] = new FormControl(item.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n });\n } else {\n fp[key] = new FormControl(item.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n validators: [\n requiredValidator({\n error: I18N_KEY.COMMISSION_SCALE_CODE_INPUT,\n }),\n ],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n });\n }\n item.detail.list.push({\n label,\n value: item.detail[key],\n key,\n });\n });\n return fp;\n }\n\n editScaleCode(detail: any) {\n detail.isEdit = !detail.isEdit;\n if (!detail.isEdit) {\n this.details.controls[detail.index].reset();\n }\n }\n\n scaleCodeChange(detail: any, key: string, event: any) {\n let value = event.target.value;\n value = value.toUpperCase().replace(/[^\\a-\\z\\A-\\Z0-9\\ ]/g, ''); // eslint-disable-line\n value = value.substring(0, 6);\n const pos = event.target.selectionEnd;\n event.target.setSelectionRange(pos, pos);\n this.details.controls[detail.index].get(key)?.setValue(value);\n }\n\n save(editItem: any) {\n const editIndex = editItem.detail.index;\n if (!this.details.controls[editIndex].dirty || this.details.controls[editIndex].invalid) {\n return;\n }\n\n const param: any = [];\n const detailsValue = this.details.controls[editIndex].value;\n editItem.detail.list.forEach((item: any) => {\n param.push({\n defaultScaleType: DefaultScaleType.MPF_IND,\n scenario: editItem.scenario,\n agentChannel: editItem.agentChannel,\n compensationRate: editItem.compensationRate,\n commissionType: item.key,\n scaleCode: detailsValue[item.key]?.trim(),\n });\n });\n\n this.defaultScaleService.update(param).subscribe(resp => {\n if (resp && resp.result == ResponseResult.SUCCESS) {\n editItem.detail.isEdit = false;\n editItem.detail = { ...editItem.detail, ...detailsValue };\n const obj = this.createItemFormGroup(editItem);\n this.details.setControl(editIndex, this.fb.group(obj));\n }\n });\n }\n\n reset(detail: any) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n cancel: I18N_KEY.COMMON_CANCEL,\n continue: I18N_KEY.COMMON_CONTINUE,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe((confirm: any) => {\n if (confirm.agree) {\n this.details.controls[detail.index].reset();\n }\n });\n }\n}\n","
    \n {{ 'common.filterRecord' | lang }}\n
    \n\n
    \n \n \n {{ 'common.resetFilters' | lang }}\n \n
    \n\n
    \n
    {{ 'commission.common.channel' | lang }}:
    \n
    \n
    \n
    {{ item.label }}
    \n
    \n
    \n
    \n\n
    \n
    {{ 'commission.default.scale.percentage.label' | lang }}:
    \n
    \n
    \n
    {{ item.label }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    {{ 'common.total' | lang }} {{ totalElements }} {{ 'common.records' | lang }}
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \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.label | lang }}\n
    \n\n
    \n
    \n {{ details.controls[element.detail.index].get(item.key)?.value }}\n
    \n\n
    \n \n \n {{ details.controls[element.detail.index].get(item.key)?.errors?.['error'] | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.reset' | lang }}\n \n {{ 'common.save' | lang }}\n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-auto-change-list',\n templateUrl: './auto-change-list.component.html',\n styleUrls: ['./auto-change-list.component.scss'],\n})\nexport class AutoChangeListComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit() {}\n\n gotIt() {\n this.dialogRef.close();\n }\n}\n","\n \n
    \n
    {{ 'commission.default.scale.autoChangeList.title' | lang }}
    \n
    {{ 'commission.default.scale.autoChangeList.tip' | lang }}
    \n
    \n
    Auto updating will be occurred in below 3 scenarios:
    \n
      \n
    • \n

      At the end of first contribution month:

      \n

      \n Total reporting amount on the “First Contribution date” of the main party is accumulated\n equal or larger than $10,000.00\n

      \n
    • \n
    • \n

      At the end of the next month of first contribution month and no auto update in previous month:

      \n

      \n Total reporting amount on the “First Contribution date” of the main party is accumulated\n equal or larger than $10,000.00\n

      \n
    • \n
    • \n

      At the end of the next month of first contribution month and auto updated in previous month:

      \n

      \n Total reporting amount on the “First Contribution date” of the main party is accumulated\n less than $10,000.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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Subscription Fee\n [Original Rate]\n

    FS HKPC Scale

    \n
    \n [Original Rate]\n

    1st Year Comm Scale

    \n
    \n [+0.5% Rate]\n

    FS HKPC Scale

    \n
    \n [+0.5% Rate]\n

    1st Year Comm Scale

    \n
    0M56PC (2.5%)M56FY (2.5%)M68PC (3%)M68FY (3%)
    1M68PC (3%)M68FY (3%)M76PC (3.5%)M301FY (3.5%)
    2M76PC (3.5%)M301FY (3.5%)M88PC (4%)M287FY (4%)
    3M88PC (4%)M287FY (4%)M99PC (4.5%)M99FY (4.5%)
    4M99PC (4.5%)M99FY (4.5%)M00PC (5%)M00FYR (5%)
    5M00PC (5%)M00FYR (5%)M306PC (5.5%)M306FYR (5.5%)
    \n
    \n
    \n
    \n \n {{ 'common.gotItWithExclamation' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl } from '@angular/forms';\n// import { CdsOption } from '@cds/ng-core/configuration';\nimport { debounceTime, Subject, switchMap } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CommissionDefaultScaleService } from '../commission-default-scale.service';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport { I18N_KEY, MacauChannelTypes, MacauScaleTypeMap, MacauCommissionRates } from '../commission-default-scale.config';\nimport { AutoChangeListComponent } from './auto-change-list/auto-change-list.component';\nimport { DefaultScaleType } from 'src/app/core/models/enum/default-scale-type.enum';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { requiredValidator, ScaleCodeAsyncValidator } from 'src/app/core/validators';\nimport { AccountType, MacauAccountTypes, PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { CdPopupService, CdPopupSize, MatDialogRef } from 'src/app/shared/cd-popup';\n\n@Component({\n selector: 'app-new-business-macau',\n templateUrl: './new-business-macau.component.html',\n styleUrls: ['./new-business-macau.component.scss'],\n})\nexport class NewBusinessMacauComponent implements OnInit, OnDestroy {\n permissionItem = PermissionItem.COMMISSION_DEFAULT_SCALE;\n permissionAccess = PermissionAccess.W;\n channelType = MacauChannelTypes;\n channelTypeSelected: any;\n commissionRate = MacauCommissionRates;\n commissionRateSelected: any;\n accountType = MacauAccountTypes;\n accountTypeMacauKey = AccountType.MACAU_PPS_ER;\n accountTypeSelected: any;\n searchParam$ = new Subject();\n\n // options: CdsOption[] = MacauScenarios;\n // scenario: any;\n // quickSearchFormcontrol: FormControl = new FormControl();\n disPlayData: any[] = [];\n progress = false;\n totalElements = 0;\n pageCount: IPaginationCount = { current: 1, count: 1 };\n formGroup = this.fb.group({\n details: this.fb.array([]),\n });\n\n get details() {\n return this.formGroup.controls['details'] as FormArray;\n }\n\n constructor(\n private scaleCodeAsyncValidator: ScaleCodeAsyncValidator,\n private cdsPopup: CdPopupService,\n private fb: FormBuilder,\n private defaultScaleService: CommissionDefaultScaleService\n ) {\n this.searchParam$\n .pipe(\n debounceTime(500),\n // distinctUntilChanged(),\n switchMap(param => {\n return this.defaultScaleService.getList(param);\n })\n )\n .subscribe(res => {\n this.initData(res.data);\n });\n }\n\n ngOnInit() {\n this.search();\n // if (this.scenario) {\n // this.quickSearchFormcontrol.setValue(this.scenario);\n // }\n }\n\n ngOnDestroy(): void {\n this.searchParam$.unsubscribe();\n }\n\n resetFilter() {\n this.channelTypeSelected = null;\n this.accountTypeSelected = null;\n this.search();\n }\n\n channelFilterClick(item: any) {\n this.channelTypeSelected = this.channelTypeSelected === item ? null : item;\n this.search();\n }\n\n accountFilterClick(item: any) {\n this.accountTypeSelected = this.accountTypeSelected === item ? null : item;\n this.search();\n }\n\n // quickSearch(opt: any) {\n // this.scenario = opt;\n // this.search();\n // }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getData();\n }\n\n search() {\n this.pageCount = { current: 1, count: 1 };\n this.getData();\n }\n\n getData() {\n const param = this.createParam();\n this.progress = true;\n this.searchParam$.next(param);\n }\n\n createParam() {\n const param: any = {\n defaultScaleType: DefaultScaleType.IFAST_NB,\n };\n param.page = (this.pageCount.current as number) - 1;\n param.size = 10;\n if (this.channelTypeSelected) {\n param.agentChannel = this.channelTypeSelected.value;\n }\n if (this.accountTypeSelected) {\n param.accountType = this.accountTypeSelected.value;\n }\n // if (this.commissionRateSelected) {\n // param.compensationRate = this.commissionRateSelected.value;\n // }\n // if (this.scenario) {\n // param.scenario = this.scenario.value;\n // }\n return param;\n }\n\n initData(data: any) {\n this.progress = false;\n this.totalElements = data.totalElements;\n this.pageCount = {\n ...this.pageCount,\n count: data.totalPages || 0,\n };\n this.details.clear();\n const content = data.content || [];\n this.disPlayData = content.map((item: any, index: number) => {\n const obj = this.createItemFormGroup(item);\n item.detail.index = index;\n item.detail.isEditAble = true;\n item.detail.isEdit = false;\n const accountType = this.accountType.find((e: any) => e.value === item.accountType);\n item.accountTypeLabel = accountType ? accountType.label : '';\n const channel = this.channelType.find((e: any) => e.value === item.agentChannel);\n item.agentChannelLabel = channel ? channel.label : '';\n const compensationRate = this.commissionRate.find((e: any) => e.value === item.compensationRate);\n item.compensationRateLabel = compensationRate ? compensationRate.label : '';\n if (item.accountType === AccountType.MACAU_PAP && !item.agentChannel && !item.compensationRate && item.subscriptionFee === undefined) {\n item.detail.isEditAble = false;\n }\n this.details.push(this.fb.group(obj));\n return item;\n });\n }\n\n createItemFormGroup(scenario: any) {\n const fp: any = {};\n const accountType = scenario.accountType;\n scenario.detail.list = [];\n MacauScaleTypeMap.forEach((label: string, key: string) => {\n fp[key] = new FormControl(scenario.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n validators: this.isScaleCodeRequired(key, accountType)\n ? [\n requiredValidator({\n error: I18N_KEY.COMMISSION_SCALE_CODE_INPUT,\n }),\n ]\n : [],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n });\n scenario.detail.list.push({\n label,\n value: scenario.detail[key],\n key,\n });\n });\n return fp;\n }\n\n isScaleCodeRequired(scaleType: string, accountType: string) {\n if (accountType === AccountType.MACAU_IVC) {\n return (\n scaleType == ScaleType.FS_PC ||\n scaleType == ScaleType.FY ||\n scaleType == ScaleType.RY_PC ||\n scaleType == ScaleType.TRF_SP_PC ||\n scaleType == ScaleType.TRF_SP ||\n scaleType == ScaleType.FS_SF\n );\n }\n if (accountType === AccountType.MACAU_PPS_ER || accountType === AccountType.MACAU_CPF_ER) {\n return (\n scaleType == ScaleType.FS_PC ||\n scaleType == ScaleType.FY ||\n scaleType == ScaleType.FS_SF ||\n scaleType == ScaleType.TRF_SP_PC ||\n scaleType == ScaleType.TRF_SP ||\n scaleType == ScaleType.PS_PC ||\n scaleType == ScaleType.PS\n );\n }\n return (\n scaleType == ScaleType.FS_PC ||\n scaleType == ScaleType.FY ||\n scaleType == ScaleType.FS_SF ||\n scaleType == ScaleType.TRF_SP_PC ||\n scaleType == ScaleType.TRF_SP\n );\n }\n\n editScaleCode(detail: any) {\n if (!detail.isEditAble) {\n return;\n }\n detail.isEdit = !detail.isEdit;\n if (!detail.isEdit) {\n this.details.controls[detail.index].reset();\n }\n }\n\n scaleCodeChange(detail: any, key: string, event: any) {\n let value = event.target.value;\n value = value.toUpperCase().replace(/[^\\a-\\z\\A-\\Z0-9\\ ]/g, ''); // eslint-disable-line\n value = value.substring(0, 6);\n const pos = event.target.selectionEnd;\n event.target.setSelectionRange(pos, pos);\n this.details.controls[detail.index].get(key)?.setValue(value);\n }\n\n save(editItem: any) {\n const editIndex = editItem.detail.index;\n if (!this.details.controls[editIndex].dirty || this.details.controls[editIndex].invalid) {\n return;\n }\n\n const param: any = [];\n const detailsValue = this.details.controls[editIndex].value;\n editItem.detail.list.forEach((item: any) => {\n param.push({\n defaultScaleType: DefaultScaleType.IFAST_NB,\n subscriptionFee: editItem.subscriptionFee,\n accountType: editItem.accountType,\n agentChannel: editItem.agentChannel,\n compensationRate: editItem.compensationRate,\n commissionType: item.key,\n scaleCode: detailsValue[item.key]?.trim(),\n });\n });\n\n this.defaultScaleService.update(param).subscribe(resp => {\n if (resp && resp.result == ResponseResult.SUCCESS) {\n editItem.detail.isEdit = false;\n editItem.detail = { ...editItem.detail, ...detailsValue };\n const obj = this.createItemFormGroup(editItem);\n this.details.setControl(editIndex, this.fb.group(obj));\n }\n });\n }\n\n reset(detail: any) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n cancel: I18N_KEY.COMMON_CANCEL,\n continue: I18N_KEY.COMMON_CONTINUE,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe((confirm: any) => {\n if (confirm.agree) {\n this.details.controls[detail.index].reset();\n }\n });\n }\n\n onChangeList(editItem: any) {\n const popupRef: MatDialogRef = this.cdsPopup.open(AutoChangeListComponent, {\n data: editItem,\n size: CdPopupSize.LARGE,\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n}\n","
    \n {{ 'common.filterRecord' | lang }}\n
    \n\n
    \n \n \n {{ 'common.resetFilters' | lang }}\n \n
    \n\n
    \n
    {{ 'commission.common.channel' | lang }}:
    \n
    \n
    \n
    {{ item.label }}
    \n
    \n
    \n
    \n\n
    \n
    {{ 'commission.common.accountType' | lang }}:
    \n
    \n
    \n
    {{ item.label }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    {{ 'common.total' | lang }} {{ totalElements }} {{ 'common.records' | lang }}
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n \n
    \n
    \n
    \n\n\n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n {{ 'commission.default.scale.autoChangeList' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ item.label | lang }}\n
    \n\n
    \n
    \n {{ details.controls[element.detail.index].get(item.key)?.value }}\n
    \n\n
    \n \n \n {{ details.controls[element.detail.index].get(item.key)?.errors?.['error'] | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.reset' | lang }}\n \n {{ 'common.save' | lang }}\n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { debounceTime, Subject, switchMap } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CommissionDefaultScaleService } from '../commission-default-scale.service';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport { I18N_KEY, MPFCommissionRates, MpfScaleTypeMap, MPFChannelTypes } from '../commission-default-scale.config';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { requiredValidator, ScaleCodeAsyncValidator } from 'src/app/core/validators';\nimport { AccountType, MPFAccountTypes } from 'src/app/core/models/enum/account-type.enum';\nimport { DefaultScaleType } from 'src/app/core/models/enum/default-scale-type.enum';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\n\n@Component({\n selector: 'app-new-business-mpf',\n templateUrl: './new-business-mpf.component.html',\n styleUrls: ['./new-business-mpf.component.scss'],\n})\nexport class NewBusinessMpfComponent implements OnInit, OnDestroy {\n permissionItem = PermissionItem.COMMISSION_DEFAULT_SCALE;\n permissionAccess = PermissionAccess.W;\n channelType = MPFChannelTypes;\n channelTypeSelected: any;\n commissionRate = MPFCommissionRates;\n commissionRateSelected: any;\n searchParam$ = new Subject();\n\n options: CdsOption[] = MPFAccountTypes;\n // accountType: any;\n quickSearchFormcontrol: FormControl = new FormControl();\n disPlayData: any[] = [];\n progress = false;\n totalElements = 0;\n pageCount: IPaginationCount = { current: 1, count: 1 };\n formGroup = this.fb.group({\n details: this.fb.array([]),\n });\n\n get details() {\n return this.formGroup.controls['details'] as FormArray;\n }\n\n constructor(\n private scaleCodeAsyncValidator: ScaleCodeAsyncValidator,\n private cdsPopup: CdsPopupService,\n private fb: FormBuilder,\n private defaultScaleService: CommissionDefaultScaleService\n ) {\n this.searchParam$\n .pipe(\n debounceTime(500),\n // distinctUntilChanged(),\n switchMap(param => {\n return this.defaultScaleService.getList(param);\n })\n )\n .subscribe(res => {\n this.initData(res.data);\n });\n }\n\n ngOnInit() {\n this.search();\n if (this.defaultScaleService.accountType) {\n this.quickSearchFormcontrol.setValue(this.defaultScaleService.accountType);\n }\n }\n\n ngOnDestroy() {\n this.searchParam$.unsubscribe();\n }\n\n resetFilter() {\n this.channelTypeSelected = null;\n this.commissionRateSelected = null;\n this.search();\n }\n\n channelFilterClick(item: any) {\n this.channelTypeSelected = this.channelTypeSelected === item ? null : item;\n this.search();\n }\n\n accountFilterClick(item: any) {\n this.commissionRateSelected = this.commissionRateSelected === item ? null : item;\n this.search();\n }\n\n quickSearch(opt: any) {\n this.defaultScaleService.accountType = opt;\n this.search();\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getData();\n }\n\n search() {\n this.pageCount = { current: 1, count: 1 };\n this.getData();\n }\n\n getData() {\n const param = this.createParam();\n this.progress = true;\n this.searchParam$.next(param);\n }\n\n createParam() {\n const param: any = {\n defaultScaleType: DefaultScaleType.MPF_NB,\n };\n param.page = (this.pageCount.current as number) - 1;\n param.size = 10;\n if (this.channelTypeSelected) {\n param.agentChannel = this.channelTypeSelected.value;\n }\n if (this.commissionRateSelected) {\n param.compensationRate = this.commissionRateSelected.value;\n }\n if (this.defaultScaleService.accountType) {\n param.accountType = this.defaultScaleService.accountType.value;\n }\n return param;\n }\n\n initData(data: any) {\n this.progress = false;\n this.totalElements = data.totalElements;\n this.pageCount = {\n ...this.pageCount,\n count: data.totalPages || 0,\n };\n this.details.clear();\n const content = data.content || [];\n this.disPlayData = content.map((item: any, index: number) => {\n const obj = this.createItemFormGroup(item);\n item.detail.index = index;\n item.detail.isEditAble = true;\n item.detail.isEdit = false;\n const accountType = this.options.find((e: any) => e.value === item.accountType);\n item.accountTypeLabel = accountType ? accountType.label : '';\n const channel = this.channelType.find((e: any) => e.value === item.agentChannel);\n item.agentChannelLabel = channel ? channel.label : '';\n const compensationRate = this.commissionRate.find((e: any) => e.value === item.compensationRate);\n item.compensationRateLabel = compensationRate ? compensationRate.label : '';\n if (item.accountType === AccountType.MPF_PAP && !item.agentChannel && !item.compensationRate) {\n item.detail.isEditAble = false;\n }\n this.details.push(this.fb.group(obj));\n return item;\n });\n }\n\n createItemFormGroup(item: any) {\n const fp: any = {};\n item.detail.list = [];\n MpfScaleTypeMap.forEach((label: string, key: string) => {\n if (\n (item.accountType == AccountType.MPF_ER ||\n item.accountType == AccountType.MPF_SEP ||\n item.accountType == AccountType.MPF_FRC ||\n item.accountType == AccountType.MPF_SEP_AGENT) &&\n (key == ScaleType.FS_PC || key == ScaleType.FY || key == ScaleType.FS_SF || key == ScaleType.TRF_SP_PC || key == ScaleType.TRF_SP)\n ) {\n fp[key] = new FormControl(item.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n validators: [\n requiredValidator({\n error: I18N_KEY.COMMISSION_SCALE_CODE_INPUT,\n }),\n ],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n });\n } else if (\n item.accountType == AccountType.MPF_TVC &&\n (key == ScaleType.FS_PC ||\n key == ScaleType.FY ||\n key == ScaleType.FS_SF ||\n key == ScaleType.TRF_SP_PC ||\n key == ScaleType.TRF_SP ||\n key == ScaleType.RY_PC)\n ) {\n fp[key] = new FormControl(item.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n validators: [\n requiredValidator({\n error: I18N_KEY.COMMISSION_SCALE_CODE_INPUT,\n }),\n ],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n });\n } else {\n fp[key] = new FormControl(item.detail[key], {\n initialValueIsDefault: true,\n updateOn: 'blur',\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n });\n }\n item.detail.list.push({\n label,\n value: item.detail[key],\n key,\n });\n });\n return fp;\n }\n\n editScaleCode(detail: any) {\n if (!detail.isEditAble) {\n return;\n }\n detail.isEdit = !detail.isEdit;\n if (!detail.isEdit) {\n this.details.controls[detail.index].reset();\n }\n }\n\n scaleCodeChange(detail: any, key: string, event: any) {\n let value = event.target.value;\n value = value.toUpperCase().replace(/[^\\a-\\z\\A-\\Z0-9\\ ]/g, ''); // eslint-disable-line\n value = value.substring(0, 6);\n const pos = event.target.selectionEnd;\n event.target.setSelectionRange(pos, pos);\n this.details.controls[detail.index].get(key)?.setValue(value);\n }\n\n save(editItem: any) {\n const editIndex = editItem.detail.index;\n if (!this.details.controls[editIndex].dirty || this.details.controls[editIndex].invalid) {\n return;\n }\n\n const param: any = [];\n const detailsValue = this.details.controls[editIndex].value;\n editItem.detail.list.forEach((item: any) => {\n param.push({\n defaultScaleType: DefaultScaleType.MPF_NB,\n accountType: editItem.accountType,\n agentChannel: editItem.agentChannel,\n compensationRate: editItem.compensationRate,\n commissionType: item.key,\n scaleCode: detailsValue[item.key]?.trim(),\n });\n });\n\n this.defaultScaleService.update(param).subscribe(resp => {\n if (resp && resp.result == ResponseResult.SUCCESS) {\n editItem.detail.isEdit = false;\n editItem.detail = { ...editItem.detail, ...detailsValue };\n const obj = this.createItemFormGroup(editItem);\n this.details.setControl(editIndex, this.fb.group(obj));\n }\n });\n }\n\n reset(detail: any) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n cancel: I18N_KEY.COMMON_CANCEL,\n continue: I18N_KEY.COMMON_CONTINUE,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe((confirm: any) => {\n if (confirm.agree) {\n this.details.controls[detail.index].reset();\n }\n });\n }\n}\n","
    \n {{ 'common.filterRecord' | lang }}\n
    \n\n
    \n \n \n {{ 'common.resetFilters' | lang }}\n \n
    \n\n
    \n
    {{ 'commission.common.channel' | lang }}:
    \n
    \n
    \n
    {{ item.label }}
    \n
    \n
    \n
    \n\n
    \n
    {{ 'commission.default.scale.percentage.label' | lang }}:
    \n
    \n
    \n
    {{ item.label }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    {{ 'common.total' | lang }} {{ totalElements }} {{ 'common.records' | lang }}
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \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.label | lang }}\n
    \n\n
    \n
    \n {{ details.controls[element.detail.index].get(item.key)?.value }}\n
    \n\n
    \n \n \n {{ details.controls[element.detail.index].get(item.key)?.errors?.['error'] | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.reset' | lang }}\n \n {{ 'common.save' | lang }}\n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\n\nimport { CommissionScaleListComponent } from './scale/commission-scale-list.component';\nimport { CommissionPoolInfoComponent } from './summary/pool-info.component';\nimport { CommissionPoolListComponent } from './summary/pool-list.component';\n\nimport { PermissionAccess, PermissionItem } from '../../core/models/enum/permission.enum';\nimport { CommissionScaleInfoComponent } from './scale/commission-scale-info/commission-scale-info.component';\nimport { AdjustmentComponent } from './adjustment/adjustment.component';\nimport { AgentRecordAddComponent } from './summary/agent/agent-record-add/agent-record-add.component';\nimport { AgentRecordEditComponent } from './summary/agent/agent-record-edit/agent-record-edit.component';\nimport { JournalComponent } from './journal/journal.component';\nimport { HoldOnReportComponent } from './hold-on-report/hold-on-report.component';\nimport { SchemeMasterComponent } from './scheme-master/scheme-master.component';\nimport { SchemeMasterCreateComponent } from './scheme-master/scheme-master-create/scheme-master-create.component';\nimport { SchemeMasterEditComponent } from './scheme-master/scheme-master-edit/scheme-master-edit.component';\nimport { AddScaleRecordsComponent } from './summary/record-details/add-scale-records/add-scale-records.component';\nimport { ErrorLogComponent } from './error-log/error-log.component';\nimport { BatchUploadAdjustmentComponent } from './batch-upload-adjustment/batch-upload-adjustment.component';\nimport { ApeJournalComponent } from './ape-journal/ape-journal.component';\nimport { ApeManualComponent } from './ape-manual/ape-manual.component';\nimport { CommissionDefaultScaleComponent } from './commission-default-scale/commission-default-scale.component';\n\nconst routes: Routes = [\n {\n path: 'commission',\n component: AdminLayoutComponent,\n children: [\n {\n path: 'batch-upload-adjustment',\n component: BatchUploadAdjustmentComponent,\n data: {\n roles: {\n [PermissionItem.COMM_ADJ_BATCH_UPLOAD]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'scale-list',\n component: CommissionScaleListComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_SCALE_MANAGEMENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'scale-info',\n component: CommissionScaleInfoComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_SCALE_MANAGEMENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'pool-list',\n component: CommissionPoolListComponent,\n data: {\n roles: {\n [PermissionItem.COMM_INFO_MAIN_COMM_SUMMARY]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'pool-info',\n component: CommissionPoolInfoComponent,\n data: {\n roles: {\n [PermissionItem.COMM_INFO_MAIN_COMM_SUMMARY]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'record-create',\n component: AddScaleRecordsComponent,\n data: {\n roles: {\n [PermissionItem.COMM_INFO_SCALE_RECORD]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'agent-record-add',\n component: AgentRecordAddComponent,\n data: {\n roles: {\n [PermissionItem.COMM_INFO_AGENT_CHANGE]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'agent-record-edit',\n component: AgentRecordEditComponent,\n data: {\n roles: {\n [PermissionItem.COMM_INFO_AGENT_CHANGE]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'adjustment',\n component: AdjustmentComponent,\n data: {\n roles: {\n [PermissionItem.COMM_ADJ_NORMAL]: PermissionAccess.W,\n [PermissionItem.COMM_ADJ_INDIVIDUAL]: PermissionAccess.W,\n [PermissionItem.COMM_ADJ_APPEAL]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'journal',\n component: JournalComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_JOURNAL]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'hold-on-report',\n component: HoldOnReportComponent,\n data: {\n roles: {\n [PermissionItem.COMM_HOLD_ON_COMPENSATION_REPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'scheme-list',\n component: SchemeMasterComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_SCHEME_MASTER_RECORD]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'scheme-create',\n component: SchemeMasterCreateComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_SCHEME_MASTER_RECORD]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'scheme-edit',\n component: SchemeMasterEditComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_SCHEME_MASTER_RECORD]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'error-log',\n component: ErrorLogComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_ERROR_LOG]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'ape-journal',\n component: ApeJournalComponent,\n data: {\n roles: {\n [PermissionItem.COMM_APE_JOURNAL]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'ape-manual',\n component: ApeManualComponent,\n data: {\n roles: {\n [PermissionItem.COMM_APE_MANUAL_ADJ_NBV_RATIO]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'default-scale-list',\n component: CommissionDefaultScaleComponent,\n data: {\n roles: {\n [PermissionItem.COMMISSION_DEFAULT_SCALE]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CommissionRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommissionRoutingModule } from './commission-routing.module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatSelectInfiniteScrollModule } from 'ng-mat-select-infinite-scroll';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsNavigationModule } from '@cds/ng-web-components/navigation';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdsPillModule } from '@cds/ng-web-components/pill';\nimport { CdsSwitchModule } from '@cds/ng-web-components/switch';\n\nimport { SharedModule } from '../../shared/shared.module';\n\nimport { CommissionScaleListComponent } from './scale/commission-scale-list.component';\n\nimport { CommissionPoolInfoComponent } from './summary/pool-info.component';\nimport { CommissionPoolListComponent } from './summary/pool-list.component';\n\nimport { CommissionRecordDetailsComponent } from './summary/record-details/record-details.component';\nimport { AddScaleRecordsComponent } from './summary/record-details/add-scale-records/add-scale-records.component';\n\nimport { RelatedPartiesAddComponent } from './summary/related-parties/related-parties-add.component';\nimport { RelatedPartiesListComponent } from './summary/related-parties/related-parties-list.component';\n\nimport { AgentRecordAddComponent } from 'src/app/views/commission/summary/agent/agent-record-add/agent-record-add.component';\nimport { AgentRecordEditComponent } from 'src/app/views/commission/summary/agent/agent-record-edit/agent-record-edit.component';\nimport { AgentAddAlertComponent } from 'src/app/views/commission/summary/agent/agent-record-add/agent-add-alert.component';\nimport { AgentComponent } from './summary/agent/agent.component';\n\nimport { IndividualTransferComponent } from './summary/individual-transfer/individual-transfer.component';\n\nimport { NormalCompensationComponent } from './adjustment/normal-compensation/normal-compensation.component';\nimport { adIndividualTransferComponent } from './adjustment/ad-individual-transfer/ad-individual-transfer.component';\nimport { appealCaseComponent } from './adjustment/appeal-case/appeal-case.component';\nimport { SearchRecordTransactionComponent } from './adjustment/appeal-case/search-record-transaction/search-record-transaction.component';\nimport { AdjustmentComponent } from './adjustment/adjustment.component';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { CommissionBreakpointComponent } from './scale/commission-breakpoint/commission-breakpoint.component';\nimport { CommissionRecordDetailComponent } from './scale/commission-record-detail/commission-record-detail.component';\nimport { CommissionScaleInfoComponent } from './scale/commission-scale-info/commission-scale-info.component';\nimport { DropDownComponent } from './scale/shared/drop-down/drop-down.component';\nimport { IconButtonComponent } from './scale/shared/icon-button/icon-button.component';\nimport { UserAgreementPopupComponent } from './user-agreement-popup.component';\n\nimport { JournalModule } from './journal/journal.module';\nimport { HoldOnReportModule } from './hold-on-report/hold-on-report.module';\nimport { SchemeMasterModule } from './scheme-master/scheme-master.module';\nimport { ErrorLogModule } from './error-log/error-log.module';\nimport { BatchUploadAdjustmentModule } from './batch-upload-adjustment/batch-upload-adjustment.module';\nimport { ApeJournalModule } from './ape-journal/ape-journal.module';\nimport { ApeManualModule } from './ape-manual/ape-manual.module';\nimport { CommissionDefaultScaleModule } from './commission-default-scale/commission-default-scale.module';\n\n@NgModule({\n declarations: [\n CommissionScaleListComponent,\n CommissionPoolInfoComponent,\n CommissionPoolListComponent,\n CommissionRecordDetailsComponent,\n AddScaleRecordsComponent,\n UserAgreementPopupComponent,\n RelatedPartiesListComponent,\n RelatedPartiesAddComponent,\n AgentComponent,\n AgentRecordAddComponent,\n\n IndividualTransferComponent,\n\n AgentAddAlertComponent,\n AgentRecordEditComponent,\n AdjustmentComponent,\n NormalCompensationComponent,\n adIndividualTransferComponent,\n appealCaseComponent,\n SearchRecordTransactionComponent,\n IconButtonComponent,\n DropDownComponent,\n CommissionScaleInfoComponent,\n CommissionRecordDetailComponent,\n CommissionBreakpointComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n CommissionRoutingModule,\n\n CdsButtonModule,\n CdsTextfieldModule,\n CdsTooltipModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsNavigationModule,\n CdsPaginationModule,\n CdsTableModule,\n CdsCheckboxModule,\n CdsSearchModule,\n CdsPopupModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsDropdownModule,\n CdsProgressModule,\n CdsSortModule,\n CdsDatepickerModule,\n CdsPillModule,\n CdsSwitchModule,\n\n MatButtonModule,\n MatButtonToggleModule,\n MatTreeModule,\n MatSelectModule,\n MatSelectInfiniteScrollModule,\n MatMenuModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatMomentDateModule,\n MatAutocompleteModule,\n MatFormFieldModule,\n MatInputModule,\n SharedModule,\n JournalModule,\n HoldOnReportModule,\n SchemeMasterModule,\n ErrorLogModule,\n BatchUploadAdjustmentModule,\n ApeJournalModule,\n ApeManualModule,\n CommissionDefaultScaleModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CommissionModule {\n constructor() {}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { finalize } from 'rxjs';\n\nimport moment from 'moment';\nimport { CDS_SIZE } from '@cds/ng-core/configuration';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { CommissionErrorLogService } from 'src/app/core/services/commission/commission-error-log.service';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { AccountTypes } from 'src/app/core/models/enum/account-type.enum';\nimport { TxnCodeOpts } from 'src/app/core/models/enum/txn-code.enum';\n\nimport { ERROR_LOG_COLUMNS, I18N_KEY, PAGE_SIZE } from './error-log.config';\nimport { UserAgreementPopupComponent } from '../user-agreement-popup.component';\nimport { numberValidator, dateRangeInCompleteValidator, dateRangeInvalidValidator, dateValidator } from 'src/app/core/validators';\n@Component({\n selector: 'app-error-log',\n templateUrl: './error-log.component.html',\n styleUrls: ['./error-log.component.scss'],\n})\nexport class ErrorLogComponent implements OnInit {\n isShowSearchDatePicker = true; // Fix DatePicker Bug\n\n previousSearchParams: any;\n\n isDataLoading = false;\n pageConfig: PageConfig = {};\n dataDisplayed: any[] = [];\n columnsConfig: Array = ERROR_LOG_COLUMNS;\n\n formGroup = new FormGroup(\n {\n occurDateFrom: new FormControl(null, [dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })]),\n occurDateTo: new FormControl(null, [dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })]),\n employerAccountCode: new FormControl(null, [\n numberValidator({\n error: I18N_KEY.ACCOUNT_NO_INVALID,\n }),\n ]),\n memberAccountCode: new FormControl(null, [\n numberValidator({\n error: I18N_KEY.MEMBER_NO_INVALID,\n }),\n ]),\n referenceNo: new FormControl(null),\n },\n [\n dateRangeInCompleteValidator('occurDateFrom', 'occurDateTo', { error: I18N_KEY.ERROR_DATE_REANGE }),\n dateRangeInvalidValidator('occurDateFrom', 'occurDateTo', { error: I18N_KEY.INVALID_DATE_REANGE }),\n ]\n );\n\n get occurDateFrom() {\n return this.formGroup.get('occurDateFrom') as FormControl;\n }\n\n get occurDateTo() {\n return this.formGroup.get('occurDateTo') as FormControl;\n }\n\n get employerAccountCode() {\n return this.formGroup.get('employerAccountCode') as FormControl;\n }\n\n get memberAccountCode() {\n return this.formGroup.get('memberAccountCode') as FormControl;\n }\n\n get referenceNo() {\n return this.formGroup.get('referenceNo') as FormControl;\n }\n\n get searchDisabled() {\n let tag = true;\n const controlValues = this.formGroup.value;\n const keys = Object.keys(controlValues);\n keys.forEach((key: string) => {\n if (controlValues[key]) {\n tag = false;\n }\n });\n\n return tag || this.formGroup.invalid || this.isDataLoading;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(private cdsPopup: CdsPopupService, private errorLogService: CommissionErrorLogService) {}\n\n ngOnInit() {\n this.search();\n }\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getData();\n }\n\n getData() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.errorLogService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n })\n )\n .subscribe((res: any) => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.totalElements,\n };\n const tempData = res.data.content || [];\n this.dataDisplayed = this.createDisplayData(tempData);\n } else {\n this.openAlertPop(res.message);\n }\n });\n }\n\n createDisplayData(data: any[]) {\n return data.map((item: any) => {\n item.accountType = AccountTypes.find(list => list.value === item.accountType)?.label || item.accountType;\n item.occurDate = item.occurDate ? moment(new Date(item.occurDate)).format('DD/MM/YYYY') : '';\n item.contStartDate = item.contStartDate ? moment(new Date(item.contStartDate)).format('DD/MM/YYYY') : '';\n const txnCode = TxnCodeOpts.find(list => list.value === item.txnCode);\n item.txnCode = txnCode ? txnCode.label.split(':')[0] : item.txnCode;\n return item;\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n sort: 'occurDate,desc',\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n if (formValue.occurDateFrom) {\n formValue.occurDateFrom = moment(formValue.occurDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (formValue.occurDateTo) {\n formValue.occurDateTo = moment(formValue.occurDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const valueTemp: any = {};\n const value = this.formGroup.value;\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (value[key] !== null) {\n valueTemp[key] = value[key].trim();\n }\n });\n return valueTemp;\n }\n\n reset() {\n this.isShowSearchDatePicker = false;\n this.formGroup.reset();\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n openAlertPop(key: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n continue: I18N_KEY.COMMON_GOT,\n type: 'alert',\n message: key,\n },\n size: CDS_SIZE['MEDIUM'],\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n}\n"," \n
    \n

    {{ 'commission.errorLog.introduction' | lang }}

    \n
    \n
    \n
    \n {{ 'commission.pool.common.searchRecord' | lang }}\n
    \n
    \n
    \n \n \n \n \n {{ occurDateFrom.errors['error'] | lang }}\n {{ formGroup.errors['error'] | lang }}\n \n
    -
    \n
    \n \n \n \n \n {{ occurDateTo.errors['error'] | lang }}\n \n
    \n
    \n \n \n \n {{\n employerAccountCode.errors['error'] | lang\n }}\n \n \n \n \n {{ memberAccountCode.errors['error'] | lang }}\n \n \n \n \n {{ referenceNo.errors['error'] | lang }}\n \n
    \n
    \n \n {{ 'common.search' | lang }}\n \n \n {{ 'common.reset' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n {{ element.commissionPoolId | slice : 0 : 8 }}\n \n \n
    \n
    \n
    \n","import { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const PAGE_SIZE = 10;\n\nexport const I18N_KEY = {\n COMMON_GOT: 'common.gotItWithExclamation',\n INVALID_DATE_FORMAT: 'commission.errorLog.occurDateInvalid',\n INVALID_DATE_REANGE: 'commission.common.dateRangeInvalid',\n ERROR_DATE_REANGE: 'commission.common.dateRangeError',\n ACCOUNT_NO_INVALID: 'commission.common.accountNo.invalid',\n MEMBER_NO_INVALID: 'commission.common.memberNo.invalid',\n};\n\nexport const ERROR_LOG_COLUMNS: Array = [\n { key: 'occurDate', sticky: true, title: 'commission.errorLog.occurDate' },\n { key: 'errSign', stickyEnd: true, title: 'commission.errorLog.errSignal' },\n { key: 'errMsg', title: 'commission.errorLog.message' },\n { key: 'commissionPoolId', title: 'commission.common.commPoolNo' },\n { key: 'payReferenceNo', title: 'commission.common.payReferenceNo' },\n { key: 'referenceNo', title: 'commission.common.transactionReferenceNo' },\n { key: 'employerAccountCode', title: 'commission.common.accountNo' },\n { key: 'memberAccountCode', title: 'commission.common.memberNo' },\n { key: 'accountType', title: 'commission.common.accountType' },\n { key: 'payRollGroupNo', title: 'commission.common.payroolGroupId' },\n { key: 'contStartDate', title: 'commission.common.contStart' },\n { key: 'vipCode', title: 'commission.common.vipCode' },\n { key: 'txnCode', title: 'commission.common.txn' },\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\n\nimport { ErrorLogComponent } from './error-log.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsDropdownModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n ],\n declarations: [ErrorLogComponent],\n exports: [ErrorLogComponent],\n})\nexport class ErrorLogModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_SIZE } from '@cds/ng-core/configuration';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { filter, finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\nimport { CommissionHoldOnReportService, HoldOnReportItem } from 'src/app/core/services/commission/commission-hold-on-report.service';\nimport { numberValidator } from 'src/app/core/validators';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport { UserAgreementPopupComponent } from '../user-agreement-popup.component';\n\nimport {\n ACCOUNT_NO_CONFIG,\n ACCOUNT_TYPE_CONFIG,\n ACTIVITY_CODE_CONFIG,\n DOWN_LOAD_MAX,\n EXCEL_COLUMNS,\n // FROZEN_CONFIG,\n HOLD_ON_REPOERTS_COLUMNS,\n I18N_KEY,\n MEMBER_NO_CONFIG,\n PAGE_SIZE,\n REASON_CONFIG,\n} from './hold-on-report.config';\n\n@Component({\n selector: 'app-hold-on-report',\n templateUrl: './hold-on-report.component.html',\n styleUrls: ['./hold-on-report.component.scss'],\n})\nexport class HoldOnReportComponent implements OnInit {\n accountNoConfig = ACCOUNT_NO_CONFIG;\n memberNoConfig = MEMBER_NO_CONFIG;\n accountTypeConfig = ACCOUNT_TYPE_CONFIG;\n activityCodeConfig = ACTIVITY_CODE_CONFIG;\n reasonConfig = REASON_CONFIG;\n // frozenConfig = FROZEN_CONFIG;\n isDownLoading = false;\n isOverMax = true;\n\n formGroup = new FormGroup({\n employerAccountNo: new FormControl('', {\n validators: [numberValidator({ error: I18N_KEY.INVALID_ACCONTNO })],\n initialValueIsDefault: true,\n }),\n memberAccountNo: new FormControl('', {\n validators: [numberValidator({ error: I18N_KEY.INVALID_MEMBERNO })],\n initialValueIsDefault: true,\n }),\n accountType: new FormControl('', { initialValueIsDefault: true }),\n subActivityCd: new FormControl('', { initialValueIsDefault: true }),\n holdOnReason: new FormControl('', { initialValueIsDefault: true }),\n frozenPoolExtraction: new FormControl(false, {\n initialValueIsDefault: true,\n }),\n });\n\n previousSearchParams: any;\n pageConfig: PageConfig = {};\n loading = false;\n dataDisplayed: any[] = [];\n columnsConfig: Array = HOLD_ON_REPOERTS_COLUMNS;\n\n get accountNo() {\n return this.formGroup.get('employerAccountNo') as FormControl;\n }\n\n get memberNo() {\n return this.formGroup.get('memberAccountNo') as FormControl;\n }\n\n get accountType() {\n return this.formGroup.get('accountType') as FormControl;\n }\n\n get subActivityCd() {\n return this.formGroup.get('subActivityCd') as FormControl;\n }\n\n get holdOnReason() {\n return this.formGroup.get('holdOnReason') as FormControl;\n }\n\n get frozenPoolExtraction() {\n return this.formGroup.get('frozenPoolExtraction') as FormControl;\n }\n\n get isSearchDisable() {\n let tag = true;\n const controls = this.formGroup.controls;\n const keys = Object.keys(controls);\n keys.forEach((key: string) => {\n const defaultValue = (controls[key] as FormControl).defaultValue;\n const controlValue = (controls[key] as FormControl).value;\n const value = key === 'frozenPoolExtraction' ? controlValue : controlValue.trim();\n if (defaultValue !== value) {\n tag = false;\n }\n });\n return tag || this.formGroup.invalid || this.loading;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n get downloadDisabled() {\n return !this.previousSearchParams || this.isDownLoading || !this.getTotalCount;\n }\n\n constructor(private cdsPopup: CdsPopupService, private commissionHoldOnReportService: CommissionHoldOnReportService) {}\n\n ngOnInit() {\n this.search();\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getdata();\n }\n }\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getdata();\n }\n\n reset() {\n this.formGroup.reset();\n }\n\n getdata() {\n this.loading = true;\n const params = this.createParams();\n this.commissionHoldOnReportService\n .getData(params)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n const data = res.data;\n const totalElements = data.totalElements || 0;\n this.isOverMax = totalElements > DOWN_LOAD_MAX;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements,\n };\n this.dataDisplayed = this.createDisplayData(data.content || []);\n } else {\n this.openAlertPop(res.message);\n }\n });\n }\n\n createDisplayData(data: any[]) {\n return data.map((item: HoldOnReportItem) => {\n const accountType = ACCOUNT_TYPE_CONFIG.options.find(opt => opt.value === item.accountType);\n item.accountType = accountType ? accountType.label : item.accountType;\n const subActivityCdLabel = ACTIVITY_CODE_CONFIG.options.find(opt => opt.value === item.subActivityCd);\n item.subActivityCd = subActivityCdLabel ? subActivityCdLabel.label : '';\n const holdOnReason = REASON_CONFIG.options.find(opt => opt.value === item.holdOnReason);\n item.holdOnReason = holdOnReason ? holdOnReason.label : item.holdOnReason;\n item.freezeDate = item.freezeDate ? moment(new Date(item.freezeDate)).format('DD/MM/YYYY') : '';\n item.efctvDate = moment(item.efctvDate, 'YYYY-MM-DD').format('DD/MM/YYYY');\n return item;\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const value: any = {};\n const tempValue = this.formGroup.value;\n const keys: string[] = Object.keys(tempValue);\n keys.forEach(key => {\n const controlValue = key === 'frozenPoolExtraction' ? tempValue[key] : tempValue[key].trim();\n if (controlValue !== '' && controlValue !== 'all') {\n value[key] = controlValue;\n }\n });\n return value;\n }\n\n openAlertPop(key: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n continue: I18N_KEY.COMMON_GOT,\n type: 'alert',\n message: key,\n },\n size: CDS_SIZE['MEDIUM'],\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n download() {\n if (this.isOverMax) {\n this.openAlertPop(I18N_KEY.DOWN_LOAD_MAX_FAIL);\n return;\n }\n\n if (this.downloadDisabled) {\n return;\n }\n\n this.isDownLoading = true;\n this.commissionHoldOnReportService\n .getData({\n ...this.previousSearchParams,\n size: this.getTotalCount,\n })\n .pipe(\n finalize(() => {\n this.isDownLoading = false;\n }),\n filter(res => res.result === ResponseResult.SUCCESS)\n )\n .subscribe(res => {\n const data = this.createDisplayData(res.data.content || []);\n const excelData = this.createExcelData(data);\n aoaToSheet(\n {\n fileName: `Hold on Compensation Report ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.XLSX,\n },\n excelData\n );\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push(EXCEL_COLUMNS);\n data.forEach(item => {\n const temp = [];\n temp.push(item.referenceNo);\n temp.push(item.accountType);\n temp.push(item.subActivityCd);\n temp.push(item.efctvDate);\n temp.push(item.employerAccountNo);\n temp.push(item.memberAccountNo);\n temp.push(item.totalPremium);\n temp.push(item.commissionPoolId);\n temp.push(item.freezeDate);\n temp.push(item.processId);\n temp.push(item.holdOnReason);\n excelData.push(temp);\n });\n return excelData;\n }\n}\n"," \n
    \n
    \n
    \n
    \n {{ 'commission.pool.common.searchRecord' | lang }}\n
    \n
    \n \n \n \n {{ accountNo.errors['error'] | lang }}\n \n \n \n \n \n {{ memberNo.errors['error'] | lang }}\n \n \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n {{ 'common.search' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {{ 'common.download' | lang }}\n \n \n \n \n \n
    \n
    \n\n","import { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { SubActivityOpts, AccountTypesHoldOnReport } from 'src/app/core/models/enum';\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const ACCOUNT_NO_CONFIG: CdsTextfieldConfig = {\n type: 'text',\n label: 'commission.common.accountNo',\n placeholder: 'commission.common.accountNo.placeholder',\n};\n\nexport const MEMBER_NO_CONFIG: CdsTextfieldConfig = {\n type: 'text',\n label: 'commission.common.memberNo',\n placeholder: 'commission.common.placeholder.memberNo',\n};\n\nexport const ACCOUNT_TYPE_CONFIG: CdsDropdownConfig = {\n label: 'commission.common.accountType',\n placeholder: 'commission.common.accountType.placeholder',\n options: AccountTypesHoldOnReport,\n};\n\nexport const ACTIVITY_CODE_CONFIG: CdsDropdownConfig = {\n label: 'commission.common.subActivityCode',\n placeholder: 'commission.common.activityCode.placeholder',\n options: [{ label: 'All', value: 'all' }, ...SubActivityOpts],\n};\n\nexport const REASON_CONFIG: CdsDropdownConfig = {\n label: 'commission.holdOnReport.reason',\n placeholder: 'commission.holdOnReport.placeholder.reason',\n options: [\n { label: 'All', value: 'all' },\n { label: 'No Available Pool', value: 'NO_COMMISSION_POOL' },\n {\n label: 'Scale / Agent Not found or Sharing issue on Agent',\n value: 'NO_EFFECTIVE_SCALE_OR_AGENT',\n },\n { label: 'Frozen Pool', value: 'FROZEN_POOL' },\n ],\n};\n\n// export const FROZEN_CONFIG: CdsCheckboxConfig = {\n// label: 'commission.holdOnReport.frozen',\n// checked: false,\n// };\n\nexport const I18N_KEY = {\n DOWN_LOAD_MAX_FAIL: 'commission.journal.download.fail',\n COMMON_GOT: 'common.gotItWithExclamation',\n INVALID_ACCONTNO: 'commission.common.accountNo.invalid',\n INVALID_MEMBERNO: 'commission.common.memberNo.invalid',\n};\n\nexport const HOLD_ON_REPOERTS_COLUMNS: Array = [\n {\n key: 'referenceNo',\n title: 'commission.common.referenceNo',\n sticky: true,\n },\n {\n key: 'accountType',\n title: 'commission.common.accountType',\n stickyEnd: true,\n },\n { key: 'subActivityCd', title: 'commission.common.subActivityCode' },\n {\n key: 'efctvDate',\n title: 'commission.holdOnReport.effectiveDate',\n },\n { key: 'employerAccountNo', title: 'commission.common.accountNo' },\n { key: 'memberAccountNo', title: 'commission.common.memberNo' },\n { key: 'totalPremium', title: 'commission.holdOnReport.premium' },\n { key: 'commissionPoolId', title: 'commission.common.commPoolNo' },\n { key: 'freezeDate', title: 'commission.holdOnReport.freezeDate' },\n { key: 'processId', title: 'commission.holdOnReport.processID' },\n { key: 'holdOnReason', title: 'commission.holdOnReport.reason' },\n];\n\nexport const PAGE_SIZE = 10;\nexport const DOWN_LOAD_MAX = 200000;\n\nexport const EXCEL_COLUMNS: Array = [\n 'Reference No.',\n 'Account Type',\n 'Sub Activative Code',\n 'Transaction Effective Date',\n 'Employer Account Code',\n 'Member Account Code',\n 'Total Premium',\n 'Comm Pool No',\n 'Freeze Date',\n 'Process ID',\n 'Hold-on Reason',\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { HoldOnReportComponent } from './hold-on-report.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsLanguageModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsTextfieldModule,\n CdsDropdownModule,\n CdsCheckboxModule,\n CdsFormFieldModule,\n ],\n declarations: [HoldOnReportComponent],\n})\nexport class HoldOnReportModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport moment from 'moment';\nimport { filter, finalize } from 'rxjs';\n\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\nimport { CommissionJournalService } from 'src/app/core/services/commission/commission-journal.service';\n\nimport { FileType, aoaToSheet } from 'src/app/utils/xlsx';\n\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport {\n AGENT_INFO_COLUMNS,\n FILE_NAME,\n I18N_KEY,\n JOURNAL_COLUMNS_NEW,\n PAGE_SIZE,\n TXN_CONFIG,\n ACCOUNT_TYPE_CONFIG,\n ACTIVITY_CODE_CONFIG,\n DOWN_LOAD_MAX,\n EXCEL_COLUMNS,\n FILE_HEADER,\n} from './journal.config';\n\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport {\n letterAndNumberValidator,\n requiredValidator,\n dateRangeInCompleteValidator,\n dateRangeInvalidValidator,\n dateValidator,\n agentCodeValidator,\n numberValidator,\n journalValidator,\n} from 'src/app/core/validators';\nimport { TxnCode, TxnCodeMap } from 'src/app/core/models/enum/txn-code.enum';\nimport { CommissionCode, CommissionPCCode } from 'src/app/core/models/enum/commission-code.enum';\nimport { CdPopupService, CdPopupSize, MatDialogRef } from 'src/app/shared/cd-popup';\n\n@Component({\n selector: 'app-journal',\n templateUrl: './journal.component.html',\n styleUrls: ['./journal.component.scss'],\n})\nexport class JournalComponent implements OnInit {\n accountTypeConfig = ACCOUNT_TYPE_CONFIG;\n subActivityCdConfig = ACTIVITY_CODE_CONFIG;\n txnConfig = TXN_CONFIG;\n\n isQuickSearch = false;\n isDownLoading = false;\n isOverMax = false;\n previousSearchParams: any;\n isShowSearchDatePicker = true; // Fix DatePicker Bug\n\n quickSearchGroup = new FormGroup({\n referenceNo: new FormControl('', [\n letterAndNumberValidator({\n error: I18N_KEY.REFERENCE_NO_INVALID,\n }),\n ]),\n });\n formGroup = new FormGroup(\n {\n runDateFrom: new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_From_NULL }), dateValidator({ error: I18N_KEY.INVALID_RUN_DATE })],\n }),\n runDateTo: new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_TO_NULL }), dateValidator({ error: I18N_KEY.INVALID_RUN_DATE })],\n }),\n accountType: new FormControl('', {\n initialValueIsDefault: true,\n }),\n subActivityCd: new FormControl('', {\n initialValueIsDefault: true,\n }),\n txnCode: new FormControl('', {\n initialValueIsDefault: true,\n }),\n employerAccountCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.ACCOUNT_NO_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n memberAccountCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.MEMBER_NO_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n originalErMerCode: new FormControl('', {\n initialValueIsDefault: true,\n }),\n agentCode: new FormControl('', {\n validators: [\n agentCodeValidator({\n error: I18N_KEY.AGENT_CODE_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n noCommission: new FormControl(false, {\n initialValueIsDefault: true,\n }),\n },\n [\n dateRangeInCompleteValidator('runDateFrom', 'runDateTo', {\n dateRangeInComplete: I18N_KEY.DATE_RANGE_INCOMPLETE,\n }),\n dateRangeInvalidValidator('runDateFrom', 'runDateTo', {\n dateRangeInvalid: I18N_KEY.INVALID_DATE_RANGE,\n }),\n journalValidator({\n originalErMerCodeError: I18N_KEY.ORIGINAL_ER_MER_INVALID,\n }),\n ]\n );\n\n data: any[] = [];\n columns: Array = JOURNAL_COLUMNS_NEW;\n columnsAgent: Array = AGENT_INFO_COLUMNS;\n pageCount: IPaginationCount = { current: 1, count: 0 };\n totalElements = 0;\n isDataLoading = false;\n\n private _pageSize = PAGE_SIZE;\n\n get referenceNo() {\n return this.quickSearchGroup.get('referenceNo') as FormControl;\n }\n\n get runDateFrom() {\n return this.formGroup.get('runDateFrom') as FormControl;\n }\n\n get runDateTo() {\n return this.formGroup.get('runDateTo') as FormControl;\n }\n\n get accountType() {\n return this.formGroup.get('accountType') as FormControl;\n }\n\n get subActivityCd() {\n return this.formGroup.get('subActivityCd') as FormControl;\n }\n\n get txnCode() {\n return this.formGroup.get('txnCode') as FormControl;\n }\n\n get employerAccountCode() {\n return this.formGroup.get('employerAccountCode') as FormControl;\n }\n\n get memberAccountCode() {\n return this.formGroup.get('memberAccountCode') as FormControl;\n }\n\n get originalErMerCode() {\n return this.formGroup.get('originalErMerCode') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get noCommission() {\n return this.formGroup.get('noCommission') as FormControl;\n }\n\n get quickSearchDisabled() {\n return !this.referenceNo.value || this.referenceNo.invalid;\n }\n\n get searchDisabled() {\n const fromDate = this.runDateFrom.value;\n const toDate = this.runDateTo.value;\n const accountType = this.accountType.value;\n const subActivityCd = this.subActivityCd.value;\n const txn = this.txnCode.value;\n const accountNo = this.employerAccountCode.value?.trim();\n const memberNo = this.memberAccountCode.value?.trim();\n const originalErMerCode = this.originalErMerCode.value?.trim();\n const agentCode = this.agentCode.value?.trim();\n const hasValue = accountType || subActivityCd || txn || accountNo || memberNo || originalErMerCode || agentCode;\n return !fromDate || !toDate || !this.formGroup.dirty || this.formGroup.invalid || !hasValue;\n }\n\n get resetDisabled() {\n let tag = true;\n const controls = this.formGroup.controls;\n const keys = Object.keys(controls);\n keys.forEach((key: string) => {\n const defaultValue = (controls[key] as FormControl).defaultValue;\n const controlValue = (controls[key] as FormControl).value;\n if (defaultValue != controlValue) {\n tag = false;\n }\n });\n return tag;\n }\n\n get downloadDisabled() {\n return !this.previousSearchParams || this.isDownLoading || !this.totalElements;\n }\n\n constructor(private commissionJournalService: CommissionJournalService, private cdsPopup: CdPopupService) {}\n\n ngOnInit() {}\n\n search(isQuickSearch: boolean) {\n this.previousSearchParams = null;\n this.pageCount = {\n count: 0,\n current: 1,\n };\n this.isQuickSearch = isQuickSearch;\n this.getdata();\n }\n\n createParams() {\n const params: any = {\n page: this.pageCount.current - 1,\n size: this._pageSize,\n sort: 'runDate,asc', //asc\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n let value = { ...this.formGroup.value };\n if (this.isQuickSearch) {\n value = {\n ...this.quickSearchGroup.value,\n noCommission: this.noCommission.value,\n };\n }\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (value[key]) {\n params[key] = value[key];\n }\n });\n if (params.runDateFrom) {\n params.runDateFrom = moment(params.runDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (params.runDateTo) {\n params.runDateTo = moment(params.runDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return params;\n }\n\n reset() {\n if (!this.resetDisabled) {\n this.previousSearchParams = null;\n this.formGroup.reset();\n this.data = [];\n this.isShowSearchDatePicker = false;\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n }\n }\n\n download() {\n if (this.isOverMax) {\n this.openAlertPop(I18N_KEY.DOWN_LOAD_MAX_FAIL);\n return;\n }\n\n if (this.downloadDisabled) {\n return;\n }\n\n this.isDownLoading = true;\n this.commissionJournalService\n .download(this.previousSearchParams)\n .pipe(\n finalize(() => {\n this.isDownLoading = false;\n }),\n filter(res => res.result === ResponseResult.SUCCESS)\n )\n .subscribe(res => {\n const data = this.createData(res.data || []);\n const excelData = this.createExcelData(data);\n aoaToSheet(\n {\n fileName: `${FILE_NAME} ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.XLSX,\n },\n excelData\n );\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push([`${FILE_HEADER}${moment().format('DD-MM-YYYY HH:MM:SS')}`]);\n excelData.push(EXCEL_COLUMNS);\n data.forEach(item => {\n const list = item.list.length ? item.list : [{}];\n list.forEach((agent: any, index: number) => {\n const temp = [];\n temp.push(item.runDate);\n temp.push(item.employerAccountCode);\n temp.push(item.memberAccountCode);\n temp.push(item.accountType);\n temp.push(item.payRollGroupId);\n temp.push(item.transactionReferenceNo);\n temp.push(item.groupReferenceNo);\n temp.push(item.payReferenceNo);\n temp.push(item.subActivityCd);\n temp.push(item.originalErMerCode);\n temp.push(item.txnCode);\n temp.push(item.commFlag);\n if (index === 0) {\n temp.push(item.contStart);\n temp.push(item.contEnd);\n temp.push(item.txnEffectiveDate);\n temp.push(item.contributionFrequency);\n temp.push(item.pacFlag);\n temp.push(item.processor?.name);\n temp.push(item.totalPremiumReceived.toFixed(2));\n temp.push(item.commissionableAmount.toFixed(2));\n } else {\n temp.push('');\n temp.push('');\n temp.push('');\n temp.push('');\n temp.push('');\n temp.push('');\n temp.push('');\n temp.push('');\n }\n temp.push(agent.agentCode);\n temp.push(agent.share === undefined ? '' : `${agent.share.toFixed(3)}%`);\n temp.push(agent.scaleRate === '' || agent.scaleRate === undefined ? agent.scaleRate : `${agent.scaleRate.toFixed(4)}%`);\n temp.push(agent.commissionCode);\n temp.push(agent.amount === undefined ? '' : `${agent.amount.toFixed(2)}`);\n temp.push(agent.amountPremium === undefined ? '' : `${agent.amountPremium.toFixed(2)}`);\n excelData.push(temp);\n });\n excelData.push(['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']);\n });\n return excelData;\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getdata();\n }\n\n getdata() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.commissionJournalService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n }),\n filter(res => res.result === ResponseResult.SUCCESS)\n )\n .subscribe((res: any) => {\n this.previousSearchParams = params;\n const data = res.data;\n this.totalElements = data.totalElements || 0;\n this.isOverMax = this.totalElements > DOWN_LOAD_MAX;\n if (this.isOverMax) {\n this.openAlertPop(I18N_KEY.DOWN_LOAD_MAX_LIMMIT);\n return;\n }\n this.pageCount = {\n count: Math.ceil(this.totalElements / this._pageSize),\n current: this.pageCount.current,\n };\n this.data = this.createData(data.content || []);\n });\n }\n\n createData(data: any[]) {\n return data.map(item => {\n item.pacFlag = item.pacFlag ? item.pacFlag : '';\n\n const accountType = ACCOUNT_TYPE_CONFIG.options.find(accountType => accountType.value === item.accountType);\n item.accountType = accountType ? accountType.label : '';\n\n item.txnCodeKey = item.txnCode;\n item.txnCode = TxnCodeMap.get(item.txnCode);\n\n const subActivityCd = ACTIVITY_CODE_CONFIG.options.find(subActivityCd => subActivityCd.value === item.subActivityCd);\n item.subActivityCd = subActivityCd ? subActivityCd.label : '';\n\n item.txnEffectiveDate = item.txnEffectiveDate ? moment(new Date(item.txnEffectiveDate)).format('DD/MM/YYYY') : '';\n item.runDate = item.runDate ? moment(new Date(item.runDate)).format('DD/MM/YYYY') : '';\n item.contStart = item.contStart ? moment(new Date(item.contStart)).format('DD/MM/YYYY') : '';\n item.contEnd = item.contEnd ? moment(new Date(item.contEnd)).format('DD/MM/YYYY') : '';\n if (!item.totalPremiumReceived) {\n item.totalPremiumReceived = 0;\n }\n if (!item.commissionableAmount) {\n item.commissionableAmount = 0;\n }\n const agentList = item.list || [];\n const agentCode: any = {};\n\n item.list = agentList\n .sort((a: any, b: any) => b.scaleRate - a.scaleRate)\n .map((agent: any) => {\n if (item.txnCodeKey === TxnCode.COMMISSION_ADJUSTMENT || !agent.scaleRate) {\n agent.scaleRate = '';\n }\n agent.commissionCode = agent.commissionCode ? CommissionCode[agent.commissionCode] : '';\n agent.amountDp = CommissionPCCode[agent.commissionCode] ? 0 : 2;\n return agent;\n })\n .sort((a: any, b: any) => a.commissionCode - b.commissionCode)\n .map((agent: any) => {\n const isHasCode = agentCode[agent.agentCode];\n\n if (!isHasCode) {\n agent.agentCodeCount = 1;\n agentCode[agent.agentCode] = agent;\n } else {\n agentCode[agent.agentCode].agentCodeCount++;\n }\n\n return agent;\n })\n .sort((a: any, b: any) => a.agentCode - b.agentCode);\n\n return item;\n });\n }\n\n openAlertPop(key: string) {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: key,\n },\n size: CdPopupSize.MEDIUM,\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n alertFutherInfo() {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: I18N_KEY.ORIGINAL_ER_MER_FURTHERINFO,\n },\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n}\n"," \n
    \n
    \n
    \n {{ 'commission.pool.common.searchRecord' | lang }}\n
    \n
    \n
    \n {{ 'commission.journal.quickSearchTitle' | lang }} \n
    \n
    \n
    \n
    \n \n \n
    \n {{ referenceNo.errors['error'] | lang }}\n
    \n {{ 'common.quickSearch' | lang }} \n
    \n
    \n
    \n
    \n {{ 'common.filterSearch' | lang }} \n
    \n

    \n {{ 'common.fillIn' | lang }}\n

    \n
    \n
    \n
    \n {{ 'common.dateRange' | lang }}\n *\n
    \n\n
    \n
    \n
    \n {{ runDateFrom.errors['error'] | lang }}\n {{\n formGroup.errors['dateRangeInComplete'] | lang\n }}\n {{\n formGroup.errors['dateRangeInvalid'] | lang\n }}\n
    \n\n
    -
    \n\n
    \n
    \n
    \n {{ runDateTo.errors['error'] | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'commission.journal.criteriaType' | lang }}\n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n {{ 'commission.common.specificNo' | lang }}\n
    \n\n
    \n
    \n \n \n \n {{\n employerAccountCode.errors['error'] | lang\n }}\n
    \n
    \n\n
    \n
    \n \n \n {{\n memberAccountCode.errors['error'] | lang\n }}\n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n \n \n {{\n formGroup.errors['originalErMerCodeError'] | lang\n }}\n
    \n
    \n\n
    \n
    \n \n \n {{ agentCode.errors['error'] | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n \n
    \n\n
    \n
    \n {{ 'common.search' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n \n \n {{ 'common.download' | lang }}\n \n \n \n\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.title | lang }}\n
    \n {{ item[colum.key] }}\n
    \n
    \n {{ 'commission.journal.details' | lang }}\n
    \n
    \n
    \n \n {{ item['transactionReferenceNo'] }}\n
    \n
    \n \n {{ item['groupReferenceNo'] }}\n
    \n
    \n \n {{ item['payReferenceNo'] }}\n
    \n
    \n \n {{ item['originalErMerCode'] }}\n
    \n
    \n \n {{ item['txnCode'] }}\n
    \n
    \n \n {{ item['txnEffectiveDate'] }}\n
    \n
    \n \n {{ item['contributionFrequency'] }}\n
    \n
    \n \n {{ item['totalPremiumReceived'] | mynumber : 2 }}\n
    \n
    \n \n {{ item['commFlag'] }}\n
    \n
    \n \n {{ item['pacFlag'] }}\n
    \n
    \n \n {{ item['processor']?.name }}\n
    \n
    \n \n {{ item['commissionableAmount'] | mynumber : 2 }}\n
    \n
    \n
    \n {{ 'commission.common.agentDetails' | lang }}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ columAgent.title | lang }}\n
    \n {{ agent[columnsAgent[0].key] }}\n \n {{ agent[columnsAgent[1].key] | mynumber : 3 }}%\n \n \n {{ agent[columnsAgent[2].key] | mynumber : 4 }}%\n \n {{ agent[columnsAgent[3].key] }}\n \n {{ agent[columnsAgent[4].key] | mynumber : agent['amountDp'] }}\n \n {{ agent[columnsAgent[5].key] | mynumber : 2 }}\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n","import { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { SubActivityOpts, AccountTypesJournal, TxnCodeJournalOpts } from 'src/app/core/models/enum';\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const JOURNAL_COLUMNS_NEW: Array = [\n { key: 'runDate', title: 'commission.common.runDate' },\n { key: 'employerAccountCode', title: 'commission.common.accountNo' },\n { key: 'memberAccountCode', title: 'commission.common.memberNo' },\n { key: 'accountType', title: 'commission.common.accountType' },\n { key: 'payRollGroupId', title: 'commission.common.payroolGroupId' },\n { key: 'subActivityCd', title: 'commission.common.subActivity' },\n { key: 'contStart', title: 'commission.common.contStart' },\n { key: 'contEnd', title: 'commission.common.contEnd' },\n];\n\nexport const EXCEL_COLUMNS: Array = [\n 'Run date',\n 'Employer Account Code',\n 'Member Account code',\n 'Account Type',\n 'Payroll Group Id',\n 'Transaction Reference No.',\n 'Group Reference No.',\n 'Payment Submission Reference No.',\n 'Sub Activity',\n 'Original ER/Member Code',\n 'Txn',\n 'Comm Flag',\n 'Cont.Start',\n 'Cont.End',\n 'Txn Effective Date',\n 'Contribution Frequency',\n 'MPF PAC or ORSO PS Flag',\n 'Processor',\n 'Total Premium Received',\n 'Commissionable Amount',\n 'Agent Code',\n 'Share',\n 'Scale Rate',\n 'Comm Code',\n 'Amount',\n 'Premium',\n];\n\nexport const AGENT_INFO_COLUMNS: Array = [\n { key: 'agentCode', title: 'commission.common.agentCode' },\n { key: 'share', title: 'commission.journal.share' },\n { key: 'scaleRate', title: 'commission.journal.scaleRate' },\n { key: 'commissionCode', title: 'commission.journal.commCode' },\n { key: 'amount', title: 'commission.journal.amount' },\n { key: 'amountPremium', title: 'commission.journal.preminum' },\n];\n\nexport const PAGE_SIZE = 5;\nexport const FILE_NAME = 'Txn_report';\nexport const FILE_HEADER = 'Report Date:';\nexport const DOWN_LOAD_MAX = 200000;\n\nexport const I18N_KEY = {\n DATE_From_NULL: 'commission.journal.dateFromNull',\n DATE_TO_NULL: 'commission.journal.dateToNull',\n INVALID_RUN_DATE: 'commission.common.runDate.invalid',\n DATE_RANGE_INCOMPLETE: 'commission.common.dateRangeError',\n INVALID_DATE_RANGE: 'commission.common.dateRangeInvalid',\n ACCOUNT_NO_INVALID: 'commission.common.accountNo.invalid',\n MEMBER_NO_INVALID: 'commission.common.memberNo.invalid',\n ORIGINAL_ER_MER_INVALID: 'common.journal.originalErMerCode.error',\n ORIGINAL_ER_MER_FURTHERINFO: 'common.journal.originalErMerCode.futherInfo',\n AGENT_CODE_INVALID: 'commission.common.agentCode.invalid',\n DOWN_LOAD_MAX_LIMMIT: 'commission.journal.download.limmit',\n DOWN_LOAD_MAX_FAIL: 'commission.journal.download.fail',\n COMMON_GOT: 'common.gotItWithExclamation',\n REFERENCE_NO_INVALID: 'commission.common.referenceNo.invalid',\n};\n\nexport const ACCOUNT_TYPE_CONFIG: CdsDropdownConfig = {\n label: 'commission.common.accountType',\n placeholder: 'commission.common.accountType.placeholder',\n options: AccountTypesJournal,\n};\n\nexport const TXN_CONFIG: CdsDropdownConfig = {\n label: 'commission.common.txn',\n placeholder: 'commission.journal.placeholder.txn',\n options: TxnCodeJournalOpts,\n};\n\nexport const ACTIVITY_CODE_CONFIG: CdsDropdownConfig = {\n label: 'commission.common.subActivity',\n placeholder: 'commission.common.placeholder.subActivity',\n options: SubActivityOpts,\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\n\nimport { JournalComponent } from './journal.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsDropdownModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n CdsCheckboxModule,\n CdsIconModule,\n ],\n declarations: [JournalComponent],\n exports: [JournalComponent],\n})\nexport class JournalModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon/icon.config';\nimport Big from 'big.js';\nimport { ScalePattern } from 'src/app/core/models/enum/commission-scale.enum';\nimport { DEFAULT_BREAKPOINT } from '../commission-scale.config';\nimport { BreakpointDetailVo, BreakpointVo, CommissionScaleVo } from '../commission-scale.model';\n\n@Component({\n selector: 'app-commission-breakpoint',\n templateUrl: './commission-breakpoint.component.html',\n styleUrls: ['./commission-breakpoint.component.scss'],\n})\nexport class CommissionBreakpointComponent {\n private breakpointErr: any = {\n year: { empty: 'Missing no. of year', exist: 'No. of year already exist' },\n amount: {\n empty: 'Missing amount',\n invalidFirst: 'ONLY FIRST OCCURENCE OF PERCENT IS ENTERED, BREAKPOINT AMOUNT MUST = BLANK',\n invalidLast: 'THE LAST BREAKPOINT VALUE SHOULD BE ',\n },\n percentage: {\n empty: 'Missing percentage',\n invalidFirst: 'FIRST OCCURENCE OF PERCENT MUST BE ENTERED',\n samePercent: 'TWO SUCCESSIVE PERCENT WITH THE SAME NON-ZERO PERCENTAGE',\n },\n };\n private maxAmount = Big('99999999999999999999.9998');\n\n deleteIconCfg: CdsIconConfig = { color: '#8E90A2' };\n plusIconCfg: CdsIconConfig = { color: '#EC6453' };\n\n private _isEditPage = false;\n private _isSubmitted = false;\n private _commissionItem!: CommissionScaleVo;\n private _dataSource!: BreakpointVo[];\n @Input()\n set isEditPage(value: boolean) {\n this._isEditPage = value;\n }\n get isEditPage() {\n return this._isEditPage;\n }\n\n @Input()\n set isSubmitted(value: boolean) {\n this._isSubmitted = value;\n }\n get isSubmitted() {\n return this._isSubmitted;\n }\n\n @Input()\n set commissionItem(item: CommissionScaleVo) {\n this._commissionItem = item;\n }\n get commissionItem() {\n return this._commissionItem;\n }\n\n @Input()\n set dataSource(data: BreakpointVo[]) {\n this._dataSource = data;\n }\n get dataSource() {\n return this._dataSource;\n }\n\n @Output() dataSourceChange = new EventEmitter();\n\n breakpointEnable = false;\n\n addOrDeleteNoOfYear(index?: number) {\n //delete number of year\n if (index !== undefined) {\n this.dataSource.splice(index, 1);\n this.validateBreakpoints();\n } else {\n //add number of year\n const newDetails = {\n yearNo: null,\n isLocked: false,\n list: [JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT))],\n };\n if (this.commissionItem.scalePattern !== ScalePattern.FLAT) {\n newDetails.list.push(JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)));\n newDetails.list.push(JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)));\n }\n this.dataSource.push(newDetails);\n this.dataSource.sort((a, b) => (a.yearNo ? Number(a.yearNo) : 0) - (b.yearNo ? Number(b.yearNo) : 0));\n }\n }\n\n addOrDeleteBreakpoint(parentIndex: number, itemIndex?: number) {\n const flag = this.dataSource[parentIndex].list.length === 10 || this.commissionItem.scalePattern === ScalePattern.FLAT;\n if (flag && !itemIndex) return;\n //add breakpoint\n if (itemIndex === undefined) {\n this.dataSource[parentIndex].list.push(JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)));\n } else {\n //delete breakpoint\n this.dataSource[parentIndex].list.splice(itemIndex, 1);\n }\n\n this.validateBreakpoints(parentIndex, itemIndex);\n }\n\n breakpointChange(type: string, value: any, parentIndex: number, item?: BreakpointDetailVo, itemIndex?: number) {\n switch (type) {\n case 'yearNo': {\n this.dataSource[parentIndex].yearNo = value;\n break;\n }\n case 'amount': {\n let val = value.target.value || ''.replace(/,/g, '');\n const inputAmt = Big(val ? val : '0');\n\n if (inputAmt.gt(this.maxAmount)) {\n value.target.value = this.maxAmount.toFixed(2);\n val = value.target.value;\n }\n if (item && !Number(val)) {\n value.target.value = '';\n item.amount = '';\n } else if (item) {\n item.amount = val;\n }\n break;\n }\n case 'percentage': {\n const val = value.target.value || ''.replace(/,/g, '');\n if (item && !Number(val)) {\n value.target.value = '';\n item.percentage = '';\n } else if (item) {\n item.percentage = val;\n }\n break;\n }\n }\n this.validateBreakpoints(parentIndex, itemIndex, type === 'percentage');\n }\n\n //when call deleteNoOfYear(), should validate all of the breakpoints\n //when call addOrDeleteBreakpoint() or breakpointsChange(), should validate the specified breakpoints\n private validateBreakpoints(parentIndex?: number, itemIndex?: number, isPercentage?: boolean) {\n for (const data of this.dataSource) {\n const index = this.dataSource.indexOf(data);\n const validateSpecified = parentIndex !== undefined && itemIndex !== undefined;\n if (validateSpecified && index !== parentIndex) continue;\n\n //validate breakpoints\n data.yearError = '';\n if (!data.yearNo) {\n data.yearError = this.breakpointErr.year.empty;\n } else if (data.yearNo) {\n const len = this.dataSource.filter(item => item.yearNo === data.yearNo).length;\n if (len > 1) {\n data.yearError = this.breakpointErr.year.exist;\n }\n }\n\n const filterList = this.filterEmptyRow(data);\n const len = filterList.length;\n filterList.forEach((item, j) => {\n item.amountError = '';\n item.percentageError = '';\n\n if (!!Number(item.amount) && !!Number(item.percentage) && len === 1) {\n item.amountError = this.breakpointErr.amount.invalidFirst;\n } else if (!!Number(item.percentage) && !Number(item.amount) && len > 1) {\n item.amountError = this.breakpointErr.amount.empty;\n }\n if (len > 1 && j + 1 === len) {\n this.checkLastAmt(index);\n }\n\n if (!Number(item.percentage)) {\n item.percentageError = this.breakpointErr.percentage.empty;\n if (!!data.yearNo && len === 1 && !!isPercentage) {\n this.dataSource[index].list[itemIndex as number].percentageError = this.breakpointErr.percentage.invalidFirst;\n //invalid first row error of percentage, should only be display in one place\n //clear the other invalid first row error\n this.dataSource[index].list.forEach((bk, i) => {\n if (i !== itemIndex && !!bk.percentageError && bk.percentageError.indexOf('FIRST') > -1) {\n bk.percentageError = '';\n }\n });\n }\n } else {\n if (len === 1) {\n this.dataSource[index].list.forEach((detail, k) => {\n if (k !== itemIndex) {\n detail.percentageError = '';\n }\n });\n } else {\n const existLen = filterList.filter(data => Number(data.percentage) === Number(item.percentage)).length;\n if (existLen > 1) {\n item.percentageError = this.breakpointErr.percentage.samePercent;\n }\n }\n }\n });\n }\n\n const breakpointFlag = this.dataSource.every(\n data =>\n (!data.yearError && !!data.yearNo && this.filterEmptyRow(data).every(item => !item.amountError && !item.percentageError)) ||\n (!data.yearNo && this.filterEmptyRow(data).length === 0)\n );\n\n this.breakpointEnable = breakpointFlag;\n this.dataSourceChange.emit();\n }\n\n //filter empty row of breakpoint details\n private filterEmptyRow(data: BreakpointVo) {\n let filterList = data.list.filter(item => !!item.amount || !!item.percentage);\n\n if (filterList.length === 0) {\n filterList = [];\n if (data.yearNo) {\n filterList = [data.list[0]];\n } else {\n data.yearError = '';\n data.list.forEach(item => {\n item.amountError = '';\n item.percentageError = '';\n });\n }\n }\n return filterList;\n }\n\n //validate whether the last breakpoint's amount is equal to its previous sum\n private checkLastAmt(index: number) {\n const data = this.dataSource[index];\n const filterList = this.filterEmptyRow(data);\n const len = filterList.length;\n const lastItem = filterList[len - 1];\n\n if (len > 1 && !!lastItem.amount) {\n let totalAmt = Big('0');\n const lastAmt = Big(lastItem.amount ? lastItem.amount : '0');\n filterList.forEach((data, i) => {\n if (i + 1 !== len) {\n const amt = Big(data.amount ? data.amount : '0');\n totalAmt = totalAmt.add(amt);\n }\n });\n if (lastAmt.toFixed(2) !== totalAmt.toFixed(2)) {\n lastItem.amountError = this.breakpointErr.amount.invalidLast + totalAmt;\n }\n }\n }\n}\n","
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n {{ 'commission.breakpoints.no' | lang }}\n
    \n
    \n {{ 'commission.breakpoints.amount' | lang }}\n
    \n
    {{ 'commission.breakpoints.percentage' | lang }}(%)
    \n
    \n
    \n
    \n
    {{ j + 1 }}
    \n
    \n \n {{ item.amountError }}\n
    \n
    \n
    \n \n -1)\">\n {{ item.percentageError }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable no-useless-escape */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { Subject } from 'rxjs';\nimport { CommissionScaleService } from 'src/app/core/services/commission/commission-scale.service';\nimport { ScalePattern, ScaleType } from '../../../../core/models/enum/commission-scale.enum';\nimport { BREAKPOINT_TYPE_OPTIONS, CALCULATION_TYPE_OPTIONS, DEFAULT_BREAKPOINT, SCALE_PATTERN_OPTIONS, SCALE_TYPE_OPTIONS } from '../commission-scale.config';\nimport { BreakpointVo, CommissionScaleVo } from '../commission-scale.model';\nimport {\n requiredScaleCode,\n existCodeAsyncValidator,\n invalidCalcTypeValidator,\n invalidCrfRateValidator,\n invalidSelectValidator,\n} from '../commission-scale.validator';\n\n@Component({\n selector: 'app-commission-record-detail',\n templateUrl: './commission-record-detail.component.html',\n styleUrls: ['./commission-record-detail.component.scss'],\n})\nexport class CommissionRecordDetailComponent implements OnInit {\n recordDetailFormGroup = this.formBuilder.group(\n {\n scaleCode: [{ value: '', disabled: false }, [requiredScaleCode()], [existCodeAsyncValidator(this.commissionScaleService)]],\n scaleType: [{ value: '', disabled: false }, [Validators.required, invalidSelectValidator(SCALE_TYPE_OPTIONS)]],\n calcType: [{ value: '', disabled: false }, [invalidSelectValidator([])]],\n crfRate: [{ value: '', disabled: false }],\n breakpointType: [{ value: '', disabled: false }, [Validators.required, invalidSelectValidator(BREAKPOINT_TYPE_OPTIONS)]],\n scalePattern: [{ value: '', disabled: false }, [Validators.required, invalidSelectValidator(SCALE_PATTERN_OPTIONS)]],\n },\n { validators: [invalidCalcTypeValidator(), invalidCrfRateValidator()] }\n );\n recordDetailFormControl = {\n scaleType: {\n label: 'commission.scale.type.label',\n placeholder: 'commission.scale.type.placeholder',\n },\n calcType: {\n label: 'commission.calculation.type.label',\n placeholder: 'commission.calculation.type.placeholder',\n },\n breakpointType: {\n label: 'commission.breakpoint.type.label',\n placeholder: 'commission.breakpoint.type.placeholder',\n },\n scalePattern: {\n label: 'commission.scale.pattern.label',\n placeholder: 'commission.scale.pattern.placeholder',\n },\n };\n\n /**commission record detail service & commission breakpoint service */\n private _commissionItem!: CommissionScaleVo;\n private _editItem!: CommissionScaleVo;\n private _dataSource!: BreakpointVo[];\n private _isEditPage = false;\n private _isSubmitted = false;\n\n /**drop down options */\n breakpointTypeOpts = BREAKPOINT_TYPE_OPTIONS;\n scalePatternOpts = SCALE_PATTERN_OPTIONS;\n scaleTypeOpts = SCALE_TYPE_OPTIONS;\n calcTypeOpts: CdsOption[] = [];\n private calcTypeOpts2 = new Subject();\n private calcTypeOpts2$ = this.calcTypeOpts2.asObservable();\n\n @Input()\n set isEditPage(value: boolean) {\n this._isEditPage = value;\n this.setDisabledOfInputControl();\n this.setCalcTypeOptions();\n }\n get isEditPage() {\n return this._isEditPage;\n }\n\n @Input()\n set isSubmitted(value: boolean) {\n this._isSubmitted = value;\n this.setDisabledOfInputControl();\n this.setCalcTypeOptions();\n }\n get isSubmitted() {\n return this._isSubmitted;\n }\n\n @Input()\n set commissionItem(item: CommissionScaleVo) {\n this._commissionItem = item;\n }\n get commissionItem() {\n return this._commissionItem;\n }\n\n @Input()\n set editItem(item: CommissionScaleVo) {\n this._editItem = item;\n this.initFormGroup();\n }\n get editItem() {\n return this._editItem;\n }\n\n @Input()\n set dataSource(data: BreakpointVo[]) {\n this._dataSource = data;\n }\n get dataSource() {\n return this._dataSource;\n }\n\n @Output() commissionItemChange = new EventEmitter();\n\n recordDetailEnable = false;\n\n constructor(private commissionScaleService: CommissionScaleService, private formBuilder: FormBuilder) {\n this.calcTypeOpts2$.subscribe(x => {\n this.calcTypeOpts = x;\n const calcTypeControl = this.GetControl('calcType');\n calcTypeControl.clearValidators();\n calcTypeControl.addValidators(invalidSelectValidator(this.calcTypeOpts));\n calcTypeControl.updateValueAndValidity();\n });\n }\n\n ngOnInit(): void {}\n\n crfRateBlur(event: any) {\n const val = event.target.value;\n if (!Number(val)) {\n event.target.value = '';\n this.GetControl('crfRate').patchValue('');\n }\n }\n\n valueChange(value?: any, controlName?: string) {\n if (controlName === 'scaleCode') {\n let valueTemp = value.target.value.toUpperCase().replace(/[^\\a-\\z\\A-\\Z0-9\\ ]/g, '');\n const posEnd = value.target.selectionEnd;\n // 最後一位允許空格,截取前6位\n valueTemp = valueTemp.substring(0, 6);\n const control = this.GetControl(controlName);\n control.patchValue(valueTemp);\n control.markAsDirty();\n value.target.setSelectionRange(posEnd, posEnd);\n }\n if (controlName === 'crfRate') {\n const control = this.GetControl(controlName);\n control.patchValue(value);\n control.markAsDirty();\n }\n if (controlName === 'scaleType' || controlName === 'calcType') {\n this.setCalcTypeOptions();\n }\n if (controlName === 'scalePattern') {\n this.setBreakpoints(value);\n }\n\n this.commissionItem.scaleCode = this.GetControl('scaleCode').value;\n this.commissionItem.scaleType = this.GetControl('scaleType').value;\n this.commissionItem.calculationType = this.GetControl('calcType').value;\n this.commissionItem.crfRate = this.GetControl('crfRate').value;\n this.commissionItem.breakpointType = this.GetControl('breakpointType').value;\n this.commissionItem.scalePattern = this.GetControl('scalePattern').value;\n\n if (this.recordDetailFormGroup.status !== 'PENDING') {\n this.recordDetailEnable = this.recordDetailFormGroup.valid;\n }\n this.recordDetailFormGroup.statusChanges.subscribe(status => {\n if (status !== 'PENDING') {\n this.recordDetailEnable = this.recordDetailFormGroup.valid;\n this.commissionItemChange.emit(value);\n }\n });\n this.commissionItemChange.emit(value);\n }\n\n private GetControl(controlName: string): AbstractControl {\n return this.recordDetailFormGroup.controls[controlName];\n }\n\n private initFormGroup() {\n if (this.editItem) {\n const scaleCodeControl = this.GetControl('scaleCode') as FormControl;\n const scaleTypeControl = this.GetControl('scaleType') as FormControl;\n const calcTypeControl = this.GetControl('calcType') as FormControl;\n const crfRateControl = this.GetControl('crfRate') as FormControl;\n const breakpointTypeControl = this.GetControl('breakpointType') as FormControl;\n const scalePatternControl = this.GetControl('scalePattern') as FormControl;\n\n scaleCodeControl.patchValue(this.editItem.scaleCode.replace(/\\s/g, ''));\n scaleCodeControl.markAsDirty();\n scaleCodeControl.addValidators([requiredScaleCode()]);\n scaleCodeControl.clearAsyncValidators();\n scaleCodeControl.addAsyncValidators(existCodeAsyncValidator(this.commissionScaleService, this.editItem.scaleCode?.replace(/\\s/g, '')));\n scaleCodeControl.updateValueAndValidity();\n scaleCodeControl.disable();\n\n scaleTypeControl.patchValue(this.editItem.scaleType);\n scaleTypeControl.markAsDirty();\n this.setCalcTypeOptions();\n scaleTypeControl.disable();\n\n calcTypeControl.patchValue(this.editItem.calculationType);\n calcTypeControl.markAsDirty();\n calcTypeControl.disable();\n\n crfRateControl.patchValue(this.editItem.crfRate);\n crfRateControl.markAsDirty();\n crfRateControl.disable();\n\n breakpointTypeControl.patchValue(this.editItem.breakpointType);\n breakpointTypeControl.markAsDirty();\n breakpointTypeControl.disable();\n\n scalePatternControl.patchValue(this.editItem.scalePattern);\n scalePatternControl.markAsDirty();\n scalePatternControl.disable();\n }\n }\n\n private setDisabledOfInputControl() {\n if (this.isEditPage || this.isSubmitted) {\n this.GetControl('scaleCode').disable();\n this.GetControl('crfRate').disable();\n } else {\n this.GetControl('scaleCode').enable();\n this.GetControl('crfRate').enable();\n }\n }\n\n // set calculation type options\n private setCalcTypeOptions() {\n const scaleType = this.GetControl('scaleType').value;\n const isFYOrPC = scaleType === ScaleType.FY || scaleType === ScaleType.FS_PC || scaleType === ScaleType.PS_PC;\n if (isFYOrPC && this.calcTypeOpts.length === 0) {\n this.calcTypeOpts2.next(JSON.parse(JSON.stringify(CALCULATION_TYPE_OPTIONS)));\n }\n this.GetControl('calcType').enable();\n if (!isFYOrPC && !this.GetControl('calcType').value) {\n this.calcTypeOpts2.next([]);\n this.GetControl('calcType').disable();\n }\n }\n\n private setBreakpoints(value: any) {\n if (value === ScalePattern.FLAT) {\n this.dataSource.forEach(data => {\n data.list = [data.list[0]];\n\n data.list[0].amount = null;\n data.list[0].amountError = '';\n if (!data.list[0].percentage) {\n data.list[0].percentage = null;\n }\n });\n }\n if (value === ScalePattern.SLIDING) {\n this.dataSource.forEach(data => {\n let differ = data.list.length - 3;\n while (differ < 0) {\n data.list.push(JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)));\n differ++;\n }\n });\n }\n }\n}\n","
    \n
    \n
    \n {{ 'commission.scale.code.label' | lang }}\n *\n
    \n \n \n \n {{ 'Missing scale code' }}\n \n \n {{ 'commission.scale.code.error' | lang }}\n \n \n
    \n
    \n \n \n \n {{ 'Missing scale code' }}\n \n \n {{ 'common.select.invalid' | lang }}\n \n \n \n \n {{ 'commission.scale.type.error.invalidCalc' | lang }}\n \n \n
    \n
    \n \n \n \n \n {{ 'common.select.invalid' | lang }}\n \n \n
    \n
    \n
    \n {{ 'commission.cpf.rate.label' | lang }}\n
    \n \n \n \n {{ 'commission.crfRate.error.invalidType' | lang }}\n \n \n
    \n
    \n \n \n \n {{ 'Missing breakpoint type' }}\n \n \n {{ 'common.select.invalid' | lang }}\n \n \n
    \n
    \n \n \n \n {{ 'Missing scale pattern' }}\n \n \n {{ 'common.select.invalid' | lang }}\n \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { findOptionLabelByValue, str2Obj } from 'src/app/utils/utils';\nimport { BTN_CONFIG_SECONDARY } from '../../../../config/btn.config';\nimport { ScalePattern, ScaleType } from '../../../../core/models/enum/commission-scale.enum';\nimport { PermissionAccess, PermissionItem } from '../../../../core/models/enum/permission.enum';\nimport { CommissionScaleService } from '../../../../core/services/commission/commission-scale.service';\nimport { LayoutHeaderService } from '../../../../core/services/layout-header.service';\nimport { PermissionService } from '../../../../core/services/permission.service';\nimport { AdminHeaderConfig } from '../../../layout/admin-layout/admin-header/admin-header-config';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\nimport { CommissionBreakpointComponent } from '../commission-breakpoint/commission-breakpoint.component';\nimport { CommissionRecordDetailComponent } from '../commission-record-detail/commission-record-detail.component';\nimport { CALCULATION_TYPE_OPTIONS, DEFAULT_BREAKPOINT } from '../commission-scale.config';\nimport { BreakpointDetailVo, BreakpointVo, CommissionScaleVo } from '../commission-scale.model';\nimport Big from 'big.js';\n\n@Component({\n selector: 'app-commission-scale-info',\n templateUrl: './commission-scale-info.component.html',\n styleUrls: ['./commission-scale-info.component.scss'],\n})\nexport class CommissionScaleInfoComponent implements OnInit, AfterViewInit {\n private amountDefaultValue = '99999999999999999999.99';\n private createTitle = 'commission.scale.title.create';\n private editTitle = 'commission.scale.title.edit';\n\n /**button and its enabled properties */\n btnCfg = BTN_CONFIG_SECONDARY;\n isEditPage = false;\n isSubmitted = false;\n isSaveChangesEnable = false;\n\n /**header button config */\n headerButton: AdminHeaderConfig = {\n title: this.createTitle,\n backButton: {\n text: 'commission.scale.title.backToList',\n url: '/commission/scale-list',\n },\n };\n\n /**commission record detail */\n commissionItem: CommissionScaleVo = {\n id: '',\n scaleCode: '',\n scaleType: null,\n calculationType: null,\n crfRate: null,\n breakpointType: null,\n scalePattern: null,\n };\n editItem!: CommissionScaleVo;\n @ViewChild(CommissionRecordDetailComponent)\n commissionRecordDetail!: CommissionRecordDetailComponent;\n @ViewChild(CommissionBreakpointComponent)\n breakpoint!: CommissionBreakpointComponent;\n\n /**commission breakpoint */\n dataSource: BreakpointVo[] = [\n {\n yearNo: '99',\n isLocked: true,\n list: [JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)), JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)), JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT))],\n },\n ];\n oldDataSource: BreakpointVo[] = [];\n\n constructor(\n private cdsPopup: CdsPopupService,\n private router: Router,\n private route: ActivatedRoute,\n private layoutHeaderService: LayoutHeaderService,\n private permissionService: PermissionService,\n private commissionScaleService: CommissionScaleService,\n private langService: CdsLangService\n ) {}\n\n ngOnInit() {\n const id = this.route.snapshot.queryParams['id'];\n if (!id) {\n //validate role permission\n this.permissionService\n .permissionFilterAsync({\n [PermissionItem.COMMISSION_SCALE_MANAGEMENT]: PermissionAccess.W,\n })\n .then(has => {\n if (!has) {\n this.router.navigate(['/permission-error']);\n }\n });\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n } else {\n this.commissionScaleService.getById2(id).subscribe(response => {\n //add quota to numerical fields to prevent percision lost\n if (response && response.body) {\n const res = str2Obj(response.body, ['amount', 'percentage', 'min', 'max']);\n if (res && res.data) {\n this.editItem = res.data.info;\n if (!res.data.info.lastUpdateTime) {\n this.editItem.lastUpdateTime = this.editItem.createTime;\n }\n if (!res.data.info.crfRate) {\n this.editItem.crfRate = null;\n }\n // update header button config\n const title = this.langService.translate('commission.scale.title.edit.specify') || '';\n this.headerButton.title = title.concat(this.editItem.scaleCode);\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n\n //check role permission\n this.permissionService\n .permissionFilterAsync({\n [PermissionItem.COMMISSION_SCALE_MANAGEMENT]: PermissionAccess.W,\n })\n .then(has => {\n if (has) {\n this.headerButton.rightButton = {\n text: 'common.edit',\n icon: {\n type: 'action:edit',\n },\n method: this.edit.bind(this),\n };\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n }\n });\n\n const breakpoint = res.data.breakPoint;\n for (const [key, value] of Object.entries(breakpoint)) {\n const item: any = {};\n item.yearNo = key;\n item.isLocked = false;\n if (item.yearNo === '99') {\n item.isLocked = true;\n }\n\n item.list = [];\n const s: any = value;\n const len = Object.entries(s).length;\n for (const [, value2] of Object.entries(s)) {\n const j: any = {};\n const k: any = value2;\n\n if (!k.amount || len === 1) {\n j.amount = null;\n } else {\n j.amount = String(new Big(k.amount).round(2, Big.roundDown).toFixed(2));\n }\n j.percentage = String(k.percentage);\n item.list.push(j);\n }\n this.oldDataSource.push(item);\n }\n this.commissionItem = JSON.parse(JSON.stringify(this.editItem));\n this.dataSource = JSON.parse(JSON.stringify(this.oldDataSource));\n\n this.isEditPage = true;\n this.commissionRecordDetail.recordDetailEnable = true;\n this.breakpoint.breakpointEnable = true;\n }\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n const id = this.route.snapshot.queryParams['id'];\n if (!id) {\n this.commissionRecordDetail.recordDetailEnable = false;\n this.breakpoint.breakpointEnable = false;\n }\n }\n\n edit() {\n this.isEditPage = false;\n this.commissionRecordDetail.recordDetailEnable = true;\n this.breakpoint.breakpointEnable = true;\n this.fillRowWithSliding(this.commissionItem.scalePattern);\n\n this.headerButton.title = this.editTitle;\n const isMobile = window.matchMedia('only screen and (max-width: 760px)').matches || window.screen.width < 500;\n let iconType = 'action:edit';\n if (isMobile) {\n iconType = 'action:more_options';\n }\n this.headerButton.rightButton = {\n text: 'common.cancel.editing',\n icon: { type: iconType },\n method: this.cancelEdit.bind(this),\n };\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.setDisabledOfFormGroup(false);\n }\n\n backToEdit() {\n this.isSubmitted = false;\n if (this.editItem) {\n this.headerButton.title = this.editTitle;\n this.headerButton.rightButton = {\n text: 'common.cancel.editing',\n icon: { type: 'action:edit' },\n method: this.cancelEdit.bind(this),\n };\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n }\n this.fillRowWithSliding(this.commissionItem.scalePattern);\n this.setDisabledOfFormGroup(false);\n }\n\n cancelEdit() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: 'common.action.cancel',\n cancel: 'common.cancel',\n continue: 'common.continue',\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.headerButton.title = 'Commission scale record - ' + this.editItem.scaleCode;\n this.headerButton.rightButton = {\n text: 'common.edit',\n icon: {\n type: 'action:edit',\n },\n method: this.edit.bind(this),\n };\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.isEditPage = true;\n this.commissionItem = JSON.parse(JSON.stringify(this.editItem));\n this.dataSource = JSON.parse(JSON.stringify(this.oldDataSource));\n this.setDisabledOfFormGroup(true);\n this.setScaleInfoToOld();\n }\n });\n }\n\n submit() {\n if (!this.commissionRecordDetail.recordDetailEnable || !this.breakpoint.breakpointEnable) return;\n if (this.editItem && !this.isSaveChangesEnable) return;\n\n //validate empty code\n const scaleCode = this.commissionItem.scaleCode.replace(/\\s+/g, '');\n if (!scaleCode.trim()) {\n const scaleCodeControl = this.commissionRecordDetail.recordDetailFormGroup.controls['scaleCode'];\n scaleCodeControl.patchValue('');\n scaleCodeControl.markAsTouched();\n scaleCodeControl.setErrors({ required: true });\n this.commissionRecordDetail.recordDetailEnable = false;\n this.checkSaveChangesEnable();\n return;\n }\n //validate scale type and calculation type manully when user only selects scale type\n const scaleType = this.commissionItem.scaleType;\n const calcType = this.commissionItem.calculationType;\n const isFYOrPC = scaleType === ScaleType.FY || scaleType === ScaleType.FS_PC || scaleType === ScaleType.PS_PC;\n if (!calcType && isFYOrPC) {\n this.commissionRecordDetail.recordDetailFormGroup.setErrors({\n invalidCalc: true,\n });\n this.commissionRecordDetail.recordDetailFormGroup.markAsTouched();\n this.commissionRecordDetail.recordDetailEnable = false;\n this.checkSaveChangesEnable();\n return;\n }\n\n // add warning poup\n let percentageWarningFlag = false;\n for (const data of this.dataSource) {\n const filterList = data.list.filter(item => (!!item.amount || !!item.percentage) && (Number(item.percentage) > 15 || Number(item.percentage) < 0.25));\n if (filterList.length > 0) {\n percentageWarningFlag = true;\n break;\n }\n }\n if (percentageWarningFlag) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: 'commission.scale.confirm.percentage',\n cancel: 'common.cancel',\n continue: 'common.continue',\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.submitToConfirm();\n }\n });\n } else {\n this.submitToConfirm();\n }\n }\n\n confirm() {\n const commissionDto: any = {\n scaleCode: this.commissionItem.scaleCode.replace(/\\s+/g, ''),\n scaleType: this.commissionItem.scaleType,\n scalePattern: this.commissionItem.scalePattern,\n breakpointType: this.commissionItem.breakpointType,\n crfRate: this.commissionItem.crfRate ? this.commissionItem.crfRate : 0,\n calculationType: this.commissionItem.calculationType ? this.commissionItem.calculationType : null,\n };\n\n const breakpoint: Map = new Map();\n this.dataSource.forEach(data => {\n const point: Map = new Map();\n data.list.forEach((item, index) => {\n const bk: any = {};\n bk.amount = item.amount;\n if (!item.amount) {\n bk.amount = this.amountDefaultValue;\n }\n bk.percentage = item.percentage;\n point.set(index + 1, bk);\n });\n breakpoint.set(data.yearNo, Object.fromEntries(point));\n });\n const params = {\n info: commissionDto,\n breakPoint: Object.fromEntries(breakpoint),\n };\n this.commissionScaleService.saveOrUpdate(this.editItem?.id, params).subscribe(resp => {\n const result = resp.result;\n let msg = 'commission.scale.confirm.create';\n if (this.editItem?.id) {\n msg = 'common.action.success';\n }\n const popData = {\n message: msg,\n type: 'alert',\n continue: 'common.gotIt',\n };\n if (!resp || !resp.data || result !== 0) {\n popData.message = 'common.action.failed';\n popData.continue = 'common.backToEdit';\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n if (result == 0) {\n this.router.navigate(['/commission/scale-list']);\n } else {\n this.backToEdit();\n }\n }\n });\n });\n }\n\n //check 'saveChanges' button is enable or not\n checkSaveChangesEnable() {\n if (!this.editItem) return;\n if (!this.commissionRecordDetail.recordDetailEnable || !this.breakpoint.breakpointEnable) {\n this.isSaveChangesEnable = false;\n return;\n }\n\n //compare the record detail\n if (\n this.editItem.scaleCode !== this.commissionItem.scaleCode ||\n this.editItem.scaleType !== this.commissionItem.scaleType ||\n findOptionLabelByValue(this.editItem.calculationType || '', CALCULATION_TYPE_OPTIONS) !==\n findOptionLabelByValue(this.commissionItem.calculationType || '', CALCULATION_TYPE_OPTIONS) ||\n Number(this.editItem.crfRate) !== Number(this.commissionItem.crfRate) ||\n this.editItem.breakpointType !== this.commissionItem.breakpointType\n ) {\n this.isSaveChangesEnable = true;\n return;\n }\n\n //compare breakpoint's dataSource\n const dataSource2: BreakpointVo[] = [];\n this.dataSource.forEach(data => {\n const list: BreakpointDetailVo[] = [];\n this.filterEmptyRow(data).forEach(item => {\n const amt = item.amount !== null ? Number(item.amount).toString() : item.amount;\n list.push({\n amount: amt,\n percentage: Number(item.percentage).toString(),\n });\n });\n dataSource2.push({\n yearNo: data.yearNo,\n isLocked: data.isLocked,\n list: list,\n });\n });\n if (dataSource2.length !== this.oldDataSource.length) {\n this.isSaveChangesEnable = true;\n return;\n }\n\n dataSource2.sort((a, b) => (a.yearNo ? Number(a.yearNo) : 0) - (b.yearNo ? Number(b.yearNo) : 0));\n this.isSaveChangesEnable = JSON.stringify(dataSource2) !== JSON.stringify(this.oldDataSource);\n }\n\n private submitToConfirm() {\n this.dataSource.forEach(data => {\n data.list = this.filterEmptyRow(data);\n });\n this.dataSource = this.dataSource.filter(data => !!data.yearNo && data.list.length > 0);\n this.dataSource.sort((a, b) => (a.yearNo ? Number(a.yearNo) : 0) - (b.yearNo ? Number(b.yearNo) : 0));\n\n this.headerButton = {\n title: this.editItem ? this.editTitle : this.createTitle,\n backButton: {\n text: 'commission.scale.title.backToList',\n url: '/commission/scale-list',\n },\n };\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.isSubmitted = true;\n this.commissionRecordDetail.recordDetailFormGroup.disable();\n }\n\n //filter empty row of breakpoint details\n private filterEmptyRow(data: BreakpointVo) {\n let filterList = data.list.filter(item => !!item.amount || !!item.percentage);\n\n if (filterList.length === 0) {\n filterList = [];\n if (data.yearNo) {\n filterList = [data.list[0]];\n } else {\n data.yearError = '';\n data.list.forEach(item => {\n item.amountError = '';\n item.percentageError = '';\n });\n }\n }\n return filterList;\n }\n\n //Edit mode,when click edit, if Scale Pattern is SLIDING and breakpoints item < 3, set breakpoints item = 3\n private fillRowWithSliding(value: ScalePattern | null | string) {\n if (value === ScalePattern.SLIDING) {\n this.dataSource.forEach(data => {\n let differ = data.list.length - 3;\n while (differ < 0) {\n data.list.push(JSON.parse(JSON.stringify(DEFAULT_BREAKPOINT)));\n differ++;\n }\n });\n }\n }\n\n //set `disabled` of FormGroup for commission record detail child component\n private setDisabledOfFormGroup(disabled: boolean) {\n const scalePatternControl = this.commissionRecordDetail.recordDetailFormGroup?.controls['scalePattern'];\n\n if (!disabled) {\n this.commissionRecordDetail.recordDetailFormGroup.enable();\n if (this.editItem) {\n scalePatternControl.disable();\n }\n } else {\n this.commissionRecordDetail.recordDetailFormGroup.disable();\n }\n }\n\n private setScaleInfoToOld() {\n const scaleCodeControl = this.commissionRecordDetail.recordDetailFormGroup?.controls['scaleCode'];\n const scaleTypeControl = this.commissionRecordDetail.recordDetailFormGroup?.controls['scaleType'];\n const calcTypeControl = this.commissionRecordDetail.recordDetailFormGroup?.controls['calcType'];\n const crfRateControl = this.commissionRecordDetail.recordDetailFormGroup?.controls['crfRate'];\n const breakpointTypeControl = this.commissionRecordDetail.recordDetailFormGroup?.controls['breakpointType'];\n\n scaleCodeControl.patchValue(this.editItem.scaleCode);\n scaleTypeControl.patchValue(this.editItem.scaleType);\n //reset calculation type options\n this.commissionRecordDetail.valueChange(this.editItem.scaleType, 'scaleType');\n calcTypeControl.patchValue(this.editItem.calculationType);\n crfRateControl.patchValue(this.editItem.crfRate);\n breakpointTypeControl.patchValue(this.editItem.breakpointType);\n }\n}\n","
    \n
    \n
    \n
    {{ 'common.record.time.create' | lang }}: {{ editItem.createTime | ssmsDateTime }}({{ 'common.HKT' | lang }})
    \n
    |
    \n
    {{ 'common.record.time.update' | lang }}: {{ editItem.lastUpdateTime | ssmsDateTime }}({{ 'common.HKT' | lang }})
    \n
    \n
    \n
    \n {{ 'commission.scale.record.details' | lang }}\n {{ 'commission.scale.record.review' | lang }}\n
    \n
    \n {{ 'commission.scale.record.subtitle.create' | lang }}\n {{ 'commission.scale.record.subtitle.review' | lang }}\n
    \n
    * {{ 'commission.scale.record.create.tips' | lang }}
    \n
    \n\n\n\n\n\n
    \n
    \n {{ 'commission.scale.breakpoint.details' | lang }}\n
    \n
    \n {{ 'commission.scale.breakpoint.subtitle' | lang }}\n
    \n
    \n\n\n\n\n
    \n
    \n \n {{ 'common.submit' | lang }}\n \n
    \n
    \n \n {{ 'common.saveChanges' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'common.confirm' | lang }}\n \n
    \n
    \n \n {{ 'common.backToEdit' | lang }}\n \n
    \n
    \n","/* eslint-disable no-useless-escape */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { finalize } from 'rxjs';\n\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\nimport { CommissionScaleService, ScaleCodeListItem } from 'src/app/core/services/commission/commission-scale.service';\nimport { SCALE_CODE_COLUMNS, SCALE_PATTERN_CONFIG, SCALE_PATTERN_OPTIONS, SCALE_TYPE_CONFIG, SCALE_TYPE_OPTIONS } from './commission-scale.config';\nimport { invalidSelectValidator } from './commission-scale.validator';\n\n@Component({\n selector: 'app-commission-scale-list',\n templateUrl: './commission-scale-list.component.html',\n styleUrls: ['./commission-scale-list.component.scss'],\n})\nexport class CommissionScaleListComponent implements OnInit {\n permissionItem = PermissionItem.COMMISSION_SCALE_MANAGEMENT;\n permissionAccess = PermissionAccess.W;\n scaleTypeOpts = SCALE_TYPE_OPTIONS;\n scalePatternOpts = SCALE_PATTERN_OPTIONS;\n SCALE_TYPE_CONFIG = SCALE_TYPE_CONFIG;\n SCALE_PATTERN_CONFIG = SCALE_PATTERN_CONFIG;\n\n previousSearchParams: any;\n\n formGroup: FormGroup = new FormGroup({\n scaleCode: new FormControl('', {\n initialValueIsDefault: true,\n }),\n scaleType: new FormControl('', {\n initialValueIsDefault: true,\n validators: [invalidSelectValidator(this.scaleTypeOpts)],\n }),\n scalePattern: new FormControl('', {\n initialValueIsDefault: true,\n validators: [invalidSelectValidator(this.scalePatternOpts)],\n }),\n scalePercentageFrom: new FormControl('', {\n initialValueIsDefault: true,\n }),\n scalePercentageTo: new FormControl('', {\n initialValueIsDefault: true,\n }),\n });\n\n // table related\n isLoading = false;\n codeSortIcon = '';\n typeSortIcon = '';\n patternSortIcon = '';\n displayedColumns: string[] = SCALE_CODE_COLUMNS;\n dataSource: ScaleCodeListItem[] = [];\n sort: any[] = [];\n pageCount: IPaginationCount = { current: 1, count: 1 };\n totalElements = 0;\n\n get isSearchEnable() {\n const haveSearchParam =\n this.scaleCode.value || this.scaleType.value || this.scalePattern.value || this.scalePercentageFrom.value || this.scalePercentageTo.value;\n return haveSearchParam && !this.formGroup.invalid;\n }\n\n get scaleCode() {\n return this.formGroup.get('scaleCode') as FormControl;\n }\n\n get scaleType() {\n return this.formGroup.get('scaleType') as FormControl;\n }\n\n get scalePattern() {\n return this.formGroup.get('scalePattern') as FormControl;\n }\n\n get scalePercentageFrom() {\n return this.formGroup.get('scalePercentageFrom') as FormControl;\n }\n\n get scalePercentageTo() {\n return this.formGroup.get('scalePercentageTo') as FormControl;\n }\n\n constructor(private router: Router, private commissionScaleService: CommissionScaleService) {}\n\n ngOnInit() {\n this.loadTable();\n }\n\n search() {\n if (!this.isSearchEnable) return;\n this.previousSearchParams = null;\n this.pageCount = { current: 1, count: 1 };\n this.loadTable();\n }\n\n reset() {\n this.previousSearchParams = null;\n this.sort = [];\n this.codeSortIcon = '';\n this.typeSortIcon = '';\n this.patternSortIcon = '';\n this.formGroup.reset();\n this.pageCount = { current: 1, count: 1 };\n this.loadTable();\n }\n\n pageChange() {\n this.loadTable();\n }\n\n onSortChange(event: any) {\n const field = event.active;\n const direction = event.direction;\n\n switch (field) {\n case SCALE_CODE_COLUMNS[0]: {\n this.codeSortIcon = direction;\n break;\n }\n case SCALE_CODE_COLUMNS[1]: {\n this.typeSortIcon = direction;\n break;\n }\n case SCALE_CODE_COLUMNS[2]: {\n this.patternSortIcon = direction;\n break;\n }\n }\n const oldIndex = this.sort.findIndex(x => x.active === field);\n if (oldIndex > -1) {\n this.sort.splice(oldIndex, 1);\n }\n if (direction) {\n this.sort.unshift({ active: field, direction: direction });\n }\n this.loadTable();\n }\n\n dbClick(id: string) {\n this.router.navigate(['/commission/scale-info'], {\n queryParams: { id: id },\n });\n }\n\n createSortArr() {\n const sortArr: string[] = [];\n this.sort.forEach(order => {\n const sortStr = order.active + ',' + order.direction;\n sortArr.push(sortStr);\n });\n return sortArr;\n }\n\n createParams() {\n const params: any = {\n page: this.pageCount.current - 1,\n size: 10,\n status: 'VALID',\n sort: this.createSortArr(),\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const value: any = {};\n const tempValue = this.formGroup.value;\n const keys: string[] = Object.keys(tempValue);\n keys.forEach(key => {\n const controlValue = tempValue[key].trim();\n if (controlValue) {\n value[key] = controlValue;\n }\n });\n return value;\n }\n\n loadTable() {\n this.isLoading = true;\n const searchParam = this.createParams();\n this.commissionScaleService\n .selectList(searchParam)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(resp => {\n if (resp.result === ResponseResult.SUCCESS && resp.data) {\n this.previousSearchParams = { ...searchParam };\n const data = resp.data;\n this.totalElements = data.totalElements;\n this.pageCount = {\n current: data.number + 1,\n count: data.totalPages,\n };\n const dataSource: ScaleCodeListItem[] = data.content || [];\n this.dataSource = dataSource;\n }\n this.isLoading = false;\n });\n }\n\n scaleCodeInput(event: any) {\n // 允許輸入字母、數字、空格\n let value = event.target.value.toUpperCase().replace(/[^\\a-\\z\\A-\\Z0-9\\ ]/g, '');\n const posEnd = event.target.selectionEnd;\n value = value.substring(0, 6);\n event.target.value = value;\n this.scaleCode.setValue(value);\n event.target.setSelectionRange(posEnd, posEnd);\n }\n\n scalePercentageFromInput(event: any) {\n const value = this.handleScalePercentageEvt(event);\n this.scalePercentageFrom.setValue(value);\n }\n\n scalePercentageToInput(event: any) {\n const value = this.handleScalePercentageEvt(event);\n this.scalePercentageTo.setValue(value);\n }\n\n handleScalePercentageEvt(event: any) {\n // 允許輸入字母、數字、空格\n let value = event.target.value.match(/(^(\\d){1,2}\\.(\\d){0,4})|(^(\\d){1,2})/g) || '';\n const posEnd = event.target.selectionEnd;\n if (value) {\n value = value[0];\n }\n event.target.value = value;\n event.target.setSelectionRange(posEnd, posEnd);\n return value;\n }\n}\n"," \n
    \n
    \n
    \n {{ 'common.searchRecord' | lang }}\n
    \n\n
    \n
    \n
    \n
    \n {{ 'commission.scale.code.label' | lang }}\n
    \n \n
    \n
    \n \n \n \n {{ 'common.select.invalid' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.select.invalid' | lang }}\n \n
    \n
    \n
    \n {{ 'commission.scale.percentage.label' | lang }}\n
    \n
    \n \n %\n -\n \n %\n
    \n
    \n
    \n
    \n {{ 'common.search' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'commission.scale.list.title.table' | lang }}\n
    \n
    \n {{ 'common.total' | lang }} {{ totalElements | number : '1.0-0' }} {{ 'common.records' | lang }}\n
    \n
    \n
    \n \n {{ 'common.createRecord' | lang }}\n \n
    \n
    \n\n
    \n \n
    \n \n \n \n \n \n
    \n
    {{ 'commission.scale.list.code' | lang }}
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n {{ element.scaleCode | uppercase }}\n \n \n
    \n \n \n
    \n
    {{ 'commission.scale.type.label' | lang }}
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n {{ element.scaleType | transfer2Label : scaleTypeOpts | lang }}\n
    \n
    \n
    \n \n \n
    \n
    {{ 'commission.scale.pattern.label' | lang }}
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n {{ element.scalePattern | transfer2Label : scalePatternOpts | lang }}\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n","import { CdsOption } from '@cds/ng-core/configuration';\nimport { BreakpointType, CalculationType, ScalePattern, ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\n\nexport const SCALE_TYPE_OPTIONS: CdsOption[] = [\n { label: 'commission.scale.type.fspc', value: ScaleType.FS_PC },\n { label: 'commission.scale.type.fssf', value: ScaleType.FS_SF },\n { label: 'commission.scale.type.fy', value: ScaleType.FY },\n { label: 'commission.scale.type.ps', value: ScaleType.PS },\n { label: 'commission.scale.type.pspc', value: ScaleType.PS_PC },\n { label: 'commission.scale.type.pssf', value: ScaleType.PS_SF },\n { label: 'commission.scale.type.rypc', value: ScaleType.RY_PC },\n { label: 'commission.scale.type.trf_sp', value: ScaleType.TRF_SP },\n { label: 'commission.scale.type.trf_sppc', value: ScaleType.TRF_SP_PC },\n];\n\nexport const SCALE_PATTERN_OPTIONS: CdsOption[] = [\n { label: 'commission.scale.pattern.flat', value: ScalePattern.FLAT },\n { label: 'commission.scale.pattern.sliding', value: ScalePattern.SLIDING },\n];\n\nexport const CALCULATION_TYPE_OPTIONS: CdsOption[] = [\n { label: 'commission.calculation.type.fy', value: CalculationType.FY },\n { label: 'commission.calculation.type.ph', value: CalculationType.PH },\n];\n\nexport const BREAKPOINT_TYPE_OPTIONS: CdsOption[] = [\n { label: 'commission.breakpoint.type.p', value: BreakpointType.P },\n { label: 'commission.breakpoint.type.y', value: BreakpointType.Y },\n];\n\nexport const SCALE_CODE_COLUMNS = ['scaleCode', 'scaleType', 'scalePattern'];\n\nexport const DEFAULT_BREAKPOINT = {\n amount: null,\n percentage: null,\n};\n\nexport const SCALE_TYPE_CONFIG = {\n label: 'commission.scale.type.label',\n placeholder: 'commission.scale.type.placeholder',\n};\nexport const SCALE_PATTERN_CONFIG = {\n label: 'commission.scale.pattern.label',\n placeholder: 'commission.scale.pattern.placeholder',\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { CommissionScaleService } from 'src/app/core/services/commission/commission-scale.service';\n\nexport const invalidSelectValidator = (options: CdsOption[]) => {\n return (control: AbstractControl): ValidationErrors | null => {\n const input = control.value;\n const selectedOption = options.find(x => x.value === input);\n if (!selectedOption && input) return { invalidSelect: true };\n return null;\n };\n};\n\nexport const invalidCalcTypeValidator = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n const scaleTypeControl = control.get('scaleType');\n const calcTypeControl = control.get('calcType');\n const scaleType = scaleTypeControl?.value;\n const calcType = calcTypeControl?.value;\n const isFYOrPC = scaleType === ScaleType.FY || scaleType === ScaleType.FS_PC || scaleType === ScaleType.PS_PC;\n const isCalcTypeTouched = calcTypeControl?.touched || calcTypeControl?.dirty;\n const isScaleTypeTouched = scaleTypeControl?.touched || scaleTypeControl?.dirty;\n\n if (isCalcTypeTouched && isScaleTypeTouched) {\n if ((!calcType && isFYOrPC) || (calcType && !isFYOrPC)) {\n return { invalidCalc: true };\n }\n }\n return null;\n };\n};\n\nexport const invalidCrfRateValidator = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n const scaleTypeControl = control.get('scaleType');\n const crfRateControl = control.get('crfRate');\n const scaleType = scaleTypeControl?.value;\n const crfRate = crfRateControl?.value;\n const isPCOrSP =\n scaleType === ScaleType.FS_PC ||\n scaleType === ScaleType.PS_PC ||\n scaleType === ScaleType.RY_PC ||\n scaleType === ScaleType.TRF_SP_PC ||\n scaleType === ScaleType.TRF_SP;\n const isCrfRateTouched = crfRateControl?.touched || crfRateControl?.dirty;\n const isScaleTypeTouched = scaleTypeControl?.touched || scaleTypeControl?.dirty;\n\n if (isCrfRateTouched && isScaleTypeTouched) {\n if ((Number.isNaN(crfRate) || crfRate > 0) && isPCOrSP) {\n return { invalidCrfRate: true };\n }\n }\n return null;\n };\n};\n\nexport const existCodeAsyncValidator = (commissionScaleService: CommissionScaleService, oldCode?: string) => {\n return (formControl: AbstractControl): Promise => {\n return new Promise(resolve => {\n const input = formControl.value.replace(/\\s+/g, '');\n if (!input || input === oldCode) {\n resolve(null);\n } else {\n const param = { page: 0, size: 1, scaleCodeSpecify: input };\n commissionScaleService.selectList(param).subscribe(response => {\n if (response && response.data && response.data.content) {\n resolve({ existCode: true });\n } else {\n resolve(null);\n }\n });\n }\n });\n };\n};\n\nexport const requiredScaleCode = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.replace(/\\s/g, '');\n if (value) {\n return null;\n }\n return { required: true };\n };\n};\n\nexport const invalidCodeAsyncValidator = (commissionScaleService: CommissionScaleService) => {\n return (formControl: AbstractControl): Promise => {\n return new Promise(resolve => {\n const input = formControl.value;\n if (!input) {\n resolve(null);\n } else {\n const param = { page: 0, size: 1, scaleCodeSpecify: input };\n commissionScaleService.selectList(param).subscribe(response => {\n if (response && response.data && response.data.empty) {\n resolve({ invalidScaleCode: true });\n } else {\n resolve(null);\n }\n });\n }\n });\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\n\n@Component({\n selector: 'app-drop-down',\n templateUrl: './drop-down.component.html',\n styleUrls: ['./drop-down.component.scss'],\n})\nexport class DropDownComponent implements OnInit {\n @Input() field!: any;\n @Input() options: CdsOption[] = [];\n @Input() nullable = true;\n @Input() locked = false;\n @Input() label = '';\n @Input() placeholder = '';\n @Output() valueChange = new EventEmitter();\n iconCfg: CdsIconConfig = { color: '#8E90A2' };\n\n constructor() {}\n\n ngOnInit(): void {}\n\n clearSelection() {\n this.field = '';\n this.valueChange.emit(this.field);\n }\n\n change(event: any) {\n this.field = event;\n this.valueChange.emit(this.field);\n }\n}\n","
    \n
    \n {{ label | lang }}\n *\n
    \n
    \n {{ field | lang }}\n
    \n \n \n \n
    \n {{ field | lang }}\n \n
    \n
    \n {{ option.label | lang }}\n \n
    \n
    \n","/* eslint-disable no-extra-boolean-cast */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\n\n@Component({\n selector: 'app-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n})\nexport class IconButtonComponent implements OnInit {\n @Input() iconCfg: CdsIconConfig = { size: 'sm' };\n @Input() icon = '';\n @Input() buttonText = '';\n @Input() buttonTextClass = 'cds-body2-demibold';\n @Input() hiddenButtonText = false;\n @Input() disabled = false;\n @Input() stopFunCallPropagation = false;\n @Output() funCall = new EventEmitter();\n disabledIconCfg: CdsIconConfig = { color: '#ededed' };\n\n constructor() {}\n\n ngOnInit(): void {}\n\n click(event: any) {\n if (this.disabled) return;\n if (this.stopFunCallPropagation) event.stopPropagation();\n this.funCall.emit();\n }\n}\n","
    \n
    \n \n \n
    \n
    \n \n {{ buttonText | lang }}\n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { SchemeMasterService } from 'src/app/core/services/commission/scheme-master.service';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\nimport { validatorSchemeName, validatorSchemeCode, validatorWarnSlIfFao } from '../scheme-master.validators';\n@Component({\n selector: 'app-scheme-master-create',\n templateUrl: './scheme-master-create.component.html',\n styleUrls: ['./scheme-master-create.component.scss'],\n})\nexport class SchemeMasterCreateComponent implements OnInit {\n INIT_VALUE_SIF = '0.000';\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n review = false;\n formGroup: FormGroup;\n isAdding = false;\n\n constructor(private cdsPopup: CdsPopupService, private cdsLangService: CdsLangService, private router: Router, private schemeService: SchemeMasterService) {\n this.formGroup = new FormGroup({\n schemeName: new FormControl('', [validatorSchemeName]),\n schemeCode: new FormControl('', [validatorSchemeCode]),\n salaryInflationFactor: new FormControl(this.INIT_VALUE_SIF),\n });\n }\n\n ngOnInit(): void {}\n\n backLanding() {\n this.router.navigate(['/commission/scheme-list']);\n }\n\n get schemeName() {\n return this.formGroup.get('schemeName') as FormControl;\n }\n\n get schemeCode() {\n return this.formGroup.get('schemeCode') as FormControl;\n }\n\n get salaryInflationFactor() {\n return this.formGroup.get('salaryInflationFactor') as FormControl;\n }\n\n schemeNameInput(event: any) {\n let value = event.target.value;\n const pos = event.target.selectionEnd;\n value = value.toUpperCase();\n if (value === this.schemeName.value) {\n return;\n }\n this.schemeName.setValue(value);\n event.target.setSelectionRange(pos, pos);\n }\n\n schemeNameChange(event: any) {\n const value = event.target.value.trim();\n if (value === this.schemeName.value) {\n return;\n }\n this.schemeName.setValue(value);\n }\n\n salaryInflationFactorInput(event: any) {\n let value = event.target.value;\n value = value.match(/(^(\\d){1,2}\\.(\\d){0,2}([0-9]){0,1})|(^(\\d){1,2})/g); // 只允許數字2位小數點3位\n const pos = event.target.selectionEnd;\n this.salaryInflationFactor.setValue(value ? value[0] : '');\n event.target.setSelectionRange(pos, pos);\n }\n\n salaryInflationFactorChange(event: any) {\n let value = event.target.value;\n value = value.match(/(^(\\d){1,2}\\.(\\d){0,2}([0-9]){0,1})|(^(\\d){1,2})/g); // 只允許數字2位小數點3位\n value = parseFloat(value ? value : 0).toFixed(3);\n if (value === this.salaryInflationFactor.value) {\n return;\n }\n this.salaryInflationFactor.setValue(value);\n }\n\n reset() {\n this.formGroup.reset({\n salaryInflationFactor: this.INIT_VALUE_SIF,\n });\n }\n\n submit() {\n if (this.formGroup.invalid) {\n return;\n }\n this.salaryInflationFactor.setValidators([validatorWarnSlIfFao]);\n this.salaryInflationFactor.setValue(this.salaryInflationFactor.value);\n this.review = true;\n }\n\n backToEdit() {\n if (this.isAdding) {\n return;\n }\n this.salaryInflationFactor.removeValidators([validatorWarnSlIfFao]);\n this.salaryInflationFactor.setValue(this.salaryInflationFactor.value);\n this.review = false;\n }\n\n confirm() {\n if (this.isAdding) {\n return;\n }\n this.isAdding = true;\n const params = {\n name: this.schemeName.value,\n schemeCode: this.schemeCode.value,\n currentSalaryInflationFactor: this.salaryInflationFactor.value,\n };\n this.schemeService\n .save(params)\n .pipe(\n finalize(() => {\n this.isAdding = false;\n })\n )\n .subscribe(resp => {\n let popData, result: number;\n if (resp && resp.data && resp.result == 0) {\n popData = {\n message: 'common.action.success',\n continue: 'common.gotItWithExclamation',\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: `${this.cdsLangService.translate('common.action.failed')}
    ${resp.message}`,\n continue: 'common.backToEdit',\n type: 'alert',\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (result == 0) {\n this.router.navigate(['/commission/scheme-list']);\n } else {\n this.backToEdit();\n }\n }\n });\n });\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n {{ 'scheme.master.details' | lang }}\n
    \n\n
    \n

    {{ 'scheme.master.create.fillIn' | lang }}

    \n

    {{ 'common.fillIn' | lang }}

    \n
    \n\n
    \n
    \n
    {{ 'common.business.schemeName' | lang }}*
    \n \n
    \n \n {{ schemeName.errors?.['errorMsg'] | lang }}\n \n
    \n
    \n
    \n
    {{ 'common.business.schemeCode' | lang }}*
    \n \n
    \n \n {{ schemeCode.errors?.['errorMsg'] | lang}}\n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.business.salaryInflationFactor' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.business.salaryInflationFactorCy' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    %
    \n
    \n
    \n \n {{ salaryInflationFactor.errors?.['errorMsg'] | lang }}\n \n
    \n {{ 'common.business.salaryInflationFactor' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.reset' | lang }} \n
    \n
    \n {{ 'common.submit' | lang }}\n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.review' | lang }}\n
    \n\n
    \n
    \n
    {{ 'common.business.schemeName' | lang }}
    \n
    \n {{ schemeName.value }}\n
    \n
    \n\n
    \n
    {{ 'common.business.schemeCode' | lang }}
    \n
    \n {{ schemeCode.value }}\n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.business.salaryInflationFactor' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.business.salaryInflationFactorCy' | lang }}\n
    \n
    \n
    {{ salaryInflationFactor.value ? salaryInflationFactor.value : 0.0 }}%
    \n
    \n \n {{ salaryInflationFactor.errors?.['errorMsg'] | lang}}\n \n
    \n {{ 'common.business.salaryInflationFactor' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.backToEdit' | lang }}\n \n
    \n
    \n {{ 'common.confirm' | lang }} \n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { SchemeMasterService } from 'src/app/core/services/commission/scheme-master.service';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\n\nimport { I18N_KEY } from '../scheme-master.config';\nimport { validatorSchemeName, validatorWarnSlIfFaoNy } from '../scheme-master.validators';\n\n@Component({\n selector: 'app-scheme-master-edit',\n templateUrl: './scheme-master-edit.component.html',\n styleUrls: ['./scheme-master-edit.component.scss'],\n})\nexport class SchemeMasterEditComponent implements OnInit {\n permissionAccess = PermissionAccess.W;\n permissionItem = PermissionItem.COMMISSION_SCHEME_MASTER_RECORD;\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n INIT_VALUE_SIF = '0.000';\n BACK_URL = '/commission/scheme-list';\n id: string;\n\n currentYearFrom = '';\n currentYearTo = '';\n nextYearTo = '';\n nextYearFrom = '';\n formGroup: FormGroup;\n\n actionText = I18N_KEY.COMMON_EDIT;\n isReviewMode = false;\n\n scheme: any = {\n name: '',\n type: '',\n schemeNo: '',\n currentInflation: { salaryInflationFactor: '' },\n nextInflation: { salaryInflationFactor: '' },\n createTime: '',\n lastUpdateTime: '',\n };\n salaryInflationFactorClass = {};\n isEdit = false;\n isConfirm = false;\n nextSIF = true;\n isUpdating = false;\n\n constructor(private cdsPopup: CdsPopupService, private router: Router, private route: ActivatedRoute, private schemeService: SchemeMasterService) {\n this.formGroup = new FormGroup({\n schemeName: new FormControl('', [validatorSchemeName]),\n salaryInflationFactor: new FormControl(this.INIT_VALUE_SIF),\n });\n this.id = this.route.snapshot.paramMap.get('id') || '';\n }\n\n ngOnInit(): void {\n if (!this.id) {\n this.backLanding();\n return;\n }\n this.schemeService.getById(this.id).subscribe(res => {\n if (res && res.data) {\n this.scheme = res.data;\n if (!this.scheme.nextInflation) {\n this.nextSIF = false;\n this.scheme.nextInflation = this.scheme.currentInflation;\n }\n this.setFormValue();\n this.initDate();\n this.setHeaderDetailMode();\n }\n });\n }\n\n backLanding() {\n this.router.navigate([this.BACK_URL]);\n }\n\n get schemeName() {\n return this.formGroup.get('schemeName') as FormControl;\n }\n\n get salaryInflationFactor() {\n return this.formGroup.get('salaryInflationFactor') as FormControl;\n }\n\n initDate() {\n const cyFromDate = new Date(this.scheme.currentInflation.financialStartDateHkt);\n const mounth = cyFromDate.getMonth();\n const day = cyFromDate.getDate();\n let year = cyFromDate.getFullYear();\n if (mounth > 10 && day > 30) {\n year = year + 1;\n }\n const cyToDate = new Date(`${year}-12-30`);\n this.currentYearFrom = moment(cyFromDate).format('DD MMM yyyy');\n this.currentYearTo = moment(cyToDate).format('DD MMM yyyy');\n if (!this.nextSIF) {\n this.nextYearFrom = moment(`${year}-12-31`).format('DD MMM yyyy');\n this.nextYearTo = moment(`${year + 1}-12-30`).format('DD MMM yyyy');\n } else {\n const nyFromDate = new Date(this.scheme.nextInflation.financialStartDateHkt);\n const nextyear = nyFromDate.getFullYear();\n this.nextYearFrom = moment(`${nextyear}-12-31`).format('DD MMM yyyy');\n this.nextYearTo = moment(`${nextyear + 1}-12-30`).format('DD MMM yyyy');\n }\n }\n\n setFormValue() {\n this.formGroup.reset({\n salaryInflationFactor: this.INIT_VALUE_SIF,\n });\n this.schemeName.setValue(this.scheme.name);\n const salaryInflationFactorNy: any = this.scheme.nextInflation?.salaryInflationFactor;\n if (salaryInflationFactorNy) {\n this.salaryInflationFactor.setValue(parseFloat(salaryInflationFactorNy).toFixed(3));\n }\n }\n\n setHeaderDetailMode() {\n this.actionText = I18N_KEY.COMMON_EDIT;\n }\n\n setHeaderEditMode() {\n this.actionText = I18N_KEY.COMMON_CANCLE_EDIT;\n this.isReviewMode = false;\n }\n\n setHeaderReviewMode() {\n this.isReviewMode = true;\n }\n\n schemeNameInput(event: any) {\n let value = event.target.value;\n const pos = event.target.selectionEnd;\n value = value.toUpperCase();\n if (value === this.schemeName.value) {\n return;\n }\n this.schemeName.setValue(value);\n event.target.setSelectionRange(pos, pos);\n }\n\n schemeNameChange(event: any) {\n const value = event.target.value.trim();\n if (value === this.schemeName.value) {\n return;\n }\n this.schemeName.setValue(value);\n }\n\n salaryInflationFactorInput(event: any) {\n let value = event.target.value;\n value = value.match(/(^(\\d){1,2}\\.(\\d){0,2}([0-9]){0,1})|(^(\\d){1,2})/g); // 只允許數字2位小數點3位\n const pos = event.target.selectionEnd;\n this.salaryInflationFactor.setValue(value ? value[0] : '');\n event.target.setSelectionRange(pos, pos);\n }\n\n salaryInflationFactorChange(event: any) {\n let value = event.target.value;\n value = value.match(/(^(\\d){1,2}\\.(\\d){0,2}([0-9]){0,1})|(^(\\d){1,2})/g); // 只允許數字2位小數點3位\n value = parseFloat(value ? value[0] : 0).toFixed(3);\n if (value === this.salaryInflationFactor.value) {\n return;\n }\n this.salaryInflationFactor.setValue(value);\n }\n\n iconClick() {\n if (this.isEdit) {\n this.cancelEdit();\n } else {\n this.edit();\n }\n }\n\n edit() {\n this.salaryInflationFactor.removeValidators([validatorWarnSlIfFaoNy]);\n this.setHeaderEditMode();\n this.isEdit = true;\n }\n\n cancelEdit() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n cancel: I18N_KEY.COMMON_CANCLE,\n continue: I18N_KEY.COMMON_CONTINUE,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.reset();\n this.isEdit = false;\n this.isConfirm = false;\n this.setHeaderDetailMode();\n }\n });\n }\n\n // addSIF() {\n // this.nextSIF = true;\n // }\n\n get isSaveAvailable() {\n if (this.schemeName.value != this.scheme.name) {\n return true;\n }\n // if (!this.scheme.nextInflation && this.nextSIF) {\n // return true;\n // }\n if (this.scheme.nextInflation && this.scheme.nextInflation.salaryInflationFactor != this.salaryInflationFactor.value) {\n return true;\n }\n return false;\n }\n\n reset() {\n this.setFormValue();\n // if (!this.scheme.nextInflation) {\n // this.nextSIF = false;\n // }\n }\n\n save() {\n if (!this.isSaveAvailable) {\n return;\n }\n this.salaryInflationFactorClass = {};\n const salaryInflationFactorCy = this.scheme.currentInflation.salaryInflationFactor;\n const salaryInflationFactorNy = this.salaryInflationFactor.value || 0;\n // if (this.nextSIF) {\n // this.salaryInflationFactorClass = {\n // 'font-green': Number(salaryInflationFactorNy) > Number(Number(salaryInflationFactorCy)),\n // 'font-red': Number(salaryInflationFactorNy) < Number(Number(salaryInflationFactorCy)),\n // };\n // }\n this.salaryInflationFactorClass = {\n 'font-green': Number(salaryInflationFactorNy) > Number(Number(salaryInflationFactorCy)),\n 'font-red': Number(salaryInflationFactorNy) < Number(Number(salaryInflationFactorCy)),\n };\n this.salaryInflationFactor.setValidators([validatorWarnSlIfFaoNy]);\n this.salaryInflationFactor.setValue(this.salaryInflationFactor.value);\n this.isEdit = false;\n this.isConfirm = true;\n this.setHeaderReviewMode();\n }\n\n backToEdit() {\n if (this.isUpdating) {\n return;\n }\n this.salaryInflationFactor.removeValidators([validatorWarnSlIfFaoNy]);\n this.isEdit = true;\n this.isConfirm = false;\n this.setHeaderEditMode();\n }\n\n confirm() {\n if (this.isUpdating) {\n return;\n }\n this.isUpdating = true;\n const params: any = {\n id: this.id,\n name: this.schemeName.value,\n };\n // if (this.nextSIF) {\n // params.nextSalaryInflationFactor = this.salaryInflationFactor.value;\n // }\n params.nextSalaryInflationFactor = this.salaryInflationFactor.value;\n this.schemeService\n .update(params)\n .pipe(\n finalize(() => {\n this.isUpdating = false;\n })\n )\n .subscribe(resp => {\n let popData, result: number;\n if (resp && resp.data && resp.result == ResponseResult.SUCCESS) {\n popData = {\n message: I18N_KEY.COMMON_ACTION_SUCCESS,\n continue: I18N_KEY.COMMON_GOT,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: I18N_KEY.COMMON_ACTION_FAILE,\n continue: I18N_KEY.COMMON_BACK_EDIT,\n type: 'alert',\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (result == ResponseResult.SUCCESS) {\n this.router.navigate([this.BACK_URL]);\n } else {\n this.backToEdit();\n }\n }\n });\n });\n }\n}\n","\n \n \n
    \n \n \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'common.record.time.create' | lang }}: {{ scheme.createTime | ssmsDateTime }}({{ 'common.HKT' | lang }})\n |\n {{ 'common.record.time.update' | lang }}: {{ scheme.lastUpdateTime | ssmsDateTime }}({{ 'common.HKT' | lang }})\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'scheme.master.details' | lang }}\n
    \n
    \n {{ 'common.review' | lang }}\n
    \n
    \n\n
    \n
    \n
    {{ 'common.business.schemeName' | lang }}
    \n
    \n {{ scheme.name }}\n {{ schemeName.value }}\n
    \n
    \n \n \n {{ schemeName.errors?.['errorMsg'] | lang}}\n \n
    \n
    \n
    \n
    {{ 'common.business.schemeCode' | lang }}
    \n
    \n {{ scheme.schemeCode }}\n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.business.salaryInflationFactor' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'scheme.master.salaryInflationFactor.tips' | lang : { p1: currentYearFrom, p2: currentYearTo } }}\n ({{ 'common.business.salaryInflationFactorCy' | lang }})\n
    \n
    {{ 'scheme.master.salaryInflationFactor.tips' | lang : { p1: currentYearFrom, p2: currentYearTo } }}
    \n
    \n {{ scheme.currentInflation.salaryInflationFactor | number : '1.3-3' }} %\n
    \n
    \n {{ 'common.business.salaryInflationFactorCy' | lang }}\n
    \n
    \n
    \n \n
    \n\n
    \n
    \n {{ 'scheme.master.salaryInflationFactor.tips' | lang : { p1: nextYearFrom, p2: nextYearTo } }}\n ({{ 'common.business.salaryInflationFactorNy' | lang }})\n
    \n
    {{ 'scheme.master.salaryInflationFactor.tips' | lang : { p1: nextYearFrom, p2: nextYearTo } }}
    \n
    \n
    \n {{ salaryInflationFactor.value | number : '1.3-3' }}% \n
    \n \n {{ salaryInflationFactor.errors?.['errorMsg'] | lang}}\n \n
    \n
    \n
    {{ scheme.nextInflation?.salaryInflationFactor | number : '1.3-3' }}%
    \n
    \n
    \n
    \n
    \n \n
    \n
    %
    \n
    \n
    \n
    \n {{ 'common.business.salaryInflationFactorNy' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.reset' | lang }} \n
    \n
    \n {{ 'common.saveChanges' | lang }} \n
    \n
    \n {{ 'common.backToEdit' | lang }}\n \n
    \n
    \n {{ 'common.confirm' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { SchemeMasterListItem, SchemeMasterService } from 'src/app/core/services/commission/scheme-master.service';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\nimport { SCHEME_TABLE_COLUMNS } from './scheme-master.config';\n@Component({\n selector: 'app-scheme-master',\n templateUrl: './scheme-master.component.html',\n styleUrls: ['./scheme-master.component.scss'],\n})\nexport class SchemeMasterComponent implements OnInit {\n permissionAccess = PermissionAccess.W;\n permissionItem = PermissionItem.COMMISSION_SCHEME_MASTER_RECORD;\n\n loading = false;\n overlay = false;\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n dataDisplayed: SchemeMasterListItem[] = [];\n columnsConfig: Array = SCHEME_TABLE_COLUMNS;\n\n sortColumn: ColumnConfig | null = null;\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n\n constructor(private router: Router, private schemeService: SchemeMasterService) {}\n\n ngOnInit(): void {\n this.sortColumn = this.columnsConfig[0];\n this.getData();\n }\n\n getData() {\n this.loading = true;\n const param = this.createParam();\n this.schemeService.selectList(param).subscribe(resp => {\n this.loading = false;\n this.overlay = true;\n let dataList: SchemeMasterListItem[] = [];\n if (resp && resp.data && resp.result == 0) {\n const data = resp.data;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements,\n };\n if (data.content) {\n dataList = data.content.map((item: SchemeMasterListItem) => {\n if (item.currentInflation) {\n item.currentInflation.salaryInflationFactor = Number(item.currentInflation.salaryInflationFactor).toFixed(3);\n }\n return item;\n });\n }\n }\n this.dataDisplayed = dataList;\n });\n }\n\n createParam() {\n const param: any = {};\n param.page = (this.pageConfig.current as number) - 1;\n param.size = this.pageConfig.pageSize;\n if (this.sortColumn) {\n param.sort = `${this.sortColumn.key},${this.sortColumn.sort}`;\n }\n return param;\n }\n\n schemeClick(item: any) {\n this.router.navigate(['/commission/scheme-edit', { id: item.id }]);\n }\n\n reloadTable(event: any) {\n this.sortColumn = null;\n if (event.column) {\n this.sortColumn = event.column;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.getData();\n }\n\n create() {\n this.router.navigate(['/commission/scheme-create']);\n }\n}\n"," \n
    \n
    \n
    \n \n \n \n \n {{ 'scheme.master.create' | lang }}\n \n \n \n \n
    \n \n \n {{ element['schemeCode'] }}\n \n \n {{ element['currentInflation'].salaryInflationFactor }}%\n \n \n
    \n
    \n","import { SortMode } from 'src/app/shared/data-table/data-table.model';\n\nexport interface Inflation {\n salaryInflationFactor?: string;\n}\n\nexport interface Scheme {\n id?: string;\n schemeNo?: string;\n registrationNo?: string;\n schemeCode?: string;\n name?: string;\n type?: string;\n pooledPolicyNumber?: string;\n lastMonthlyReportDate?: string;\n nextFinancialYearEnd?: string;\n mpfaAuditSignal?: boolean; //TRUE 1 FALSE 0\n currentInflation: Inflation;\n nextInflation?: Inflation;\n createTime?: string;\n lastUpdateTime?: string;\n}\n\nexport const I18N_KEY = {\n SCHEME_NAME_REQUIRED: 'common.business.schemeNameRequired',\n REGISTATION_NO_REQUIRED: 'common.business.schemeCodeRequired',\n SCHEME_SALARY_WRN_CY: 'scheme.master.warn.SIFCY',\n SCHEME_SALARY_WRN_NY: 'scheme.master.warn.SIFNY',\n COMMON_EDIT: 'common.edit',\n COMMON_CANCLE_EDIT: 'common.cancel.editing',\n COMMON_ACTION_CANCLE: 'common.action.cancel',\n COMMON_CANCLE: 'common.cancel',\n COMMON_CONTINUE: 'common.continue',\n COMMON_ACTION_SUCCESS: 'common.action.success',\n COMMON_GOT: 'common.gotItWithExclamation',\n COMMON_ACTION_FAILE: 'common.action.failed',\n COMMON_BACK_EDIT: 'common.backToEdit',\n};\n\nexport const SCHEME_TABLE_COLUMNS = [\n {\n key: 'schemeCode',\n title: 'common.business.schemeCode',\n sort: SortMode.UP,\n sticky: true,\n },\n { key: 'name', title: 'common.business.schemeName', stickyEnd: true },\n { key: 'currentInflation', title: 'common.business.salaryInflationFactorCy' },\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\n\nimport { SchemeMasterComponent } from './scheme-master.component';\nimport { SchemeMasterEditComponent } from './scheme-master-edit/scheme-master-edit.component';\nimport { SchemeMasterCreateComponent } from './scheme-master-create/scheme-master-create.component';\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, SharedModule, CdsLanguageModule, CdsButtonModule, CdsAssistiveTextModule, MatSelectModule, CdsIconModule],\n declarations: [SchemeMasterComponent, SchemeMasterEditComponent, SchemeMasterCreateComponent],\n})\nexport class SchemeMasterModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { I18N_KEY } from './scheme-master.config';\n\nexport function validatorSchemeName(control: AbstractControl) {\n const value = !control.value ? '' : control.value.trim();\n if (!value) {\n return { errorMsg: I18N_KEY.SCHEME_NAME_REQUIRED };\n }\n return null;\n}\n\nexport function validatorSchemeCode(control: AbstractControl): ValidationErrors | null {\n const value = !control.value ? '' : control.value.trim();\n if (!value) {\n return { errorMsg: I18N_KEY.REGISTATION_NO_REQUIRED };\n }\n return null;\n}\n\nexport function validatorWarnSlIfFao(control: AbstractControl): ValidationErrors | null {\n if (control.value > 10 || control.value == 0) {\n return { errorMsg: I18N_KEY.SCHEME_SALARY_WRN_CY };\n }\n return null;\n}\n\nexport function validatorWarnSlIfFaoNy(control: AbstractControl): ValidationErrors | null {\n if (control.value > 10 || control.value == 0) {\n return { errorMsg: I18N_KEY.SCHEME_SALARY_WRN_NY };\n }\n return null;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\nimport { CommissionPoolService } from 'src/app/core/services/commission/commission-pool.service';\n\nimport { Agent } from '../agent.model';\nimport { texts } from '../../pool-info.model';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\n\n@Component({\n selector: 'app-agent-add-alert',\n templateUrl: './agent-add-alert.component.html',\n styleUrls: ['./agent-add-alert.component.scss'],\n})\nexport class AgentAddAlertComponent implements OnInit {\n constructor(\n private cdsPopup: CdsPopupService,\n private agentService: CommissionAgentService,\n private poolService: CommissionPoolService,\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n cancel: string;\n continue: string;\n type: string;\n commissionPoolId: string;\n agentList: any[];\n }\n ) {\n this.commissionPoolId = data.commissionPoolId;\n }\n\n agentCode = '';\n errorMsg = '';\n disableAdd = true;\n loading = false;\n commissionPoolId = '';\n waiveMonthlyBonus = false;\n agent: Agent = {};\n disagreeButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n agreeButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n input(event: any) {\n event.target.value = event.target.value.replace(/[^\\d]+/g, '');\n if (event.keyCode == 13 || event.target.value.length >= 6) {\n this.change(event.target.value, event);\n }\n }\n\n change(filterValue: string, event: any) {\n this.errorMsg = '';\n this.agent = {};\n this.disableAdd = true;\n if (filterValue) {\n filterValue = filterValue.trim();\n event.target.value = filterValue;\n }\n if (filterValue) {\n this.loading = true;\n if (this.data.agentList) {\n this.data.agentList.forEach(item => {\n if (item.agentCode && item.agentCode == filterValue) {\n this.errorMsg = texts.invalidAgentCode;\n }\n });\n if (this.errorMsg) {\n this.loading = false;\n return;\n }\n }\n this.agentService.getAgentByCode(filterValue).subscribe(resp => {\n this.loading = false;\n if (resp && resp.result == 0 && resp.data) {\n this.agent = resp.data;\n if (resp.data.agentChannel != AgentChannel.BROKER && resp.data.agentChannel != AgentChannel.IA_BROKER && this.waiveMonthlyBonus) {\n this.errorMsg = texts.nonBrokerChannel;\n return;\n }\n this.disableAdd = false;\n return;\n }\n this.errorMsg = texts.invalidAgentCode;\n });\n }\n }\n\n agree() {\n this.dialogRef.close({ agree: true, agent: this.agent });\n }\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n\n add() {\n if (this.disableAdd) {\n return;\n }\n this.agree();\n }\n\n ngOnInit() {\n this.loading = true;\n this.poolService.getById(this.commissionPoolId).subscribe(resp => {\n this.loading = false;\n if (resp && resp.data && resp.result == 0) {\n this.waiveMonthlyBonus = resp.data.waiveMonthlyBonus;\n }\n });\n }\n}\n","\n
    \n
    \n
    \n
    \n {{ 'commission.pool.agents.alert.title' | lang }}\n
    \n
    \n
    \n {{ 'commission.pool.agents.alert.addNew' | lang }}\n
    \n
    \n \n \n \n \n
    \n \n {{ errorMsg | lang }}\n \n
    \n \n
    \n {{ 'commission.pool.common.cancel' | lang }} \n {{ 'commission.pool.common.add' | lang }} \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\n\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport { AgentAddAlertComponent } from 'src/app/views/commission/summary/agent/agent-record-add/agent-add-alert.component';\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\nimport { toISODate, fromISO, beforeCurrent } from 'src/app/utils/dateUtils';\nimport { texts } from 'src/app/views/commission/summary/pool-info.model';\nimport { deepCopy } from 'src/app/utils/copy';\nimport Big from 'big.js';\n\ninterface Agent {\n id: string;\n agentName: string;\n agentCode: string;\n sellingAgent: boolean;\n sellingAgentWarning?: string;\n shareHkpc: string;\n shareCommission: string;\n saReportDate: string;\n agentCodeError?: string;\n shareHkpcError?: string;\n shareCommissionError?: string;\n saReportDateError?: string;\n saReportDateWarning?: string;\n updateDisplay?: boolean;\n}\n@Component({\n selector: 'app-agent-record-add',\n templateUrl: './agent-record-add.component.html',\n styleUrls: ['./agent-record-add.component.scss'],\n})\nexport class AgentRecordAddComponent implements OnInit {\n constructor(private cdsPopup: CdsPopupService, private agentService: CommissionAgentService, private router: Router, private route: ActivatedRoute) {}\n\n commissionPoolId = '';\n currentEffectiveDate = '';\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n\n dataSource: Agent[] = [];\n originalAgents: Agent[] = [];\n\n editForm: any = {\n effectiveDate: '',\n };\n loading = false;\n editStatus = true;\n disableSave = true;\n isErrorDisplay = false;\n warningMsg = '';\n\n doBackMethod() {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: this.commissionPoolId,\n tabType: 'agents',\n },\n });\n }\n\n addNew() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AgentAddAlertComponent, {\n size: 'md',\n data: {\n commissionPoolId: this.commissionPoolId,\n agentList: this.dataSource,\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree && confirm.agent) {\n this.dataSource.push({\n id: confirm.agent.identityId,\n agentName: confirm.agent.name,\n agentCode: confirm.agent.agentCode,\n sellingAgent: true,\n shareHkpc: '',\n shareCommission: '',\n saReportDate: '',\n });\n this.warningMsg = '';\n this.formValidate();\n }\n });\n }\n\n update() {\n if (JSON.stringify(this.originalAgents) !== JSON.stringify(this.dataSource)) {\n this.cancelAlert().then(res => {\n if (res.agree) {\n this.editStatus = true;\n this.disableSave = true;\n this.editForm.effectiveDate = this.currentEffectiveDate;\n }\n });\n } else {\n this.editStatus = true;\n this.editForm.effectiveDate = this.currentEffectiveDate;\n }\n }\n\n delete(i: number) {\n this.dataSource.splice(i, 1);\n this.formChange('', 0);\n }\n\n closeErrorAlert() {\n this.isErrorDisplay = false;\n this.formValidate();\n }\n\n formChange(input: any, i: number) {\n this.warningMsg = '';\n const amountPattern = texts.datePattern;\n switch (input) {\n case 'effectiveDate':\n this.editForm.effectiveDateError = '';\n if (!this.editForm.effectiveDate) {\n this.editForm.effectiveDateError = 'commission.pool.agents.create.pleaseInputDate';\n this.formValidate();\n return;\n }\n if (!toISODate(this.editForm.effectiveDate)) {\n this.editForm.effectiveDateError = 'commission.pool.common.invalidEffectiveDate';\n this.formValidate();\n return;\n }\n if (!amountPattern.test(this.editForm.effectiveDate)) {\n this.editForm.effectiveDateError = 'commission.pool.common.invalidEffectiveDate';\n this.formValidate();\n return;\n }\n if (beforeCurrent(this.editForm.effectiveDate)) {\n this.editForm.effectiveDateError = 'commission.pool.agents.create.notBackDate';\n this.formValidate();\n return;\n }\n this.loading = true;\n this.agentService.getRegularList(0, this.commissionPoolId).subscribe(resp => {\n this.loading = false;\n if (resp && resp.result == 0 && resp.data.content) {\n const list: any[] = resp.data.content;\n list.forEach(item => {\n if (fromISO(item.effectiveDate) == this.editForm.effectiveDate && item.active) {\n this.editForm.effectiveDateError = 'Duplicate \"Agent effective date\"';\n this.formValidate();\n return;\n }\n });\n }\n });\n break;\n case 'item.sellingAgent':\n this.dataSource[i].sellingAgentWarning = '';\n this.originalAgents.forEach(item => {\n if (item.agentCode == this.dataSource[i].agentCode && item.sellingAgent !== this.dataSource[i].sellingAgent) {\n this.dataSource[i].sellingAgentWarning = 'Selling Agent: Different with current record';\n }\n });\n break;\n case 'item.shareHkpc':\n this.dataSource[i].shareHkpcError = '';\n if (!this.dataSource[i].shareHkpc) {\n this.dataSource[i].shareHkpcError = texts.shareHkpcRequired;\n } else {\n this.dataSource[i].shareHkpc = new Big(this.dataSource[i].shareHkpc).toFixed(3);\n }\n break;\n case 'item.shareCommission':\n this.dataSource[i].shareCommissionError = '';\n if (!this.dataSource[i].shareCommission) {\n this.dataSource[i].shareCommissionError = texts.shareCommissionRequired;\n } else {\n this.dataSource[i].shareCommission = new Big(this.dataSource[i].shareCommission).toFixed(3);\n }\n break;\n case 'item.saReportDate':\n this.dataSource[i].saReportDateError = '';\n this.dataSource[i].saReportDateWarning = '';\n if (this.dataSource[i].saReportDate && !amountPattern.test(this.dataSource[i].saReportDate)) {\n this.dataSource[i].saReportDateError = 'Invalid SA Report Rec’d Date';\n } else if (this.dataSource[i].saReportDate && !toISODate(this.dataSource[i].saReportDate)) {\n this.dataSource[i].saReportDateError = 'Invalid SA Report Rec’d Date';\n }\n if (!this.dataSource[i].saReportDateError) {\n this.originalAgents.forEach(item => {\n if (item.agentCode == this.dataSource[i].agentCode && item.saReportDate !== this.dataSource[i].saReportDate)\n this.dataSource[i].saReportDateWarning = 'SA Report Rec‘d Date: Different with current record';\n });\n }\n break;\n }\n this.formValidate();\n }\n\n formValidate() {\n if (\n this.dataSource.length > 0 &&\n this.editForm.effectiveDate &&\n !this.editForm.effectiveDateError &&\n this.checkAgents() &&\n (JSON.stringify(this.originalAgents) !== JSON.stringify(this.dataSource) || this.currentEffectiveDate !== this.editForm.effectiveDate)\n ) {\n this.disableSave = false;\n } else {\n this.disableSave = true;\n }\n }\n\n checkAgents() {\n let b = true;\n for (let i = 0; i < this.dataSource.length; i++) {\n if (\n !this.dataSource[i].agentCodeError &&\n !this.dataSource[i].shareHkpcError &&\n !this.dataSource[i].shareCommissionError &&\n !this.dataSource[i].saReportDateError &&\n this.dataSource[i].shareHkpc &&\n this.dataSource[i].shareCommission &&\n !(Number(this.dataSource[i].shareHkpc) == 0 && Number(this.dataSource[i].shareCommission) == 0)\n ) {\n b = true;\n } else {\n b = false;\n break;\n }\n }\n return b;\n }\n\n reset() {\n this.cancelAlert().then(res => {\n if (res && res.agree) {\n this.disableSave = true;\n }\n });\n }\n\n cancelAlert(): Promise {\n return new Promise(resolve => {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.cancelMsg,\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.editForm.effectiveDate = '';\n this.editForm.effectiveDateError = '';\n this.dataSource = deepCopy(this.originalAgents);\n this.warningMsg = '';\n resolve({ agree: true });\n }\n resolve({ agree: false });\n });\n });\n }\n\n backToEdit() {\n this.editStatus = true;\n }\n\n save() {\n if (this.disableSave) {\n return;\n }\n const list: any[] = this.dataSource;\n let shareHkpc = new Big(0);\n let shareCommission = new Big(0);\n list.forEach(item => {\n if (item.shareHkpc) {\n shareHkpc = shareHkpc.plus(new Big(item.shareHkpc));\n }\n if (item.shareCommission) {\n shareCommission = shareCommission.plus(new Big(item.shareCommission));\n }\n });\n if (!shareHkpc.eq(new Big(100)) || !shareCommission.eq(new Big(100))) {\n this.isErrorDisplay = true;\n if (document && document.getElementById(`errorDisplay`)) {\n const errorDisplay = document.getElementById(`errorDisplay`);\n if (errorDisplay) {\n errorDisplay.scrollIntoView();\n this.disableSave = true;\n }\n }\n } else {\n this.isErrorDisplay = false;\n this.editStatus = false;\n if (JSON.stringify(this.dataSource) == JSON.stringify(this.originalAgents)) {\n this.warningMsg = 'The commission agent combination is same as previous, please note';\n }\n const l1: any[] = [];\n const l2: any[] = [];\n this.originalAgents.forEach(i => {\n this.dataSource.forEach(j => {\n if (i.agentCode == j.agentCode) {\n l1.push({ date: i.saReportDate, sellingAgent: i.sellingAgent });\n l2.push({ date: j.saReportDate, sellingAgent: j.sellingAgent });\n }\n });\n });\n if (l1.length > 0 && l2.length > 0 && JSON.stringify(l1) != JSON.stringify(l2)) {\n this.warningMsg = 'commission.pool.agents.create.saChangeWarning';\n }\n }\n }\n\n confirm() {\n const form: any = {};\n form.commissionPoolId = this.commissionPoolId;\n form.effectiveDate = toISODate(this.editForm.effectiveDate);\n const agents: Agent[] = [];\n this.loading = true;\n this.dataSource.forEach(item => {\n const agent = {\n id: item.id,\n agentName: item.agentName,\n agentCode: item.agentCode,\n sellingAgent: item.sellingAgent,\n shareHkpc: item.shareHkpc,\n shareCommission: item.shareCommission,\n saReportDate: item.saReportDate ? toISODate(item.saReportDate) : '',\n };\n agents.push(agent as any);\n });\n form.agents = agents;\n this.agentService.addAgent(true, form).subscribe(resp => {\n this.loading = false;\n let popData, result: number;\n if (resp && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n if (result == 0) {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: this.commissionPoolId,\n tabType: 'agents',\n },\n });\n } else {\n this.backToEdit();\n }\n }\n });\n });\n }\n\n ngOnInit(): void {\n this.commissionPoolId = this.route.snapshot.queryParams['commissionPoolId'];\n const agentDetailId = this.route.snapshot.queryParams['agentDetailId'];\n this.currentEffectiveDate = this.route.snapshot.queryParams['currentEffectiveDate'];\n this.loading = true;\n this.agentService\n .getRegularItems({\n id: agentDetailId,\n commissionPoolId: this.commissionPoolId,\n })\n .subscribe(resp => {\n this.loading = false;\n if (resp && resp.result == 0 && resp.data.content) {\n const agentItems: any[] = resp.data.content;\n agentItems.forEach(item => {\n this.dataSource.push({\n id: item.id,\n agentName: item.agentName,\n agentCode: item.agentCode,\n sellingAgent: item.sellingAgent,\n shareHkpc: new Big(item.shareHkpc).toFixed(3),\n shareCommission: new Big(item.shareCommission).toFixed(3),\n saReportDate: item.saReportDate ? fromISO(item.saReportDate) : '',\n updateDisplay: true,\n });\n });\n this.originalAgents = deepCopy(this.dataSource);\n }\n });\n }\n}\n","\n\n
    \n
    \n
    \n
    \n {{ 'commission.pool.summary.commissionPoolNumber' | lang }}:    \n {{ commissionPoolId }}\n
    \n\n
    \n \n {{ 'commission.pool.agents.create.commissionAgentChange' | lang }}\n \n \n {{ 'commission.pool.agents.create.commissionAgentChangeRecordSummary' | lang }}\n \n
    \n\n
    \n
    \n
    \n {{ 'commission.pool.agents.create.agentEffectiveDate' | lang }}\n
    \n
    \n \n \n \n
    \n \n {{ editForm.effectiveDateError | lang }}\n \n {{ editForm.effectiveDate }}\n
    \n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.agents.create.percentageWarning1' | lang }}\n
    \n {{ 'commission.pool.agents.create.percentageWarning2' | lang }}\n
    \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'commission.pool.agents.create.agent' | lang }}\n \n {{ 'commission.pool.agents.create.sellingAgent' | lang }}\n \n {{ 'commission.pool.agents.create.shareHKPC' | lang }}\n \n {{ 'commission.pool.agents.create.shareCommission' | lang }}\n \n {{ 'commission.pool.agents.create.reportDate' | lang }}\n \n {{ 'commission.pool.common.action' | lang }}\n
    \n
    \n {{ item.agentCode }}\n
    \n
    \n {{ item.agentName }}\n
    \n
    \n
    \n {{ 'commission.pool.agents.create.sellingAgent' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'commission.pool.agents.create.shareHKPC' | lang }}\n
    \n
    \n {{ item.shareHkpc }}\n
    \n
    \n \n  %\n
    \n
    \n
    \n {{ 'commission.pool.agents.create.shareCommission' | lang }}\n
    \n
    \n {{ item.shareCommission }}\n
    \n
    \n \n  %\n
    \n
    \n
    \n {{ 'commission.pool.agents.create.reportDate' | lang }}\n
    \n
    \n {{ item.saReportDate }}\n
    \n
    \n \n \n \n
    \n
    \n \n {{ 'commission.pool.common.delete' | lang }}\n \n
    \n \n \n {{ item.sellingAgentWarning | lang }}\n \n \n \n \n {{ item.shareHkpcError | lang }}\n \n \n \n {{ item.shareCommissionError | lang }}\n \n \n \n {{ item.saReportDateError | lang }}\n \n \n \n {{ item.saReportDateWarning | lang }}\n \n \n
    \n
    \n \n
    \n \n \n {{ warningMsg | lang }}\n \n \n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.agents.create.addNew' | lang }}\n
    \n
    \n
    \n
    \n {{ 'commission.pool.common.reset' | lang }} \n {{ 'commission.pool.common.save' | lang }} \n
    \n
    \n {{ 'commission.pool.common.backToEdit' | lang }} \n {{ 'commission.pool.common.confirm' | lang }} \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\n\nimport { UserAgreementPopupComponent } from 'src/app/views/commission/user-agreement-popup.component';\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\nimport { toISODate, fromISO } from 'src/app/utils/dateUtils';\nimport { texts } from 'src/app/views/commission/summary/pool-info.model';\nimport { deepCopy } from 'src/app/utils/copy';\n\ninterface Agent {\n id: string;\n agentName: string;\n agentCode: string;\n sellingAgent: boolean;\n sellingAgentWarning?: string;\n shareHkpc: string;\n shareCommission: string;\n saReportDate: string;\n agentCodeError?: string;\n shareHkpcError?: string;\n shareCommissionError?: string;\n saReportDateError?: string;\n saReportDateWarning?: string;\n updateDisplay?: boolean;\n}\n@Component({\n selector: 'app-agent-record-edit',\n templateUrl: './agent-record-edit.component.html',\n styleUrls: ['./agent-record-edit.component.scss'],\n})\nexport class AgentRecordEditComponent implements OnInit {\n constructor(private cdsPopup: CdsPopupService, private agentService: CommissionAgentService, private router: Router, private route: ActivatedRoute) {}\n\n commissionPoolId = '';\n currentEffectiveDate = '';\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n\n dataSource: Agent[] = [];\n originalAgents: Agent[] = [];\n\n editForm: any = {\n effectiveDate: '',\n };\n loading = false;\n isConfirm = false;\n disableSave = true;\n isErrorDisplay = false;\n warningMsg = '';\n\n doBackMethod() {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: this.commissionPoolId,\n tabType: 'agents',\n },\n });\n }\n\n update() {\n if (JSON.stringify(this.originalAgents) !== JSON.stringify(this.dataSource)) {\n this.cancelAlert().then(res => {\n if (res.agree) {\n this.isConfirm = false;\n this.disableSave = true;\n this.editForm.effectiveDate = this.currentEffectiveDate;\n }\n });\n } else {\n this.isConfirm = false;\n this.editForm.effectiveDate = this.currentEffectiveDate;\n }\n }\n\n formChange(input: any, i: number) {\n this.disableSave = true;\n this.warningMsg = '';\n const amountPattern = texts.datePattern;\n switch (input) {\n case 'item.sellingAgent':\n this.dataSource[i].sellingAgentWarning = '';\n this.originalAgents.forEach(item => {\n if (item.agentCode == this.dataSource[i].agentCode && item.sellingAgent !== this.dataSource[i].sellingAgent)\n this.dataSource[i].sellingAgentWarning = 'Selling Agent: Different with current record';\n });\n break;\n case 'item.saReportDate':\n this.dataSource[i].saReportDateError = '';\n this.dataSource[i].saReportDateWarning = '';\n if (this.dataSource[i].saReportDate && !amountPattern.test(this.dataSource[i].saReportDate)) {\n this.dataSource[i].saReportDateError = 'Invalid SA Report Rec’d Date';\n } else if (this.dataSource[i].saReportDate && !toISODate(this.dataSource[i].saReportDate)) {\n this.dataSource[i].saReportDateError = 'Invalid SA Report Rec’d Date';\n }\n if (!this.dataSource[i].saReportDateError) {\n this.originalAgents.forEach(item => {\n if (item.agentCode == this.dataSource[i].agentCode && item.saReportDate !== this.dataSource[i].saReportDate)\n this.dataSource[i].saReportDateWarning = 'SA Report Rec‘d Date: Different with current record';\n });\n }\n break;\n }\n this.formValidate();\n }\n\n formValidate() {\n if (this.dataSource.length > 0 && this.checkAgents() && JSON.stringify(this.originalAgents) !== JSON.stringify(this.dataSource)) {\n this.disableSave = false;\n } else {\n this.disableSave = true;\n }\n }\n\n checkAgents() {\n let b = true;\n for (let i = 0; i < this.dataSource.length; i++) {\n if (!this.dataSource[i].saReportDateError) {\n b = true;\n } else {\n b = false;\n break;\n }\n }\n return b;\n }\n\n reset() {\n this.cancelAlert().then(res => {\n if (res && res.agree) {\n this.disableSave = true;\n }\n });\n }\n\n cancelAlert(): Promise {\n return new Promise(resolve => {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.cancelMsg,\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.editForm.effectiveDate = '';\n this.dataSource = deepCopy(this.originalAgents);\n this.warningMsg = '';\n resolve({ agree: true });\n }\n resolve({ agree: false });\n });\n });\n }\n\n backToEdit() {\n this.isConfirm = false;\n }\n\n save() {\n if (this.disableSave) {\n return;\n }\n this.isConfirm = true;\n const l1: any[] = [];\n const l2: any[] = [];\n this.originalAgents.forEach(i => {\n this.dataSource.forEach(j => {\n if (i.agentCode == j.agentCode) {\n l1.push({ date: i.saReportDate, sellingAgent: i.sellingAgent });\n l2.push({ date: j.saReportDate, sellingAgent: j.sellingAgent });\n }\n });\n });\n if (l1.length > 0 && l2.length > 0 && JSON.stringify(l1) != JSON.stringify(l2)) {\n this.warningMsg = 'commission.pool.agents.create.saChangeWarning';\n }\n }\n\n confirm() {\n const form: any = {};\n form.commissionPoolId = this.commissionPoolId;\n const agents: any[] = [];\n this.dataSource.forEach(item => {\n const agent = {\n id: item.id,\n agentCode: item.agentCode,\n sellingAgent: item.sellingAgent,\n saReportDate: item.saReportDate ? toISODate(item.saReportDate) : '',\n };\n agents.push(agent);\n });\n form.agents = agents;\n this.loading = true;\n this.agentService.addAgent(false, form).subscribe(resp => {\n this.loading = false;\n let popData, result: number;\n if (resp && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n if (result == 0) {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: this.commissionPoolId,\n tabType: 'agents',\n },\n });\n } else {\n this.backToEdit();\n }\n }\n });\n });\n }\n\n ngOnInit(): void {\n this.commissionPoolId = this.route.snapshot.queryParams['commissionPoolId'];\n const agentDetailId = this.route.snapshot.queryParams['agentDetailId'];\n this.currentEffectiveDate = this.route.snapshot.queryParams['currentEffectiveDate'];\n console.log(this.commissionPoolId + ' ' + agentDetailId + '' + this.currentEffectiveDate);\n this.loading = true;\n this.agentService\n .getRegularItems({\n id: agentDetailId,\n commissionPoolId: this.commissionPoolId,\n })\n .subscribe(resp => {\n this.loading = false;\n if (resp && resp.result == 0 && resp.data.content) {\n const agentItems: any[] = resp.data.content;\n agentItems.forEach(item => {\n this.dataSource.push({\n id: item.id,\n agentName: item.agentName,\n agentCode: item.agentCode,\n sellingAgent: item.sellingAgent,\n sellingAgentWarning: '',\n shareHkpc: item.shareHkpc,\n shareCommission: item.shareCommission,\n saReportDate: item.saReportDate ? fromISO(item.saReportDate) : '',\n saReportDateError: '',\n saReportDateWarning: '',\n updateDisplay: true,\n });\n });\n this.originalAgents = deepCopy(this.dataSource);\n }\n });\n }\n}\n","\n\n
    \n
    \n
    \n
    \n {{ 'commission.pool.summary.commissionPoolNumber' | lang }}:    \n {{ commissionPoolId }}\n
    \n\n
    \n Update Selling Agent or SA Report Rec’d Date \n Update Selling Agent or SA Report Rec’d Date Summary \n
    \n\n \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'commission.pool.agents.create.agent' | lang }}\n \n {{ 'commission.pool.agents.create.sellingAgent' | lang }}\n \n
    \n {{ 'commission.pool.agents.create.reportDate' | lang }}\n
    \n
    \n
    \n {{ item.agentCode }}\n
    \n
    \n {{ item.agentName }}\n
    \n
    \n
    \n {{ 'commission.pool.agents.create.sellingAgent' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'commission.pool.agents.create.reportDate' | lang }}\n
    \n
    \n {{ item.saReportDate }}\n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n {{ item.sellingAgentWarning | lang }}\n \n \n \n \n \n {{ item.saReportDateWarning | lang }}\n \n \n \n {{ item.saReportDateError | lang }}\n \n
    \n
    \n \n
    \n \n \n {{ warningMsg | lang }}\n \n \n
    \n
    \n {{ 'commission.pool.common.reset' | lang }} \n {{ 'commission.pool.common.save' | lang }} \n
    \n
    \n {{ 'commission.pool.common.backToEdit' | lang }} \n {{ 'commission.pool.common.confirm' | lang }} \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { fromISO } from 'src/app/utils/dateUtils';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\nimport { RecordDetailList } from '../record-details/record-details.model';\nimport { Agent } from './agent.model';\nimport { texts, Status } from '../pool-info.model';\n\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { CommissionAgentChannelMap } from 'src/app/core/models/enum/agent-channel.enum';\nimport moment from 'moment';\n\ninterface AgentRecord {\n id: string;\n commissionPoolId?: string;\n value?: string;\n label?: string;\n millis: number;\n status?: string;\n current?: boolean;\n name?: string;\n effectiveDate?: string;\n createBy?: any;\n active?: boolean;\n lastUpdateBy?: any;\n lastUpdateName?: string;\n lastUpdateTime?: string;\n}\n\n@Component({\n selector: 'app-commission-agent',\n templateUrl: './agent.component.html',\n styleUrls: ['./agent.component.scss'],\n})\nexport class AgentComponent implements OnInit {\n constructor(private router: Router, private agentService: CommissionAgentService, private cdsPopup: CdsPopupService, private langService: CdsLangService) {}\n\n @Input() commissionPoolId = '';\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n status = Status;\n roleW = PermissionAccess.W;\n roleE = PermissionAccess.E;\n permissionN = PermissionItem.COMM_INFO_AGENT_COMP;\n permissionN2 = PermissionItem.COMM_INFO_AGENT_CHANGE;\n permissionADdjNormal = PermissionItem.COMM_ADJ_NORMAL;\n currentClickOpenIndex = -1;\n scrollLoading = false;\n scrollPage = 0;\n totalPages = 0;\n loading = false;\n\n agentRecord: AgentRecord = { id: '', millis: 0, createBy: { name: '' } };\n recordList: AgentRecord[] = [];\n agentItems: Agent[] = [];\n\n createRecord(action: string) {\n const params = {\n commissionPoolId: this.commissionPoolId,\n agentDetailId: '',\n currentEffectiveDate: '',\n };\n this.recordList.forEach(item => {\n if (item.status == this.status.CURRENT) {\n params.agentDetailId = item.id;\n params.currentEffectiveDate = fromISO(item.effectiveDate);\n }\n });\n const url = action == 'edit' ? '/commission/agent-record-edit' : '/commission/agent-record-add';\n this.router.navigate([url], {\n queryParams: params,\n });\n }\n\n toAdjustmentAmount() {\n this.router.navigate([\n '/commission/adjustment',\n {\n commissionPoolId: this.commissionPoolId,\n tabSelected: 'normalCompensation',\n },\n ]);\n }\n\n clickShowChildList = (i: number, item: any) => {\n if (this.currentClickOpenIndex === i && item) {\n this.currentClickOpenIndex = -1;\n } else {\n this.currentClickOpenIndex = i;\n }\n };\n\n deleteRecord() {\n const data = {\n title: 'commission.pool.agent.deleteTitle',\n message: 'commission.pool.agent.deleteMsg',\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n params: {\n createTime: fromISO(this.agentRecord.effectiveDate),\n createBy: this.agentRecord.createBy.name,\n },\n };\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'lg',\n data: data,\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.agentService.delete(this.agentRecord.id).subscribe(resp => {\n if (resp && resp.result == 0) this.scrollPage = 0;\n this.recordList = [];\n this.getRegularList();\n });\n }\n });\n }\n\n getRegularList() {\n if (!this.scrollLoading) {\n this.scrollLoading = true;\n this.scrollPage++;\n this.agentItems = [];\n this.loading = true;\n this.agentService.listRegular(this.commissionPoolId, this.scrollPage - 1, this.recordList).then(res => {\n this.loading = false;\n this.scrollLoading = false;\n const resp: any = res;\n if (resp) {\n this.recordList = resp.recordList;\n this.agentRecord = resp.agentRecord;\n this.totalPages = resp.totalPages;\n this.getRegularItems();\n }\n });\n }\n }\n\n getRegularItems() {\n if (!this.agentRecord.id) {\n return;\n }\n if (this.agentRecord.id && this.recordList) {\n this.recordList.forEach(item => {\n if (item.id == this.agentRecord.id) {\n this.agentRecord = deepCopy(item);\n }\n });\n }\n const params = {\n id: this.agentRecord.id,\n commissionPoolId: this.commissionPoolId,\n };\n this.agentItems = [];\n this.loading = true;\n this.agentService.getRegularItems(params).subscribe(resp => {\n this.loading = false;\n if (resp && resp.result == 0 && resp.data.content) {\n const scaleTypes: any[] = deepCopy(RecordDetailList);\n const agentItems: any[] = resp.data.content;\n agentItems.forEach(item => {\n const isBigger = moment(new Date(item.saReportDate)) > moment(new Date(1900, 1, 1));\n const agent = {\n id: item.id,\n agentCode: item.agentCode,\n agentName: item.agentName,\n commissionPoolAgentId: item.commissionPoolAgentId,\n saReportDate: isBigger ? item.saReportDate : '',\n sellingAgent: item.sellingAgent,\n shareCommission: item.shareCommission,\n shareHkpc: item.shareHkpc,\n poolJoinDate: item.poolJoinDate,\n branch: item.branch,\n type: CommissionAgentChannelMap.get(item.type),\n details: [{ toFixedTwo: true, label: '', cytd: 0, ptd: 0, calytd: 0 }],\n };\n const details: any[] = [];\n scaleTypes.forEach(type => {\n const d = {\n toFixedTwo: true,\n label: type.scaleLabel,\n cytd: '0',\n ptd: '0',\n calytd: '0',\n };\n if (d.label.indexOf('HKPC') !== -1) {\n d.toFixedTwo = false;\n }\n if (item.commissionPoolAgentAccumulations) {\n const accumulations: any[] = item.commissionPoolAgentAccumulations;\n accumulations.forEach(a => {\n if (type.scaleType == a.scaleType && a.agentAccumulationType == 'CYTD') {\n d.cytd = a.amount;\n }\n if (type.scaleType == a.scaleType && a.agentAccumulationType == 'PTD') {\n d.ptd = a.amount;\n }\n if (type.scaleType == a.scaleType && a.agentAccumulationType == 'CAL_YTD') {\n d.calytd = a.amount;\n }\n });\n }\n details.push(d);\n agent.details = details;\n });\n this.agentItems.push(agent);\n });\n }\n });\n }\n\n agentMsg =\n \"
    Agent Compensation

    \" +\n 'Release the compensation for below transaction scenario under this section:

    ' +\n \"
      Regular Contribution, Lump Sum Contributions [MPF-ER, MPF-SEP, MPF-FRC, MPF-TVC, ORSO-ER, MACAU-ER(PPS), MACAU-ER(CPF), MACAU-IVC]
    \" +\n \"
      Plan Transfer (ERMC/ERVC/EEMC/EEVC>0) [MPF-ER, ORSO-ER, MACAU-ER(PPS), MACAU-ER(CPF)]

    \" +\n 'Excluding the compensation of Individual Transfer Asset for MPF-ER(PAC), MPF-SEP, MPF-SEP(PAC), MPF-TVC, MPF-PAP, MACAU-ER(CPF),MACAU-PAP, MACAU-IVC';\n\n alertAgent() {\n this.langService.addLangEntries({\n alertAgent: {\n en: this.agentMsg,\n zh: this.agentMsg,\n },\n });\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'lg',\n data: {\n message: 'alertAgent',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n console.log('open' + popupRef);\n }\n\n backToTop() {\n if (document && document.getElementById(`top`)) {\n const top = document.getElementById(`top`);\n if (top) {\n top.scrollIntoView();\n }\n }\n }\n\n ngOnInit(): void {\n this.getRegularList();\n }\n}\n","
    \n
    \n \n {{ 'commission.pool.agent.title' | lang }}\n \n \n
    \n
    \n \n
    \n Change Request  \n \n
    \n
    \n \n
    \n Commission Agent Change\n
    \n
    Update Selling Agent or SA Report Rec’d Date
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n \n \n \n {{ agentRecord.effectiveDate | ssmsDate }}, {{ 'commission.pool.common.createBy' | lang }}  {{ agentRecord.createBy.name }}  \n \n \n
    \n \n {{ item.effectiveDate | ssmsDate }}, {{ 'commission.pool.common.createBy' | lang }}  {{ item.createBy.name }}     \n \n Current effective Agent \n \n Deleted on {{ item.lastUpdateTime | ssmsDate }}, by\n {{ item.lastUpdateName }}\n \n
    \n \n \n \n
    \n
    Agent Effective Date (DD/MM/YYYY)
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n {{ 'commission.pool.agent.deleteRecord' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n {{ item.agentCode }}\n     \n {{ item.agentName }}\n
    \n {{ 'commission.pool.agent.poolJoinDate' | lang }}  {{ item.poolJoinDate | ssmsDate }}\n
    \n
    \n
    \n \n
    \n Make commission adjustment\n
    \n
    \n
    \n
    \n
    \n
    {{ 'commission.pool.agent.shareHKPC' | lang }}
    \n {{ item.shareHkpc || 0 | mynumber : 3 }} % \n
    \n
    \n
    {{ 'commission.pool.agent.shareCommission' | lang }}
    \n {{ item.shareCommission || 0 | mynumber : 3 }} %\n
    \n
    \n
    \n\n
    \n
    \n
    {{ 'commission.pool.agent.branch' | lang }}
    \n {{ item.branch }}\n
    \n
    \n
    {{ 'commission.pool.agent.sellingAgent' | lang }}
    \n \n
    \n
    \n
    {{ 'commission.pool.agent.type' | lang }}
    \n {{ item.type }}\n
    \n
    \n
    {{ 'commission.pool.agent.saReportDate' | lang }}
    \n {{ item.saReportDate | ssmsDate }}\n
    \n
    \n\n \n
    \n
    \n {{ 'commission.pool.agent.agentAdjustment' | lang }}\n     \n
    \n
    \n
    \n
    \n
    \n CYTD

    \n \n \n \n \n \n \n \n \n
    {{ detail.label }} CYTD{{ detail.cytd || 0 | mynumber }}{{ detail.cytd || 0 | mynumber : 2 }}
    \n
    \n
    \n PTD

    \n \n \n \n \n \n \n \n \n
    {{ detail.label }} PTD{{ detail.ptd || 0 | mynumber }}{{ detail.ptd || 0 | mynumber : 2 }}
    \n
    \n
    \n CAL YTD

    \n \n \n \n \n \n \n \n \n
    {{ detail.label }} CAL YTD{{ detail.calytd || 0 | mynumber }}{{ detail.calytd || 0 | mynumber : 2 }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'Back to Top' | lang }} \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CDS_SIZE } from '@cds/ng-core/configuration';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { IndividualTransferService } from 'src/app/core/services/commission/commission-individual-transfer.service';\nimport { CommissionPoolScaleService } from 'src/app/core/services/commission/commission-pool-scale.service';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\nimport { str2Obj } from 'src/app/utils/utils';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { BLANK, COMM_FLAGS, PENDING_TRANSACTION_COLUMNS } from 'src/app/views/commission/adjustment/appeal-case/appeal-case.config';\nimport { CommissionAppealCaseService } from 'src/app/core/services/commission/commission-appeal-case.service';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport moment from 'moment';\nimport Big from 'big.js';\nimport { AccountTypes } from 'src/app/core/models/enum/account-type.enum';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\n\n@Component({\n selector: 'app-individual-transfer',\n templateUrl: './individual-transfer.component.html',\n styleUrls: ['./individual-transfer.component.scss'],\n})\nexport class IndividualTransferComponent implements OnInit {\n @Input() commissionPoolId = '';\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n\n PAGE_SIZE = 10;\n errors: any;\n isSearchloading = false;\n previousSearchParams: any;\n pageConfig: PageConfig = {};\n columnsConfig: Array = PENDING_TRANSACTION_COLUMNS;\n dataDisplayed: Array = [];\n\n agents: any[] = [];\n a1 = '0';\n a2 = '0';\n a3 = '0';\n a4 = '0';\n a5 = '0';\n\n constructor(\n private commissionAppealCaseService: CommissionAppealCaseService,\n private individualService: IndividualTransferService,\n private poolScaleService: CommissionPoolScaleService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private router: Router\n ) {}\n\n ngOnInit() {\n Promise.all([\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.COMM_INFO_INDIVIDUAL_TRF),\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.COMM_ADJ_APPEAL),\n ]).then(hasPermission => {\n const noPermission = hasPermission.includes(false);\n if (noPermission) {\n this.columnsConfig = PENDING_TRANSACTION_COLUMNS.slice(1);\n }\n });\n this.getPoolAccumulations();\n\n this.individualService.getAgent(this.commissionPoolId).subscribe(resp => {\n if (resp && resp.result == 0 && resp.data) {\n this.agents = resp.data;\n this.agents.forEach(item => {\n if (item.agentAccumulations) {\n const agentAccumulations: any[] = item.agentAccumulations;\n if (agentAccumulations && agentAccumulations.length > 0) {\n agentAccumulations.forEach(a => {\n if (a.scaleType == 'IND_FS_PC') {\n if (a.agentAccumulationType == 'CYTD') item.fsPcCytd = a.amount;\n if (a.agentAccumulationType == 'PTD') item.fsPcPtd = a.amount;\n if (a.agentAccumulationType == 'CAL_YTD') item.fsPcCal = a.amount;\n }\n if (a.scaleType == 'IND_TRF_SP_PC') {\n if (a.agentAccumulationType == 'CYTD') item.trfSpPcCytd = a.amount;\n if (a.agentAccumulationType == 'PTD') item.trfSpPcPtd = a.amount;\n if (a.agentAccumulationType == 'CAL_YTD') item.trfSpPcCal = a.amount;\n }\n if (a.scaleType == 'IND_TRF_SP') {\n if (a.agentAccumulationType == 'CYTD') item.trfSpCytd = a.amount;\n if (a.agentAccumulationType == 'PTD') item.trfSpPtd = a.amount;\n if (a.agentAccumulationType == 'CAL_YTD') item.trfSpCal = a.amount;\n }\n });\n }\n }\n });\n }\n });\n this.search({});\n }\n\n makeAppeal(row: any) {\n this.router.navigate([\n '/commission/adjustment',\n {\n commissionPoolId: row.commissionPoolId || this.commissionPoolId,\n referenceNo: row.referenceNo,\n tabSelected: 'appealCase',\n agentCode: row.agentCode,\n },\n ]);\n }\n\n search(params: any) {\n if (this.isSearchloading) {\n return;\n }\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: this.PAGE_SIZE,\n current: 1,\n };\n const apiParams = { ...params, page: 0, size: this.PAGE_SIZE };\n if (this.commissionPoolId) {\n apiParams.commissionPoolId = this.commissionPoolId;\n }\n if (apiParams.receivedDateFrom) {\n apiParams.receivedDateFrom = moment(apiParams.receivedDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (apiParams.receivedDateTo) {\n apiParams.receivedDateTo = moment(apiParams.receivedDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n this.getPendingTransationData(apiParams);\n }\n\n getPendingTransationData(params: any) {\n this.isSearchloading = true;\n this.commissionAppealCaseService\n .getPendingTransationData(params)\n .pipe(\n finalize(() => {\n this.isSearchloading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.initTableData(res.data);\n this.errors = null;\n } else {\n this.initTableData({\n totalElements: 0,\n content: [],\n });\n this.errors = JSON.parse(res.message);\n }\n });\n }\n\n initTableData(data: any) {\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements || 0,\n };\n const tempData = data.content || [];\n const dataDisplayed: Array = [];\n tempData.forEach((item: any) => {\n item.commFlagLabel = item.commFlag && item.commFlag !== BLANK ? COMM_FLAGS[item.commFlag as unknown as keyof typeof COMM_FLAGS] : BLANK;\n if (item.receivedDate) {\n item.receivedDate = item.receivedDate ? moment(new Date(item.receivedDate)).format('DD/MM/YYYY') : '/';\n }\n if (item.appealDate) {\n item.appealDate = item.appealDate ? moment(new Date(item.appealDate)).format('DD/MM/YYYY') : '/';\n }\n if (item.cancelledOrRejectedDate) {\n item.cancelledOrRejectedDate = item.cancelledOrRejectedDate ? moment(new Date(item.cancelledOrRejectedDate)).format('DD/MM/YYYY') : '/';\n }\n item.isEditable = !item.cancelledOrRejectedDate;\n item.accountType = AccountTypes.find(list => list.value === item.accountType)?.label || item.accountType;\n item.details.forEach((detail: any) => {\n dataDisplayed.push({\n ...item,\n ...detail,\n });\n });\n });\n this.dataDisplayed = dataDisplayed;\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n let params = { ...this.pageConfig, size: this.PAGE_SIZE, page: (this.pageConfig?.current || 1) - 1 };\n if (this.previousSearchParams) {\n params = { ...this.previousSearchParams, ...params };\n }\n this.getPendingTransationData(params);\n }\n }\n\n toAdjustmentAmount() {\n this.router.navigate([\n '/commission/adjustment',\n {\n commissionPoolId: this.commissionPoolId,\n tabSelected: 'individualTransfer',\n },\n ]);\n }\n\n getPoolAccumulations() {\n this.poolScaleService\n .getPoolAccumulations({\n commissionPoolId: this.commissionPoolId,\n regular: false,\n })\n .subscribe(res => {\n const resp = str2Obj(res.body, ['amount']);\n if (resp && resp.result == 0 && resp.data[0] && resp.data[0].commissionPoolScaleAccumulations) {\n const accumulations: any[] = resp.data[0].commissionPoolScaleAccumulations;\n accumulations.forEach(item => {\n const accumulation = item;\n item.amount = new Big(item.amount).round(2, Big.roundDown).toFixed(2);\n if (accumulation && accumulation.scaleType == 'IND_TRF_SP_PC' && accumulation.scaleAccumulationType == 'RELEASED_CYTD') {\n this.a1 = new Big(item.amount).toFixed(0);\n }\n if (accumulation && accumulation.scaleType == 'IND_TRF_SP_PC' && accumulation.scaleAccumulationType == 'PREMIUM_CYTD') {\n this.a2 = item.amount;\n }\n if (accumulation && accumulation.scaleType == 'IND_TRF_SP_PC' && accumulation.scaleAccumulationType == 'PREMIUM_PTD') {\n this.a3 = item.amount;\n }\n if (accumulation && accumulation.scaleType == 'IND_TRF_SP' && accumulation.scaleAccumulationType == 'PREMIUM_CYTD') {\n this.a4 = item.amount;\n }\n if (accumulation && accumulation.scaleType == 'IND_TRF_SP' && accumulation.scaleAccumulationType == 'PREMIUM_PTD') {\n this.a5 = item.amount;\n }\n });\n }\n });\n }\n\n alertAccountCodeInfo() {\n const msg = this.langService.translate('commission.accountCode.futherInfo.tableArea');\n this.openPop(msg);\n }\n\n alertIndividual() {\n const msg = this.langService.translate('commission.individualTransfer.transferAgentAlert');\n this.openPop(msg);\n }\n\n alertPendingTransaction() {\n const msg = this.langService.translate('commission.individualTransfer.pendingTransactionAlert');\n this.openPop(msg);\n }\n\n openPop(msg: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: CDS_SIZE['SMALL'],\n data: {\n message: msg,\n continue: 'common.gotIt',\n type: 'alert',\n actionRight: true,\n },\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n backTop() {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","
    \n {{ 'commission.individualTransfer.title' | lang }}\n
    \n\n
    \n
    \n \n {{ 'commission.individualTransfer.transaction' | lang }}\n \n
    \n
    \n
    TRF SP HKPC
    \n
    \n
    \n
    HKPC Released CYTD
    \n
    {{ a1 || 0 | mynumber }}
    \n
    \n
    \n
    Prem CYTD
    \n
    {{ a2 || 0 | mynumber : 2 }}
    \n
    \n
    \n
    Prem PTD
    \n
    {{ a3 || 0 | mynumber : 2 }}
    \n
    \n
    \n
    \n
    \n
    TRF SP Comm
    \n
    \n
    \n
    Prem CYTD
    \n
    {{ a4 || 0 | mynumber : 2 }}
    \n
    \n
    \n
    Prem PTD
    \n
    {{ a5 || 0 | mynumber : 2 }}
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n {{ 'commission.individualTransfer.transferAgent' | lang }}\n \n \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ agent.agentCode }}\n {{ agent.agentName }}\n
    \n
    \n Pool Join Date: {{ agent.poolJoinDate | ssmsDate }}\n
    \n \n \n Make commission adjustment\n
    \n
    \n
    \n\n
    \n
    \n
    \n Branch\n
    {{ agent.branch }}
    \n
    \n
    \n Type\n
    {{ agent.type }}
    \n
    \n
    \n
    \n\n
    \n
    \n Agent Compensation\n
    \n
    \n
    \n
    \n
    CYTD
    \n
    \n
    \n
    FS HKPC CYTD
    \n
    {{ agent.fsPcCytd || 0 | mynumber }}
    \n
    \n
    \n
    TRF SP HKPC CYTD
    \n
    {{ agent.trfSpPcCytd || 0 | mynumber }}
    \n
    \n
    \n
    TRF SP Comm CYTD
    \n
    {{ agent.trfSpCytd || 0 | mynumber : 2 }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    PTD
    \n
    \n
    \n
    FS HKPC PTD
    \n
    {{ agent.fsPcPtd || 0 | mynumber }}
    \n
    \n
    \n
    TRF SP HKPC PTD
    \n
    {{ agent.trfSpPcPtd || 0 | mynumber }}
    \n
    \n
    \n
    TRF SP Comm PTD
    \n
    {{ agent.trfSpPtd || 0 | mynumber : 2 }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    CAL YTD
    \n
    \n
    \n
    FS HKPC Cal YTD
    \n
    {{ agent.fsPcCal || 0 | mynumber }}
    \n
    \n
    \n
    TRF SP HKPC Cal YTD
    \n
    {{ agent.trfSpPcCal || 0 | mynumber }}
    \n
    \n
    \n
    TRF SP Comm Cal YTD
    \n
    {{ agent.trfSpCal || 0 | mynumber : 2 }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n {{ 'commission.individualTransfer.pendingTransaction.title' | lang }}\n \n \n
    \n \n\n \n \n
    {{ element.title | lang }}
    \n
    \n
    \n \n \n \n \n \n {{ element['referenceNo'] }}\n \n \n \n \n {{ element['accountType'] }}\n \n \n \n \n {{ element['commFlagLabel'] }}\n \n \n \n {{ element['sharingPC'] | mynumber : '3' }}% \n \n \n {{ element['sharingComm'] | mynumber : '3' }}% \n \n \n
    \n\n
    \n {{ 'common.backToTop' | lang }}\n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { finalize, forkJoin, Subscription } from 'rxjs';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { UserAgreementPopupComponent } from '../user-agreement-popup.component';\n\nimport { deepCopy } from 'src/app/utils/copy';\nimport { toISODate, fromISOMonthYear, diffMonths, getMonthFirstByMonthYear, getMonthLastByMonthYear, getMonthLastByNow } from 'src/app/utils/dateUtils';\nimport { CommissionPoolService } from 'src/app/core/services/commission/commission-pool.service';\nimport { CommissionPoolScaleService } from 'src/app/core/services/commission/commission-pool-scale.service';\nimport { CommissionRelatedPartiesService } from 'src/app/core/services/commission/commission-related-parties.service';\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\n\nimport { CommissionCommonService } from 'src/app/core/services/commission/commission-common.service';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { PermissionItem, PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { COMMISSION_POOL_TAB, RELEATE_PAYTY_RELEASE_TAG, texts } from './pool-info.model';\nimport { AccumulationType } from 'src/app/core/models/enum/accumulation-type.enum';\nimport { str2Obj } from 'src/app/utils/utils';\nimport Big from 'big.js';\nimport { AccountType, CommissionPoolStatus } from 'src/app/core/models/enum';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-commission-pool-info',\n templateUrl: './pool-info.component.html',\n styleUrls: ['./pool-info.component.scss'],\n})\nexport class CommissionPoolInfoComponent implements OnInit, OnDestroy {\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n\n tab = COMMISSION_POOL_TAB;\n\n role = PermissionAccess.W;\n permission = PermissionItem.COMM_INFO_MAIN_COMM_SUMMARY;\n\n subscription: Subscription;\n subscription2: Subscription;\n subscription3: Subscription;\n\n commissionPoolId = '';\n\n constructor(\n private cdsPopup: CdsPopupService,\n private router: Router,\n private route: ActivatedRoute,\n private poolService: CommissionPoolService,\n private poolScaleService: CommissionPoolScaleService,\n private relatedPartiesService: CommissionRelatedPartiesService,\n private commonService: CommissionCommonService,\n private agentService: CommissionAgentService\n ) {\n this.subscription = commonService.relatedParties$.subscribe(() => {\n this.getPoolInfo();\n });\n this.subscription2 = commonService.scale$.subscribe(() => {\n this.getPoolInfo();\n });\n this.subscription3 = commonService.applySummary$.subscribe(() => {\n this.commonService.announceSummary(this.summary);\n });\n }\n\n ngOnInit(): void {\n const tabType = this.route.snapshot.queryParams['tabType'];\n this.commissionPoolId = this.route.snapshot.queryParams['commissionPoolId'];\n if (tabType) {\n this.tabClick({ value: tabType });\n }\n if (!this.commissionPoolId) {\n this.backLanding();\n }\n this.getPoolInfo();\n }\n\n getPoolInfo() {\n this.editStatus = false;\n this.poolService.getById(this.commissionPoolId).subscribe(resp => {\n if (resp && resp.data && resp.result == 0) {\n this.summary = resp.data;\n this.commonService.announceSummary(this.summary);\n const firstContributionMonth = moment(this.summary.firstContributionMonth, 'YYYY-MM-DD').add(12, 'months').add(30, 'days');\n const monthsDays = moment().diff(firstContributionMonth, 'days');\n if (monthsDays > 0) {\n this.isNextYearCommStartDisable = false;\n }\n }\n this.loading = false;\n });\n }\n\n editStatus = false;\n saveDisabled = true;\n loading = true;\n disableInput = false;\n isConfirm = false;\n fcMonthDisabledEditScenario = [AccountType.MPF_FRC, AccountType.MPF_PAP, AccountType.MACAU_PAP];\n relatedParties: any[] = [];\n mainParty: any;\n fcMonthChange = false;\n fcMonthError = '';\n isReleased = false;\n fcMonthAcctTyError = false;\n // fcMonthNotEdit = '';\n fcMonthWarning = '';\n frozenError = '';\n wmBonusError = '';\n isNextYearCommStartDisable = true;\n nextCommYearStartError = '';\n\n summary = {\n id: '',\n commencementDate: '',\n firstContributionMonth: '',\n nextCommYearStart: '',\n caseCount: '',\n frozen: true,\n waiveMonthlyBonus: true,\n oneStPc: '',\n reconHitDate: '',\n mainParty: '',\n subscriptionFee: '',\n };\n summaryForm: any = {};\n\n edit() {\n this.summaryForm = deepCopy(this.summary);\n this.summaryForm.firstContributionMonth = fromISOMonthYear(this.summaryForm.firstContributionMonth);\n this.summaryForm.nextCommYearStart = fromISOMonthYear(this.summaryForm.nextCommYearStart);\n this.fcMonthError = '';\n this.isReleased = false;\n this.fcMonthAcctTyError = false;\n // this.fcMonthNotEdit = '';\n this.nextCommYearStartError = '';\n this.frozenError = '';\n this.wmBonusError = '';\n this.disableInput = false;\n this.editStatus = true;\n this.isConfirm = false;\n this.saveDisabled = true;\n this.initFormStatus();\n // this.poolScaleService.getScaleRecordCurrentInfo(this.commissionPoolId).subscribe(res => {\n // this.loading = false;\n // if (res) {\n // const resp = str2Obj(res.body, ['amount']);\n // if (resp && resp.result == 0 && resp.data && resp.data.commissionPoolScaleAccumulations) {\n // const accumulations: any[] = resp.data.commissionPoolScaleAccumulations;\n // accumulations.forEach(accumulation => {\n // if (accumulation) {\n // const type = accumulation.scaleAccumulationType;\n // const amount = new Big(accumulation.amount);\n // const zero = new Big(0);\n // if (type == AccumulationType.PREMIUM_PTD && !amount.eq(zero)) {\n // this.disableInput = true;\n // // this.fcMonthNotEdit = texts.notEditReleased;\n // }\n // }\n // });\n // }\n // }\n // if (!this.disableInput) {\n // this.loading = true;\n // this.relatedPartiesService.typesValidate(this.commissionPoolId, 'fcMonthNotEdit').then(res => {\n // this.loading = false;\n // this.editStatus = true;\n // if (!res.validate) {\n // this.disableInput = true;\n // // this.fcMonthNotEdit = res.msg;\n // }\n // if(res.validate && res.relatedParties) {\n // res.relatedParties.forEach((item:any) =>{\n // if(item.mainParty && !item.firstContributionDate && item.sysAdjustmentDate !== '9999-12-31') {\n // this.fcMonthWarning = texts.fcMonthWaring;\n // }\n // });\n // }\n // });\n // }\n // });\n }\n\n initFormStatus() {\n this.loading = true;\n const arr = [];\n arr.push(this.poolScaleService.getScaleRecordCurrentInfo(this.commissionPoolId));\n arr.push(this.relatedPartiesService.list({ commissionPoolId: this.commissionPoolId }));\n forkJoin(arr)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe((res: Array) => {\n const scaleRecordInfo = str2Obj(res[0].body, ['amount']);\n this.scaleValidator(scaleRecordInfo);\n const relatedPartiesInfo = str2Obj(res[1].body, ['contAdjPend']);\n this.relatedPartiesValidator(relatedPartiesInfo);\n });\n }\n\n scaleValidator(scaleRecordRes: any) {\n if (scaleRecordRes && scaleRecordRes.result == 0 && scaleRecordRes.data && scaleRecordRes.data.commissionPoolScaleAccumulations) {\n const accumulations: any[] = scaleRecordRes.data.commissionPoolScaleAccumulations;\n accumulations.forEach(accumulation => {\n if (accumulation) {\n const type = accumulation.scaleAccumulationType;\n const amount = new Big(accumulation.amount);\n const zero = new Big(0);\n if (type == AccumulationType.PREMIUM_PTD && !amount.eq(zero)) {\n this.isReleased = true;\n }\n }\n });\n }\n }\n\n relatedPartiesValidator(relatedPartiesRes: any) {\n if (relatedPartiesRes && relatedPartiesRes.result == 0 && relatedPartiesRes.data && relatedPartiesRes.data.content) {\n const content: any[] = relatedPartiesRes.data.content;\n const convert = this.relatedPartiesService.convertList(content, null);\n this.relatedParties = convert.list.filter((item: any) => item.active);\n this.mainParty = this.relatedParties.find(item => item.mainParty);\n const hasApeDependAccountRelatedParty = this.relatedParties.find(i => !i.mainParty && i.apeDependAccount);\n this.relatedParties.forEach((item: any) => {\n if (this.fcMonthDisabledEditScenario.indexOf(item.accountType) !== -1) {\n this.fcMonthAcctTyError = true;\n // this.disableInput = true;\n }\n\n if (\n !item.mainParty &&\n ((!this.mainParty.firstContributionDate && this.mainParty.sysAdjustmentDate !== RELEATE_PAYTY_RELEASE_TAG) ||\n (hasApeDependAccountRelatedParty && item.sysAdjustmentDate !== RELEATE_PAYTY_RELEASE_TAG))\n ) {\n this.fcMonthWarning = texts.fcMonthWaring;\n }\n if (item.mainParty && item.commencementDate) {\n const now = moment().format('MM/YYYY');\n const commencementDate = moment(item.commencementDate, 'YYYY-MM-DD').format('MM/YYYY');\n const monthsDiff = moment(now, 'MM/YYYY').diff(moment(commencementDate, 'MM/YYYY'), 'months');\n if (monthsDiff > 6) {\n this.disableInput = true;\n }\n }\n });\n }\n }\n\n monthYearReg = /(^(1)[0-2]{1}\\/(20)(\\d){2})|(^(0)[1-9]{1}\\/(20)(\\d){2})$/;\n // input(event: any) {\n // this.fcMonthError = '';\n // const obj = document.getElementById('firstContributionMonth');\n // if (obj) {\n // const value = event.target.value.match(\n // /(^(1)[0-2]{1}\\/(20)(\\d){1,2})|(^(0)[1-9]{1}\\/(20)(\\d){1,2})|(^(1)[0-2]{1}\\/(2)?(0)?)|(^(0)[1-9]{1}\\/(2)?(0)?)|(^(0)[1-9]{1})|(^(1)[0-2]{1})|(^[0-1]{1})/g\n // );\n // obj.value = value ? value : '';\n // this.summaryForm.firstContributionMonth = String(obj.value);\n // const pos = event.target.selectionEnd;\n // event.target.setSelectionRange(pos, pos);\n // if (this.monthYearReg.test(value)) {\n // this.change('fcMonth');\n // } else {\n // this.saveDisabled = true;\n // }\n // }\n // }\n\n monthYearInput(event: any, key: string) {\n const obj = document.getElementById(key);\n if (obj) {\n const value = event.target.value.match(\n /(^(1)[0-2]{1}\\/(20)(\\d){1,2})|(^(0)[1-9]{1}\\/(20)(\\d){1,2})|(^(1)[0-2]{1}\\/(2)?(0)?)|(^(0)[1-9]{1}\\/(2)?(0)?)|(^(0)[1-9]{1})|(^(1)[0-2]{1})|(^[0-1]{1})/g\n );\n obj.value = value ? value : '';\n if (key === 'firstContributionMonth') {\n this.summaryForm.firstContributionMonth = String(obj.value);\n } else if (key === 'nextCommYearStart') {\n this.summaryForm.nextCommYearStart = String(obj.value);\n }\n const pos = event.target.selectionEnd;\n event.target.setSelectionRange(pos, pos);\n if (obj.value) {\n this.change(key);\n }\n }\n }\n\n change(field?: string) {\n const originalValue = fromISOMonthYear(this.summary.firstContributionMonth);\n const originalNextCommYearStart = fromISOMonthYear(this.summary.nextCommYearStart);\n switch (field) {\n case 'firstContributionMonth':\n this.fcMonthError = '';\n if (\n this.summaryForm.firstContributionMonth &&\n this.monthYearReg.test(this.summaryForm.firstContributionMonth) &&\n originalValue !== this.summaryForm.firstContributionMonth\n ) {\n // const now = moment().format('MM/YYYY');\n const commencementDate = moment(this.summaryForm.commencementDate, 'YYYY-MM-DD').format('MM/YYYY');\n // const originalFcMonth = moment(this.summary.firstContributionMonth, 'YYYY-MM-DD').format('MM/YYYY');\n const laterSixMonth = moment(this.summaryForm.firstContributionMonth, 'MM/YYYY').diff(moment(commencementDate, 'MM/YYYY'), 'months');\n // const laterSixMonth = diffMonths(this.summaryForm.commencementDate, getMonthLastByMonthYear(this.summaryForm.firstContributionMonth));\n const backSystemMonth = diffMonths(getMonthLastByNow(), getMonthLastByMonthYear(this.summaryForm.firstContributionMonth));\n const backFirstContributionMonth = diffMonths(this.summary.firstContributionMonth, getMonthLastByMonthYear(this.summaryForm.firstContributionMonth));\n if (this.fcMonthAcctTyError) {\n this.fcMonthError = texts.fcMonthAccountTypeError;\n } else if (this.isReleased) {\n this.fcMonthError = texts.notEditReleased;\n } else if (backFirstContributionMonth && (backFirstContributionMonth.months < 0 || backFirstContributionMonth.days < 0)) {\n this.fcMonthError = texts.notEditBackDay;\n } else if (laterSixMonth > 6) {\n this.fcMonthError = texts.fcMonthLaterSix;\n } else if (laterSixMonth < 0) {\n this.fcMonthError = texts.notEditBackDay;\n } else if (backSystemMonth && backSystemMonth.months < 0) {\n this.fcMonthError = texts.notEditBackDay;\n }\n }\n break;\n case 'nextCommYearStart':\n this.nextCommYearStartError = '';\n if (\n this.summaryForm.nextCommYearStart &&\n this.monthYearReg.test(this.summaryForm.nextCommYearStart) &&\n originalNextCommYearStart !== this.summaryForm.nextCommYearStart\n ) {\n const now = moment().format('MM/YYYY');\n const monthsDiff = moment(now, 'MM/YYYY').diff(moment(this.summaryForm.nextCommYearStart, 'MM/YYYY'), 'months');\n if (monthsDiff >= 0) {\n this.nextCommYearStartError = texts.nextCommYearBackDay;\n } else if (monthsDiff < -18) {\n this.nextCommYearStartError = texts.nextCommYearLater;\n }\n }\n break;\n case 'frozen':\n this.frozenError = '';\n if (this.summaryForm.frozen) {\n this.loading = true;\n this.relatedPartiesService.typesValidate(this.commissionPoolId, 'frozen').then(res => {\n this.loading = false;\n if (!res.validate) {\n this.frozenError = res.msg;\n }\n this.changeDisable();\n });\n }\n break;\n case 'wmBonus':\n this.wmBonusError = '';\n if (this.summaryForm.waiveMonthlyBonus) {\n this.loading = true;\n this.relatedPartiesService.typesValidate(this.commissionPoolId, 'wmBonus').then(res => {\n if (!res.validate) {\n this.loading = false;\n this.wmBonusError = res.msg;\n this.changeDisable();\n } else {\n this.agentBroker();\n }\n });\n }\n break;\n }\n this.changeDisable();\n }\n\n agentBroker() {\n this.agentService.listRegular(this.commissionPoolId).then(res => {\n const resp: any = res;\n const wmBonusError = 'Claw Back / Waive Bonus is Y, but commission agent isn’t Broker/IA Broker channel';\n if (resp && resp.recordList) {\n const recordList: any[] = resp.recordList;\n if (recordList.length) {\n let isAllPrevious = true;\n recordList.forEach(item => {\n if (item.status == CommissionPoolStatus.CURRENT || item.status == CommissionPoolStatus.FUTURE) {\n isAllPrevious = false;\n const param = {\n id: item.id,\n commissionPoolId: this.commissionPoolId,\n };\n this.agentService.getRegularItems(param).subscribe(res2 => {\n this.loading = false;\n if (res2 && res2.result == 0 && res2.data.content) {\n const agentItems: any[] = res2.data.content;\n agentItems.forEach(agent => {\n if (agent.type != AgentChannel.BROKER && agent.type != AgentChannel.IA_BROKER) {\n this.wmBonusError = wmBonusError;\n }\n });\n }\n this.changeDisable();\n });\n }\n });\n if (isAllPrevious) {\n this.loading = false;\n this.wmBonusError = wmBonusError;\n }\n } else {\n this.loading = false;\n this.wmBonusError = wmBonusError;\n }\n }\n });\n }\n\n changeDisable() {\n const summary = deepCopy(this.summary);\n summary.firstContributionMonth = fromISOMonthYear(this.summary.firstContributionMonth);\n summary.nextCommYearStart = fromISOMonthYear(this.summary.nextCommYearStart);\n this.fcMonthChange = summary.firstContributionMonth !== this.summaryForm.firstContributionMonth;\n if (\n this.monthYearReg.test(this.summaryForm.firstContributionMonth) &&\n this.monthYearReg.test(this.summaryForm.nextCommYearStart) &&\n !this.nextCommYearStartError &&\n !this.fcMonthError &&\n !this.frozenError &&\n !this.wmBonusError &&\n JSON.stringify(summary) != JSON.stringify(this.summaryForm)\n ) {\n this.saveDisabled = false;\n } else {\n this.saveDisabled = true;\n }\n }\n\n cancelEdit() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.cancelMsg,\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.summaryForm = deepCopy(this.summary);\n this.summaryForm.firstContributionMonth = fromISOMonthYear(this.summaryForm.firstContributionMonth);\n this.editStatus = false;\n this.disableInput = false;\n this.fcMonthError = '';\n }\n });\n }\n\n reset() {\n this.summaryForm = deepCopy(this.summary);\n this.summaryForm.firstContributionMonth = fromISOMonthYear(this.summaryForm.firstContributionMonth);\n this.summaryForm.nextCommYearStart = fromISOMonthYear(this.summaryForm.nextCommYearStart);\n this.fcMonthError = '';\n this.frozenError = '';\n this.wmBonusError = '';\n this.change();\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n this.summaryForm.firstContributionMonth = toISODate(getMonthFirstByMonthYear(this.summaryForm.firstContributionMonth));\n this.summaryForm.nextCommYearStart = toISODate(getMonthFirstByMonthYear(this.summaryForm.nextCommYearStart));\n this.isConfirm = true;\n }\n\n backToEdit() {\n this.summaryForm.firstContributionMonth = fromISOMonthYear(this.summaryForm.firstContributionMonth);\n this.summaryForm.nextCommYearStart = fromISOMonthYear(this.summaryForm.nextCommYearStart);\n this.editStatus = true;\n this.isConfirm = false;\n this.change();\n }\n\n confirm() {\n this.loading = true;\n const params: any = {\n frozen: this.summaryForm.frozen,\n waiveMonthlyBonus: this.summaryForm.waiveMonthlyBonus,\n };\n if (this.summaryForm.firstContributionMonth != this.summary.firstContributionMonth) {\n params.firstContributionMonth = this.summaryForm.firstContributionMonth;\n }\n if (this.summaryForm.nextCommYearStart != this.summary.nextCommYearStart) {\n params.nextCommYearStart = this.summaryForm.nextCommYearStart;\n }\n this.poolService.saveOrUpdate(this.summaryForm.id, params).subscribe(resp => {\n this.loading = false;\n let popData, result: number;\n if (resp && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (result == 0) {\n this.editStatus = false;\n this.getPoolInfo();\n }\n }\n });\n });\n }\n\n tabClick(i: any) {\n this.tab.forEach(j => {\n const item: any = j;\n if (item.value == i.value) {\n item.selected = true;\n } else {\n item.selected = false;\n }\n });\n }\n\n backLanding() {\n this.router.navigate(['/commission/pool-list']);\n }\n\n ngOnDestroy() {\n // prevent memory leak when component destroyed\n this.subscription.unsubscribe();\n this.subscription2.unsubscribe();\n this.subscription3.unsubscribe();\n }\n}\n","\n\n
    \n
    \n
    \n
    \n {{ 'commission.pool.summary.commissionPoolNumber' | lang }}:\n {{ summary.id }}\n ({{ 'commission.pool.related.list.th.mainParty' | lang }}:{{ summary.mainParty }})\n
    \n
    \n
    {{ 'commission.pool.summary.commissionSummary' | lang }}
    \n
    \n
    \n \n
    \n {{ 'commission.pool.common.edit' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.common.cancelEdit' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ summary.firstContributionMonth | ssmsDate : 'MM/yyyy' }}\n
    \n
    \n
    {{ summaryForm.firstContributionMonth | ssmsDate : 'MM/yyyy' }}
    \n \n {{ fcMonthWarning | lang }}\n \n
    \n
    \n \n \n {{ fcMonthError | lang }}\n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n {{ summary.nextCommYearStart | ssmsDate : 'MM/yyyy' }}\n
    \n
    \n
    {{ summaryForm.nextCommYearStart | ssmsDate : 'MM/yyyy' }}
    \n
    \n
    \n \n \n {{ nextCommYearStartError | lang }}\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n {{ summary.reconHitDate | ssmsDate }}\n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {{ frozenError | lang }}\n \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {{ wmBonusError | lang }}\n \n
    \n\n
    \n
    \n \n
    \n
    \n {{ summary.subscriptionFee }}\n
    \n
    \n\n
    \n {{ 'commission.pool.common.reset' | lang }} \n {{ 'commission.pool.common.save' | lang }} \n
    \n
    \n {{ 'commission.pool.common.backToEdit' | lang }} \n {{ 'commission.pool.common.confirm' | lang }} \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ item.label | lang }}\n
    \n
    \n
    \n\n
    \n \n \n \n \n
    \n
    \n
    \n","export const texts = {\n datePattern: /^(([0-3]{1})?[0-9]{1}\\/([0-1]{1})?[0-9]{1}\\/[0-9]{4})$/,\n amountPattern: /^(([0-9]|([1-9][0-9]{1,23}))(.[0-9]{1,3})?)$/,\n cancelMsg: 'commission.pool.common.cancelMsg',\n cancel: 'commission.pool.common.cancel',\n continue: 'commission.pool.common.continue',\n yes: 'commission.pool.common.yes',\n no: 'commission.pool.common.no',\n alertSuccessMsg: 'commission.pool.common.alertSuccessMsg',\n alertSuccessContinue: 'commission.pool.common.alertSuccessContinue',\n alertFailedMsg: 'commission.pool.common.alertFailedMsg',\n alertFailedContinue: 'commission.pool.common.alertFailedContinue',\n inputDateFormat: 'commission.pool.common.inputDateFormat',\n monthYearFormat: 'commission.pool.common.monthYearFormat',\n inputAmountFormat: 'commission.pool.common.inputAmountFormat',\n\n effectiveDateError: 'commission.pool.summary.effectiveDateError',\n notEditReleased: 'commission.pool.summary.notEditReleased',\n notEditBackDay: 'commission.pool.summary.notEditBackDay',\n todayLaterSix: 'commission.pool.summary.todayLaterSix',\n fcMonthLaterSix: 'commission.pool.summary.fcMonthLaterSix',\n fcMonthInvalid: 'commission.pool.summary.fcMonthInvalid',\n fcMonthAccountTypeError: 'commission.pool.summary.fcMonthAcctTypeErr',\n fcMonthWaring: 'commission.pool.summary.fcMonthWarning',\n nextCommYearBackDay: 'commission.pool.summary.nextCommYearBackDay',\n nextCommYearLater: 'commission.pool.summary.nextCommYearLater',\n\n relatedNotFound: 'commission.pool.related.add.relatedNotFound',\n relatedRequired: 'commission.pool.related.add.relatedRequired',\n addRepeatedly: 'commission.pool.related.add.addRepeatedly',\n poolAgentChangeConfirm: 'commission.pool.related.add.agentDifferentConfirm',\n updateNextCommYearStart: 'commission.pool.related.add.updateNextCommDate',\n accountTypeGrouped: 'commission.pool.related.add.accountTypeGrouped',\n rejoinConfirm: 'commission.pool.related.list.rejoinConfirm',\n\n deleteRecordTitle: 'commission.pool.scale.recordDetails.deleteRecordTitle',\n deleteRecordMsg: 'commission.pool.scale.recordDetails.deleteRecordMsg',\n\n agentCodeRequired: 'commission.pool.agents.create.agentCodeRequired',\n shareHkpcRequired: 'commission.pool.agents.create.shareHkpcRequired',\n shareCommissionRequired: 'commission.pool.agents.create.shareCommissionRequired',\n saReportDateRequired: 'commission.pool.agents.create.saReportDateRequired',\n invalidAgentCode: 'commission.pool.agents.alert.invalidAgentCode',\n nonBrokerChannel: 'commission.pool.agents.alert.nonBrokerChannel',\n customerTerminated: 'This “Employer Account Code”/ “Member Account Code”. isn’t active status of current pool',\n};\n\nexport const RELEATE_PAYTY_RELEASE_TAG = '9999-12-31';\n\nexport enum Status {\n PREVIOUS = 'PREVIOUS',\n CURRENT = 'CURRENT',\n FUTURE = 'FUTURE',\n DELETED = 'DELETED',\n}\n\nexport const COMMISSION_POOL_TAB = [\n {\n label: 'commission.pool.summary.relatedParties',\n value: 'relatedParties',\n selected: true,\n },\n {\n label: 'commission.pool.summary.scaleRecordDetails',\n value: 'recordDetails',\n selected: false,\n },\n {\n label: 'commission.pool.summary.agentCompensation',\n value: 'agents',\n selected: false,\n },\n {\n label: 'commission.pool.summary.individualTransfer',\n value: 'individualTransfer',\n selected: false,\n },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { CommissionPoolService } from 'src/app/core/services/commission/commission-pool.service';\nimport { AccountTypesCommissionpool } from 'src/app/core/models/enum/account-type.enum';\nimport { UserAgreementPopupComponent } from '../user-agreement-popup.component';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { texts } from './pool-info.model';\nimport { deepCopy } from 'src/app/utils/copy';\n\n@Component({\n selector: 'app-commission-pool-create',\n templateUrl: './pool-list.component.html',\n styleUrls: ['./pool-list.component.scss'],\n})\nexport class CommissionPoolListComponent implements OnInit {\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n constructor(private router: Router, private poolService: CommissionPoolService, private cdsPopup: CdsPopupService) {}\n\n totalCounts = '1';\n isSearch = false;\n loading = false;\n createLoading = false;\n searchDisable = true;\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n addForm: any = {\n accountCode: '',\n accountType: '',\n disabled: true,\n createError: '',\n createCodeError: '',\n };\n accountTypes: any = AccountTypesCommissionpool;\n\n searchForm: any = {\n id: '',\n accountCode: '',\n accountName: '',\n currentEffective: false,\n };\n\n searchParams: any = {\n id: '',\n accountCode: '',\n accountName: '',\n currentEffective: false,\n };\n\n dataSource: any = [\n {\n id: '',\n list: [],\n },\n ];\n\n inputId(event: any) {\n event.target.value = event.target.value.replace(/[^\\d\\w\\-]/g, ''); // eslint-disable-line\n this.searchForm.id = event.target.value;\n }\n\n inputAccountCode(event: any) {\n event.target.value = event.target.value.replace(/[^\\d\\w\\-]/g, ''); // eslint-disable-line\n this.searchForm.accountCode = event.target.value;\n }\n\n inputAccountCode2(event: any) {\n event.target.value = event.target.value.replace(/[^\\d\\w\\-]/g, ''); // eslint-disable-line\n this.addForm.accountCode = event.target.value;\n }\n\n inputAccountName(event: any) {\n event.target.value = event.target.value?.trim(); // eslint-disable-line\n this.searchForm.accountName = event.target.value;\n }\n\n searchChange(input: any) {\n if (input && (this.searchForm.id || this.searchForm.accountCode || this.searchForm.accountName || this.searchForm.currentEffective)) {\n this.searchDisable = false;\n } else {\n this.searchDisable = true;\n }\n }\n\n search() {\n if (this.searchDisable) {\n return;\n }\n this.searchParams = deepCopy(this.searchForm);\n this.loadTable(true);\n }\n\n reset() {\n this.searchDisable = true;\n this.searchForm = {\n id: '',\n accountCode: '',\n accountName: '',\n currentEffective: false,\n };\n this.searchParams = deepCopy(this.searchForm);\n this.loadTable(true);\n }\n\n pageChange(currentPage: number) {\n if (currentPage - 1 === this.searchForm.page) return;\n this.pageCount.current = currentPage;\n this.loadTable(false);\n }\n\n loadTable(reload: boolean) {\n if (reload) {\n this.pageCount.current = 1;\n }\n const searchForm: any = this.searchParams;\n searchForm.id = searchForm.id ? searchForm.id.trim() : '';\n searchForm.accountCode = searchForm.accountCode ? searchForm.accountCode.trim() : '';\n searchForm.accountName = searchForm.accountName ? searchForm.accountName.trim() : '';\n searchForm.page = this.pageCount.current - 1;\n searchForm.size = 10;\n searchForm.status = 'VALID';\n searchForm.sort = 'createTime,desc';\n this.dataSource = [];\n this.loading = true;\n this.poolService.selectList(searchForm).subscribe(resp => {\n this.loading = false;\n if (resp && resp.data && resp.result == 0) {\n this.dataSource = resp.data.content;\n this.totalCounts = String(resp.data.totalElements);\n this.pageCount = {\n current: resp.data.number + 1,\n count: resp.data.totalPages,\n };\n }\n });\n }\n\n dbClick(item: any) {\n localStorage.setItem('commissionPoolId', item.id);\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: { commissionPoolId: item.id },\n });\n }\n\n deleteById(id: string) {\n this.poolService.deleteById(id).subscribe(resp => {\n if (resp) {\n this.loadTable(true);\n }\n });\n }\n\n createChange() {\n this.addForm.disabled = true;\n this.addForm.createError = '';\n if (this.addForm.accountType && this.addForm.accountCode.trim() && !this.addForm.createError) {\n this.addForm.disabled = false;\n }\n }\n\n reset2() {\n this.addForm.disabled = true;\n this.addForm.accountType = '';\n this.addForm.accountCode = '';\n this.addForm.createError = '';\n this.addForm.createCodeError = '';\n }\n\n create2() {\n if (this.addForm.disabled) {\n return;\n }\n const params: any = {\n accountType: this.addForm.accountType,\n accountCode: this.addForm.accountCode.trim(),\n };\n this.addForm.createError = '';\n this.addForm.createCodeError = '';\n this.createLoading = true;\n this.poolService.addSeparateCommissionPool(params).subscribe(resp => {\n this.createLoading = false;\n if (resp && resp.result == 0) {\n this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n },\n });\n } else {\n if (resp.message && resp.message.indexOf('Account Code is Invalid') !== -1) {\n this.addForm.createCodeError = resp.message;\n } else {\n this.addForm.createError = resp.message;\n }\n this.addForm.disabled = true;\n }\n });\n }\n\n alert(type: string) {\n let text = '';\n switch (type) {\n case 'searchCode':\n text = 'commission.accountCode.futherInfo.searchArea';\n break;\n case 'searchName':\n text = 'commission.accountName.futherInfo.searchArea';\n break;\n case 'thAccountCode':\n text = 'commission.accountCode.futherInfo.tableArea';\n break;\n case 'createPool':\n text = 'commission.createPool.futherInfo';\n break;\n case 'createAccountCode':\n text = 'commission.accountCode.futherInfo.createPool';\n break;\n }\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'sm',\n data: {\n message: text,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n ngOnInit(): void {\n this.loadTable(true);\n }\n}\n"," \n
    \n
    \n
    \n {{ 'commission.pool.payout.tips' | lang }}\n
    \n
    \n {{ 'commission.pool.common.searchRecord' | lang }}\n
    \n
    \n
    \n {{ 'commission.pool.payout.commissionPoolNumber' | lang }}\n
    \n \n
    \n
    \n
    \n {{ 'commission.pool.payout.accountCode' | lang }}\n \n
    \n \n
    \n
    \n
    \n {{ 'commission.pool.payout.accountName' | lang }}\n \n
    \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n {{ 'commission.pool.common.search' | lang }} \n {{ 'commission.pool.common.reset' | lang }} \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n {{ 'commission.pool.common.recordList' | lang }}\n
    \n {{ 'commission.pool.common.total' | lang }}\n {{ totalCounts | mynumber }}\n {{ 'commission.pool.common.records' | lang }}\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'commission.pool.common.poolNumber' | lang }}\n \n {{ 'commission.pool.payout.accountCode' | lang }}\n \n \n {{ 'commission.pool.payout.th.type' | lang }}\n \n {{ 'commission.pool.payout.th.accountName' | lang }}\n \n {{ 'commission.pool.payout.th.activeLastDate' | lang }}\n
    \n \n {{ item.id | slice : 0 : 8 }}\n \n \n
    \n {{ customer.accountCode }}\n
    \n
    \n
    \n {{ customer.accountTypeStr }}\n
    \n
    \n
    \n {{ customer.accountName }}\n
    \n
    \n
    \n
    \n {{ customer.lastDate | ssmsDate }}\n
    \n
    Active
    \n
    \n
    \n \n
    \n
    \n \n\n
    \n
    \n
    \n Create New Pool\n \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n Account Type\n *\n
    \n \n \n {{ option.label | lang }}\n \n \n
    \n
    \n
    \n
    \n Employer/Member Account Code\n *\n
    \n \n
    \n \n \n {{ addForm.createCodeError | lang }}\n \n
    \n
    \n \n {{ addForm.createError | lang }}\n \n
    \n {{\n 'commission.createPool' | lang\n }}\n {{\n 'common.reset' | lang\n }}\n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\n\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\n\nimport { CommissionPoolScaleService } from 'src/app/core/services/commission/commission-pool-scale.service';\nimport { UserAgreementPopupComponent } from '../../../user-agreement-popup.component';\n\nimport { RecordDetailList } from '../record-details.model';\nimport { I18N_KEY } from './add-scale-records.config';\nimport { dateValidator, scaleCodeValidator, ScaleCodeAsyncValidator } from './add-scale-records.validators';\nimport { str2Obj } from 'src/app/utils/utils';\n\n@Component({\n providers: [ScaleCodeAsyncValidator],\n selector: 'app-add-scale-records',\n templateUrl: './add-scale-records.component.html',\n styleUrls: ['./add-scale-records.component.scss'],\n})\nexport class AddScaleRecordsComponent implements OnInit {\n commissionPoolId: string;\n isEdit = true;\n loading = false;\n isSaveing = false;\n isShowDatepiker = true; // fix datePicker bug\n dataSource: any[] = [];\n\n formGroup: FormGroup = new FormGroup({\n effectiveDate: new FormControl('', {\n initialValueIsDefault: true,\n validators: [dateValidator()],\n }),\n alarmChecked: new FormControl(\n {\n value: false,\n disabled: false,\n },\n {\n initialValueIsDefault: true,\n }\n ),\n scaleCode: new FormArray([]),\n });\n\n get effectiveDate() {\n return this.formGroup.get('effectiveDate') as FormControl;\n }\n\n get alarmChecked() {\n return this.formGroup.get('alarmChecked') as FormControl;\n }\n\n get scaleCode() {\n return this.formGroup.get('scaleCode') as FormArray;\n }\n\n get isSaveDisable() {\n return this.effectiveDate.invalid || this.scaleCode.pending || this.scaleCode.invalid || this.isResetDisable;\n }\n\n get isResetDisable() {\n const effectiveDateChange = this.effectiveDate.value === this.effectiveDate.defaultValue;\n const alarmChange = this.alarmChecked.value === this.alarmChecked.defaultValue;\n let scaleCodeChange = false;\n for (let i = 0; i < this.scaleCode.controls.length; i++) {\n const controls = this.scaleCode.controls[i];\n if (this.dataSource[i].value !== controls.value) {\n scaleCodeChange = true;\n break;\n }\n }\n return effectiveDateChange && alarmChange && !scaleCodeChange;\n }\n\n constructor(\n private scaleCodeAsyncValidator: ScaleCodeAsyncValidator,\n private cdsPopup: CdsPopupService,\n private poolScaleService: CommissionPoolScaleService,\n private router: Router,\n private route: ActivatedRoute\n ) {\n this.commissionPoolId = this.route.snapshot.paramMap.get('commissionPoolId') || '';\n this.dataSource = RecordDetailList.map(item => {\n this.scaleCode.push(\n new FormControl('', {\n initialValueIsDefault: true,\n validators: [scaleCodeValidator('')],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n })\n );\n return { scale: item.scale, scaleType: item.scaleType, value: '' };\n });\n }\n\n ngOnInit() {\n this.getScaleRecordList();\n const scaleDetailId = this.route.snapshot.paramMap.get('scaleDetailId');\n if (scaleDetailId) {\n this.getCommissionPoolInfo(scaleDetailId);\n return;\n }\n }\n\n getCommissionPoolInfo(scaleDetailId: string) {\n this.loading = true;\n this.poolScaleService\n .getScaleRecordInfo(scaleDetailId)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe(resp => {\n const res = str2Obj(resp.body, ['amount']);\n if (res && res.data && res.data.commissionPoolScaleItems) {\n this.dataSource.forEach((item, index) => {\n let initValue = '';\n res.data.commissionPoolScaleItems.forEach((scale: any) => {\n if (item.scaleType == scale.scaleType && scale.commissionScaleDto && scale.commissionScaleDto.info) {\n initValue = scale.commissionScaleDto.info.scaleCode;\n item.value = initValue;\n this.scaleCode.setControl(\n index,\n new FormControl(initValue, {\n initialValueIsDefault: true,\n validators: [scaleCodeValidator(initValue)],\n asyncValidators: [this.scaleCodeAsyncValidator.validate.bind(this.scaleCodeAsyncValidator)],\n })\n );\n }\n });\n });\n }\n });\n }\n\n getScaleRecordList() {\n this.poolScaleService\n .getScaleRecordList({\n page: 0,\n size: Number.MAX_VALUE,\n commissionPoolId: this.commissionPoolId,\n status: 'VALID',\n sort: 'effectiveDate',\n order: 'asc',\n })\n .subscribe(res => {\n if (res && res.data && res.data.content && res.data.content.length) {\n const date = res.data.content.map((item: any) => {\n return moment(item.effectiveDate).format('YYYY-MM-DD');\n });\n this.effectiveDate.setValidators(dateValidator(date));\n }\n });\n }\n\n scaleCodeInput(ev: any, index: number) {\n let value = ev.target.value.toUpperCase();\n const pos = ev.target.selectionEnd;\n if (value === this.scaleCode.controls[index].value) {\n return;\n }\n value = value?.trim();\n this.scaleCode.controls[index].setValue(value.substring(0));\n ev.target.setSelectionRange(pos, pos);\n }\n\n clear(index: number) {\n this.scaleCode.controls[index].setValue('');\n }\n\n scaleCodeItemChange(index: number) {\n const control = this.scaleCode.controls[index] as FormControl;\n return control.value !== control.defaultValue;\n }\n\n reset() {\n if (this.isResetDisable) {\n return;\n }\n this.isShowDatepiker = false;\n setTimeout(() => {\n this.isShowDatepiker = true; // fix datePicker bug\n });\n this.formGroup.reset();\n }\n\n backLanding() {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: {\n commissionPoolId: this.commissionPoolId,\n tabType: 'recordDetails',\n },\n });\n }\n\n save() {\n if (this.isSaveDisable) {\n return;\n }\n this.alarmChecked.reset({\n value: this.alarmChecked.value,\n disabled: true,\n });\n this.isEdit = false;\n }\n\n backToEdit() {\n this.isEdit = true;\n this.alarmChecked.reset({\n value: this.alarmChecked.value,\n disabled: false,\n });\n }\n\n confirm() {\n if (this.isSaveing) {\n return;\n }\n this.isSaveing = true;\n this.poolScaleService\n .createScaleDetails(this.createParam())\n .pipe(\n finalize(() => {\n this.isSaveing = false;\n })\n )\n .subscribe(resp => {\n let popData;\n const resultNum = resp.result;\n if (resultNum == 0) {\n popData = {\n message: I18N_KEY.COMMON_SUCCESS,\n continue: I18N_KEY.COMMON_GOTIT,\n type: 'alert',\n };\n } else {\n popData = {\n message: I18N_KEY.COMMON_FAILED,\n continue: I18N_KEY.COMMON_GOTIT,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (resultNum == 0) {\n this.backLanding();\n } else {\n this.backToEdit();\n }\n }\n });\n });\n }\n\n createParam() {\n const params: any = {};\n params.commissionPoolId = this.commissionPoolId;\n params.alertAlarm = this.alarmChecked.value;\n params.effectiveDate = moment(this.effectiveDate.value, 'DD/MM/YYYY').format('YYYY-MM-DD');\n params.commissionPoolScales = [];\n this.dataSource.forEach((item, index) => {\n params.commissionPoolScales.push({\n scaleType: item.scaleType,\n scaleCode: this.scaleCode.controls[index].value?.trim(),\n });\n });\n return params;\n }\n}\n","\n\n
    \n
    \n

    \n {{ 'commission.pool.scale.recordCreate.information' | lang }}\n

    \n

    \n {{ 'commission.pool.common.poolNumber' | lang }}:\n {{ commissionPoolId }}\n

    \n
    \n
    \n
    \n
    \n

    \n {{ 'commission.pool.scale.recordCreate.newScaleSetup' | lang }}\n

    \n
    \n\n
    \n \n
    \n \n \n
    \n \n {{ effectiveDate.errors?.['error'] | lang }}\n \n
    \n
    \n
    {{ effectiveDate.value }}
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ 'commission.pool.scale.recordCreate.scale' | lang }}\n
    \n
    \n {{ 'commission.pool.scale.recordCreate.scaleCode' | lang }}\n
    \n
    \n {{ 'commission.pool.scale.recordCreate.action' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n {{ 'commission.pool.scale.recordCreate.scale' | lang }}\n
    \n
    \n {{ item.scale | lang }}\n
    \n
    \n
    \n
    \n {{ 'commission.pool.scale.recordCreate.scaleCode' | lang }}\n
    \n
    \n \n \n
    \n {{ item.scale | lang }}{{ scaleCode.controls[index].errors?.['error'] | lang }} \n
    \n
    \n
    {{ scaleCode.controls[index].value }}
    \n
    \n
    \n {{ 'commission.pool.scale.recordCreate.clear' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'common.reset' | lang }}\n \n {{ 'common.save' | lang }} \n
    \n
    \n {{ 'common.backToEdit' | lang }} \n {{ 'common.confirm' | lang }}\n \n
    \n
    \n
    \n","export const I18N_KEY = {\n COMMON_SUCCESS: 'common.action.success',\n COMMON_FAILED: 'commission.pool.common.alertFailedMsg',\n COMMON_GOTIT: 'common.gotIt',\n EFFECTIVE_DATE_NULL: 'commission.pool.scale.recordCreate.scaleEffectiveDateNull',\n EFFECTIVE_DATE_INVALID: 'commission.pool.scale.recordCreate.scaleEffectiveDateInvalid',\n EFFECTIVE_DATE_IS_FUTURE: 'commission.pool.scale.recordCreate.scaleEffectiveDateFuture',\n EFFECTIVE_DATE_IS_DUPLICATE: 'commission.pool.scale.recordCreate.scaleEffectiveDateDuplicate',\n SCALE_CODE_NULL: 'commission.pool.scale.recordCreate.scaleCodeNull',\n SCALE_CODE_INVALID: 'commission.pool.scale.recordCreate.scaleCodeInvalid',\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, AsyncValidator, ValidationErrors } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\n\nimport { CommissionScaleService } from 'src/app/core/services/commission/commission-scale.service';\n\nimport { I18N_KEY } from './add-scale-records.config';\nimport moment from 'moment';\n\nexport function dateValidator(effectiveDates?: string[]) {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value.toString().trim();\n if (!value) {\n return { error: I18N_KEY.EFFECTIVE_DATE_NULL };\n }\n if (!moment(value, 'DD/MM/YYYY', true).isValid()) {\n return { error: I18N_KEY.EFFECTIVE_DATE_INVALID };\n }\n const str = moment().format('DD/MM/YYYY');\n if (moment(value, 'DD/MM/YYYY').diff(moment(str, 'DD/MM/YYYY'), 'days') < 0) {\n return { error: I18N_KEY.EFFECTIVE_DATE_IS_FUTURE };\n }\n const strDate = moment(value, 'DD/MM/YYYY').format('YYYY-MM-DD');\n if (effectiveDates && effectiveDates.includes(strDate)) {\n return { error: I18N_KEY.EFFECTIVE_DATE_IS_DUPLICATE };\n }\n return null;\n };\n}\n\nexport function scaleCodeValidator(defaultValue: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value.trim();\n\n if (value === 'NOCOMM') {\n return null;\n }\n\n if (!value && !defaultValue) {\n return null;\n }\n\n if (!value && defaultValue) {\n return { error: I18N_KEY.SCALE_CODE_NULL };\n }\n\n // const reg = /^[a-zA-Z0-9]{1,6}$/;\n // if(!reg.test(value)) {\n // return { error: I18N_KEY.SCALE_CODE_INVALID};\n // }\n\n return null;\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ScaleCodeAsyncValidator implements AsyncValidator {\n constructor(private commissionScaleService: CommissionScaleService) {}\n\n validate(control: AbstractControl): Observable {\n const value = control.value.trim();\n if (!value || !control.dirty) {\n return of(null);\n }\n if (value === 'NOCOMM') {\n return of(null);\n }\n const searchForm = {\n page: 0,\n size: 1,\n scaleCodeSpecify: value,\n };\n return this.commissionScaleService.selectList(searchForm).pipe(\n map(res => {\n if (res.data && res.data.content && res.data.content.length) {\n return null;\n }\n return { error: I18N_KEY.SCALE_CODE_INVALID };\n }),\n catchError(() => of(null))\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\n\nimport { deepCopy } from 'src/app/utils/copy';\nimport { fromISO } from 'src/app/utils/dateUtils';\nimport { str2Obj } from 'src/app/utils/utils';\n\nimport { CommissionCommonService } from 'src/app/core/services/commission/commission-common.service';\nimport { CommissionPoolScaleService } from 'src/app/core/services/commission/commission-pool-scale.service';\nimport { RecordDetailList, ScaleMap } from './record-details.model';\nimport { AccumulationType } from 'src/app/core/models/enum/accumulation-type.enum';\nimport { ClawBackFlagMap } from 'src/app/core/models/enum/claw-back-flag.enum';\nimport { texts, Status } from '../pool-info.model';\nimport Big from 'big.js';\nimport { CdsPillConfig } from '@cds/ng-core/pill';\n\nimport { BREAKPOINT_TYPE_OPTIONS, CALCULATION_TYPE_OPTIONS } from 'src/app/views/commission/scale/commission-scale.config';\n\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\ninterface ScaleRecord {\n id: string;\n value?: string;\n label?: string;\n millis: number;\n status?: string;\n name?: string;\n effectiveDate?: string;\n createBy?: any;\n disabled?: boolean;\n active?: boolean;\n sendEmail?: boolean;\n lastUpdateBy?: any;\n lastUpdateName?: string;\n lastUpdateTime?: string;\n}\n\n@Component({\n selector: 'app-commission-record-details',\n templateUrl: './record-details.component.html',\n styleUrls: ['./record-details.component.scss'],\n})\nexport class CommissionRecordDetailsComponent implements OnInit, OnDestroy {\n subscription: Subscription;\n roleW = PermissionAccess.W;\n roleE = PermissionAccess.E;\n permissionN = PermissionItem.COMM_INFO_SCALE_RECORD;\n constructor(\n private cdsPopup: CdsPopupService,\n private router: Router,\n private poolScaleService: CommissionPoolScaleService,\n private commonService: CommissionCommonService\n ) {\n this.subscription = commonService.summary$.subscribe(res => {\n this.summaryInfo = JSON.parse(JSON.stringify(res));\n this.editRecordDetailStatus = false;\n this.editError = '';\n });\n }\n\n accumulationType = AccumulationType;\n pillConfig: CdsPillConfig = {\n label: 'Sample',\n removable: true,\n };\n @Input() commissionPoolId = '';\n summaryInfo: any = {};\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n status = Status;\n currentClickOpenIndex = -1;\n totalCounts = 8;\n checkedAll = true;\n loading = false;\n scaleRecord: ScaleRecord = {\n id: '',\n effectiveDate: '',\n millis: 0,\n createBy: { name: '' },\n };\n recordHistoryPage = 0;\n totalPages = 0;\n recordHistoryList: ScaleRecord[] = [];\n scaleInfoLoading = false;\n scrollLoading = false;\n deleteDisplay = false;\n editDisplay = false;\n\n recordInfoList: any[] = deepCopy(RecordDetailList);\n editRecordDetailStatus = false;\n editError = '';\n saveDisabled = true;\n isConfirm = false;\n originalDetail = {};\n recordDetailForm: any = {\n editScale: '',\n mthlyClawBack: 0,\n accumulations: [],\n };\n\n createRecord() {\n const params = {\n commissionPoolId: this.commissionPoolId,\n scaleDetailId: '',\n };\n this.recordHistoryList.forEach(item => {\n if (item.status == this.status.CURRENT) {\n params.scaleDetailId = item.id;\n }\n });\n if (this.recordInfoList) {\n this.router.navigate(['/commission/record-create', params]);\n }\n }\n\n reloadRecordList() {\n this.recordHistoryPage = 0;\n this.recordHistoryList = [];\n this.scaleRecord = {\n id: '',\n effectiveDate: '',\n millis: 0,\n createBy: { name: '' },\n };\n this.getScaleRecordList();\n }\n\n getScaleRecordList() {\n if (!this.scrollLoading) {\n this.scrollLoading = true;\n this.recordHistoryPage++;\n const params = {\n page: this.recordHistoryPage - 1,\n size: 9999,\n commissionPoolId: this.commissionPoolId,\n sort: 'effectiveDate',\n order: 'asc',\n };\n this.loading = true;\n this.poolScaleService.getScaleRecordList(params).subscribe(resp => {\n this.loading = false;\n this.scrollLoading = false;\n if (resp && resp.result == 0 && resp.data.content) {\n this.totalPages = resp.data.totalPages;\n if (resp.data.content) {\n this.recordHistoryList = this.recordHistoryList.concat(resp.data.content);\n this.recordHistoryList.forEach(item => {\n if (item.status == this.status.CURRENT && item.active) {\n this.scaleRecord = item;\n }\n if (!item.active) {\n item.status = this.status.DELETED;\n if (item.lastUpdateBy) {\n item.lastUpdateName = item.lastUpdateBy.name;\n }\n }\n });\n this.getScaleRecordInfo();\n }\n }\n });\n }\n }\n\n getPoolAccumulations(accumulations: any[]) {\n const respAccumulations: any[] = accumulations;\n respAccumulations.forEach(respAcc => {\n this.recordInfoList.forEach(scale => {\n const scaleAcc: any[] = scale.accumulations;\n if (respAcc && respAcc.scaleType == scale.scaleType) {\n scaleAcc.forEach(sa => {\n if (respAcc && respAcc.scaleAccumulationType == sa.accumulationType) {\n if (sa.accumulationType == AccumulationType.PLAN_HIGH || sa.accumulationType == AccumulationType.RELEASED_CYTD) {\n sa.amount = new Big(respAcc.amount).toFixed(0);\n } else {\n sa.amount = new Big(respAcc.amount).toFixed(2);\n }\n }\n });\n }\n });\n });\n }\n\n getScaleRecordInfo() {\n this.deleteDisplay = false;\n this.editDisplay = false;\n this.scaleInfoLoading = true;\n this.editRecordDetailStatus = false;\n if (!this.scaleRecord.id) {\n this.scaleInfoLoading = false;\n return;\n }\n if (this.scaleRecord.id && this.recordHistoryList) {\n this.recordHistoryList.forEach(item => {\n if (item.id == this.scaleRecord.id) {\n this.scaleRecord = deepCopy(item);\n }\n });\n }\n if (this.scaleRecord.status == Status.CURRENT) {\n this.editDisplay = true;\n }\n this.recordInfoList = deepCopy(RecordDetailList);\n this.poolScaleService.getScaleRecordInfo(this.scaleRecord.id).subscribe(res => {\n const resp = str2Obj(res.body, ['amount', 'clawBackAmount']);\n this.scaleInfoLoading = false;\n if (resp && resp.result == 0 && resp.data) {\n const scaleList: any[] = resp.data.commissionPoolScaleItems ? resp.data.commissionPoolScaleItems : [];\n const accumulations: any[] = resp.data.commissionPoolScaleAccumulations ? resp.data.commissionPoolScaleAccumulations : [];\n if (accumulations && accumulations.length > 0) {\n this.getPoolAccumulations(accumulations);\n }\n if (this.scaleRecord.status == Status.FUTURE) {\n this.deleteDisplay = true;\n }\n const list = this.recordHistoryList.filter(item => item.active);\n if (list.length == 1 && list[0].status == Status.CURRENT) {\n this.deleteDisplay = true;\n }\n this.recordInfoList.forEach(item => {\n scaleList.forEach(scale => {\n if (scale && item.scaleType == scale.scaleType) {\n if (item.scaleType == 'FS_PC' && resp.data.clawBackAmount != null && resp.data.clawBackMonth != null) {\n item.clawBackAmount = new Big(resp.data.clawBackAmount).toFixed(0);\n item.clawBackMonth = resp.data.clawBackMonth;\n if (resp.data.annualizeFlag) {\n item.annualizeFlagStr = ClawBackFlagMap.get(resp.data.annualizeFlag);\n }\n }\n item.scaleId = scale.commissionScaleId;\n item.calcBasis = scale.calcBasis;\n if (scale && scale.commissionScaleDto && scale.commissionScaleDto.info) {\n item.scaleCode = scale.commissionScaleDto.info.scaleCode;\n item.currPolYrCommRate = scale.commissionScaleDto.info.crfRate ? scale.commissionScaleDto.info.crfRate : '';\n if (scale.commissionScaleDto.info.calculationType) {\n CALCULATION_TYPE_OPTIONS.forEach(f => {\n if (f.value == scale.commissionScaleDto.info.calculationType) {\n item.calcType = f.label;\n }\n });\n }\n if (scale.commissionScaleDto.info.breakpointType) {\n BREAKPOINT_TYPE_OPTIONS.forEach(f => {\n if (f.value == scale.commissionScaleDto.info.breakpointType) {\n item.breakpointType = f.label;\n }\n });\n }\n item.breakpoints = [];\n if (scale.commissionScaleDto.breakPoint) {\n for (const [key, value] of Object.entries(scale.commissionScaleDto.breakPoint)) {\n const point: any = {};\n point.year = key;\n point.list = [];\n const s: any = value;\n for (const [key2, value2] of Object.entries(s)) {\n const j: any = {};\n j.breakpoints = key2;\n const k: any = value2;\n j.displayAmount = true;\n if (!k.amount) {\n j.amount = null;\n } else {\n j.amount = new Big(k.amount).round(2, Big.roundDown).toFixed(2);\n }\n j.percentage = String(new Big(k.percentage).toFixed(4));\n point.list.push(j);\n }\n if (point.list && point.list.length == 1) {\n point.list[0].displayAmount = false;\n }\n item.breakpoints.push(point);\n }\n }\n }\n }\n });\n });\n }\n });\n }\n\n deleteRecord() {\n let data = {\n title: texts.deleteRecordTitle,\n message: texts.deleteRecordMsg,\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n params: {\n p1: fromISO(this.scaleRecord.effectiveDate),\n p2: this.scaleRecord.createBy.name,\n },\n };\n this.recordInfoList.forEach(item => {\n const accumulations: any[] = item.accumulations;\n accumulations.forEach(a => {\n if (a.accumulationType == AccumulationType.PREMIUM_PTD && a.amount > 0) {\n data = deepCopy({\n message: 'commission.pool.scale.recordDetails.deleteError',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n });\n }\n });\n });\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'lg',\n data: data,\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree && data.type == 'confirm') {\n this.poolScaleService.deleteHistory(this.scaleRecord.id).subscribe(resp => {\n if (resp && resp.result == 0) {\n this.reloadRecordList();\n this.commonService.announceScale(null);\n }\n });\n }\n });\n }\n\n checkRecordDetailTag(scale: string) {\n this.editRecordDetailStatus = false;\n if (scale == 'all') {\n if (!this.checkedAll) {\n this.checkedAll = true;\n this.recordInfoList.forEach(item => {\n item.checked = true;\n });\n } else {\n this.checkedAll = false;\n this.recordInfoList.forEach(item => {\n item.checked = false;\n });\n }\n } else {\n this.checkedAll = true;\n this.recordInfoList.forEach(item => {\n if (item.scale == scale) {\n if (item.checked) {\n item.checked = false;\n } else {\n item.checked = true;\n }\n }\n if (!item.checked) {\n this.checkedAll = false;\n }\n });\n }\n }\n\n editRecordDetail(recordDetail: any) {\n this.editError = '';\n if (this.summaryInfo.frozen) {\n this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: 'Not allow to edit the Scale Record Detail under commission frozen status',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n },\n });\n return;\n }\n this.editRecordDetailStatus = true;\n this.saveDisabled = true;\n this.isConfirm = false;\n\n this.recordDetailForm.commissionPoolScaleId = this.scaleRecord.id;\n this.recordDetailForm.scaleType = recordDetail.scaleType;\n this.recordDetailForm.clawBackAmount = recordDetail.clawBackAmount;\n this.recordDetailForm.clawBackMonth = recordDetail.clawBackMonth;\n this.recordDetailForm.clawBackAmountError = '';\n this.recordDetailForm.clawBackMonthError = '';\n this.recordDetailForm.accumulations = deepCopy(recordDetail.accumulations);\n this.originalDetail = deepCopy(this.recordDetailForm);\n }\n\n cancelEditRecordDetail() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.cancelMsg,\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.editRecordDetailStatus = false;\n }\n });\n }\n\n reset() {\n this.saveDisabled = true;\n this.recordDetailForm = deepCopy(this.originalDetail);\n }\n\n editScaleInfoSave() {\n if (this.saveDisabled) {\n return;\n }\n this.isConfirm = true;\n }\n\n backToEdit() {\n this.isConfirm = false;\n }\n\n confirm() {\n if (this.saveDisabled) {\n return;\n }\n const list: any[] = [];\n const accumulations: any[] = this.recordDetailForm.accumulations;\n accumulations.forEach(item => {\n const accumulation = {\n scaleAccumulationType: item.accumulationType,\n amount: item.amount,\n };\n list.push(accumulation);\n });\n const params = {\n commissionPoolId: this.commissionPoolId,\n commissionPoolScaleId: this.recordDetailForm.commissionPoolScaleId,\n scaleType: this.recordDetailForm.scaleType,\n clawBackAmount: this.recordDetailForm.clawBackAmount,\n clawBackMonth: this.recordDetailForm.clawBackMonth,\n list: list,\n };\n this.scaleInfoLoading = true;\n this.poolScaleService.editScaleInfo(params).subscribe(resp => {\n this.scaleInfoLoading = false;\n let popData, result: number;\n if (resp && resp.data && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n if (result == 0) {\n this.getScaleRecordInfo();\n this.commonService.announceScale(null);\n }\n }\n });\n });\n }\n\n inputClawBackAmount(event: any) {\n if (event && event.target.value) {\n let amount = event.target.value;\n if (amount === '-' || amount === '.') {\n amount = 0;\n }\n if (new Big(amount).lt(new Big('99999999999999999999.50'))) {\n amount = new Big(amount).round(0, Big.roundHalfUp).toFixed(0);\n } else {\n amount = '99999999999999999999';\n }\n this.recordDetailForm.clawBackAmount = amount;\n } else {\n this.recordDetailForm.clawBackAmount = 0;\n }\n this.formControl();\n }\n\n inputClawBackMonth(event: any) {\n if (event && !event.target.value) {\n this.recordDetailForm.clawBackMonth = 0;\n }\n this.formControl();\n }\n\n inputAccumulation(event: any, accumulationType: string) {\n let value = event.target.value;\n if (value === '-' || value === '.') {\n value = 0;\n }\n let amount = new Big(value ? value : 0).toFixed(2);\n const accumulations: any[] = this.recordDetailForm.accumulations;\n if (accumulationType == AccumulationType.PLAN_HIGH || accumulationType == AccumulationType.RELEASED_CYTD || accumulationType == 'mthlyClawBack') {\n if (new Big(amount).lt(new Big('99999999999999999999.50'))) {\n amount = new Big(amount).round(0, Big.roundHalfUp).toFixed(0);\n } else {\n amount = '99999999999999999999';\n }\n }\n event.target.value = String(amount);\n this.saveDisabled = false;\n const accumulation = accumulations.filter(item => item.accumulationType == accumulationType);\n if (accumulation && accumulation.length == 1) {\n accumulation[0].amount = String(amount);\n accumulation[0].errorMsg = '';\n if (\n amount.indexOf('-') !== -1 &&\n accumulation[0].accumulationType != AccumulationType.GROSS_PREM_CYTD &&\n accumulation[0].accumulationType != AccumulationType.RELEASED_CYTD &&\n accumulation[0].accumulationType != AccumulationType.PREMIUM_CYTD\n ) {\n accumulation[0].errorMsg = ScaleMap.get(this.recordDetailForm.scaleType) + ': Not allow edit to be negative amount on ' + accumulation[0].label;\n }\n const cytd = accumulations.filter(item => item.accumulationType == AccumulationType.PREMIUM_CYTD);\n const ptd = accumulations.filter(item => item.accumulationType == AccumulationType.PREMIUM_PTD);\n if (cytd && cytd.length == 1 && ptd && ptd.length == 1) {\n cytd[0].errorMsg = '';\n if (ptd && cytd && new Big(ptd[0].amount).lt(new Big(cytd[0].amount))) {\n cytd[0].errorMsg = ScaleMap.get(this.recordDetailForm.scaleType) + ': ' + cytd[0].label + ' cannot be larger than ' + ptd[0].label;\n }\n }\n }\n this.formControl();\n }\n\n formControl() {\n this.recordDetailForm.clawBackAmountError = '';\n this.recordDetailForm.clawBackMonthError = '';\n if (this.recordDetailForm.clawBackMonth < 0 || this.recordDetailForm.clawBackMonth > 12) {\n this.recordDetailForm.clawBackMonthError = 'Claw back month must in the range between 0 and 12';\n } else if (this.recordDetailForm.clawBackAmount == 0 && this.recordDetailForm.clawBackMonth > 0) {\n this.recordDetailForm.clawBackMonthError = 'Claw back month must be 0 if the Claw back amount is 0';\n }\n let b = false;\n if (this.recordDetailForm.clawBackAmountError) {\n b = true;\n }\n if (this.recordDetailForm.clawBackMonthError) {\n b = true;\n }\n if (this.recordDetailForm.clawBackMonthError) {\n b = true;\n }\n const accumulations: any[] = this.recordDetailForm.accumulations;\n accumulations.forEach(item => {\n if (item.errorMsg) {\n b = true;\n }\n });\n if (JSON.stringify(this.originalDetail) == JSON.stringify(this.recordDetailForm)) {\n b = true;\n }\n this.saveDisabled = b;\n }\n\n ngOnDestroy() {\n // prevent memory leak when component destroyed\n this.subscription.unsubscribe();\n }\n\n ngOnInit(): void {\n this.commonService.applySummaryInfo(null);\n this.reloadRecordList();\n }\n\n backTop() {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","
    \n {{ 'commission.pool.scale.recordDetails.title' | lang }}\n {{ 'commission.pool.scale.recordDetails.addScaleRecords' | lang }}\n \n
    \n\n\n\n
    \n
    \n
    \n
    \n {{ 'commission.pool.scale.recordDetails.filterBy' | lang }}\n
    \n
    \n {{ 'commission.pool.scale.recordDetails.all' | lang }} \n
    \n {{ item.scale }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n {{ scaleRecord.effectiveDate | ssmsDate }}, {{ 'commission.pool.common.createBy' | lang }}  {{ scaleRecord.createBy.name }}  \n \n \n \n
    \n \n {{ item.effectiveDate | ssmsDate }}, {{ 'commission.pool.common.createBy' | lang }}  {{ item.createBy.name }}     \n \n \n Current effective scale \n \n Deleted on {{ item.lastUpdateTime | ssmsDate }}, by\n {{ item.lastUpdateName }}\n \n
    \n \n \n \n
    \n
    \n {{ 'commission.pool.scale.recordDetails.effectiveDate' | lang }}  \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n {{ 'commission.pool.scale.recordDetails.deleteRecord' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ item.scale }}\n
    \n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.common.edit' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.common.cancelEdit' | lang }}\n
    \n
    \n
    \n
    \n
    \n \n {{ editError | lang }}\n \n
    \n
    \n\n
    \n
    \n {{ 'commission.pool.scale.recordDetails.scaleCode' | lang }}:\n
    \n
    {{ item.scaleCode }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    {{ item.calcType | lang }}
    \n
    \n
    \n
    \n
    \n \n
    {{ item.breakpointType | lang }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ item.clawBackAmount }}\n
    \n
    \n \n
    \n {{ recordDetailForm.clawBackAmount }}\n
    \n \n {{ recordDetailForm.clawBackAmountError | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ item.clawBackMonth }}  \n {{ item.annualizeFlagStr }}\n
    \n
    \n \n \n {{ recordDetailForm.clawBackMonthError | lang }}\n \n
    \n {{ recordDetailForm.clawBackMonth }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    {{ item.currPolYrCommRate }}
    \n
    \n
    \n \n
    \n
    \n
    \n {{ accumulation.label }}\n
    \n \n {{ accumulation.amount | mynumber }}\n
    \n \n {{ accumulation.amount | mynumber : 2 }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ accumulation.label }}\n
    \n
    \n {{ accumulation.amount }}\n
    \n
    \n \n \n {{ accumulation.errorMsg | lang }}\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'commission.pool.scale.recordDetails.noOfBreakpoints' | lang }}\n \n {{ 'commission.pool.scale.recordDetails.breakpointsAmount' | lang }}\n \n {{ 'commission.pool.scale.recordDetails.percentage' | lang }}\n
    \n {{ item.breakpoints }}\n \n
    \n {{ item.amount | mynumber }}\n
    \n
    \n {{ item.percentage }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'commission.pool.common.reset' | lang }} \n {{ 'commission.pool.common.save' | lang }}\n \n
    \n
    \n {{ 'commission.pool.common.backToEdit' | lang }} \n {{ 'commission.pool.common.confirm' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n\n
    \n {{ 'common.backToTop' | lang }}\n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ScaleType } from 'src/app/core/models/enum/commission-scale.enum';\nimport { AccumulationType } from 'src/app/core/models/enum/accumulation-type.enum';\n\nexport const ScaleMap = new Map();\nScaleMap.set(ScaleType.FS_PC, 'FS HKPC Scale');\nScaleMap.set(ScaleType.TRF_SP_PC, 'TRF SP HKPC Scale');\nScaleMap.set(ScaleType.FY, '1st Yr Comm Scale');\nScaleMap.set(ScaleType.FS_SF, 'FS Service Fee Scale');\nScaleMap.set(ScaleType.PS, 'PS Comm Scale');\nScaleMap.set(ScaleType.PS_SF, 'PS Service Fee Scale');\nScaleMap.set(ScaleType.PS_PC, 'PS HKPC Scale');\nScaleMap.set(ScaleType.TRF_SP, 'TRF SP Comm Scale');\nScaleMap.set(ScaleType.RY_PC, 'RY HKPC Scale');\nScaleMap.set(ScaleType.IND_TRF_SP_PC, 'Individual transfer Single Premium HKPC Scale');\nScaleMap.set(ScaleType.IND_TRF_SP, 'Individual transfer Single Premium Commission');\n\nexport const RecordDetailList = [\n {\n isClear: true,\n checked: true,\n scale: 'FS HKPC Scale',\n scaleType: ScaleType.FS_PC,\n scaleLabel: 'FS HKPC',\n scaleId: '',\n scaleCode: '',\n calcType: '',\n breakpointType: '',\n currPolYrCommRate: '',\n mthlyClawBack: '0/0',\n calcTypeDisplay: true,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'Current Plan High',\n accumulationType: AccumulationType.PLAN_HIGH,\n amount: '0',\n },\n {\n errorMsg: '',\n label: 'HKPC Released CYTD',\n accumulationType: AccumulationType.RELEASED_CYTD,\n amount: '0',\n },\n {\n errorMsg: '',\n label: 'Ann Prem CYTD',\n accumulationType: AccumulationType.ANNUAL_PREM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: '1st Yr Comm Scale',\n scaleType: ScaleType.FY,\n scaleLabel: '1st Yr Comm',\n scaleCode: '',\n calcType: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: true,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'FS Service Fee Scale',\n scaleType: ScaleType.FS_SF,\n scaleLabel: 'FS Service Fee',\n scaleCode: '',\n calcType: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: false,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'Gross Prem CYTD',\n accumulationType: AccumulationType.GROSS_PREM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'RY HKPC Scale',\n scaleType: ScaleType.RY_PC,\n scaleLabel: 'RY HKPC',\n scaleCode: '',\n calcType: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: false,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'HKPC Released CYTD',\n accumulationType: AccumulationType.RELEASED_CYTD,\n amount: '0',\n },\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'TRF SP HKPC Scale',\n scaleType: ScaleType.TRF_SP_PC,\n scaleLabel: 'TRF SP HKPC',\n scaleCode: '',\n calcType: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: false,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'HKPC Released CYTD',\n accumulationType: AccumulationType.RELEASED_CYTD,\n amount: '0',\n },\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'TRF SP Comm Scale',\n scaleType: ScaleType.TRF_SP,\n scaleLabel: 'TRF SP Comm',\n scaleCode: '',\n calcType: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: false,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'PS HKPC Scale',\n scaleType: ScaleType.PS_PC,\n scaleLabel: 'PS HKPC',\n scaleCode: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: true,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'Current Plan High',\n accumulationType: AccumulationType.PLAN_HIGH,\n amount: '0',\n },\n {\n errorMsg: '',\n label: 'HKPC Released CYTD',\n accumulationType: AccumulationType.RELEASED_CYTD,\n amount: '0',\n },\n {\n errorMsg: '',\n label: 'Ann Prem CYTD',\n accumulationType: AccumulationType.ANNUAL_PREM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'PS Comm Scale',\n scaleType: ScaleType.PS,\n scaleLabel: 'PS Comm',\n scaleCode: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: true,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n {\n isClear: true,\n checked: true,\n scale: 'PS Service Fee Scale',\n scaleType: ScaleType.PS_SF,\n scaleLabel: 'PS Service Fee',\n scaleCode: '',\n breakpointType: '',\n currPolYrCommRate: '',\n calcTypeDisplay: false,\n breakpointDisplay: true,\n currPolDisplay: true,\n accumulations: [\n {\n errorMsg: '',\n label: 'SF Gross Prem CYTD',\n accumulationType: AccumulationType.GROSS_PREM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem CYTD',\n accumulationType: AccumulationType.PREMIUM_CYTD,\n amount: '0.00',\n },\n {\n errorMsg: '',\n label: 'Prem PTD',\n accumulationType: AccumulationType.PREMIUM_PTD,\n amount: '0.00',\n },\n ],\n breakpoints: [],\n },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, Inject, OnDestroy } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\nimport { MatDialogRef, CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { CdsLangService } from '@cds/ng-core/lang';\n\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\nimport { CommissionRelatedPartiesService } from 'src/app/core/services/commission/commission-related-parties.service';\nimport { texts } from '../pool-info.model';\nimport { AccountCodeExplain } from 'src/app/views/commission/summary/related-parties/related-parties.model';\nimport { CustomerStatus } from 'src/app/core/models/enum';\n\ninterface Account {\n customerId: string;\n name: string;\n no: string;\n accountTypeStr: string;\n}\n@Component({\n selector: 'app-related-parties-add',\n templateUrl: './related-parties-add.component.html',\n styleUrls: ['./related-parties-add.component.scss'],\n})\nexport class RelatedPartiesAddComponent implements OnInit, OnDestroy {\n constructor(\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private relatedPartiesService: CommissionRelatedPartiesService,\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n cancel: string;\n continue: string;\n type: string;\n commissionPoolId: string;\n summaryInfo: any;\n }\n ) {\n this.commissionPoolId = data.commissionPoolId;\n this.summaryInfo = data.summaryInfo;\n }\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n commissionPoolId = '';\n summaryInfo: any = {};\n disagreeButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n agreeButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n options: Account[] = [];\n errorMsg = '';\n warningMsg = '';\n queryPara = '';\n accounts: any[] = [];\n account = {\n commissionPoolId: '',\n customerId: '',\n customerStatus: '',\n name: '',\n no: '',\n type: '',\n accountType: '',\n poolAgentChange: false,\n updateNextCommYearStart: false,\n };\n loading = false;\n isInput = true;\n\n accountExplain() {\n this.langService.addLangEntries({\n alertMsg: {\n en: AccountCodeExplain,\n zh: AccountCodeExplain,\n },\n });\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: 'alertMsg',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n searchChange() {\n const searchBox: any = document.getElementById('search');\n const keyup$ = fromEvent(searchBox, 'keyup');\n keyup$\n .pipe(\n map((i: any) => i.currentTarget.value),\n debounceTime(500)\n )\n .subscribe(queryPara => {\n this.searchRelatedParties(searchBox, queryPara);\n });\n }\n\n searchRelatedParties(searchBox: HTMLElement, queryPara: string) {\n this.options.forEach(item => {\n if (queryPara && queryPara.indexOf(item.no) !== -1) {\n queryPara = item.no;\n }\n });\n this.options = [];\n this.errorMsg = '';\n this.warningMsg = '';\n this.account.customerId = '';\n if (queryPara && queryPara.length >= 6) {\n this.loading = true;\n this.queryPara = queryPara;\n this.relatedPartiesService\n .searchRelatedParties({\n queryPara: queryPara,\n commissionPoolId: this.commissionPoolId,\n })\n .subscribe(resp => {\n if (resp && resp.data && resp.data.queryPara == this.queryPara) {\n this.loading = false;\n this.options = [];\n if (resp.data.accounts && resp.data.accounts.length > 0) {\n this.accounts = resp.data.accounts;\n this.accounts.forEach(item => {\n this.options.push(item);\n });\n searchBox.click();\n } else {\n this.errorMsg = texts.relatedNotFound;\n }\n }\n });\n }\n }\n\n displayFn(value: any) {\n const filterObj = this.options.find(x => x.customerId === value);\n if (filterObj) return filterObj.no + ' [' + filterObj.accountTypeStr + '] ' + filterObj.name;\n return value;\n }\n\n optionSelected(event: any) {\n for (let i = 0; i < this.accounts.length; i++) {\n if (this.accounts[i].customerId == event.option.value) {\n this.account = this.accounts[i];\n break;\n }\n }\n this.errorMsg = '';\n this.warningMsg = '';\n if (this.account && this.account.customerStatus === CustomerStatus.TERMINATED) {\n this.errorMsg = texts.customerTerminated;\n return;\n }\n if (this.account) {\n this.loading = true;\n this.relatedPartiesService.typesValidateAdd(this.commissionPoolId, this.account.accountType, this.summaryInfo).then(res => {\n this.loading = false;\n this.errorMsg = res.msg ? res.msg : '';\n if (!this.errorMsg && this.account.poolAgentChange) {\n this.warningMsg = texts.poolAgentChangeConfirm;\n }\n });\n }\n }\n\n confirm() {\n if (this.errorMsg || !this.account.customerId) {\n return;\n }\n this.confirm2();\n }\n\n confirm2() {\n const param = {\n commissionPoolId: this.commissionPoolId,\n customerId: this.account.customerId,\n updateNextCommYearStart: this.account.updateNextCommYearStart,\n };\n this.loading = true;\n this.relatedPartiesService.addRelatedParties(param).subscribe(resp => {\n this.loading = false;\n if (resp && resp.result == 0) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm) {\n this.agree();\n }\n });\n } else {\n this.errorMsg = resp.message;\n }\n });\n }\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n\n ngOnInit() {\n this.searchChange();\n }\n\n ngOnDestroy() {}\n}\n","\n
    \n
    \n
    \n
    \n {{ 'commission.pool.related.add.title' | lang }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'commission.pool.related.add.introduction2' | lang }} \n {{ this.commissionPoolId }}\n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n {{ option.no }}    [{{ option.accountTypeStr }}]  {{ option.name }}\n \n \n \n \n {{ errorMsg | lang }}\n \n \n \n {{ warningMsg | lang }}\n \n \n
    \n \n {{ 'commission.pool.common.add' | lang }}\n \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport Big from 'big.js';\nimport { RelatedPartiesAddComponent } from './related-parties-add.component';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { UserAgreementPopupComponent } from '../../user-agreement-popup.component';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { CommissionRelatedPartiesService } from 'src/app/core/services/commission/commission-related-parties.service';\nimport { CommissionCommonService } from 'src/app/core/services/commission/commission-common.service';\n\nimport { deepCopy } from 'src/app/utils/copy';\nimport { RELEATE_PAYTY_RELEASE_TAG, texts } from '../pool-info.model';\n\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { AccountCodeExplain, RejoinIntraGroupExplain, ApeDependAccountExplain } from 'src/app/views/commission/summary/related-parties/related-parties.model';\nimport { AccountType } from 'src/app/core/models/enum/account-type.enum';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport moment from 'moment';\n\ninterface Parties {\n mainParty: string;\n id: string;\n accountCode?: string;\n accountName: string;\n accountType: string;\n accountTypeStr: string;\n commencementDate: string;\n firstContributionDate?: string;\n servicingAgents: string;\n rejoin: boolean;\n isRejoinDisable: boolean;\n contAdjPend: string;\n contAdjPendEdit: boolean;\n offset: number;\n firstPcReleaseDate?: string;\n sysAdjustmentDate?: string;\n sysAdjustmentFlag?: string;\n apeDependAccount?: string;\n isApeDepAccEditable?: boolean;\n apeDependAccountError?: boolean;\n apeDependAccountWarning?: boolean;\n earlyBenefitStartDate: string;\n earlyBirdBonusSignal: string;\n lastDate: string;\n}\n\n@Component({\n selector: 'app-related-parties-list',\n templateUrl: './related-parties-list.component.html',\n styleUrls: ['./related-parties-list.component.scss'],\n})\nexport class RelatedPartiesListComponent implements OnInit, OnDestroy {\n @Input() commissionPoolId = '';\n subscription: Subscription;\n private formSubscription: Subscription;\n\n role = PermissionAccess.W;\n permission = PermissionItem.COMM_INFO_MAIN_PARTIES_CONT_ADJ;\n permission2 = PermissionItem.COMM_INFO_MAIN_PARTIES_OTHERS;\n summaryInfo: any = {};\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n lastUpdateTime = '';\n lastUpdateBy = '';\n isEdit = false;\n isConfirm = false;\n loading = false;\n dataSource: Parties[] = [];\n dataSourceOriginal: Parties[] = [];\n mainParty: any;\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n formGroup = new FormGroup({\n account: new FormControl(''),\n });\n\n get account() {\n return this.formGroup.get('account') as FormControl;\n }\n\n get quickSearchDisabled() {\n return !this.account.value;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n private relatedPartiesService: CommissionRelatedPartiesService,\n private commonService: CommissionCommonService,\n private router: Router,\n private langService: CdsLangService\n ) {\n this.subscription = commonService.summary$.subscribe(summaryInfo => {\n this.summaryInfo = summaryInfo;\n });\n this.formSubscription = this.account.valueChanges.subscribe(value => {\n if (!value) {\n this.getList();\n }\n });\n }\n\n ngOnInit(): void {\n this.commonService.applySummaryInfo(null);\n this.getList();\n }\n\n quickSearch() {\n if (this.quickSearchDisabled) {\n return;\n }\n this.pageCount.current = 0;\n this.getList();\n }\n\n sss(id: string | undefined) {\n this.router.navigate(['/employer/profile-detail'], {\n queryParams: { id: id },\n });\n }\n\n addNew() {\n const popupRef: MatDialogRef = this.cdsPopup.open(RelatedPartiesAddComponent, {\n size: 'lg',\n data: {\n type: null,\n commissionPoolId: this.commissionPoolId,\n summaryInfo: this.summaryInfo,\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm) {\n this.getList();\n this.commonService.announceRelatedParties(null);\n }\n });\n }\n\n edit() {\n this.isEdit = true;\n this.isConfirm = false;\n }\n\n pendChange(event: any, i: number) {\n const value = event.target.value;\n event.target.value = new Big(value ? value : 0).toFixed(2);\n this.dataSource[i].contAdjPend = event.target.value;\n }\n\n apeDependAccountChange(event: any, i: number) {\n this.dataSource[i].apeDependAccountWarning = false;\n this.dataSource[i].apeDependAccountError = false;\n const relatedParty = this.dataSource[i];\n const value = event.target.value.trim();\n if (value && value !== this.mainParty.accountCode) {\n this.dataSource[i].apeDependAccountError = true;\n }\n if (relatedParty.sysAdjustmentDate !== this.mainParty.sysAdjustmentDate) {\n this.dataSource[i].apeDependAccountWarning = true;\n }\n this.dataSource[i].apeDependAccount = event.target.value;\n }\n\n formChange(input: string, item: any, index: number) {\n switch (input) {\n case 'rejoin':\n this.rejoinConfirm(item.rejoin, index);\n break;\n }\n }\n\n rejoinConfirm(b: boolean, index: number) {\n if (!this.isEdit || this.isConfirm) {\n return;\n }\n if (!b) {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.rejoinConfirm,\n cancel: texts.no,\n continue: texts.yes,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm && confirm.agree) {\n this.dataSource[index].rejoin = b;\n } else {\n this.dataSource[index].rejoin = !b;\n }\n });\n }\n }\n\n reset() {\n this.dataSource = deepCopy(this.dataSourceOriginal);\n }\n\n cancelEdit() {\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, {\n data: {\n message: texts.cancelMsg,\n cancel: texts.cancel,\n continue: texts.continue,\n type: 'confirm',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.dataSource = deepCopy(this.dataSourceOriginal);\n this.isEdit = false;\n }\n });\n }\n backToEdit() {\n this.isConfirm = false;\n }\n\n get saveDisable() {\n return this.dataSource.some(item => item.apeDependAccountError);\n }\n\n save() {\n if (this.saveDisable) {\n return;\n }\n this.isConfirm = true;\n this.dataSource.forEach(item => {\n item.contAdjPend = item.contAdjPend ? new Big(item.contAdjPend).toFixed(2) : parseFloat('0').toFixed(2);\n });\n }\n\n confirm() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n const dataSource: Parties[] = this.dataSource;\n const list: any[] = [];\n dataSource.forEach(item => {\n const i = {\n id: item.id,\n commissionPoolId: this.commissionPoolId,\n rejoinIntraGroup: item.rejoin,\n contAdjPend: item.contAdjPend,\n apeDependAccount: item.apeDependAccount,\n };\n list.push(i);\n });\n this.relatedPartiesService.editRelatedParties(list).subscribe(resp => {\n this.loading = false;\n let popData, result: number;\n if (resp && resp.data && resp.result == 0) {\n popData = {\n message: texts.alertSuccessMsg,\n continue: texts.alertSuccessContinue,\n type: 'alert',\n };\n result = resp.result;\n } else {\n popData = {\n message: texts.alertFailedMsg,\n continue: texts.alertFailedContinue,\n type: 'alert',\n params: { respMsg: resp.message },\n };\n result = resp.result;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(UserAgreementPopupComponent, { data: popData });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n if (result == 0) {\n this.getList();\n this.commonService.announceRelatedParties(null);\n this.isEdit = false;\n }\n }\n });\n });\n }\n\n getList() {\n const params: any = {\n commissionPoolId: this.commissionPoolId,\n page: this.pageCount.current - 1,\n size: 5,\n };\n if (this.account.value) {\n params.accountCode = this.account.value;\n }\n this.loading = true;\n this.relatedPartiesService.getRelatedList(params).then(res => {\n this.loading = false;\n if (!this.mainParty) {\n this.mainParty = res.list.find((item: Parties) => item.mainParty);\n }\n this.dataSource = res.list.map((item: Parties) => {\n item.isApeDepAccEditable = true;\n const relatedPartyDate = moment(item.commencementDate);\n const mainPartyDate = moment(this.mainParty.commencementDate);\n if (relatedPartyDate.year() !== mainPartyDate.year() || relatedPartyDate.month() !== mainPartyDate.month()) {\n item.isApeDepAccEditable = false;\n }\n if (item.sysAdjustmentDate === RELEATE_PAYTY_RELEASE_TAG) {\n item.isApeDepAccEditable = false;\n }\n if (item.mainParty) {\n item.isApeDepAccEditable = false;\n }\n if (item.apeDependAccount) {\n item.isApeDepAccEditable = false;\n }\n return item;\n });\n this.pageCount = {\n current: res.number + 1,\n count: res.totalPages,\n };\n this.lastUpdateTime = res.lastUpdateTime;\n this.lastUpdateBy = res.lastUpdateBy;\n this.dataSourceOriginal = deepCopy(this.dataSource);\n\n this.dataSource.forEach(item => {\n if (item.accountType == AccountType.MPF_SEP_AGENT) {\n document.getElementsByTagName('body')[0].style.setProperty('--tableFixed', '500px');\n }\n });\n });\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getList();\n }\n\n accountExplain() {\n this.langService.addLangEntries({\n alertMsg: {\n en: AccountCodeExplain,\n zh: AccountCodeExplain,\n },\n });\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: 'alertMsg',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n rejoinIntraGroupExplain() {\n this.langService.addLangEntries({\n alertMsg: {\n en: RejoinIntraGroupExplain,\n zh: RejoinIntraGroupExplain,\n },\n });\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: 'alertMsg',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n apeDependAccountExplain() {\n this.langService.addLangEntries({\n alertMsg: {\n en: ApeDependAccountExplain,\n zh: ApeDependAccountExplain,\n },\n });\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: 'alertMsg',\n continue: texts.alertSuccessContinue,\n type: 'alert',\n actionRight: true,\n },\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n this.formSubscription.unsubscribe();\n }\n}\n","
    \n
    \n {{ 'commission.pool.related.list.title' | lang }} \n
    \n \n
    \n {{ 'commission.pool.common.edit' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.common.cancelEdit' | lang }}\n
    \n
    \n
    \n\n
    \n {{ 'commission.pool.related.list.lastUpdate' | lang }}\n {{ lastUpdateTime | ssmsDateTime }}(HKT),by {{ lastUpdateBy }}\n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n {{ 'common.quickSearch' | lang }} \n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    {{ 'commission.pool.related.list.th.mainParty' | lang }}
    \n
    \n
    \n
    \n {{ 'commission.pool.related.list.th.accountCode' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'commission.pool.related.list.th.type' | lang }}\n
    \n
    \n \n \n
    \n {{ item.accountCode }}\n
    \n
    -
    \n
    \n
    {{ item.accountTypeStr }}
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    {{ 'commission.pool.related.list.th.name' | lang }}
    \n
    \n
    {{ 'commission.pool.related.list.th.commencementDate' | lang }}
    \n
    \n
    {{ 'commission.pool.related.list.th.firstContributionDate' | lang }}
    \n
    \n
    {{ 'commission.pool.related.list.th.servicingAgents' | lang }}
    \n
    \n
    \n {{ 'commission.pool.related.list.th.rejoinIntraGroup' | lang }}\n
    \n \n
    \n
    \n
    \n
    {{ 'commission.pool.related.list.th.contAdjPend' | lang }}
    \n
    \n
    {{ 'commission.pool.related.list.th.offset' | lang }}
    \n
    \n
    {{ 'commission.pool.related.list.th.firstPcReleaseDate' | lang }}
    \n
    \n
    \n {{ 'commission.pool.related.list.th.apeDependAccount' | lang }}\n
    \n \n
    \n
    \n
    \n
    {{ 'commission.pool.related.list.th.sysAdjustmentDate' | lang }}
    \n
    \n
    {{ 'commission.pool.related.list.th.lastDate' | lang }}
    \n
    \n
    \n {{ item.accountName }}\n
    \n
    \n {{ item.commencementDate | ssmsDate }}\n \n {{ item.firstContributionDate | ssmsDate }}\n \n {{ item.servicingAgents }}\n \n \n \n \n {{ item.contAdjPend }}\n \n \n \n /{{ item.offset }}\n \n {{ item.firstPcReleaseDate | ssmsDate }}\n \n \n {{ item.apeDependAccount }}\n \n \n
    \n \n {{ 'commission.pool.related.list.th.apeDependAccountError' | lang }}\n \n
    \n
    \n \n {{ 'commission.pool.related.list.th.apeDependAccountWarning' | lang }}\n \n
    \n
    \n {{ item.sysAdjustmentDate | ssmsDate }}\n \n {{ item.lastDate | ssmsDate }}\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n
    \n \n
    \n {{ 'commission.pool.common.addNew' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'commission.pool.common.reset' | lang }}\n {{ 'commission.pool.common.save' | lang }}\n
    \n
    \n {{ 'commission.pool.common.backToEdit' | lang }} \n {{ 'commission.pool.common.confirm' | lang }} \n
    \n
    \n
    \n","export const AccountCodeExplain =\n \"
    Employer / Member Account Code

    \" +\n 'This field is represented as Employer Account Code when the account type is
    ' +\n '• MPF-ER
    ' +\n '• ORSO-ER
    ' +\n '• MACAU-ER(PPS)
    ' +\n '• MACAU-ER(CPF)
    ' +\n '
    ' +\n 'This field is represented as Member Account Code when the account type is
    ' +\n '• MPF-SEP
    ' +\n '• MPF-SEP(AGENT)
    ' +\n '• MPF-FRC
    ' +\n '• MPF-TVC
    ' +\n '• MPF-PAP
    ' +\n '• MACAU-PAP
    ' +\n '• MACAU-IVC

    ' +\n 'No member account code of the MPF-ER/ORSO-ER/MACAU-ER(CPF)/MACAU-ER(PPS) will be under the Related Parties of the Commission Pool
    ';\n\nexport const RejoinIntraGroupExplain = `\n
    Once updated to Rejoin / Intra Group, it is not allowed to untick the group as NB Account.
    \n
    If user need IT patch the group back to NB Account, please consider this account setup within first year or not. If this account is setup within first year, please contact Finance team to special handling on the System Adjustment APE.
    \n `;\n\nexport const ApeDependAccountExplain = `\n
    This field is ONLY applied to the related party with the SAME commencement month of the main party and it isn’t subjected to the case which has processed System Annualize APE adjustment before.
    \n
    After having inputted the account number of Main party into this field, the Annualize APE will be referred to the Main party’s first contribution date.
    \n
    Only allow to remove the inputted “APE Depend Account” on the related party if this party is moved to another pool.
    \n `;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject } from '@angular/core';\nimport { MatDialogRef, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-user-agreement-popup',\n templateUrl: './user-agreement-popup.component.html',\n styleUrls: ['./user-agreement-popup.component.scss'],\n})\nexport class UserAgreementPopupComponent {\n disagreeButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n agreeButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n message: string;\n cancel: string;\n continue: string;\n type: string;\n params: any;\n actionRight: boolean;\n }\n ) {\n if (data.params) this.params = data.params;\n }\n params = {};\n\n agree() {\n this.dialogRef.close({ agree: true });\n }\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n}\n","\n {{ data.title | lang : params }}\n \n
    \n
    \n \n {{ data.continue | lang }} \n {{ data.cancel | lang }} \n \n
    \n\n\n {{ data.title | lang : params }}\n \n
    \n
    \n
    \n \n {{ data.continue | lang }} \n \n
    \n
    \n\n\n \n\n","import { AfterViewInit, Component, Input, OnInit, Type, ViewChild } from '@angular/core';\nimport { WidgetHostDirective } from 'src/app/shared/directive/widgetHost/widget-host.directive';\nimport { WidgetsQuickLinksComponent } from '../widgets/widgets-quick-links/widgets-quick-links.component';\nimport { WidgetsProductionCreditComponent } from '../widgets/widgets-production-credit/widgets-production-credit.component';\nimport { WidgetsPendingIffComponent } from '../widgets/widgets-pending-iff/widgets-pending-iff.component';\nimport { WidgetsCampaignResultComponent } from '../widgets/widgets-campaign-result/widgets-campaign-result.component';\nimport { WidgetsCampaignOverviewComponent } from '../widgets/widgets-campaign-overview/widgets-campaign-overview.component';\nimport { WidgetsProductionCreditByDistrictComponent } from '../widgets/widgets-production-credit-by-district/widgets-production-credit-by-district.component';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n@Component({\n selector: 'app-dynamic-content',\n templateUrl: './dynamic-content.component.html',\n styleUrls: ['./dynamic-content.component.scss'],\n})\nexport class DynamicContentComponent implements OnInit, AfterViewInit {\n @Input() componentName!: string;\n @Input() data: any;\n @ViewChild(WidgetHostDirective, { static: true }) appWidgetHost!: WidgetHostDirective;\n\n private componentMap: { [key: string]: Type } = {\n WidgetsQuickLinksComponent: WidgetsQuickLinksComponent,\n WidgetsProductionCreditComponent: WidgetsProductionCreditComponent,\n WidgetsPendingIffComponent: WidgetsPendingIffComponent,\n WidgetsCampaignResultComponent: WidgetsCampaignResultComponent,\n WidgetsCampaignOverviewComponent: WidgetsCampaignOverviewComponent,\n WidgetsProductionCreditByDistrictComponent: WidgetsProductionCreditByDistrictComponent,\n };\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n this.loadComponent();\n }\n\n loadComponent() {\n const viewContainerRef = this.appWidgetHost.viewContainerRef;\n viewContainerRef.clear();\n\n const componentRef = viewContainerRef.createComponent(this.componentMap[this.componentName]);\n componentRef.instance.data = this.data;\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { DynamicContentComponent } from './dynamic-content.component';\n\n@NgModule({\n declarations: [DynamicContentComponent],\n exports: [DynamicContentComponent],\n imports: [CommonModule, SharedModule],\n})\nexport class DynamicContentModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-close-popup',\n templateUrl: './close-popup.component.html',\n styleUrls: ['./close-popup.component.scss'],\n})\nexport class ClosePopupComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n message: string;\n }\n ) {}\n\n ngOnInit(): void {}\n\n close() {\n this.dialogRef.close({\n agree: true,\n });\n }\n}\n","\n
    Follow-Up / Reject Reason
    \n \n
    \n {{ data.message }}\n
    \n
    \n \n {{ 'common.close' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { finalize } from 'rxjs';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { dateValidator, numberStringValidator } from 'src/app/shared/validators/validators';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { findOptionLabelByValue } from 'src/app/utils/utils';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport {\n EmpfWorkflow,\n EmpfWorkflowRequest,\n WorkflowTypeE,\n workflowStatusCodeMapObj,\n workflowStatusCodeOptions,\n workflowTypeOptions,\n} from '../employee/employee';\nimport { EmployeeService } from '../employee/employee.service';\nimport { ClosePopupComponent } from './close-popup/close-popup.component';\nimport { EmployerService } from '../employer/employer.service';\nimport { WorkflowDTO } from '../employer/employer';\n\n@Component({\n selector: 'app-empf-workflow',\n templateUrl: './empf-workflow.component.html',\n styleUrls: ['./empf-workflow.component.scss'],\n})\nexport class EmpfWorkflowComponent implements OnInit, OnChanges {\n @Input() id?: string;\n @Input() payrollGroupId?: string;\n @Input() isEr = false;\n\n dataSource: WorkflowDTO[] = [];\n\n workflowStatusCodeMapObj = workflowStatusCodeMapObj;\n\n originColumnsConfig: ColumnConfig[] = [];\n\n columnsConfig = deepCopy(this.originColumnsConfig);\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n numberOfElements = 0;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n showDatePicker = true;\n\n isLoading = false;\n\n dataLoading = false;\n\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n get workflowReferenceNoControl() {\n return this.form?.get('workflowReferenceNo');\n }\n\n get paymentSubmissionReferenceNoControl() {\n return this.form?.get('paymentSubmissionReferenceNo');\n }\n\n get typeControl() {\n return this.form?.get('type');\n }\n\n get statusCodeControl() {\n return this.form?.get('statusCode');\n }\n\n get memberAccountCodeControl() {\n return this.form?.get('memberAccountCode');\n }\n\n get createDateControl() {\n return this.form?.get('createDate');\n }\n\n typeConfig: CdsDropdownConfig = {\n label: 'Type',\n placeholder: 'Select Type',\n options: workflowTypeOptions,\n };\n\n statusCodeConfig: CdsDropdownConfig = {\n label: 'Status Code',\n placeholder: 'Select Status Code',\n options: workflowStatusCodeOptions,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n tempSeardhParams: EmpfWorkflowRequest = {\n page: 1,\n size: 10,\n };\n\n constructor(\n private employeeService: EmployeeService,\n private employerService: EmployerService,\n private toastAlert: ToastAlertService,\n private router: Router,\n private route: ActivatedRoute,\n private cdsPopup: CdsPopupService\n ) {}\n\n ngOnInit(): void {\n // this.initForm();\n this.originColumnsConfig = this.isEr\n ? [\n {\n key: 'workflowReferenceNo',\n title: 'Workflow Reference No.',\n // sort: SortMode.DEFAULT,\n sticky: true,\n },\n {\n key: 'memberAccountCode',\n title: 'Member Account Code',\n },\n { key: 'memberName', title: 'Member Name' },\n { key: 'memberEmpfId', title: 'Member eMPF ID' },\n { key: 'statusCode', title: 'Status Code' },\n { key: 'type', title: 'Type' },\n { key: 'createDate', title: 'Creation Date' },\n { key: 'followUpRejectDate', title: 'Follow-Up / Reject Date' },\n { key: 'followupRejectReason', title: 'Follow-Up / Reject Reason' },\n ]\n : [\n {\n key: 'workflowReferenceNo',\n title: 'Workflow Reference No.',\n // sort: SortMode.DEFAULT,\n sticky: true,\n },\n { key: 'statusCode', title: 'Status Code' },\n { key: 'type', title: 'Type' },\n { key: 'createDate', title: 'Creation Date' },\n { key: 'followUpRejectDate', title: 'Follow-Up / Reject Date' },\n { key: 'followupRejectReason', title: 'Follow-Up / Reject Reason' },\n ];\n this.columnsConfig = deepCopy(this.originColumnsConfig);\n }\n\n initForm(workflowReferenceNo = '') {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup({\n workflowReferenceNo: new FormControl(workflowReferenceNo, [Validators.maxLength(35)]),\n // paymentSubmissionReferenceNo: new FormControl('', [Validators.maxLength(50)]),\n type: new FormControl(''),\n statusCode: new FormControl(''),\n memberAccountCode: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n createDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n });\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id']?.currentValue && changes['id']?.currentValue !== changes['id']?.previousValue) {\n const workflowReferenceNo = this.route.snapshot.queryParams['workflowReferenceNo'] || '';\n this.initForm(workflowReferenceNo);\n if (workflowReferenceNo) {\n this.resetButtonDisabled = false;\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n }\n this.getData();\n }\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getTempSearchParams() {\n const params: EmpfWorkflowRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n return params;\n }\n\n getRequestParams() {\n const params: EmpfWorkflowRequest = {\n ...this.tempSeardhParams,\n id: this.id || '',\n // payrollGroupId: this.payrollGroupId || '',\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n if (params.createDate) {\n params.createDate = this.dateTrans(params.createDate);\n }\n\n if (!params.sort) {\n // params.sort = 'createDate,desc';\n }\n console.log('>>>', params);\n return params;\n }\n\n getData() {\n this.isLoading = true;\n\n const observable = this.isEr ? this.employerService.getEmpfWorkflowList : this.employeeService.getEmpfWorkflowList;\n\n observable(this.getRequestParams())\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.numberOfElements = res.data?.totalElements || 0;\n this.dataSource = res.data?.content || [];\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data?.totalElements,\n };\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.resetButtonDisabled = false;\n\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.getData();\n }\n\n reset() {\n if (this.resetButtonConfig.disabled) {\n return;\n }\n this.resetButtonDisabled = true;\n\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.tempSeardhParams = { page: 1, size: 10 };\n\n this.columnsConfig = deepCopy(this.originColumnsConfig);\n\n this.initForm();\n\n this.clearUrlParams();\n\n // reload datepicker dom to clear the selected date\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.getData();\n });\n }\n\n clearUrlParams() {\n const urlTree = this.router.parseUrl(this.router.url);\n urlTree.queryParams['tab'] = '';\n this.router.navigateByUrl(urlTree);\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n\n // if (event.column) {\n // this.tempSeardhParams.sort = `${event.column.key === 'workflowReferenceNo' ? 'rcv_ref_no' : event.column.key},${event.column.sort}`;\n // } else {\n // delete this.tempSeardhParams.sort;\n // }\n\n this.getData();\n }\n\n typeRender(type: WorkflowTypeE) {\n if (!type) return '';\n return findOptionLabelByValue(type, workflowTypeOptions);\n }\n\n toDetail(item: EmpfWorkflow) {\n this.router.navigate(['/employee/profile'], {\n queryParams: {\n md5: item.md5,\n },\n });\n }\n\n reasonPopup(message: string) {\n this.cdsPopup.open(ClosePopupComponent, {\n size: 'sm',\n data: {\n message,\n },\n });\n }\n}\n","
    \n
    \n
    \n {{ 'er.empf-workflow' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.searchRecord' | lang }}\n
    \n
    \n
    \n \n\n
    \n Max length is 35\n
    \n
    \n \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n\n
    \n Max length is 15\n\n {{ memberAccountCodeControl?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ numberOfElements | number }} records
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n {{ element['memberAccountCode'] }}\n
    \n \n
    \n
    \n
    \n\n \n {{ element['memberFirstName'] }} {{ element['memberLastName'] }}\n \n\n \n \n \n\n \n {{ typeRender | fn : element['type'] }}\n \n\n \n {{ element['createDate'] | ssmsDate }}\n \n\n \n {{ element['followupRejectDate'] | ssmsDate }}\n \n\n \n {{ element['followupRejectReason'] || '-' }}\n \n \n
    \n
    \n\n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { EmpfWorkflowComponent } from './empf-workflow.component';\nimport { ClosePopupComponent } from './close-popup/close-popup.component';\n\n@NgModule({\n declarations: [EmpfWorkflowComponent, ClosePopupComponent],\n exports: [EmpfWorkflowComponent, ClosePopupComponent],\n imports: [CommonModule, SharedModule],\n})\nexport class EmpfWorkflowModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\n@Component({\n selector: 'app-address-type-definition-popup',\n templateUrl: './address-type-definition-popup.component.html',\n styleUrls: ['./address-type-definition-popup.component.scss'],\n})\nexport class AddressTypeDefinitionPopupComponent implements OnInit {\n buttonConfig: CdsButtonConfig = { size: 'sm' };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'type',\n title: '',\n },\n {\n key: 'definition',\n title: 'Definition',\n },\n ];\n\n dataSource = [\n {\n type: 'CORRESP',\n definition: 'Correspondence Address',\n },\n {\n type: 'RESIDENTIAL',\n definition: 'Residential Address',\n },\n {\n type: 'REGISTERED',\n definition: 'Registered Office Address ',\n },\n {\n type: 'BUSINESS',\n definition: 'Business Address ',\n },\n {\n type: 'OVERSEAS',\n definition: 'Overseas Settlement Address',\n },\n {\n type: 'SALES_PROPERTY',\n definition: 'Address of the Sale of Property',\n },\n ];\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n close() {\n this.dialogRef.close();\n }\n}\n","\n \n
    Address Type Definition:
    \n\n \n
    \n\n \n {{ 'commission.pool.common.alertSuccessContinue' | lang }}\n \n
    \n","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AgentInfo, AgentInfoDetail, agentStatusMapObj } from '../../employer/employer';\n\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-agent-info',\n templateUrl: './agent-info.component.html',\n styleUrls: ['./agent-info.component.scss'],\n})\nexport class AgentInfoComponent implements OnInit, OnChanges {\n servicingAgentData: AgentInfoDetail[] = [];\n\n commissionAgentData: AgentInfoDetail[] = [];\n\n delegatedAgentData: AgentInfoDetail[] = [];\n\n @Input() id = '';\n\n isLoading = false;\n\n agentStatusMapObj = agentStatusMapObj;\n\n data: AgentInfo = {\n servicingAgent: [],\n commissionAgent: [],\n delegatedAgent: [],\n };\n\n constructor(public service: EmployeeService, private toastAlert: ToastAlertService, private route: ActivatedRoute) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n this.getDetail();\n }\n }\n\n ngOnInit(): void {}\n\n getDetail() {\n if (!this.id) return;\n this.isLoading = true;\n this.service\n .gePolicyAgentInfo(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.data = res.data;\n this.servicingAgentData = this.data.servicingAgent || [];\n this.commissionAgentData = this.data.commissionAgent || [];\n this.delegatedAgentData = this.data.delegatedAgent || [];\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n titleGen(data: AgentInfoDetail) {\n return `${data.agentCode ? data.agentCode : ''} ${data.agentName ? data.agentName : ''} ${data.agentNameChi ? data.agentNameChi : ''}`;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","\n\n
    \n
    \n {{ 'ee.opt.servicing-agent-information' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n\n\n\n\n\n \n \n \n \n \n \n \n\n\n\n
    \n
    \n {{ 'ee.opt.commission-agent-information' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n\n \n \n \n \n \n \n \n \n \n
    \n\n\n
    \n
    \n {{ 'ee.opt.delegated-agent-information' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n\n \n \n \n \n \n \n \n \n \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport {\n ContributionAmount,\n ContributionAmountType,\n ContributionDetails,\n ContributionDetailsCategory,\n ContributionDetailsCategoryE,\n} from '../../employer/employer';\n\n@Component({\n selector: 'app-amount-table',\n templateUrl: './amount-table.component.html',\n styleUrls: ['./amount-table.component.scss'],\n})\nexport class AmountTableComponent implements OnInit, OnChanges {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() contributionTableDataSource: any[] = [];\n @Input() contributionDetails?: ContributionDetails;\n\n contributionTablDisplayedColumns: string[] = [];\n\n showTable = false;\n\n constructor(private cdsPopup: CdsPopupService) {}\n\n ngOnInit(): void {\n this.genDisaplayedColums();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['contributionTableDataSource'] !== undefined &&\n changes['contributionTableDataSource'].currentValue !== undefined &&\n changes['contributionTableDataSource'].currentValue\n ) {\n this.genDisaplayedColums();\n }\n }\n\n genDisaplayedColums() {\n this.showTable = false;\n this.contributionTablDisplayedColumns = [];\n\n this.contributionTableDataSource.forEach(lineData => {\n Object.keys(lineData).forEach(key => {\n if (key === 'category' || key === 'surcharge' || lineData[key as keyof ContributionAmount] === 0 || !!lineData[key as keyof ContributionAmount]) {\n if (this.contributionTablDisplayedColumns.indexOf(key) < 0) {\n this.contributionTablDisplayedColumns.push(key);\n }\n }\n });\n });\n //contributionTableDataSource如果里面的值为null赋值为0\n this.contributionTableDataSource.forEach(lineData => {\n this.contributionTablDisplayedColumns.forEach(key => {\n //lineData所有属性如果为null就赋值为0\n if (lineData[key as keyof ContributionAmount] === null && lineData[key as keyof ContributionAmount] !== undefined) {\n lineData[key as keyof ContributionAmount] = 0;\n }\n });\n });\n //把this.contributionTablDisplayedColumns里面的surcharge元素放在数组最后一个\n const index = this.contributionTablDisplayedColumns.indexOf('surcharge');\n if (index > -1) {\n this.contributionTablDisplayedColumns.splice(index, 1);\n this.contributionTablDisplayedColumns.push('surcharge');\n }\n\n setTimeout(() => {\n this.showTable = true;\n });\n }\n\n getCategoryTitle(category: ContributionDetailsCategory) {\n if (!category) {\n return '';\n }\n return ContributionDetailsCategoryE[category];\n }\n\n canClick(amount: number | string) {\n if (amount === '0' || !amount) {\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n popupDetail(category: ContributionDetailsCategory, type: ContributionAmountType, amount: number) {\n // console.log(category, type, amount);\n }\n}\n","
    \n \n \n \n \n {{ getCategoryTitle | fn : element.category | lang }}\n \n\n \n \n ERMC\n {{ element.ermc | number }}\n \n\n \n \n EEMC\n {{ element.eemc | number }}\n \n\n \n \n ERVC\n {{ element.ervc | number }}\n \n\n \n \n EEVC\n {{ element.eevc | number }}\n \n\n \n \n ERVC2\n {{ element.ervc2 | number }}\n \n\n \n \n ERVC3\n {{ element.ervc3 | number }}\n \n\n \n \n ERVC4\n {{ element.ervc4 | number }}\n \n\n \n \n ERVC5\n {{ element.ervc5 | number }}\n \n\n \n \n ERVC6\n {{ element.ervc6 | number }}\n \n\n \n \n ERVC7\n {{ element.ervc7 | number }}\n \n\n \n \n EEVC2\n {{ element.eevc2 | number }}\n \n\n \n \n TVC\n {{ element.tvc | number }}\n \n\n \n \n SVC\n {{ element.svc | number }}\n \n\n \n \n SEPMC\n {{ element.sepmc | number }}\n \n\n \n \n SEPVC\n {{ element.sepvc | number }}\n \n\n \n \n ERMC/FSER\n {{ element.ermcFser | number }}\n \n\n \n \n EEMC/FSEE\n {{ element.eemcFsee | number }}\n \n\n \n \n ERVC/PSER\n {{ element.ervcPser | number }}\n \n\n \n \n EEVC/PSEE\n {{ element.eevcPsee | number }}\n \n\n \n \n Surcharge\n {{ element.surcharge | number }}\n \n\n \n \n \n
    \n","import { deepCopy } from 'src/app/utils/copy';\nimport { FormControl } from '@angular/forms';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport moment from 'moment';\nimport { DateTime } from 'luxon';\nimport { ContributionAmount, ContributionDetails, EeBillReference } from '../../employer/employer';\nimport { EmployerService } from '../../employer/employer.service';\n\n@Component({\n selector: 'app-bill-reference',\n templateUrl: './bill-reference.component.html',\n styleUrls: ['./bill-reference.component.scss'],\n})\nexport class BillReferenceComponent implements OnInit, OnChanges {\n @Input() contributionTableDataSource: ContributionAmount[] = [];\n @Input() contributionDetails?: ContributionDetails;\n @Input() isReset = false;\n @Output() runDateChange = new EventEmitter();\n\n isLoading = false;\n\n data: EeBillReference[] = [];\n\n iconConfig: CdsIconConfig = {\n color: '#00A758',\n };\n\n public runDateFormControl: FormControl = new FormControl('');\n\n constructor(private route: ActivatedRoute, private router: Router, public service: EmployerService, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {\n this.initFormControl();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['isReset'] !== undefined && changes['isReset'].currentValue !== undefined && changes['isReset'].currentValue) {\n this.runDateFormControl = new FormControl('');\n }\n\n if (\n changes['contributionDetails'] !== undefined &&\n changes['contributionDetails'].currentValue !== undefined &&\n changes['contributionDetails'].currentValue.billReferenceNos !== changes['contributionDetails'].previousValue?.billReferenceNos\n ) {\n this.data = (this.contributionDetails?.billReferenceNos as EeBillReference[]) || [];\n }\n }\n\n initFormControl() {\n this.runDateFormControl = new FormControl('', [\n dateValidator('create.dateError', this.contributionDetails?.contributionPeriodStartDate, this.contributionDetails?.contributionPeriodEndDate),\n ]);\n }\n\n toDetail(paymentSubmissionReferenceNo: string, paymentReferenceNo?: string) {\n this.router.navigate(['/employer/payment-record-detail'], {\n queryParams: {\n ...this.route.snapshot.queryParams,\n paymentSubmissionReferenceNo,\n paymentReferenceNo,\n },\n });\n }\n\n onDateChange(date: string) {\n if (this.runDateFormControl.valid) {\n this.runDateChange.emit(date);\n }\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getContributionDetails(data: ContributionDetails) {\n const details: ContributionDetails = deepCopy(data);\n details.contributionPeriodStartDate = this.contributionDetails?.contributionPeriodStartDate;\n details.contributionPeriodEndDate = this.contributionDetails?.contributionPeriodEndDate;\n return details;\n }\n\n tranToJsDate(date?: string) {\n if (!date) {\n return new Date();\n }\n return DateTime.fromFormat(date, 'yyyy-MM-dd').toJSDate();\n }\n\n getStringList(value: string) {\n let list: string[] = [];\n if (value) {\n list = value.split(',');\n }\n return list;\n }\n}\n","
    \n
    \n By Bill Reference No.\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n \n Run Date:\n {{ item.runDate | ssmsDate }}\n
    \n
    \n
    \n
    Billing Status Type
    \n
    {{ item.billingStatusType }}
    \n
    \n
    \n
    Remittance Statement Received Date
    \n
    {{ item.remittanceStatementReceivedDate | ssmsDate }}
    \n
    \n
    \n
    Receipt Reference No.
    \n
    \n \n {{ number }}, \n \n
    \n
    \n
    \n
    Payment Submission Refeernce No.
    \n
    \n \n {{ number }}, \n \n
    \n
    \n
    \n
    Workflow Reference No.
    \n
    \n \n {{ number }}, \n \n
    \n
    \n
    \n
    \n
    \n \n View payment transaction\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { finalize } from 'rxjs';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CampaignInformationRequest } from '../employee';\nimport { EmployeeService } from '../employee.service';\nimport moment from 'moment';\nimport { Campaign, CampaignSearchRequest, CampaignTypeOptions, agentCommunicationOptions, productTypeOptions } from '../../campaign/campaign';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { findOptionLabelByValue } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-campaign-information',\n templateUrl: './campaign-information.component.html',\n styleUrls: ['./campaign-information.component.scss'],\n})\nexport class CampaignInformationComponent implements OnInit, OnChanges {\n @Input() md5 = '';\n @Input() inPolicy = false;\n\n isLoading = false;\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n dataSource: Campaign[] = [];\n\n baseColumnsConfig: ColumnConfig[] = [\n {\n key: 'campaignId',\n title: 'Campaign ID',\n sticky: true,\n },\n {\n key: 'campaignName',\n title: 'Campaign Name',\n },\n {\n key: 'campaignDescription',\n title: 'Campaign Description',\n },\n {\n key: 'campaignOwner',\n title: 'Campaign Owner',\n },\n {\n key: 'campaignPeriod',\n title: 'Campaign Period',\n },\n {\n key: 'campaignType',\n title: 'Campaign Type',\n },\n {\n key: 'productTypes',\n title: 'Product Type',\n },\n {\n key: 'customerCommunicationChannel',\n title: 'Customer Communication Channel',\n },\n {\n key: 'customerPreferenceLanguage',\n title: 'Customer Preference Language',\n },\n {\n key: 'mbAcctCd',\n title: 'Member Account Code',\n },\n {\n key: 'policyType',\n title: 'Policy Type',\n },\n {\n key: 'agentCommunication',\n title: 'Agent Communication Channel',\n },\n ];\n\n columnsConfigInProfile: ColumnConfig[] = [\n ...this.baseColumnsConfig,\n {\n key: 'assignedAgent',\n title: 'Assigned Agent',\n },\n {\n key: 'messageDelivered',\n title: 'Message Delivered',\n },\n {\n key: 'opened',\n title: 'Opened',\n },\n {\n key: 'customerFirstResponseDate',\n title: 'Customer First Response Date',\n },\n {\n key: 'customerLastResponseDate',\n title: 'Customer LastResponse Date',\n },\n ];\n\n columnsConfigInPolicy: ColumnConfig[] = [\n ...this.baseColumnsConfig,\n {\n key: 'workbasket',\n title: 'Workbasket',\n },\n {\n key: 'agentSam',\n title: 'Agent Sam',\n },\n {\n key: 'messageDelivered',\n title: 'Message Delivered',\n },\n {\n key: 'opened',\n title: 'Opened',\n },\n ];\n\n columnsConfig: ColumnConfig[] = [];\n\n productTypeOptions = productTypeOptions;\n agentCommunicationOptions = agentCommunicationOptions;\n CampaignTypeOptions = CampaignTypeOptions;\n\n findOptionLabelByValue = findOptionLabelByValue;\n\n constructor(private service: EmployeeService, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {\n this.columnsConfig = this.inPolicy ? this.columnsConfigInPolicy : this.columnsConfigInProfile;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['md5'].currentValue !== undefined && changes['md5'].currentValue !== changes['md5'].previousValue) {\n this.loadTable();\n }\n }\n\n loadTable() {\n const params: CampaignSearchRequest = this.getRequestParams();\n this.isLoading = true;\n\n this.service\n .getCampaignMemberList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n // this.numberOfElements = data.data.totalElements;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams() {\n const params: CampaignInformationRequest = {\n md5: this.md5,\n pageChannel: 'ee',\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n return params;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable();\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n dateTransToDisplay(date: string) {\n if (date) {\n return moment(date, 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n\n return date;\n }\n\n listValueRender(list: any[], options: CdsOption[]) {\n if (!list) return '';\n return list\n .map(item => {\n return findOptionLabelByValue(item, options);\n })\n .join(' & ');\n }\n\n jumpTo(url: string) {\n window.open(url, '_blank');\n }\n}\n","
    \n {{ 'ee.opt.Customer-Campaign' | lang }}\n
    \n
    \n \n \n \n
    \n {{ dateTransToDisplay | fn : element.campaignPeriodFrom }} - {{ dateTransToDisplay | fn : element.campaignPeriodTo }}\n
    \n
    \n\n \n
    \n {{ findOptionLabelByValue | fn : element.campaignType : CampaignTypeOptions }}\n
    \n
    \n\n \n
    \n {{ listValueRender | fn : element.productTypes : productTypeOptions }}\n
    \n
    \n\n \n
    {{ listValueRender | fn : element.agentCommunication : agentCommunicationOptions }}
    \n
    \n\n \n
    {{ element.customerFirstResponseDate | ssmsDate }}
    \n
    \n\n \n
    {{ element.customerLastResponseDate | ssmsDate }}
    \n
    \n\n \n
    \n \n Workbasket\n
    \n
    \n\n \n
    \n \n AgentSAM\n
    \n
    \n \n
    \n","import { EventEmitter, OnChanges, Output, SimpleChanges } from '@angular/core';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport {\n RelatedPersonTypeE,\n ContactPersonView,\n Phone,\n PhoneTypeE,\n PhoneType,\n SchemeInfo,\n CommunicationTypeE,\n communicationTypeMapObj,\n LanguageTypeE,\n languageTypeMapObj,\n inValidStatusMapObj,\n AddressDTO,\n} from '../../employer/employer';\nimport { ContactStatusE } from '../../employer/employer-profile-company-list/employer-profile-company-list';\nimport { AddressTypeDefinitionPopupComponent } from '../address-type-definition-popup/address-type-definition-popup.component';\nimport { Contact, ContactInfo } from '../employee';\nimport { EmployeeService } from '../employee.service';\nimport { deepCopy } from 'src/app/utils/copy';\n// import { ContactStatusE } from '../../../employer-profile-company-list/employer-profile-company-list';\n// import { EmployerService } from '../../../employer.service';\n\n@Component({\n selector: 'app-contact',\n templateUrl: './contact-persion.component.html',\n styleUrls: ['./contact-persion.component.scss'],\n})\nexport class ContactComponent implements OnInit, OnChanges {\n @Input() id = '';\n @Output() gainData = new EventEmitter();\n\n RelatedPersonTypeE = RelatedPersonTypeE;\n\n updateDate = new Date();\n\n ContactStatusE = ContactStatusE;\n\n emailDataSource = [\n {\n email: 'abc@abc.com',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n ];\n\n phoneDataSource = [\n {\n type: 'Mobile',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n {\n type: 'Secondary Mobile',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n {\n type: 'Claimant Overseas Telephone',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'INVALID',\n },\n ];\n\n addressDataSource = [\n {\n type: 'Fax No.',\n address: 'Flat 11, 10/F, Block A, ABC Building, ABC Street, Tsing Yi, Hong Kong',\n ext: '120',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n {\n type: 'Claimant Overseas Telephone',\n address: 'Flat 13, 10/F, Block A, ABC Building, ABC Street, Tsing Yi, Hong Kong',\n ext: '',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n ];\n\n phoneDisplayedColumns = ['type', 'number', 'ext', 'updateDateAndStatus'];\n emailDisplayedColumns = ['email', 'updateDateAndStatus'];\n addressDisplayedColumns = ['address', 'type', 'updateDateAndStatus'];\n\n inValidStatusMapObj = inValidStatusMapObj;\n\n isLoading = false;\n\n data: ContactInfo = {\n phoneList: [],\n emailList: [],\n addressList: [],\n };\n\n constructor(public service: EmployeeService, private cdsPopup: CdsPopupService, private toastAlert: ToastAlertService) {}\n\n @Input() schemeInfo?: SchemeInfo;\n\n contactPersonView: ContactPersonView = {};\n\n Object = Object;\n\n PhoneTypeE = PhoneTypeE;\n\n ngOnInit(): void {\n // this.getDetail();\n }\n\n getDetail() {\n if (!this.id) return;\n this.isLoading = true;\n this.service\n .getContactInfo(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.data = res.data;\n this.gainData.emit(this.data);\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue && changes['id'].currentValue !== changes['id'].previousValue) {\n this.getDetail();\n }\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getRelatedPersonType(type: RelatedPersonTypeE) {\n return RelatedPersonTypeE[type as unknown as keyof typeof RelatedPersonTypeE];\n }\n\n isLast(i: number, list: any[]) {\n const lastIndex = list.length - 1;\n return i === lastIndex;\n }\n\n phoneGenerate(phone: Phone) {\n return `(+${phone.countryCode}) ${phone.phoneNo} ${phone.phoneExt ? `; ext. ${phone.phoneExt}` : ''}`;\n }\n\n dataTrans() {\n const contactPersonListView: ContactPersonView[] = [];\n this.schemeInfo?.contactPersonList.forEach(item => {\n const phoneList = item.phoneList;\n const telephone = phoneList?.filter(item => item.typeCode === 'PHONE');\n const mobile = phoneList?.filter(item => item.typeCode === 'MOBILE');\n const mobile2 = phoneList?.filter(item => item.typeCode === 'MOBILE2');\n const claimantOverseasTelephone = phoneList?.filter(item => item.typeCode === 'TEL_OVERSEAS');\n const claimantOverseasFaxno = phoneList?.filter(item => item.typeCode === 'FAX_OVERSEAS');\n const faxNo = phoneList?.filter(item => item.typeCode === 'FAX');\n\n const contactPersonView: ContactPersonView = {\n email: item.emailList,\n PHONE: telephone,\n MOBILE: mobile,\n MOBILE2: mobile2,\n TEL_OVERSEAS: claimantOverseasTelephone,\n FAX_OVERSEAS: claimantOverseasFaxno,\n FAX: faxNo,\n };\n\n contactPersonListView.push(contactPersonView);\n });\n // this.contactPersonListView = contactPersonListView;\n }\n\n getContactTypeStr(key: string) {\n if (key === 'email') {\n return 'Email';\n } else {\n return PhoneTypeE[key as PhoneType] || '';\n }\n }\n\n phoneTypeRender(type: PhoneType) {\n return PhoneTypeE[type];\n }\n\n fullPhoneNoRender(contryCode: string, phoneNo: string) {\n return contryCode ? `(+${contryCode})${phoneNo}` : phoneNo;\n }\n\n typePopup() {\n this.cdsPopup.open(AddressTypeDefinitionPopupComponent, {\n size: 'sm',\n });\n }\n\n communicationTypeRender(type: CommunicationTypeE) {\n return communicationTypeMapObj[type] || '';\n }\n\n languageTypeRender(type: LanguageTypeE) {\n return languageTypeMapObj[type] || '';\n }\n\n getPhoneOrFaxList(list: Phone[], phoneMode = true) {\n return list.filter(item => {\n const isFax = ['FAX_OVERSEAS', 'FAX'].indexOf(item.typeCode) > -1;\n return phoneMode ? !isFax : isFax;\n });\n }\n\n addressRender(address: AddressDTO) {\n let list = [address.room, address.floor, address.block, address.building, address.street, address.district, address.city];\n\n if (address.zhAddrFlg === 'N') {\n list.push(address.country);\n } else {\n if (address.formatTyp === 'STD') {\n list.reverse();\n }\n list.unshift(address.country);\n }\n\n list = list.filter(item => !!item);\n\n return list.join(address.zhAddrFlg === 'Y' && address.formatTyp === 'STD' ? '' : ', ');\n }\n\n contactSort(list: Contact[]) {\n const sortedList = deepCopy(list);\n sortedList.sort((a: Contact, b: Contact) => {\n const dateA: Date = new Date(a.lastUpdate);\n const dateB: Date = new Date(b.lastUpdate);\n if (dateA < dateB) {\n return 1;\n } else if (dateA > dateB) {\n return -1;\n } else {\n return 0;\n }\n });\n const activeList = sortedList.filter((item: Contact) => item.status === 'ACTIVE');\n const invalidList = sortedList.filter((item: Contact) => item.status === 'INVALID');\n const othersList = sortedList.filter((item: Contact) => item.status !== 'INVALID' && item.status !== 'ACTIVE');\n return [...activeList, ...invalidList, ...othersList];\n }\n\n getLanguageType(item: string | undefined) {\n switch (item) {\n case 'EN':\n return 'English';\n case 'ZH-HK':\n return 'Traditional Chinese';\n case 'ZH-CN':\n return 'Simplified Chinese';\n case 'BI':\n return 'Bilingual';\n default:\n return item;\n }\n }\n}\n","\n\n\n \n
    \n
    \n
    \n\n
    \n
    \n \n
    Phone
    \n
    \n \n \n \n \n {{ phoneTypeRender | fn : element.typeCode }}\n \n \n \n Phone No.\n {{ fullPhoneNoRender | fn : element.countryCode : element.phoneNo }}\n \n \n \n Ext.\n {{ element.phoneExt }}\n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus | fn : element?.status : inValidStatusMapObj }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    Email
    \n
    \n \n \n \n Email Address \n {{ element.emailAddress }}\n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus | fn : element?.status : inValidStatusMapObj }}
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    Fax
    \n
    \n \n \n \n \n {{ phoneTypeRender | fn : element.typeCode }}\n \n \n \n Phone No.\n {{ fullPhoneNoRender | fn : element.countryCode : element.phoneNo }}\n \n \n \n Ext.\n {{ element.phoneExt }}\n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus | fn : element?.status : inValidStatusMapObj }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    Address
    \n
    \n \n \n \n Adress\n \n
    \n {{ addressRender | fn : element }}\n
    \n
    \n
    \n \n \n \n
    \n
    Type
    \n
    \n \n
    \n
    \n
    \n {{ element.addressType }}\n
    \n \n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus | fn : element?.status : inValidStatusMapObj }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Way of Communication
    \n
    \n \n \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    Consent
    \n
    \n \n \n
    \n \n
    \n
    {{ 'ee.e-notification' | lang }}
    \n {{ data.lastUpdate | ssmsDate }}\n
    \n
    \n
    \n
    \n\n \n \n
    \n \n
    \n
    {{ 'ee.e-statement-opt-in-flag' | lang }}
    \n {{ data.lastUpdate | ssmsDate }}\n
    \n
    \n
    \n
    \n\n \n \n
    \n \n
    \n
    {{ 'ee.member-authorization' | lang }}
    \n {{ data.memberAuthorizationLastUpdate | ssmsDate }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Opt in Channel
    \n
    Option & Last Update Date (DD/MM/YYYY)
    \n
    \n \n \n
    \n \n
    \n
    {{ 'ee.opt.all' | lang }}
    \n
    {{ data.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n
    \n
    {{ 'ee.opt.direct-mailing' | lang }}
    \n
    {{ data.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n
    \n
    {{ 'ee.opt.email' | lang }}
    \n
    {{ data.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n
    \n
    {{ 'ee.opt.sms' | lang }}
    \n
    {{ data.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n
    \n
    {{ 'ee.opt.telemarkeing' | lang }}
    \n {{ data.lastUpdate | ssmsDate }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\n\nimport {\n BillingClass,\n ContributionAmount,\n ContributionAmountType,\n ContributionDetails,\n ContributionDetailsCategory,\n ContributionDetailsCategoryE,\n ContributionSortByE,\n SuspenseRecord,\n} from '../../employer/employer';\nimport { EmployerService } from '../../employer/employer.service';\nimport { OutstandingAmountOfPaymentPopupComponent } from '../../employer/payroll-group-info/outstanding-amount-of-payment-popup/outstanding-amount-of-payment-popup.component';\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-contribution-records',\n templateUrl: './contribution-records.component.html',\n styleUrls: ['./contribution-records.component.scss'],\n})\nexport class ContributionRecordsComponent implements OnInit, OnChanges {\n @Input() billingClass?: BillingClass = {\n id: '',\n payrollGroupName: 'groupName',\n addressList: [],\n };\n @Input() customerId? = '';\n\n public get startDate(): string {\n return this.startDateFormControl.value;\n }\n\n requestStartDate = '';\n\n // requestStartDate = '21/06/2023';\n\n runDate = '';\n\n ContributionDetailsCategoryE = ContributionDetailsCategoryE;\n\n isReset = false;\n\n contributionDetails: ContributionDetails = {\n contributionPeriodStartDate: '',\n contributionPeriodEndDate: '',\n billingReferenceNumber: '',\n billingStatusType: '',\n contributionFrequency: '',\n outstandingAmountOfPayment: 0,\n remittanceStatementReceivedDate: '',\n lives: 0,\n contLives: 0,\n billContributionAmount: undefined,\n reportedMemberContributionAmount: undefined,\n paidAmount: undefined,\n outstandingPaymentAmount: undefined,\n };\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n nowTime = new Date();\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n suspenseRecordList: SuspenseRecord[] = [\n {\n id: 'S20220902HHMMSS',\n paymentSubmissionReferenceNo: '00020901001',\n paymentReferenceNo: '00020901001',\n paymentReceivedDate: '12/08/2022',\n suspenseAmount: 1000,\n avaliableAmount: 0,\n taggedAmount: 1000,\n },\n {\n id: 'S20220903HHMMSS',\n paymentSubmissionReferenceNo: '00020901001',\n paymentReferenceNo: '00020901001',\n paymentReceivedDate: '12/08/2022',\n suspenseAmount: 1000,\n avaliableAmount: 0,\n taggedAmount: 1000,\n },\n ];\n\n contributionTableDataSource: ContributionAmount[] = [];\n\n contributionTablDisplayedColumns = ['category', 'ermc', 'eemc', 'surcharge', 'ervc', 'eevc'];\n\n selectedContributionSortBy: ContributionSortByE = ContributionSortByE.All;\n\n contributionSortBy: CdsOption[] = [\n {\n label: 'All',\n value: ContributionSortByE.All,\n },\n {\n label: 'DC REPORTED – successfully reported to MPFA',\n value: ContributionSortByE.DC_REPORTED,\n },\n {\n label: 'DC NOT_REPORTED - Not reported to MPFA',\n value: ContributionSortByE.DC_NOT_REPORTED,\n },\n {\n label: 'Reported Contribution as 0',\n value: ContributionSortByE.Reported_Contribution_0,\n },\n {\n label: 'DC GENERATED - reported to MPFA, pending to validate',\n value: ContributionSortByE.DC_GENERATED,\n },\n {\n label: 'Fully Settled',\n value: ContributionSortByE.Fully_Settled,\n },\n {\n label: 'VC Outstanding Only',\n value: ContributionSortByE.VC_Outstanding_Only,\n },\n ];\n\n get resetButtonDisabled() {\n return !this.startDate && !this.runDate;\n }\n\n startDateFormControl = new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]);\n\n get searchButtonDisabled() {\n return !this.startDateFormControl?.valid || !this.startDateFormControl?.dirty;\n }\n\n isLoading = false;\n\n showBillInfo = false;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n showDatePicker = true;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private employerService: EmployerService,\n private employeeService: EmployeeService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.initLoad();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['customerId'].currentValue !== undefined && changes['customerId'].currentValue !== changes['customerId'].previousValue) {\n this.search(false, true);\n }\n }\n\n pillSelectedChange(selected: boolean, sortBy: ContributionSortByE) {\n if (selected) {\n this.selectedContributionSortBy = sortBy;\n this.filter();\n }\n }\n\n popupDetail(category: ContributionDetailsCategory, type: ContributionAmountType, amount: number) {\n if (amount === 0) {\n return;\n }\n this.cdsPopup.open(OutstandingAmountOfPaymentPopupComponent, {\n size: 'lg',\n data: {\n category,\n type,\n contributionDetails: this.contributionDetails,\n },\n });\n }\n\n toDetail() {}\n\n filter() {\n this.search(true);\n }\n\n searchButtonClick() {\n if (this.startDateFormControl.valid) {\n this.requestStartDate = this.startDate;\n this.search(false, true);\n }\n }\n\n initLoad() {\n if (this.billingClass === undefined) {\n return;\n }\n this.isLoading = true;\n this.employeeService\n .getContributionRecords(this.customerId, this.billingClass.payrollGroupId, this.requestStartDate, this.runDate)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n if (data.data && data.data.contributionPeriodStartDate) {\n this.contributionDetails = data.data || {};\n this.contributionTableDataSource = this.employerService.contributionAmountTableDataTrans(data.data);\n this.showBillInfo = true;\n } else {\n this.showBillInfo = false;\n }\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n search(directly = false, resetFilter = false) {\n if (this.searchButtonDisabled && !directly) {\n return;\n }\n\n if (this.billingClass === undefined) {\n return;\n }\n\n if (resetFilter) {\n this.selectedContributionSortBy = ContributionSortByE.All;\n }\n\n this.isLoading = true;\n //MPF-EE-9000027-795082 MPF-MBR-10000024-410102\n this.employeeService\n .getContributionRecords(this.customerId, this.billingClass.payrollGroupId, this.requestStartDate, this.runDate)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n if (data.data && data.data.contributionPeriodStartDate) {\n this.contributionDetails = data.data || {};\n this.contributionTableDataSource = this.employerService.contributionAmountTableDataTrans(data.data);\n this.showBillInfo = true;\n } else {\n this.showBillInfo = false;\n }\n } else {\n this.toastError(data.message);\n }\n // if (!directly && this.outofPeriod()) {\n // }\n });\n }\n\n outofPeriod() {\n const currentDate = DateTime.fromFormat(DateTime.now().toFormat('yyyy-MM-dd'), 'yyyy-MM-dd');\n const startDate = DateTime.fromFormat(this.contributionDetails?.contributionPeriodStartDate || '', 'yyyy-MM-dd');\n const endDate = DateTime.fromFormat(this.contributionDetails?.contributionPeriodEndDate || '', 'yyyy-MM-dd');\n if (currentDate < startDate || currentDate > endDate) {\n return true;\n }\n return false;\n }\n\n current() {\n return new Date();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.startDateFormControl.setValue('');\n this.startDateFormControl.markAsPristine();\n this.requestStartDate = '';\n this.runDate = '';\n this.showDatePicker = false;\n this.isReset = true;\n setTimeout(() => {\n this.showDatePicker = true;\n this.search(true, true);\n });\n }\n\n getCategoryTitle(category: ContributionDetailsCategory) {\n if (!category) {\n return '';\n }\n return ContributionDetailsCategoryE[category];\n }\n\n canClick(amount: number | string) {\n if (amount === 0 || amount === '0') {\n return false;\n }\n return true;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n runDateChange(value: string) {\n this.runDate = value;\n this.isReset = false;\n this.search(true);\n }\n\n resetDate() {\n this.runDate = '';\n }\n}\n","
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n\n
    \n \n
    \n\n
    \n
    \n {{ 'account.contribution-period' | lang }}\n {{ contributionDetails.contributionPeriodStartDate | ssmsDate }}\n - \n {{ contributionDetails.contributionPeriodEndDate | ssmsDate }}\n
    \n
    \n\n
    \n
    \n {{ 'account.employer-contribution-details' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'account.bill-information' | lang }}\n
    \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n
    \n
    {{ 'account.contribution-details' | lang }}
    \n
    \n\n
    \n \n
    \n\n
    \n \n\n \n
    \n\n
    \n \n
    \n
    {{ 'account.relevant-income-or-basic-salary' | lang }}
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n {{ 'ee.salary-type-id' | lang }}\n
    \n
    \n
    \n {{ 'ee.income-or-basic-salary' | lang }}\n
    \n
    {{ contributionDetails.salaryTypeId }}{{ contributionDetails.incomeOrBasicSalary | number }}
    \n
    \n
    \n
    \n
    \n\n\n \n \n \n \n\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { AgentInfoResponse } from '../ee-modules/AgentInfo.module';\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-ee-profile-agent-info',\n templateUrl: './ee-profile-agent-info.component.html',\n styleUrls: ['./ee-profile-agent-info.component.scss'],\n})\nexport class EeProfileAgentInfoComponent implements OnInit, OnChanges {\n @Input() trusteeId: string | undefined = '';\n @Input() entityType: string | undefined = '';\n agentInfo: AgentInfoResponse[] = [];\n agentServiceList: AgentInfoResponse[] = [];\n constructor(private service: EmployeeService, private toast: CdsToastService) {}\n\n ngOnInit(): void {\n if (this.trusteeId && this.entityType) {\n this.getAgentInfo(this.trusteeId, this.entityType);\n }\n }\n ngOnChanges(changes: SimpleChanges): void {\n //Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here.\n //Add '${implements OnChanges}' to the class.\n if (changes['trusteeId'] !== undefined) {\n this.trusteeId = changes['trusteeId'].currentValue;\n }\n if (changes['entityType'] !== undefined) {\n this.entityType = changes['entityType'].currentValue;\n }\n if (this.trusteeId && this.entityType) {\n this.getAgentInfo(this.trusteeId, this.entityType);\n }\n }\n\n getAgentInfo(trusteeId: string, entityType: string) {\n this.service.getAgentInfo(trusteeId, entityType).subscribe(res => {\n if (res.result === 0 && res.data) {\n if (res.data.commission) {\n this.agentInfo = res.data.commission;\n }\n } else {\n this.toast.error('getById API error: ' + res.message);\n }\n });\n }\n}\n","
    \n \n
    Servicing Agent Information
    \n\n
    \n \n \n
    \n
    \n
    \n
    MPF registration number
    \n
    {{ item.branchCode }}
    \n
    \n
    \n
    \n
    \n
    Branch Code
    \n
    {{ item.branchCode }}
    \n
    \n
    \n
    Mobile
    \n
    {{ item.mobile }}
    \n
    \n
    \n
    Office
    \n
    {{ item.office }}
    \n
    \n
    \n
    Email
    \n
    {{ item.email }}
    \n
    \n
    \n
    \n \n
    \n
    \n \n\n \n
    Commission Agent Information
    \n
    \n \n \n
    \n
    \n
    \n
    MPF registration number
    \n
    {{ item.branchCode }}
    \n
    \n
    \n
    \n
    \n
    Branch Code
    \n
    {{ item.branchCode }}
    \n
    \n
    \n
    Mobile
    \n
    {{ item.mobile }}
    \n
    \n
    \n
    Office
    \n
    {{ item.office }}
    \n
    \n
    \n
    Email
    \n
    {{ item.email }}
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsTabsType } from '@cds/ng-web-components/tabs';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { EEProfileAddressResponse } from '../ee-modules/EEProfileAddress.module';\nimport { EEProfileContactResponse } from '../ee-modules/EEProfileContact.module';\nimport { EEProfileDetailResponse } from '../ee-modules/EEProfileDetail.module';\nimport { EEProfilePolicyResponse } from '../ee-modules/EEProfilePolicy.module';\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-ee-profile-detail-plus',\n templateUrl: './ee-profile-detail-plus.component.html',\n styleUrls: ['./ee-profile-detail-plus.component.scss'],\n})\nexport class EeProfileDetailPlusComponent implements OnInit {\n constructor(\n private service: EmployeeService,\n private toast: CdsToastService,\n private route: ActivatedRoute,\n private router: Router,\n private layoutHeaderService: LayoutHeaderService\n ) {}\n dropdownConfig: CdsDropdownConfig = {\n options: [],\n };\n\n tabType: CdsTabsType = 'line-medium';\n isShowContact = true;\n contactIcon = 'action:button_up_outlined';\n @ViewChild('conRotateIcon')\n conRotateIcon: ElementRef | undefined;\n policeList: EEProfilePolicyResponse[] = [];\n headerButton: AdminHeaderConfig = {\n title: 'ee.profile.detail.plus.title',\n backButton: {\n text: 'Employee Enquiry Information Page',\n url: '#',\n method: this.goBack.bind(this),\n },\n };\n default_group_no: string | null = '';\n policeOptionList: Array = [];\n detailData: EEProfileDetailResponse = {};\n optionBasicInfo: EEProfilePolicyResponse = {};\n contactInfo: EEProfileContactResponse = {};\n addressList: EEProfileAddressResponse[] = [];\n legalId: string | null = '';\n legalIdType: string | null = '';\n id: string | null = '';\n ngOnInit(): void {\n this.legalId = this.route.snapshot.paramMap.get('legalId');\n this.legalIdType = this.route.snapshot.paramMap.get('legalIdType');\n this.default_group_no = this.route.snapshot.paramMap.get('group_no');\n this.id = this.route.snapshot.paramMap.get('id');\n if (!this.legalId || !this.legalIdType || !this.default_group_no || !this.id) {\n this.router.navigate(['/employee/list']);\n return;\n }\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.getDetail(this.id);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n showContact() {\n const obj = this.conRotateIcon?.nativeElement;\n\n if (obj.classList.contains('backrotate')) {\n obj.classList.add('gorotate');\n obj.classList.remove('backrotate');\n this.isShowContact = false;\n this.contactIcon = 'action:button_up_filled';\n } else {\n obj.classList.add('backrotate');\n obj.classList.remove('gorotate');\n this.isShowContact = true;\n this.contactIcon = 'action:button_up_outlined';\n }\n }\n\n getDetail(id: string) {\n this.service.getDetail(id).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.detailData = res.data;\n if (this.detailData.policyList) {\n this.policeList = this.detailData.policyList;\n this.policeList.forEach(element => {\n const item: CdsOption = {\n label: 'Policy: ' + element.groupNo,\n value: element.groupNo,\n };\n this.dropdownConfig.options.push(item);\n });\n }\n if (this.default_group_no) {\n this.setBasicInfo(this.default_group_no);\n }\n } else {\n this.toast.error('getById API error: ' + res.message);\n }\n });\n }\n\n getContact(trusteeId: string, entityType: string) {\n this.service.getContact(trusteeId, entityType).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.contactInfo = res.data;\n if (this.contactInfo.address) {\n this.addressList = this.contactInfo.address;\n }\n } else {\n this.toast.error('getById API error: ' + res.message);\n }\n });\n }\n\n optionChange(e: Event) {\n if (e) {\n this.setBasicInfo(e.toString());\n }\n }\n setBasicInfo(group_no: string) {\n this.detailData.policyList?.forEach(element => {\n if (element.groupNo && element.groupNo === group_no.toString()) {\n this.optionBasicInfo = element;\n if (this.optionBasicInfo.trusteeId && this.optionBasicInfo.entityType) {\n this.getContact(this.optionBasicInfo.trusteeId, this.optionBasicInfo.entityType);\n }\n }\n });\n }\n goBack() {\n this.router.navigate([\n '/employee/profile',\n {\n legalId: this.detailData.legalId,\n legalIdType: this.detailData.legalIdType,\n },\n ]);\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    {{ this.detailData.engSurname }}{{ this.detailData.engGivenName }}
    \n
    {{ this.detailData.chiSurname }}{{ this.detailData.chiGivenName }}
    \n
    \n
    \n
    \n
    \n {{ 'ee.opt.active' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    Choose an policy
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    Basic information
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n {{ 'ee.pfofile.trustee-member-id' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.trusteeId }}\n
    \n
    \n
    \n
    \n {{ 'ee.pfofile.group_no' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.groupNo }}\n
    \n
    \n
    \n
    \n {{ 'ee.pfofile.cert_no' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.certNo }}\n
    \n
    \n
    \n
    {{ 'ee.pfofile.Status-Change-Date' | lang }} (DD/MM/YYYY)
    \n
    \n {{ this.optionBasicInfo.statusChangeDate }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'ee.opt.Currency' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.currency }}\n
    \n
    \n
    \n
    \n {{ 'ee.pfofile.account_type' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.accountType }}\n
    \n
    \n
    \n
    \n {{ 'ee.pfofile.default_pa' | lang }}\n
    \n \n
    \n
    \n
    \n {{ 'ee.pfofile.ab_offer' | lang }}\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n {{ 'ee.pfofile.LS-Flag' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.lsFlag }}\n
    \n
    \n
    \n
    \n {{ 'ee.pfofile.scheme_type' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.schemeType }}\n
    \n
    \n
    \n
    \n {{ 'ee.profile.PAC' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.pacGroup_certNumber }}\n
    \n
    \n
    \n
    \n {{ 'ee.profile.Employee-Type' | lang }}\n
    \n
    \n {{ this.optionBasicInfo.employeeType }}\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ 'ee.profile.Contact' | lang }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ 'ee.profile.Direct-contact' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'ee.profile.primary-member-mobile' | lang }}\n
    \n
    \n {{ this.contactInfo.primaryMemberMobile }}\n
    \n
    \n
    \n
    \n {{ 'ee.profile.Secondary-Member-Mobile' | lang }}\n
    \n
    \n {{ this.contactInfo.secondaryMemberMobile }}\n
    \n
    \n
    \n
    \n {{ 'ee.profile.Primary-Member-Residential' | lang }}\n
    \n
    \n {{ this.contactInfo.primaryMemberResidential }}\n
    \n
    \n
    \n
    \n {{ 'ee.profile.Secondary-Member-Residential' | lang }}\n
    \n
    \n {{ this.contactInfo.secondaryMemberResidential }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'ee.profile.Member-Fax' | lang }}\n
    \n
    \n {{ this.contactInfo.memberFax }}\n
    \n
    \n
    \n
    \n {{ 'ee.profile.Member-Email' | lang }}\n
    \n
    \n {{ this.contactInfo.memberEmail }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'ee.profile.Direct-contact' | lang }}\n
    \n
    \n
    \n {{ 'ee.profile.Type' | lang }}\n
    \n
    \n {{ 'ee.profile.Effective-date-of-address' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ item.memberAddress }}\n
    \n
    {{ item.addressType }}
    \n
    \n {{ item.effectiveDateOfTheAddress }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n\n \n \n \n\n \n\n \n \n
    \n \n
    \n","import { CdsButtonConfig } from '@cds/ng-core/button';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { Employee, employeeStatusMapObj } from '../employee';\nimport { EmployeeService } from '../employee.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { CampaignInformation } from '../ee-modules/CampaignInformation.module';\nimport { EEProfilePolicyResponse } from '../ee-modules/EEProfilePolicy.module';\nimport moment from 'moment';\nimport { pageToTop } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-ee-profile-detail',\n templateUrl: './ee-profile-detail.component.html',\n styleUrls: ['./ee-profile-detail.component.scss'],\n})\nexport class EeProfileDetailComponent implements OnInit {\n constructor(\n public service: EmployeeService,\n private toast: CdsToastService,\n private route: ActivatedRoute,\n private router: Router,\n private layoutHeaderService: LayoutHeaderService\n ) {}\n @Input() fullWidth = false;\n employeeDTO: Employee = {};\n\n checkedConfig: CdsCheckboxConfig = {\n checked: true,\n disabled: true,\n };\n noConfig: CdsCheckboxConfig = {\n disabled: true,\n };\n\n displayedColumns2: string[] = [\n 'policyNo',\n 'Campaign-description',\n 'Customer-communication-send-channel',\n 'Customer-communication-date',\n 'Campaign-Period',\n 'Follow-up-agent-name',\n 'Follow-up-agent-code',\n ];\n\n linkBtnConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n isShowDetailA = true;\n detailData: Employee = {};\n compaignList: CampaignInformation[] = [];\n policeList: EEProfilePolicyResponse[] = [];\n headerButton: AdminHeaderConfig = {\n title: 'ee.profile.detail.title',\n backButton: {\n text: 'Member Enquiry Information Summary',\n url: '/employee/list',\n },\n };\n\n id = '';\n\n md5 = '';\n\n employeeStatusMapObj = employeeStatusMapObj;\n\n titleSticky = false;\n\n ngOnInit(): void {\n const id = this.route.snapshot.queryParams['id'];\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.id = id;\n this.md5 = this.route.snapshot.queryParams['md5'];\n this.getDetail(this.md5, this.id);\n pageToTop();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doClickDetail() {\n if (this.isShowDetailA) {\n this.isShowDetailA = false;\n } else {\n this.isShowDetailA = true;\n }\n }\n\n goToDetailPlus(policyItem: EEProfilePolicyResponse) {\n this.router.navigate([\n '/employee/profileplus',\n {\n legalId: this.detailData.legalId,\n legalIdType: this.detailData.legalIdType,\n group_no: policyItem.groupNo,\n id: this.id,\n },\n ]);\n }\n getDetail(md5: string, id: string) {\n if (!id) {\n id = '';\n }\n if (!md5) {\n md5 = '';\n }\n // if (!md5 || !id) return;\n this.service.getOverviewBasicInfo(md5, id).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.detailData = res.data;\n // if (this.detailData.campaignList) {\n // this.compaignList = this.detailData.campaignList;\n // }\n // if (this.detailData.policyList) {\n // this.policeList = this.detailData.policyList;\n // }\n } else {\n this.toast.error('getById API error: ' + res.message);\n }\n });\n }\n\n updateDate(date?: string) {\n if (!date) {\n return '';\n }\n return moment(date).utcOffset(-8).format('h:mma DD MMM, YYYY');\n }\n\n stickyStatusChange(isSticky: boolean) {\n this.titleSticky = isSticky;\n }\n\n nationRender(list: string[]) {\n if (!list) return '';\n return list.filter(item => !!item).join(', ');\n }\n\n getGender(item: string | undefined) {\n switch (item) {\n case 'M':\n return 'Male';\n case 'F':\n return 'Female';\n case 'U':\n return 'Unisex';\n case 'O':\n return 'No Such Information';\n default:\n return 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
    Opt in Options ( Member Level)
    \n\n
    Option & Last Update Date (DD/MM/YYYY)
    \n\n
    \n \n
    \n {{ detailData.optionLastUpdateDate | ssmsDate }}\n
    \n
    \n\n
    \n
    \n
    \n\n
    Bankruptcy 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","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-ee-profile-employment-info',\n templateUrl: './ee-profile-employment-info.component.html',\n styleUrls: ['./ee-profile-employment-info.component.scss'],\n})\nexport class EeProfileEmploymentInfoComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n
    \n
    \n
    \n \n
    \n
    \n
    Trustee Employer
    \n
    \n
    {{ '12345678' }}
    \n
    {{ 'Winwin Limited' }}
    \n
    {{ '盈盈有限公司' }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Commencement date
    \n
    2022-02-16
    \n
    \n\n
    \n
    Status
    \n
    \n
    \n
    Active
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    Important Dates
    \n\n
    \n\n
    \n \n \n \n \n
    \n\n
    \n\n
    Signal
    \n\n
    \n\n
    \n \n \n \n
    \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { EEProfileFundResponse } from '../ee-modules/EEProfileFund.module';\nimport { FundDetailResponse } from '../ee-modules/FundDetail.module';\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-ee-profile-fund-info',\n templateUrl: './ee-profile-fund-info.component.html',\n styleUrls: ['./ee-profile-fund-info.component.scss'],\n})\nexport class EeProfileFundInfoComponent implements OnInit, OnChanges {\n @Input() trusteeId: string | undefined = '';\n @Input() entityType: string | undefined = '';\n fundInfo: EEProfileFundResponse = {};\n fundList: FundDetailResponse[] = [];\n constructor(private service: EmployeeService, private toast: CdsToastService) {}\n\n ngOnInit(): void {\n if (this.trusteeId && this.entityType) {\n this.getFundInfo(this.trusteeId, this.entityType);\n }\n }\n ngOnChanges(changes: SimpleChanges): void {\n //Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here.\n //Add '${implements OnChanges}' to the class.\n if (changes['trusteeId'] !== undefined) {\n this.trusteeId = changes['trusteeId'].currentValue;\n }\n if (changes['entityType'] !== undefined) {\n this.entityType = changes['entityType'].currentValue;\n }\n if (this.trusteeId && this.entityType) {\n this.getFundInfo(this.trusteeId, this.entityType);\n }\n }\n\n getFundInfo(trusteeId: string, entityType: string) {\n this.service.getFundInfo(trusteeId, entityType).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.fundInfo = res.data;\n if (this.fundInfo.fundList) {\n this.fundList = this.fundInfo.fundList;\n }\n } else {\n this.toast.error('getById API error: ' + res.message);\n }\n });\n }\n}\n","
    \n \n
    \n {{ 'ee.profile.Fund-Balance' | lang }}\n
    \n \n
    \n
    \n \n
    \n
    Effective Date: 01/08/2022
    \n
    \n \n
    \n
    \n
    Fund Balance - Total
    \n
    {{ fundInfo.fundBalanceTotal }}
    \n
    \n
    \n
    \n {{ 'ee.profile.Fund-currency' | lang }}\n
    \n
    {{ fundInfo.fundCurrency }}
    \n
    \n
    \n \n\n \n
    \n {{ 'ee.opt.Fund-balance-and-allocation' | lang }}\n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n {{ 'ee.profile.Offer-price' | lang }}\n
    \n
    {{ item.unitPrice }}
    \n
    \n
    \n
    \n {{ 'ee.profile.Unit-balance-of-the-invested-fund' | lang }}\n
    \n
    {{ item.noOfUnit }}
    \n
    \n
    \n
    \n {{ 'ee.profile.Fund-Balance' | lang }}\n
    \n
    {{ item.fundBalance }}
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    FSEE/EEMC %
    \n
    \n {{ item.fSEE_EEMCPercent }}\n
    \n
    \n
    \n
    FSER/ERMC %
    \n
    \n {{ item.fSER_ERMCPercent }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    PSEE/EEVC %
    \n
    \n {{ item.pSEE_EEVCPercent }}\n
    \n
    \n
    \n
    PSER/ERVC %
    \n
    \n {{ item.pSER_ERVCPercent }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { DateTime } from 'luxon';\nimport { EeProfileListModel } from './ee-profile-list-model';\nimport { EeProfileListService } from './ee-profile-list.service';\nimport { Router } from '@angular/router';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\n\n@Component({\n selector: 'app-ee-profile-list',\n templateUrl: './ee-profile-list.component.html',\n styleUrls: ['./ee-profile-list.component.scss'],\n})\nexport class EeProfileListComponent implements OnInit {\n @Input() fullWidth = true;\n displayedColumns: string[] = ['legalId', 'legalIdType', 'engSurname', 'engGivenName'];\n\n employeeList: EeProfileListModel[] = [];\n iconType = 'action:edit';\n showProgress = true;\n totalCount = 0;\n isLoading = false;\n firstNm = '';\n lastNm = '';\n trusteeMbrId = '';\n config: CdsButtonConfig = {\n label: 'Create Message',\n size: 'md',\n style: 'secondary',\n };\n searchBtnConfig: CdsButtonConfig = {\n label: 'Search',\n size: 'md',\n style: 'tertiary',\n buttonType: 'button',\n };\n\n searchBtnConfig2: CdsButtonConfig = {\n label: 'Reset',\n size: 'md',\n style: 'tertiary',\n };\n pageindex = 1;\n color: CdsColorTheme = 'ml';\n pageCount: IPaginationCount = { current: 1, count: 1 };\n pageSize = 10;\n txtfieldConfig: CdsTextfieldConfig = {\n type: 'number',\n };\n searchfieldConfig: CdsTextfieldConfig = {\n label: 'legalId',\n type: 'text',\n };\n searchfieldConfig2: CdsTextfieldConfig = {\n label: 'engSurname',\n type: 'text',\n };\n searchfieldConfig3: CdsTextfieldConfig = {\n label: 'sex',\n type: 'text',\n };\n pageindexChange = 1;\n constructor(public eeProfileListService: EeProfileListService, public router: Router) {}\n\n ngOnInit(): void {\n this.totalCount = this.employeeList.length;\n this.getList(1, this.pageSize);\n }\n\n pageChange() {\n this.getList(this.pageCount.current, this.pageSize);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\n onSortChange(event: any) {}\n\n formateDate(date: string) {\n return DateTime.fromISO(date).toFormat('yyyy-MM-dd');\n }\n doSearch() {\n this.getList(this.pageCount.current, this.pageSize);\n }\n reset() {\n this.firstNm = '';\n this.lastNm = '';\n this.trusteeMbrId = '';\n this.getList(1, this.pageSize);\n }\n getList(pageIndex: number, pageSize: number) {\n // this.showProgress = true;\n this.isLoading = true;\n const list = this.eeProfileListService.getList(pageIndex, pageSize, this.firstNm, this.lastNm, this.trusteeMbrId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n list.subscribe((data: any) => {\n this.isLoading = false;\n // this.showProgress = false;\n if (data.result == 0 && data.message == 'SUCCESS') {\n this.employeeList = data.data.content;\n this.totalCount = data.data.totalElements;\n this.pageCount.current = data.data.pageable.pageNumber + 1;\n this.pageCount.count = data.data.totalPages;\n }\n });\n }\n goToDetail(item: EeProfileListModel) {\n this.router.navigate(['/employee/profile', { legalId: item.legalId, legalIdType: item.legalIdType, id: item.id }]);\n }\n}\n","
    \n
    \n \n
    \n Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut accusamus\n ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis. Est nisi delectus et laboriosam\n galisum est nihil tempore quo beatae quibusdam. 33 velit omnis in dignissimos saepe aut atque consectetur et dolores mollitia in tenetur galisum nam illo\n eveniet!\n
    \n\n
    Search 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 {{ 'ee.record.list' | lang }}\n
    \n
    \n {{ 'ee.record.total' | lang }} {{ totalCount }}\n {{ 'ee.record.total.des' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n\n \n \n \n \n legalId \n \n {{ element.legalId }}\n \n \n\n \n \n legalIdType \n \n {{ element.legalIdType }}\n \n \n\n \n \n engSurname \n {{ element.engSurname }} \n \n\n \n engGivenName \n \n {{ element.engGivenName }}\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 { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from '../../../../environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EeProfileListService {\n private common_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/EE-Profile`;\n private getList_api = this.common_url + '/list';\n constructor(private http: HttpClient) {}\n\n getList(pageIndex: number, pageSize: number, firstNm: string, lastNm: string, status: string) {\n pageIndex = pageIndex - 1;\n return new Observable(observable => {\n this.http\n .get(this.getList_api + '?&size=' + pageSize + '&page=' + pageIndex + '&legalId=' + firstNm + '&engSurname=' + lastNm + '&sex=' + status)\n .subscribe(data => observable.next(data));\n });\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { EEProfileOthersResponse } from '../ee-modules/EEProfileOthers.module';\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-ee-profile-others',\n templateUrl: './ee-profile-others.component.html',\n styleUrls: ['./ee-profile-others.component.scss'],\n})\nexport class EeProfileOthersComponent implements OnInit, OnChanges {\n @Input() trusteeId: string | undefined = '';\n @Input() entityType: string | undefined = '';\n othersInfo: EEProfileOthersResponse = {};\n constructor(private service: EmployeeService, private toast: CdsToastService) {}\n\n ngOnInit(): void {\n if (this.trusteeId && this.entityType) {\n this.getOthersInfo(this.trusteeId, this.entityType);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n //Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here.\n //Add '${implements OnChanges}' to the class.\n if (changes['trusteeId'] !== undefined) {\n this.trusteeId = changes['trusteeId'].currentValue;\n }\n if (changes['entityType'] !== undefined) {\n this.entityType = changes['entityType'].currentValue;\n }\n if (this.trusteeId && this.entityType) {\n this.getOthersInfo(this.trusteeId, this.entityType);\n }\n }\n\n getOthersInfo(trusteeId: string, entityType: string) {\n this.service.getOthersInfo(trusteeId, entityType).subscribe(res => {\n if (res.result === 0 && res.data) {\n this.othersInfo = res.data;\n } else {\n this.toast.error('getById API error: ' + res.message);\n }\n });\n }\n}\n","
    \n \n
    \n \n
    \n {{ 'ee.opt.Standing-Instruction' | lang }}\n
    \n \n
    \n
    \n \n
    \n
    \n
    Fund Code
    \n
    12/04/1990
    \n
    \n
    \n
    \n {{ 'ee.opt.Standing-instruction-effective-date' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n
    \n {{ 'ee.opt.Standing-instruction-frequency' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n
    \n {{ 'ee.opt.Amount-or-unit' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n \n\n \n
    \n \n
    \n {{ 'ee.opt.Termination' | lang }}\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n {{ 'ee.profile.CEE-Last-date-of-employment' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n
    \n {{ 'ee.profile.Cert-Term-Process-Date' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n
    \n {{ 'ee.opt.LSP_SP_MC' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n
    \n {{ 'ee.opt.LSP_SP_VC' | lang }}\n
    \n
    12/04/1990
    \n
    \n
    \n
    Amount payable to EE
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    LSP/SP Type Code
    \n
    12/04/1990
    \n
    \n
    \n
    LSP/SP - Payee
    \n
    12/04/1990
    \n
    \n
    \n
    Related Group No
    \n
    12/04/1990
    \n
    \n
    \n
    CGI Term Date
    \n
    12/04/1990
    \n
    \n
    \n
    Notice of Termination (NOT) Notification Date
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    Unvest ER
    \n
    12/04/1990
    \n
    \n
    \n
    Termination Date
    \n
    12/04/1990
    \n
    \n
    \n
    Termination Type
    \n
    12/04/1990
    \n
    \n
    \n
    Notice of Termination (NOT) Notification Date
    \n
    12/04/1990
    \n
    \n
    \n
    CDR Bypass Sig
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    Quotation Signal
    \n
    12/04/1990
    \n
    \n
    \n
    Overpaid Cont Sig
    \n
    12/04/1990
    \n
    \n
    \n
    Delete Signal
    \n
    12/04/1990
    \n
    \n
    \n
    Freeze Signal
    \n
    12/04/1990
    \n
    \n
    \n
    Special Flag
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    Irrecoverable Cont Signal
    \n
    12/04/1990
    \n
    \n
    \n
    LS To GS Redemption
    \n
    12/04/1990
    \n
    \n
    \n
    ER Vol Spec Vest %
    \n
    12/04/1990
    \n
    \n
    \n\n \n\n \n
    \n \n
    Transfer-out
    \n
    \n
    \n \n
    \n
    \n
    Tx 405/406 Status
    \n
    12/04/1990
    \n
    \n
    \n
    Status Eff Date
    \n
    12/04/1990
    \n
    \n
    \n
    ePASS ID
    \n
    12/04/1990
    \n
    \n
    \n
    PM/W Complete
    \n
    12/04/1990
    \n
    \n
    \n
    Transfer Type
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    Scheme Code
    \n
    12/04/1990
    \n
    \n
    \n
    Current year ECA Transfer-in
    \n
    12/04/1990
    \n
    \n
    \n
    ECA Transfer-in Date
    \n
    12/04/1990
    \n
    \n
    \n
    Transfer In Account
    \n
    12/04/1990
    \n
    \n
    \n
    Transfer In Group/Cert
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    VC Signal
    \n
    12/04/1990
    \n
    \n
    \n\n \n\n \n
    \n \n
    Withdrawal
    \n
    \n
    \n
    More Details
    \n
    \n \n
    \n
    \n
    Death Evid Sig
    \n
    12/04/1990
    \n
    \n
    \n
    Retirement Opt
    \n
    12/04/1990
    \n
    \n
    \n
    Withdrawal Pending
    \n
    12/04/1990
    \n
    \n
    \n
    Withdrawal Reason
    \n
    12/04/1990
    \n
    \n
    \n
    Autopay Bank No
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    Branch No
    \n
    12/04/1990
    \n
    \n
    \n
    Account No
    \n
    12/04/1990
    \n
    \n
    \n
    Withdrawal Type
    \n
    12/04/1990
    \n
    \n
    \n
    Disbursement Type
    \n
    12/04/1990
    \n
    \n
    \n
    Date of Death/Departure
    \n
    12/04/1990
    \n
    \n
    \n\n
    \n
    \n
    Personal Rep Name
    \n
    12/04/1990
    \n
    \n
    \n
    Personal Rep Address
    \n
    12/04/1990
    \n
    \n
    \n\n \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { MONTH_OPTS } from 'src/app/config/month.config';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { EmployeeService } from '../employee.service';\nimport {\n DcMsgTypeE,\n dcMsgTypeMapObj,\n DcReasonTypeE,\n dcReasonTypeMapObj,\n DefaultContribution,\n DefaultContributionRequest,\n PaidAmount,\n RectifyTypeE,\n rectifyTypeMapObj,\n Surcharge,\n} from '../employee';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'app-employee-default-contribution',\n templateUrl: './employee-default-contribution.component.html',\n styleUrls: ['./employee-default-contribution.component.scss'],\n})\nexport class EmployeeDefaultContributionComponent implements OnInit, OnChanges {\n @Input() id?: string;\n\n radioConfig: CdsRadioConfig = {\n options: [\n { label: 'Contribution Date', value: 'DAY' },\n { label: 'Contribution Month', value: 'MONTH' },\n ],\n };\n\n form = new FormGroup({});\n\n data: DefaultContribution[] = [];\n\n paidAmountDataSource: PaidAmount[] = [];\n\n surchargeDataSource: Surcharge[] = [];\n\n monthControlInit = true;\n yearControlInit = true;\n\n get dateControl() {\n return this.form.get('date');\n }\n\n paidAmountColumnsConfig: ColumnConfig[] = [\n {\n key: 'type',\n title: '',\n },\n {\n key: 'ermc',\n title: 'ERMC',\n },\n {\n key: 'eemc',\n title: 'EEMC',\n },\n {\n key: 'mcPaidDate',\n title: 'Paid Date',\n },\n {\n key: 'ervc',\n title: 'ERVC',\n },\n {\n key: 'eevc',\n title: 'EEVC',\n },\n {\n key: 'vcPaidDate',\n title: 'Paid Date',\n },\n ];\n\n surchargeColumnsConfig: ColumnConfig[] = [\n { key: 'surchargeER', title: 'Surcharge (ER)' },\n { key: 'surchargeEE', title: 'Surcharge (EE)' },\n { key: 'surchargePaidDate', title: 'Surcharge Paid Date' },\n { key: 'surchargeDueDate\t', title: 'Surcharge Due Date' },\n ];\n\n moreBtnCfg: CdsButtonConfig = BTN_CONFIG_TERTIARY;\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n get searchBy() {\n return this.form.get('searchBy')?.value || '';\n }\n\n get monthControl() {\n return this.form.get('month');\n }\n\n get yearControl() {\n return this.form.get('year');\n }\n\n monthCfg: CdsDropdownConfig = this.getMonthCfg();\n\n yearCfg: CdsDropdownConfig = this.getYearCfg();\n\n get currentMonth() {\n return new Date().getMonth();\n }\n\n get currentYear() {\n return new Date().getFullYear();\n }\n\n get currentDate() {\n return DateTime.now().toFormat('dd/MM/yyyy');\n }\n\n isLoading = false;\n\n showMore = false;\n\n constructor(private service: EmployeeService, private toastAlert: ToastAlertService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n this.getDefaultContribution();\n }\n }\n\n ngOnInit(): void {\n this.initForm();\n this.getDefaultContribution();\n }\n\n initForm() {\n this.form = new FormGroup({\n searchBy: new FormControl('DAY'),\n date: new FormControl(this.currentDate, [dateValidator('create.dateError', '', this.maxTimeInStr)]),\n month: new FormControl(this.currentMonth),\n year: new FormControl(this.currentYear),\n });\n }\n\n getDefaultContribution() {\n if (!this.id) return;\n const params: DefaultContributionRequest = {\n startDate: this.searchBy === 'DAY' ? this.dateTrans(this.dateControl?.value) : '',\n id: this.id,\n // erAcctCd: this.employerProfileDetail?.employerAccountCode,\n type: this.searchBy === 'DAY' ? 'day' : 'month',\n month: this.searchBy === 'DAY' ? '' : this.getConMnth(),\n };\n this.isLoading = true;\n this.showMore = false;\n this.service\n .getDefaultContribution(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.data = res.data || [];\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n onDateChange() {\n if (this.dateControl?.valid) {\n this.getDefaultContribution();\n }\n }\n\n radioChange() {\n this.getDefaultContribution();\n this.monthControlInit = true;\n this.yearControlInit = true;\n }\n\n createMonthOpts(): CdsOption[] {\n if (this.yearControl?.value !== this.currentYear) {\n return [...MONTH_OPTS];\n }\n return MONTH_OPTS.slice(0, this.currentMonth + 1);\n }\n\n createYearOpts(): CdsOption[] {\n const result = [];\n for (let i = this.currentYear; i >= 1970; i--) {\n result.push({\n label: i.toString(),\n value: i,\n });\n }\n return result;\n }\n\n dateYearChange(value?: number) {\n this.monthCfg = this.getMonthCfg();\n if (this.currentYear === value && this.monthControl?.value > this.currentMonth) {\n this.monthControl?.setValue(undefined);\n } else if (value !== undefined && !this.yearControlInit) {\n this.getDefaultContribution();\n }\n this.yearControlInit = false;\n }\n\n dateMonthChange(value?: number) {\n if (value !== undefined && !this.monthControlInit) {\n this.getDefaultContribution();\n }\n this.monthControlInit = false;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getConMnth() {\n if (this.monthControl?.value === '') return '';\n return DateTime.fromObject({ year: this.yearControl?.value, month: this.monthControl?.value + 1 }).toFormat('yyyy-MM');\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMonthCfg(): CdsDropdownConfig {\n return { options: this.createMonthOpts() };\n }\n\n getYearCfg(): CdsDropdownConfig {\n return { options: this.createYearOpts() };\n }\n\n clickShowMore() {\n this.showMore = true;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getPaidAmountDataSource(data: DefaultContribution) {\n if (!data) return [];\n const dataSource: PaidAmount[] = [\n {\n type: 'On time',\n ...data.onTimeTb,\n },\n {\n type: 'Late',\n ...data.lateTb,\n },\n ];\n return dataSource;\n }\n\n getsSrchargeDataSource(data: DefaultContribution) {\n if (!data) return [];\n const dataSource: Surcharge[] = [\n {\n surchargeER: data.surchargeER,\n surchargeEE: data.surchargeEE,\n surchargePaidDate: data.surchargePaidDate,\n surchargeDueDate: data.surchargeDueDate,\n },\n ];\n return dataSource;\n }\n\n messageTypeRender(type: DcMsgTypeE) {\n return dcMsgTypeMapObj[type] || '';\n }\n\n dcReasonRender(type: DcReasonTypeE) {\n return dcReasonTypeMapObj[type] || '';\n }\n\n rectifyTypeRender(type: RectifyTypeE) {\n return rectifyTypeMapObj[type] || '';\n }\n}\n","
    \n
    \n
    \n
    \n
    Search By:
    \n \n
    \n
    \n
    Date:
    \n
    \n \n \n\n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n
    \n\n
    \n
    Month:
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n \n \n
    \n
    \n {{ 'account.contribution-period' | lang }}\n {{ item.startDate | ssmsDate }}\n - \n {{ item.endDate | ssmsDate }}\n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Default Contribution Reported Date (To MPFA){{ item.defaultContributionReportedDateToMPFA | ssmsDate }}
    Message Type of Default Contribution Reporting{{ messageTypeRender | fn : item.messageTypeofDefaultContributionReporting }}
    Submission Type of Default Contribution Reporting{{ item.submissionTypeofDefaultContributionReporting }}
    Default contribution reason{{ dcReasonRender | fn : item.defaultContributionReason }}
    Rectified type{{ rectifyTypeRender | fn : item.rectifiedType }}
    Untraceable Defaulter Flag\n \n
    \n
    \n\n
    \n {{ 'account.contribution-details' | lang }}\n
    \n\n
    Paid Amount
    \n\n
    \n \n \n \n \n \n \n \n
    Member Contribution Due Date{{ item.memberContributionDueDate | ssmsDate }}
    \n
    \n\n
    \n \n \n \n \n
    \n {{ element['type'] }}\n
    \n
    \n\n \n {{ element['ermc'] | number }}\n \n\n \n {{ element['eemc'] | number }}\n \n\n \n {{ element['mcPaidDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n {{ element['ervc'] | number }}\n \n\n \n {{ element['eevc'] | number }}\n \n\n \n {{ element['vcPaidDate'] | date : 'dd/MM/yyyy' }}\n \n \n
    \n
    \n\n
    \n {{ 'account.surcharge' | lang }}\n
    \n\n
    \n \n \n \n {{ element['surchargeER'] | number }}\n \n\n \n {{ element['surchargeEE'] | number }}\n \n\n \n {{ element['surchargePaidDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n {{ element['surchargeDueDate'] | date : 'dd/MM/yyyy' }}\n \n \n
    \n
    \n\n
    Remarks
    \n\n
    \n\n \n\n \n
    \n
    \n
    \n\n
    \n \n
    \n
    +
    \n View More Records\n
    \n
    \n
    \n
    \n
    \n
    \n","import { CdsOption } from '@cds/ng-core/configuration';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { EmployeeService } from '../employee.service';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { Router } from '@angular/router';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ColumnItem, Sort } from 'src/app/components/table/table-expand';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { dateValidator, descriptionValidator, numberStringValidator, rangeValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { aggregateInvestedAmountCurrencyDropdownOptions, CurrencyE, ProfileAgentInfo } from '../../employer/employer';\nimport {\n ContryCode,\n EeSearchRequest,\n Employee,\n lineOfBusinessOptions,\n memberAccountTypeOptions,\n policyStatusOptions,\n RelatedPolicy,\n servicingChannelOptions,\n} from '../employee';\nimport moment from 'moment';\nimport { DateTime } from 'luxon';\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport { empfCountryOption } from '../../salesjourney/case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\n@Component({\n selector: 'app-employee-list',\n templateUrl: './employee-list.component.html',\n styleUrls: ['./employee-list.component.scss'],\n})\nexport class EmployeeListComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n public Sort = Sort;\n form: FormGroup = new FormGroup({});\n formReady = false;\n showTable = true;\n\n showDatePicker = true;\n\n memberNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n hkidPassportValidTip = 'Please input English, numbers, or special characters';\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n memberAccountTypeOptions = memberAccountTypeOptions;\n\n policyStatusOptions = policyStatusOptions;\n\n servicingChannelOptions = servicingChannelOptions;\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n get memberAccountCode() {\n return this.form?.get('memberAccountCode');\n }\n\n get originalMemberAccountCode() {\n return this.form?.get('originalMemberAccountCode');\n }\n\n get empfId() {\n return this.form?.get('empfId');\n }\n\n get memberName() {\n return this.form?.get('memberName');\n }\n\n get intermediatoryCode() {\n return this.form?.get('intermediatoryCode');\n }\n\n get aggregateInvestedAmountCurrency() {\n return this.form?.get('aggregateInvestedAmountCurrency');\n }\n\n get aggregateInvestedAmountFrom() {\n return this.form?.get('aggregateInvestedAmountFrom');\n }\n\n get aggregateInvestedAmountTo() {\n return this.form?.get('aggregateInvestedAmountTo');\n }\n\n get phoneNumber() {\n return this.form?.get('phoneNumber');\n }\n\n get countryCode() {\n return this.form?.get('phoneNumberExt');\n }\n\n get hkidOrPassport() {\n return this.form?.get('hkidOrPassport');\n }\n\n get enrolmentCompletionDateFromControl() {\n return this.form?.get('enrolmentCompletionDateFrom');\n }\n\n get enrolmentCompletionDateToControl() {\n return this.form?.get('enrolmentCompletionDateTo');\n }\n\n get enrolmentCompletionDateFromValue() {\n return this.enrolmentCompletionDateFromControl?.value;\n }\n\n get enrolmentCompletionDateToValue() {\n return this.enrolmentCompletionDateToControl?.value;\n }\n\n get companyName() {\n return this.form?.get('companyName');\n }\n\n get employerAccountCode() {\n return this.form?.get('employerAccountCode');\n }\n\n get servicingAgentCode() {\n return this.form?.get('servicingAgentCode');\n }\n\n get ageFrom() {\n return this.form?.get('ageFrom');\n }\n\n get ageTo() {\n return this.form?.get('ageTo');\n }\n\n get assetType() {\n return this.form?.get('assetType');\n }\n\n get assetSizeFrom() {\n return this.form?.get('assetSizeFrom');\n }\n\n get assetSizeTo() {\n return this.form?.get('assetSizeTo');\n }\n\n get lastEcaMonthYearOrYear() {\n return this.form?.get('lastEcaMonthYearOrYear');\n }\n\n tempSeardhParams: EeSearchRequest = {\n page: 1,\n size: 10,\n };\n\n addressRequestUrl = 'customer-service/employee/address';\n\n addressSearchParams = {\n residentAddressDistrict: '',\n };\n\n constructor(\n private service: EmployeeService,\n private router: Router,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService,\n private layoutHeaderService: LayoutHeaderService\n ) {}\n\n lineOfBusinessConfig: CdsDropdownConfig = {\n label: 'Line of Business',\n placeholder: 'Select Line of Business',\n options: lineOfBusinessOptions,\n };\n\n countryCodeConfig: CdsDropdownConfig = {\n label: '',\n placeholder: '+852(HK)',\n options: this.getContryCodeOptions(),\n };\n\n birthdayMonthConfig: CdsDropdownConfig = {\n label: 'Birthday Month',\n placeholder: 'Select Birthday Month',\n options: [\n { label: 'common.month.january', value: 1 },\n { label: 'common.month.february', value: 2 },\n { label: 'common.month.march', value: 3 },\n { label: 'common.month.april', value: 4 },\n { label: 'common.month.may', value: 5 },\n { label: 'common.month.june', value: 6 },\n { label: 'common.month.july', value: 7 },\n { label: 'common.month.august', value: 8 },\n { label: 'common.month.september', value: 9 },\n { label: 'common.month.october', value: 10 },\n { label: 'common.month.november', value: 11 },\n { label: 'common.month.december', value: 12 },\n ],\n };\n\n isStaff = false;\n\n residentAddressDistrictConfig: CdsDropdownConfig = {\n label: 'Resident Address District',\n placeholder: 'Select Resident Address District',\n options: [],\n };\n\n _totalLiveModel?: number[];\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n assetTypeConfig: CdsDropdownConfig = {\n label: '',\n placeholder: 'HKD',\n options: aggregateInvestedAmountCurrencyDropdownOptions,\n };\n\n _sortChange(columnItem: ColumnItem) {\n const temp = columnItem.prop?.replace('empfID', 'empf_id').replace('employeeName', 'last_nm');\n if (columnItem.sort !== Sort.DEFAULT) {\n this.tempSeardhParams.sort = `${temp},${columnItem.sort}`;\n } else {\n delete this.tempSeardhParams.sort;\n }\n this.getPageList();\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYEE).then(res => {\n this.isStaff = res;\n });\n }\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n isCheckPass = true;\n\n _pageCount: IPaginationCount = { current: 1, count: 1 };\n _totalCount = 0;\n\n _eeRecordList?: Employee[] = [];\n _progress = false;\n\n noCheckConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: false,\n };\n\n checkedConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'lineOfBusiness',\n title: 'Line of Busines',\n },\n {\n key: 'memberAccountType',\n title: 'Member Account Type',\n },\n {\n key: 'memberAccountCode',\n title: 'Member Account Code',\n },\n {\n key: 'servicingChannel',\n title: 'Servicing Channel',\n },\n {\n key: 'memberAuthorization',\n title: 'Member Authorization',\n },\n ];\n\n columnsConfigAgent: ColumnConfig[] = [\n {\n key: 'lineOfBusiness',\n title: 'Line of Busines',\n },\n {\n key: 'memberAccountType',\n title: 'Member Account Type',\n },\n {\n key: 'memberAccountCode',\n title: 'Member Account Code',\n },\n {\n key: 'memberAuthorization',\n title: 'Member Authorization',\n },\n {\n key: 'lastEcaMonthYearOrYear',\n title: 'Last ECA Transfer-In Date (DD/MM/YYYY)',\n },\n ];\n\n isAdvanceSearch = false;\n\n resultMsg = 'No Result Found';\n\n ngOnInit(): void {\n this.layoutHeaderService.doHidenBackButton();\n document.documentElement.scrollTop = 0;\n this.permissionFilter();\n this.initForm();\n this.search(true);\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n empfId: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n memberName: new FormControl('', [Validators.maxLength(100), descriptionValidator(this.memberNameValidTip, true)]),\n originalMemberAccountCode: new FormControl('', [Validators.maxLength(100)]),\n memberAccountCode: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n memberAccountType: new FormControl([]),\n policyStatus: new FormControl([]),\n lineOfBusiness: new FormControl(''),\n phoneNumberExt: new FormControl(''),\n phoneNumber: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n hkidOrPassport: new FormControl('', [Validators.maxLength(80), descriptionValidator(this.hkidPassportValidTip)]),\n enrolmentCompletionDateFrom: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n enrolmentCompletionDateTo: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n companyName: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.memberNameValidTip, true)]),\n employerAccountCode: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n servicingChannel: new FormControl([]),\n servicingAgentCode: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n birthDayMonth: new FormControl(''),\n ageFrom: new FormControl('', [numberStringValidator()]),\n ageTo: new FormControl('', [numberStringValidator()]),\n assetType: new FormControl(''),\n assetSizeFrom: new FormControl('', [numberStringValidator()]),\n assetSizeTo: new FormControl('', [numberStringValidator()]),\n residentAddressDistrict: new FormControl(''),\n lastEcaMonthYearOrYear: new FormControl('', [this.monthYearValidator]),\n },\n {\n validators: [\n rangeValidator('list.range-invalid', 'ageFrom', 'ageTo', true),\n rangeValidator('list.range-invalid', 'assetSizeFrom', 'assetSizeTo', true),\n startAndEndDateValidator('common.date-range-error', 'enrolmentCompletionDateFrom', 'enrolmentCompletionDateTo'),\n // this.amountCurrencyValidator(),\n ],\n updateOn: 'change',\n }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n onCountryCodeChange(val: string, phoneNumber: string) {\n this.countryCode?.setValue(val);\n if (!val) return;\n\n this.phoneNumber?.setValidators([Validators.required, Validators.maxLength(20), numberStringValidator()]);\n\n if (phoneNumber === '') {\n this.phoneNumber?.markAsDirty();\n this.phoneNumber?.setValue('');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onPhoneNumberChange(val: any) {\n if (val) {\n this.countryCode?.setValidators([Validators.required]);\n if (!this.countryCode?.value) {\n this.countryCode?.markAsDirty();\n this.countryCode?.setValue('');\n }\n } else {\n this.countryCode?.clearValidators();\n this.countryCode?.markAsPristine();\n this.countryCode?.markAsUntouched();\n this.countryCode?.updateValueAndValidity();\n }\n }\n\n getContryCodeOptions() {\n return empfCountryOption.map(item => {\n if (!item.value) {\n return { ...item, value: 'none' };\n }\n return item;\n });\n }\n\n search(skipCheck = false) {\n if (this.searchButtonDisabled && !skipCheck) return;\n if (!skipCheck) {\n this.resetButtonDisabled = false;\n }\n this._pageCount = { current: 1, count: 1 };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.getPageList();\n }\n\n goToDetail(item: Employee) {\n if (!this.isStaff) return;\n this.router.navigate(['/employee/profile'], {\n queryParams: {\n md5: item.md5,\n },\n });\n }\n\n goToPolicyDetail(item: RelatedPolicy) {\n this.router.navigate(['/employee/related-policy-detail'], {\n queryParams: {\n id: item.id,\n },\n });\n }\n\n expandRow(index: number) {\n if (this._eeRecordList && this._eeRecordList[index]) {\n this.getListExpansion(this._eeRecordList[index].md5 as string, index).then(() => {});\n }\n }\n\n async getListExpansion(md5: string, index: number) {\n const params = deepCopy(this.tempSeardhParams);\n params.md5 = md5;\n delete params.page;\n delete params.size;\n this._progress = true;\n this.service\n .getListExpansion(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && this._eeRecordList) {\n this._eeRecordList[index].expandData = data.data;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n profileAgentInfo(val: ProfileAgentInfo) {\n if (!val) {\n return '';\n }\n return val.agentCode + ' ' + val.agentName;\n }\n defaultPaymentMethodStr(val: string[]) {\n if (!val) {\n return '';\n }\n let str = '';\n val.forEach((i, index) => {\n str = str + i + (index + 1 != val.length ? ' | ' : '');\n });\n return str;\n }\n reset() {\n if (this.resetButtonDisabled) return;\n this.resetButtonDisabled = true;\n this.initForm();\n // reloadTable to reset sort\n this.showTable = false;\n setTimeout(() => {\n this.showTable = true;\n this._pageCount = { current: 1, count: 1 };\n this.tempSeardhParams = { page: 1, size: 10 };\n this.search(true);\n });\n }\n\n assetTypeChange() {\n // this.assetType?.markAsPristine();\n // this.assetType?.markAsUntouched();\n }\n\n // ageRangeChange(val: string, type: 'ageFrom' | 'ageTo') {\n // let result = 0;\n // const num = Number(val);\n // if (!isNaN(num)) {\n // result = Math.abs(num);\n // }\n // this.form.get(type)?.setValue(result);\n // }\n\n // assetSizeChange(val: string, type: 'assetSizeFrom' | 'assetSizeTo') {\n // let result = 0;\n // const num = Number(val);\n // if (!isNaN(num)) {\n // result = Math.abs(num);\n // }\n // this.form.get(type)?.setValue(result);\n // }\n\n // getCountryCodes() {\n // this.service\n // .getCountryCodes()\n // .pipe(finalize(() => {}))\n // .subscribe(data => {\n // if (data.result === 0 && data.data) {\n // this.countryCodeConfig.options = this.transToOpionts(data.data);\n // this.countryCodeConfig = { ...this.countryCodeConfig };\n // } else {\n // this.toastError(data.message);\n // }\n // });\n // }\n\n transToOpionts(list: ContryCode[]): CdsOption[] {\n return list.map(item => {\n return {\n label: `${item.countryCallingCode || ''}(${item.crsCountryCode})`,\n value: item.countryCallingCode,\n };\n });\n }\n\n getPageList() {\n this._progress = true;\n\n const params: EeSearchRequest = this.getRequestParams();\n\n this.service\n .getPageList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._eeRecordList = data.data.empty ? [] : data.data.content;\n this._pageCount.count = data.data.totalPages;\n this._totalCount = data.data.totalElements;\n this._pageCount = { ...this._pageCount };\n this.resultMsg = 'No Result Found';\n } else if (data.result === 3) {\n console.log(data);\n this._eeRecordList = [];\n this._pageCount.count = 0;\n this._totalCount = 0;\n this.resultMsg = 'Restricted Manulife Staff Policy - Enquiry Prohibited';\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTempSearchParams(sort = '') {\n const params: EeSearchRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this._pageCount.current as number) - 1,\n size: 10,\n };\n\n if (sort) {\n params.sort = sort;\n }\n\n if (params.enrolmentCompletionDateFrom) {\n params.enrolmentCompletionDateFrom = this.dateTrans(params.enrolmentCompletionDateFrom);\n }\n\n if (params.enrolmentCompletionDateTo) {\n params.enrolmentCompletionDateTo = this.dateTrans(params.enrolmentCompletionDateTo);\n }\n\n if (params.memberAccountType) {\n params.memberAccountType = this.getRequestValueFromOptions(params.memberAccountType as CdsOption[]);\n }\n\n if (params.policyStatus) {\n params.policyStatus = this.getRequestValueFromOptions(params.policyStatus as CdsOption[]);\n }\n\n if (params.servicingChannel) {\n params.servicingChannel = this.getRequestValueFromOptions(params.servicingChannel as CdsOption[]);\n }\n\n if (params.phoneNumberExt === 'none') {\n delete params.phoneNumberExt;\n }\n\n return params;\n }\n\n getRequestValueFromOptions(options: CdsOption[]) {\n return options.map(item => item.value).join(',');\n }\n\n getRequestParams() {\n const params: EeSearchRequest = {\n ...this.tempSeardhParams,\n page: (this._pageCount.current as number) - 1,\n size: 10,\n };\n\n return params;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n phoneNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const countryCodeControl = control.get('countryCode');\n const numberControl = control.get('phoneNumber');\n if (countryCodeControl?.value || numberControl?.value) {\n numberControl?.setValidators([Validators.required, Validators.maxLength(20), numberStringValidator()]);\n countryCodeControl?.setValidators([Validators.required]);\n countryCodeControl?.markAllAsTouched();\n numberControl?.markAllAsTouched();\n countryCodeControl?.updateValueAndValidity();\n numberControl?.updateValueAndValidity();\n } else {\n numberControl?.clearValidators();\n countryCodeControl?.setValidators([Validators.maxLength(20), numberStringValidator()]);\n }\n return null;\n };\n }\n\n amountCurrencyValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const currencyControl = control.get('assetType');\n const amountFromControl = control.get('assetSizeFrom');\n const amountToControl = control.get('assetSizeTo');\n const currency = currencyControl?.value;\n const amountFrom = amountFromControl?.value;\n const amountTo = amountToControl?.value;\n\n const fromErrors = amountFromControl?.errors ? deepCopy(amountFromControl?.errors) : {};\n const toErrors = amountToControl?.errors ? deepCopy(amountToControl?.errors) : {};\n\n if (currency !== CurrencyE.HKD && amountFrom === '' && amountTo === '') {\n fromErrors['required'] = true;\n toErrors['required'] = true;\n\n amountFromControl?.markAsTouched();\n amountToControl?.markAsTouched();\n\n amountFromControl?.setErrors(fromErrors);\n amountToControl?.setErrors(toErrors);\n\n return null;\n }\n\n // if (!currency && (amountFrom !== '' || amountTo !== '')) {\n // currencyControl?.setErrors({ required: true });\n // currencyControl?.markAllAsTouched();\n // } else {\n // currencyControl?.setErrors({});\n // }\n\n delete fromErrors['required'];\n delete toErrors['required'];\n amountFromControl?.setErrors(Object.keys(fromErrors).length === 0 ? null : fromErrors);\n amountToControl?.setErrors(Object.keys(toErrors).length === 0 ? null : toErrors);\n\n return null;\n };\n }\n\n channelStrGen(data?: string[]) {\n if (!data) return '';\n return data.join(' | ');\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n advanceSearchToggle() {\n this.isAdvanceSearch = !this.isAdvanceSearch;\n }\n\n monthYearValidator(control: AbstractControl): ValidationErrors | null {\n const dateString = control.value;\n const regexYYYY = /^\\d{4}$/;\n const regexMMYYYY = /^\\d{2}-\\d{4}$/;\n\n if (!dateString) {\n return null;\n }\n\n if (regexYYYY.test(dateString) || regexMMYYYY.test(dateString)) {\n return null;\n }\n\n return { dateInvalid: true };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getDataSource(data: any) {\n if (!data || !Array.isArray(data)) return [];\n return data;\n }\n\n assetSizeChange() {\n if (this.assetSizeFrom?.value || this.assetSizeTo?.value) {\n this.assetType?.setValidators([Validators.required]);\n this.assetType?.markAsDirty();\n } else {\n this.assetType?.clearValidators();\n }\n this.assetType?.updateValueAndValidity();\n }\n}\n","
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n\n
    \n \n\n
    \n Max length is 20\n\n {{ empfId?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 100\n\n {{ memberName?.errors?.['descriptionInvalid'] }}\n
    \n
    \n\n
    \n
    \n
    {{ 'ee.origin-member-account-code' | lang }}
    \n \n
    \n \n\n
    \n Max length is 100\n\n {{ originalMemberAccountCode?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 15\n\n {{ memberAccountCode?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n
    Phone Number
    \n
    \n
    \n \n \n\n
    \n Missing Country Calling Code\n
    \n
    \n
    \n \n\n
    \n Max length is 20\n\n {{ phoneNumber?.errors?.['invalidNumberString'] }}\n Missing Phone Number\n
    \n
    \n
    \n
    \n\n \n
    \n \n\n
    \n Max length is 80\n\n {{ hkidOrPassport?.errors?.['descriptionInvalid'] }}\n
    \n
    \n\n
    \n
    \n \n \n \n\n \n {{\n 'create.dateError' | lang\n }}\n {{\n 'common.date-range-error' | lang\n }}\n
    \n
    \n
    -
    \n
    \n \n \n \n\n \n {{\n 'create.dateError' | lang\n }}\n {{\n 'common.date-range-error' | lang\n }}\n
    \n
    \n
    \n\n
    \n \n\n
    \n Max length is 200\n\n {{ companyName?.errors?.['descriptionInvalid'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 15\n\n {{ employerAccountCode?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n \n\n
    \n Max length is 20\n\n {{ servicingAgentCode?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n
    Age Range
    \n
    \n
    \n \n\n
    \n {{ ageFrom?.errors?.['invalidRange'] | lang }}\n {{\n 'common.please-input-integer' | lang\n }}\n Please input range from\n
    \n
    \n
    \n
    \n \n\n
    \n {{ ageTo?.errors?.['invalidRange'] | lang }}\n {{\n 'common.please-input-integer' | lang\n }}\n Please input range to\n
    \n
    \n
    \n
    \n\n
    \n
    Asset Size
    \n
    \n
    \n \n\n
    \n Please select currency\n
    \n
    \n\n
    \n \n\n
    \n {{ assetSizeFrom?.errors?.['invalidRange'] | lang }}\n {{\n 'common.please-input-integer' | lang\n }}\n Please input range from\n
    \n
    \n
    \n
    \n \n\n
    \n {{ assetSizeTo?.errors?.['invalidRange'] | lang }}\n {{\n 'common.please-input-integer' | lang\n }}\n Please input range to\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n\n
    \n Date format must be MM-YYYY or YYYY\n
    \n
    \n \n\n
    \n \n\n \n \n\n
    \n
    \n \n \n
    \n
    \n Advanced Search\n
    \n
    \n
    \n\n\n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ _totalCount | number }} records\n
    \n
    \n\n\n \n \n\n\n
    \n \n {{ element['lastName'] }}\n {{ element['firstName'] }}\n \n\n \n {{ element['lastZhName'] }}\n {{ element['firstZhName'] }}\n \n
    \n
    \n\n\n
    {{ element['doB'] | ssmsDate }}
    \n
    \n\n\n
    \n
    Member Details
    \n
    \n \n \n {{ item.memberAccountCode }}\n \n\n \n \n \n\n \n {{ item.lastEcaMonthYearOrYear | ssmsDate }}\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, Output, EventEmitter, ChangeDetectorRef, Renderer2, ElementRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport moment from 'moment';\nimport { employeeStatusMapObj } from '../employee';\n\n@Component({\n selector: 'app-employee-profile-title',\n templateUrl: './employee-profile-title.component.html',\n styleUrls: ['./employee-profile-title.component.scss'],\n})\nexport class EmployeeProfileTitleComponent implements OnInit {\n @Input() showBtn = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() detailData?: any;\n @Input() isPolicy = false;\n\n @Output() erProfileInfoDetailShow = new EventEmitter();\n @Output() stickyStatusChange = new EventEmitter();\n\n status = 'Active';\n\n btnConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n employeeStatusMapObj = employeeStatusMapObj;\n\n showQuickAccess = false;\n\n id = '';\n\n toolTipString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet nisl ultricies, ultrices augue id, finibus diam. ';\n\n sticky = false;\n\n linkBtnConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n constructor(private router: Router, private route: ActivatedRoute, private cdr: ChangeDetectorRef, private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n this.id = this.route.snapshot.queryParams['id'];\n\n const scrollDiv = document.getElementsByClassName('cds-navigation-content')[0] as HTMLElement;\n scrollDiv.onscroll = this.scrollFunction;\n }\n\n scrollFunction = () => {\n const scrollDiv = document.getElementsByClassName('cds-navigation-content')[0] as HTMLElement;\n const navigation = document.getElementById('ttt') as HTMLElement;\n const style = getComputedStyle(navigation);\n const height = parseInt(style.paddingTop) + +parseInt(style.height) + parseInt(style.paddingBottom) + (this.isPolicy ? 0 : 32);\n const hostElement = document.querySelector('app-employer-profile-title') as Element;\n if (scrollDiv.scrollTop > height) {\n this.sticky = true;\n this.forceRender();\n hostElement?.classList?.add('div-border-top');\n } else {\n this.sticky = false;\n hostElement?.classList?.remove('div-border-top');\n this.sticky = false;\n this.forceRender();\n }\n };\n\n goBack() {\n this.router.navigate(['/employer/profile-detail'], {\n queryParams: { id: this.id },\n });\n }\n\n quickAccess(status?: boolean) {\n if (status !== undefined) {\n this.showQuickAccess = status;\n } else {\n this.showQuickAccess = !this.showQuickAccess;\n }\n }\n\n updateDate(date: string) {\n if (!date) {\n return '';\n }\n return moment(date).utcOffset(8).format('h:mma DD MMM, YYYY');\n }\n\n forceRender() {\n this.cdr.detectChanges();\n this.stickyStatusChange.emit(this.sticky);\n const hostElement = this.el.nativeElement;\n this.renderer.setStyle(hostElement, 'box-shadow', this.sticky ? '0px 8px 6px -6px rgba(0, 0, 0, 0.1)' : '');\n this.renderer.setStyle(hostElement, 'border-top', this.sticky ? '1px solid #ededed' : '');\n }\n}\n","
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ detailData?.lastName }} {{ detailData?.firstName }}\n {{ detailData?.lastZhName }}{{ detailData?.firstZhName }} \n
    \n\n
    \n
    {{ detailData?.lastName }} {{ detailData?.firstName }}
    \n
    {{ detailData?.lastZhName }}{{ detailData?.firstZhName }}
    \n
    \n\n
    \n \n \n
    \n\n
    \n Latest update from eMPF:\n {{ updateDate | fn : detailData?.latestUpdate }}\n (HKT)\n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n \n \n
    \n\n
    \n Link to e-CWS\n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { EeProfileDetailComponent } from './ee-profile-detail/ee-profile-detail.component';\nimport { EeProfileDetailPlusComponent } from './ee-profile-detail-plus/ee-profile-detail-plus.component';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { EmployeeListComponent } from './employee-list/employee-list.component';\nimport { RelatedPolicyDetailComponent } from './related-policy-detail/related-policy-detail.component';\nimport { PolicyTransferDetailsComponent } from './policy-transfer-details/policy-transfer-details.component';\nimport { PolicyWithdrawalDetailsComponent } from './policy-withdrawal-details/policy-withdrawal-details.component';\n\nconst routes: Routes = [\n {\n path: 'employee',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'profile',\n component: EeProfileDetailComponent,\n data: {\n title: 'ee.profile.detail.title',\n roles: {\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'list',\n component: EmployeeListComponent,\n data: {\n title: 'ee.profile.title',\n roles: {\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n CUSTOMER_EMPLOYEE_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'related-policy-detail',\n component: RelatedPolicyDetailComponent,\n data: {\n title: 'ee.profile.title',\n roles: {\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n CUSTOMER_EMPLOYEE_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'policy-transfer-detail',\n component: PolicyTransferDetailsComponent,\n data: {\n title: 'ee.transfer-record-details',\n roles: {\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'policy-withdrawal-detail',\n component: PolicyWithdrawalDetailsComponent,\n data: {\n title: 'ee.withdrawal-record-details',\n roles: {\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'profileplus',\n component: EeProfileDetailPlusComponent,\n data: {\n title: 'ee.profile.detail.plus.title',\n roles: {\n CUSTOMER_EMPLOYEE: PermissionAccess.R,\n CUSTOMER_EMPLOYEE_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class EmployeeRoutingModule {}\n","import { CdsPillModule } from '@cds/ng-web-components/pill';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EmployeeRoutingModule } from './employee-routing.module';\nimport { EeProfileDetailComponent } from './ee-profile-detail/ee-profile-detail.component';\n\nimport { EeProfileListComponent } from './ee-profile-list/ee-profile-list.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsAccordionModule } from '@cds/ng-web-components/accordion';\nimport { EeProfileDetailPlusComponent } from './ee-profile-detail-plus/ee-profile-detail-plus.component';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { EeProfileAgentInfoComponent } from './ee-profile-agent-info/ee-profile-agent-info.component';\nimport { EeProfileFundInfoComponent } from './ee-profile-fund-info/ee-profile-fund-info.component';\nimport { EeProfileOthersComponent } from './ee-profile-others/ee-profile-others.component';\nimport { CdAccordionModule } from 'src/app/components/accordion/cd-accordion.module';\nimport { EeProfileEmploymentInfoComponent } from './ee-profile-employment-info/ee-profile-employment-info.component';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { AppPaginationModule } from 'src/app/shared/pagination/pagination.module';\nimport { EmployeeListComponent } from './employee-list/employee-list.component';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CampaignInformationComponent } from './campaign-information/campaign-information.component';\nimport { RelatedPolicyComponent } from './related-policy/related-policy.component';\nimport { RelatedPolicyDetailComponent } from './related-policy-detail/related-policy-detail.component';\nimport { ContactComponent } from './contact-persion/contact-persion.component';\nimport { AddressTypeDefinitionPopupComponent } from './address-type-definition-popup/address-type-definition-popup.component';\nimport { PolicyDetailComponent } from './policy-detail/policy-detail.component';\nimport { AgentInfoComponent } from './agent-info/agent-info.component';\nimport { EmploymentInfoComponent } from './employment-info/employment-info.component';\nimport { ContributionRecordsComponent } from './contribution-records/contribution-records.component';\nimport { BillReferenceComponent } from './bill-reference/bill-reference.component';\nimport { AmountTableComponent } from './amount-table/amount-table.component';\nimport { EmployeeDefaultContributionComponent } from './employee-default-contribution/employee-default-contribution.component';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { PolicyTransferComponent } from './policy-transfer/policy-transfer.component';\nimport { PolicyTransferDetailsComponent } from './policy-transfer-details/policy-transfer-details.component';\nimport { PolicyWithDrawalComponent } from './policy-withdrawal/policy-withdrawl.component';\nimport { PolicyWithdrawalDetailsComponent } from './policy-withdrawal-details/policy-withdrawal-details.component';\nimport { EmployerModule } from '../employer/employer.module';\nimport { PolicyTerminationComponent } from './policy-termination/policy-termination.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { EmployeeProfileTitleComponent } from './employee-profile-title/employee-profile-title.component';\nimport { EmpfWorkflowModule } from '../empf-workflow/empf-workflow.module';\nimport { FundInfoComponent } from './fund-info/fund-info.component';\nimport { paymentTransactionPopComponent } from './fund-info/payment-transaction-pop/payment-transaction-pop.component';\n@NgModule({\n declarations: [\n EeProfileDetailComponent,\n EeProfileListComponent,\n EeProfileDetailPlusComponent,\n EeProfileAgentInfoComponent,\n EeProfileFundInfoComponent,\n EeProfileOthersComponent,\n EeProfileEmploymentInfoComponent,\n EmployeeListComponent,\n CampaignInformationComponent,\n RelatedPolicyComponent,\n RelatedPolicyDetailComponent,\n ContactComponent,\n AddressTypeDefinitionPopupComponent,\n PolicyDetailComponent,\n AgentInfoComponent,\n EmploymentInfoComponent,\n ContributionRecordsComponent,\n BillReferenceComponent,\n AmountTableComponent,\n EmployeeDefaultContributionComponent,\n PolicyTransferComponent,\n PolicyTransferDetailsComponent,\n PolicyWithDrawalComponent,\n PolicyWithdrawalDetailsComponent,\n PolicyTerminationComponent,\n EmployeeProfileTitleComponent,\n FundInfoComponent,\n paymentTransactionPopComponent,\n ],\n imports: [\n CommonModule,\n EmployeeRoutingModule,\n ReactiveFormsModule,\n CdsButtonModule,\n CdsIconModule,\n CdsPaginationModule,\n CdsTextfieldModule,\n FormsModule,\n CdsPopupModule,\n HttpClientModule,\n CdsProgressModule,\n CdsLanguageModule,\n CdsTableModule,\n CdsSortModule,\n CdsCheckboxModule,\n CdsAccordionModule,\n CdsDropdownModule,\n CdsTabsModule,\n CdAccordionModule,\n RowItemModule,\n CdsAssistiveTextModule,\n AppPaginationModule,\n SharedModule,\n CdsDatepickerModule,\n CdsPillModule,\n CdsRadioModule,\n EmployerModule,\n MatFormFieldModule,\n MatSelectModule,\n EmpfWorkflowModule,\n ],\n})\nexport class EmployeeModule {}\n","import {\n DefaultContribution,\n DefaultContributionRequest,\n EmpfWorkflowRequest,\n EmploymentInfo,\n MemberAccountTypeE,\n MemberAccountTypeMap,\n PolicyTermination,\n PolicyTransfer,\n PolicyTransferDetails,\n PolicyTransferRequest,\n PolicyWithdrawal,\n PolicyWithdrawalDetails,\n PolicyWithdrawalRequest,\n PolicyDetails,\n RegistrationTypeMap,\n TransactionRecordResponse,\n TransactionRecordRequest,\n InvestedFundInformationResponse,\n FundBalanceResponse,\n PaymentTransactionResponse,\n} from './employee';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { Observable } from 'rxjs';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { EEProfileDetailResponse } from './ee-modules/EEProfileDetail.module';\nimport { EEProfileContactResponse } from './ee-modules/EEProfileContact.module';\nimport { EEProfileFundResponse } from './ee-modules/EEProfileFund.module';\nimport { EEProfileOthersResponse } from './ee-modules/EEProfileOthers.module';\nimport { AgentInfoAndCommissionInfoResponse } from './ee-modules/AgentAndCommissionInfo.module';\nimport { filterParams } from 'src/app/core/models/request';\nimport { CampaignInformationRequest, ContactInfo, ContryCode, EeSearchRequest, Employee, RelatedPolicy, TransferReference } from './employee';\nimport { AgentInfo, ContributionDetails, WorkflowDTO } from '../employer/employer';\nimport moment from 'moment';\nimport { paramsObj2paramsUrlStr } from 'src/app/utils/utils';\nimport { Campaign, CampaignSearchRequest, CustomerListFileCheckRes } from '../campaign/campaign';\nimport { CampaignInformation } from './ee-modules/CampaignInformation.module';\nimport { ActivatedRoute } from '@angular/router';\n//import { HttpHeaders } from '@angular/common/http';\n@Injectable({\n providedIn: 'root',\n})\nexport class EmployeeService {\n private base_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/EE-Profile/`;\n //private base_url = `http://localhost:8093/api/v1/int/employee/`;\n\n private detail_url = this.base_url + 'details';\n private contact_url = this.base_url + 'contact';\n private agent_url = this.base_url + 'agentInfo';\n private fund_url = this.base_url + 'fund';\n private others_url = this.base_url + 'others';\n private customerServicePath = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n private employeePath = this.customerServicePath + 'employee/';\n //private employeePath = `http://localhost:8093/api/v1/int/employee/`;\n //private employeePath = 'http://localhost:8082/employee/'\n private getListUrl = this.employeePath + 'getList';\n private getWorkflowUrl = this.employeePath + 'policy/workflowList';\n //private getListUrl = 'http://localhost:8093/api/v1/int/employee/' +'getList';\n private getDetailsUrl = this.employeePath + 'getDetails';\n //private getDetailsUrl = 'http://localhost:8093/api/v1/int/employee/' +'getDetails';\n private getCountryCodesUrl = this.employeePath + 'phoneExts';\n private overviewBasicInfoUrl = this.employeePath + 'overview/basicInformation';\n private contactInfoUrl = this.employeePath + 'policy/contactInformation';\n private agentInfoUrl = this.employeePath + 'policy/agentInfo';\n private policyBasicInfoUrl = this.employeePath + 'policy/basicInformation';\n private campaignUrl = this.customerServicePath + 'campaign';\n private getCampaignListUrl = this.campaignUrl + '/getList';\n private getrelatedPoliciesUrl = this.employeePath + 'overview/relatedPolicies';\n private employmentInfoUrl = this.employeePath + 'policy/employmentInfo';\n private getContributionRecordssUrl = this.employeePath + 'policy/contributionRecords';\n private getDefaultContributionUrl = this.employeePath + 'policy/contributionDefault';\n private getPolicyTransferListUrl = this.employeePath + 'policy/transferList';\n private getTransferDetailsUrl = this.employeePath + 'policy/transferDetails';\n private getPolicyWithdrawalListUrl = this.employeePath + 'policy/withdrawalList';\n private getWithdrawalDetailsUrl = this.employeePath + 'policy/withdrawalDetails';\n private getTerminationUrl = this.employeePath + 'policy/getTermination';\n private getTerminationNoUrl = this.employeePath + 'policy/getTerminationNoList';\n // private uploadCustomerListUrl = this.campaignUrl + '/uploadExcelFile';\n private uploadCustomerListUrl = `${environment.apiPrefix}/ext/eb-ssms/reporting-service/api/v1/campaign` + '/uploadExcelFile';\n private getPolicyDetailsUrl = this.employeePath + 'policy/policyDetails';\n private getTransactionRecord = this.employeePath + 'policy/fundInfo/getTransactionRecord';\n private getInvestedFundInformation = this.employeePath + 'policy/fundInfo/getInvestedFundInformation';\n private getFundBalancePath = this.employeePath + 'policy/fundInfo/getFundBalance';\n private getPaymentTransactionPath = this.employeePath + 'policy/paymentTransaction';\n\n constructor(private http: HttpClient, private route: ActivatedRoute) {}\n\n buildParam(\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n },\n body?: any | null\n ) {\n const urlParams = new URLSearchParams(window.location.search);\n const _key = 'policyKey';\n const _policyKey = urlParams.get(_key);\n if (_policyKey) {\n if (options && options.params) {\n if (options.params instanceof HttpParams) {\n options.params = options.params.set(_key, _policyKey);\n if (options.params.get('id') == undefined) {\n options.params.delete('id');\n }\n }\n if (typeof options.params === 'object' && options.params !== null && !(options.params instanceof HttpParams)) {\n options.params = {\n ...options.params,\n policyKey: _policyKey,\n };\n if (options.params['id'] == undefined) {\n delete options.params['id'];\n }\n }\n } else {\n options = {\n params: {\n policyKey: _policyKey,\n },\n };\n }\n if (body) {\n body = {\n ...body,\n policyKey: _policyKey,\n };\n } else {\n body = {\n policyKey: _policyKey,\n };\n }\n }\n }\n\n get(\n url: string,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }\n ): Observable {\n this.buildParam(options);\n return this.http.get(url, options);\n }\n\n post(\n url: string,\n body: any | null,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }\n ): Observable {\n this.buildParam(options, body);\n return this.http.post(url, body, options);\n }\n\n put(\n url: string,\n body: any | null,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }\n ): Observable {\n this.buildParam(options, body);\n return this.http.put(url, body, options);\n }\n\n delete(\n url: string,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n body?: any | null;\n }\n ): Observable {\n this.buildParam(options);\n return this.http.delete(url, options);\n }\n\n getDetail(id: string): Observable> {\n // const headers = new HttpHeaders({\n // 'access-token': 'eyJhbGciOiJIUzUxMiJ9.eyJvcmdhbml6ZVR5cGUiOiJBR0VOQ1kiLCJpZGVudGl0eVR5cGUiOiJTWVNURU0iLCJvcmdhbml6ZSI6Im9yZ2FuaXplaWQiLCJpZGVudGl0eSI6IjM3ZTJhZmM3LTRlZGUtNDM0ZS05ZjkzLWQwZGFiNjZmMWE2YiIsIm5hbWUiOiJNYW51bGlmZSIsInBlcm1pdCI6eyJDVVNUT01FUl9FTVBMT1lFRV9JTlRFUk1FRElBUlkiOiJFIiwiU1lTX0lERU5USVRZX1NUQUZGX01BTkFHRSI6IkUiLCJDT01NSVNTSU9OX0VSUk9SX0xPRyI6IkUiLCJTWVNfQ0FMRU5EQVJfUkVWSUVXRVIiOiJFIiwiQ09NTUlTU0lPTl9KT1VSTkFMIjoiRSIsIk1BQ0FVX0dFTkVSQUxfUkVQT1JUUyI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9BRERJVElPTkFMX0lORk9STUFUSU9OIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX1NUQUZGIjoiRSIsIlNIS19HRU5FUkFMX1JFUE9SVFMiOiJFIiwiT1JTT19TVEFGRl9SRVBPUlRTIjoiRSIsIkNPTU1fQURKX0lORElWSURVQUwiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQ09ORklSTV9DSEVRVUVfU1RBVFVTIjoiRSIsIlNZU19ST0xFX01BTkFHRSI6IkUiLCJDT01NX0lORk9fU0NBTEVfUkVDT1JEIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX1NVQlNJRElBUlkiOiJFIiwiU0FMRVNfSk9VUk5FWV9TQUxFU19TVVBQT1JUIjoiRSIsIk1BQ0FVX01MRlVCX1JFUE9SVFMiOiJFIiwiU0hLX0FVVE9fUk9MTE9WRVJfT1BTX1NUQUZGIjoiRSIsIk1BQ0FVX01JU19SRVBPUlRTIjoiRSIsIkNVU1RPTUVSX01PQklMRV9TVUJTQ1JJUFRJT04iOiJFIiwiQ09NTUlTU0lPTl9TQ0FMRV9NQU5BR0VNRU5UIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX1JFUE9SVCI6IkUiLCJNQUNBVV9TVEFGRl9SRVBPUlRTIjoiRSIsIlNBTEVTX0pPVVJORVlfU1VQRVJfVVNFUiI6IkUiLCJNUEZfTUxGVUJfUkVQT1JUUyI6IkUiLCJDT01NX0FESl9OT1JNQUwiOiJFIiwiU0hLX01MRlVCX1JFUE9SVFMiOiJFIiwiU0hLX01JU19SRVBPUlRTIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX01BUFBJTkciOiJFIiwiQ09NTV9BREpfQVBQRUFMIjoiRSIsIlNZU19BVURJVF9MT0ciOiJFIiwiUkVTSURVRV9JTlRFUkVTVF9SQVRFIjoiRSIsIlNZU19JREVOVElUWV9BR0VOVF9NQU5BR0UiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfUEFZTUVOVF9TVEFGRiI6IkUiLCJDVVNUT01FUl9NRU1CRVIiOiJFIiwiU1lTX0NBTEVOREFSIjoiRSIsIk9SU09fTUlTX1JFUE9SVFMiOiJFIiwiTVBGX0dFTkVSQUxfUkVQT1JUUyI6IkUiLCJTSEtfQUdFTlRfQVNTSUdOTUVOVF9SRUFTU0lHTiI6IkUiLCJNUEZfTUlTX1JFUE9SVFMiOiJFIiwiQ1VTVE9NRVJfRU1QTE9ZRVJfSU5URVJNRURJQVJZIjoiRSIsIk1QRl9TVEFGRl9SRVBPUlRTIjoiRSIsIkNVU1RPTUVSX1NFUlZJQ0lOR19BR0VOVCI6IkUiLCJDT01NX0lORk9fSU5ESVZJRFVBTF9UUkYiOiJFIiwiQ0hBVEJPVF9DU08iOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQVBQUk9WRV9UT19QUklOVCI6IkUiLCJDSEFUQk9UX0FETUlOIjoiRSIsIlNZU19DT01NSVNTSU9OX0RFRkFVTFRfU0NBTEUiOiJFIiwiQ09NTV9JTkZPX0FHRU5UX0NIQU5HRSI6IkUiLCJDSEFUQk9UX1NVUEVSVklTT1IiOiJFIiwiQ09NTV9JTkZPX01BSU5fUEFSVElFU19PVEhFUlMiOiJFIiwiU0hLX0FHRU5UX0FTU0lHTk1FTlRfUkVQT1JUX0FHRU5UX0hFQUQiOiJFIiwiU0hLX1NUQUZGX1JFUE9SVFMiOiJFIiwiQ09NTUlTU0lPTl9TQ0hFTUVfTUFTVEVSX1JFQ09SRCI6IkUiLCJDT01NX0lORk9fTUFJTl9QQVJUSUVTX0NPTlRfQURKIjoiRSIsIlNBTEVTX0pPVVJORVlfQlJBTkNIX0xFVkVMIjoiRSIsIlNZU1RFTV9ST09UIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX0FDVElWSVRZX0NPREUiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQ09OVFJPTF9QUklOVCI6IkUiLCJDVVNUT01FUl9DQU1QQUlHTl9JTkZPIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVFIjoiRSIsIkNPTU1fSU5GT19NQUlOX0NPTU1fU1VNTUFSWSI6IkUiLCJTQUxFU19KT1VSTkVZX0FHRU5UIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX0FHRU5UIjoiRSIsIk9SU09fR0VORVJBTF9SRVBPUlRTIjoiRSIsIk9SU09fTUxGVUJfUkVQT1JUUyI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9TUSI6IkUiLCJTSEtfUEFZTUVOVF9JU1NVQU5DRV9BUFBST1ZFX1BSSU5URUQiOiJFIiwiQ09NTV9JTkZPX0FHRU5UX0NPTVAiOiJFIiwiU0FMRVNfSk9VUk5FWV9TVVBFUl9BRE1JTiI6IkUiLCJTQUxFU19KT1VSTkVZX1BBUEVSX0ZPUk0iOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfT1BTX1NUQUZGIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSIjoiRSJ9LCJzdGF0dXMiOiJBQ1RJVkUiLCJleHAiOjE4MTQ1OTM5NDh9.xuV7mGol4Q9jdLzG7XmLgTzskRJkWEcyq35deur082CfUoKNzHoWaXgtnduyinZCkvxY70mmj4-2xWLsBI9IZQ'\n // });\n // return this.get>(this.getDetailsUrl, {\n // params: { id: id },\n // headers: headers\n // });\n return this.get>(this.detail_url, {\n params: { id: id },\n });\n }\n\n getOverviewBasicInfo(md5: string, id: string): Observable> {\n return this.get>(this.overviewBasicInfoUrl, {\n params: { md5, id },\n });\n }\n\n getContactInfo(id: string): Observable> {\n return this.get>(this.contactInfoUrl, {\n params: { id: id },\n });\n }\n\n gePolicyAgentInfo(id: string): Observable> {\n return this.get>(this.agentInfoUrl, {\n params: { id: id },\n });\n }\n\n getPolicyBasicInfo(id: string): Observable> {\n return this.get>(this.policyBasicInfoUrl, {\n params: { id: id },\n });\n }\n\n getEmploymentInfo(id: string): Observable> {\n return this.get>(this.employmentInfoUrl, {\n params: { id: id },\n });\n }\n\n getContact(trusteeId: string, entityType: string): Observable> {\n return this.get>(this.contact_url, {\n params: { trusteeId: trusteeId, entityType: entityType },\n });\n }\n\n getAgentInfo(trusteeId: string, entityType: string): Observable> {\n return this.get>(this.agent_url, {\n params: { trusteeId: trusteeId, entityType: entityType },\n });\n }\n\n getFundInfo(trusteeId: string, entityType: string): Observable> {\n return this.get>(this.fund_url, {\n params: { trusteeId: trusteeId, entityType: entityType },\n });\n }\n\n getOthersInfo(trusteeId: string, entityType: string): Observable> {\n return this.get>(this.others_url, {\n params: { trusteeId: trusteeId, entityType: entityType },\n });\n }\n\n //this.getListUrl\n\n getPageList(params: EeSearchRequest): Observable> {\n let paramsStr = paramsObj2paramsUrlStr(params);\n const sortList: string[] | undefined = params.sort?.split(',');\n if (sortList) {\n const sortKey = sortList[0];\n // const sortMode = sortList[1];\n if (sortKey === 'last_nm') {\n paramsStr += `&sort=empf_id,asc`;\n } else if (sortKey === 'empf_id') {\n paramsStr += `&sort=last_nm,asc`;\n } else {\n paramsStr += `&sort=last_nm,asc&sort=empf_id,asc`;\n }\n } else {\n paramsStr += `&sort=last_nm,asc&sort=empf_id,asc`;\n }\n // const headers = new HttpHeaders({\n // 'access-token': 'eyJhbGciOiJIUzUxMiJ9.eyJvcmdhbml6ZVR5cGUiOiJBR0VOQ1kiLCJpZGVudGl0eVR5cGUiOiJTWVNURU0iLCJvcmdhbml6ZSI6Im9yZ2FuaXplaWQiLCJpZGVudGl0eSI6IjM3ZTJhZmM3LTRlZGUtNDM0ZS05ZjkzLWQwZGFiNjZmMWE2YiIsIm5hbWUiOiJNYW51bGlmZSIsInBlcm1pdCI6eyJDVVNUT01FUl9FTVBMT1lFRV9JTlRFUk1FRElBUlkiOiJFIiwiU1lTX0lERU5USVRZX1NUQUZGX01BTkFHRSI6IkUiLCJDT01NSVNTSU9OX0VSUk9SX0xPRyI6IkUiLCJTWVNfQ0FMRU5EQVJfUkVWSUVXRVIiOiJFIiwiQ09NTUlTU0lPTl9KT1VSTkFMIjoiRSIsIk1BQ0FVX0dFTkVSQUxfUkVQT1JUUyI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9BRERJVElPTkFMX0lORk9STUFUSU9OIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX1NUQUZGIjoiRSIsIlNIS19HRU5FUkFMX1JFUE9SVFMiOiJFIiwiT1JTT19TVEFGRl9SRVBPUlRTIjoiRSIsIkNPTU1fQURKX0lORElWSURVQUwiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQ09ORklSTV9DSEVRVUVfU1RBVFVTIjoiRSIsIlNZU19ST0xFX01BTkFHRSI6IkUiLCJDT01NX0lORk9fU0NBTEVfUkVDT1JEIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX1NVQlNJRElBUlkiOiJFIiwiU0FMRVNfSk9VUk5FWV9TQUxFU19TVVBQT1JUIjoiRSIsIk1BQ0FVX01MRlVCX1JFUE9SVFMiOiJFIiwiU0hLX0FVVE9fUk9MTE9WRVJfT1BTX1NUQUZGIjoiRSIsIk1BQ0FVX01JU19SRVBPUlRTIjoiRSIsIkNVU1RPTUVSX01PQklMRV9TVUJTQ1JJUFRJT04iOiJFIiwiQ09NTUlTU0lPTl9TQ0FMRV9NQU5BR0VNRU5UIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX1JFUE9SVCI6IkUiLCJNQUNBVV9TVEFGRl9SRVBPUlRTIjoiRSIsIlNBTEVTX0pPVVJORVlfU1VQRVJfVVNFUiI6IkUiLCJNUEZfTUxGVUJfUkVQT1JUUyI6IkUiLCJDT01NX0FESl9OT1JNQUwiOiJFIiwiU0hLX01MRlVCX1JFUE9SVFMiOiJFIiwiU0hLX01JU19SRVBPUlRTIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX01BUFBJTkciOiJFIiwiQ09NTV9BREpfQVBQRUFMIjoiRSIsIlNZU19BVURJVF9MT0ciOiJFIiwiUkVTSURVRV9JTlRFUkVTVF9SQVRFIjoiRSIsIlNZU19JREVOVElUWV9BR0VOVF9NQU5BR0UiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfUEFZTUVOVF9TVEFGRiI6IkUiLCJDVVNUT01FUl9NRU1CRVIiOiJFIiwiU1lTX0NBTEVOREFSIjoiRSIsIk9SU09fTUlTX1JFUE9SVFMiOiJFIiwiTVBGX0dFTkVSQUxfUkVQT1JUUyI6IkUiLCJTSEtfQUdFTlRfQVNTSUdOTUVOVF9SRUFTU0lHTiI6IkUiLCJNUEZfTUlTX1JFUE9SVFMiOiJFIiwiQ1VTVE9NRVJfRU1QTE9ZRVJfSU5URVJNRURJQVJZIjoiRSIsIk1QRl9TVEFGRl9SRVBPUlRTIjoiRSIsIkNVU1RPTUVSX1NFUlZJQ0lOR19BR0VOVCI6IkUiLCJDT01NX0lORk9fSU5ESVZJRFVBTF9UUkYiOiJFIiwiQ0hBVEJPVF9DU08iOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQVBQUk9WRV9UT19QUklOVCI6IkUiLCJDSEFUQk9UX0FETUlOIjoiRSIsIlNZU19DT01NSVNTSU9OX0RFRkFVTFRfU0NBTEUiOiJFIiwiQ09NTV9JTkZPX0FHRU5UX0NIQU5HRSI6IkUiLCJDSEFUQk9UX1NVUEVSVklTT1IiOiJFIiwiQ09NTV9JTkZPX01BSU5fUEFSVElFU19PVEhFUlMiOiJFIiwiU0hLX0FHRU5UX0FTU0lHTk1FTlRfUkVQT1JUX0FHRU5UX0hFQUQiOiJFIiwiU0hLX1NUQUZGX1JFUE9SVFMiOiJFIiwiQ09NTUlTU0lPTl9TQ0hFTUVfTUFTVEVSX1JFQ09SRCI6IkUiLCJDT01NX0lORk9fTUFJTl9QQVJUSUVTX0NPTlRfQURKIjoiRSIsIlNBTEVTX0pPVVJORVlfQlJBTkNIX0xFVkVMIjoiRSIsIlNZU1RFTV9ST09UIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX0FDVElWSVRZX0NPREUiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQ09OVFJPTF9QUklOVCI6IkUiLCJDVVNUT01FUl9DQU1QQUlHTl9JTkZPIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVFIjoiRSIsIkNPTU1fSU5GT19NQUlOX0NPTU1fU1VNTUFSWSI6IkUiLCJTQUxFU19KT1VSTkVZX0FHRU5UIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX0FHRU5UIjoiRSIsIk9SU09fR0VORVJBTF9SRVBPUlRTIjoiRSIsIk9SU09fTUxGVUJfUkVQT1JUUyI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9TUSI6IkUiLCJTSEtfUEFZTUVOVF9JU1NVQU5DRV9BUFBST1ZFX1BSSU5URUQiOiJFIiwiQ09NTV9JTkZPX0FHRU5UX0NPTVAiOiJFIiwiU0FMRVNfSk9VUk5FWV9TVVBFUl9BRE1JTiI6IkUiLCJTQUxFU19KT1VSTkVZX1BBUEVSX0ZPUk0iOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfT1BTX1NUQUZGIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSIjoiRSJ9LCJzdGF0dXMiOiJBQ1RJVkUiLCJleHAiOjE4MTQ1OTM5NDh9.xuV7mGol4Q9jdLzG7XmLgTzskRJkWEcyq35deur082CfUoKNzHoWaXgtnduyinZCkvxY70mmj4-2xWLsBI9IZQ'\n // });\n // return this.get>(this.getListUrl + paramsStr, { headers });\n return this.get>(this.getListUrl + paramsStr);\n }\n\n getCampaingnList(params: CampaignInformationRequest): Observable> {\n return this.get>(this.getCampaignListUrl, {\n params: filterParams(params),\n });\n }\n\n getListExpansion(params: Employee): Observable> {\n // const headers = new HttpHeaders({\n // 'access-token': 'eyJhbGciOiJIUzUxMiJ9.eyJvcmdhbml6ZVR5cGUiOiJBR0VOQ1kiLCJpZGVudGl0eVR5cGUiOiJTWVNURU0iLCJvcmdhbml6ZSI6Im9yZ2FuaXplaWQiLCJpZGVudGl0eSI6IjM3ZTJhZmM3LTRlZGUtNDM0ZS05ZjkzLWQwZGFiNjZmMWE2YiIsIm5hbWUiOiJNYW51bGlmZSIsInBlcm1pdCI6eyJDVVNUT01FUl9FTVBMT1lFRV9JTlRFUk1FRElBUlkiOiJFIiwiU1lTX0lERU5USVRZX1NUQUZGX01BTkFHRSI6IkUiLCJDT01NSVNTSU9OX0VSUk9SX0xPRyI6IkUiLCJTWVNfQ0FMRU5EQVJfUkVWSUVXRVIiOiJFIiwiQ09NTUlTU0lPTl9KT1VSTkFMIjoiRSIsIk1BQ0FVX0dFTkVSQUxfUkVQT1JUUyI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9BRERJVElPTkFMX0lORk9STUFUSU9OIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX1NUQUZGIjoiRSIsIlNIS19HRU5FUkFMX1JFUE9SVFMiOiJFIiwiT1JTT19TVEFGRl9SRVBPUlRTIjoiRSIsIkNPTU1fQURKX0lORElWSURVQUwiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQ09ORklSTV9DSEVRVUVfU1RBVFVTIjoiRSIsIlNZU19ST0xFX01BTkFHRSI6IkUiLCJDT01NX0lORk9fU0NBTEVfUkVDT1JEIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX1NVQlNJRElBUlkiOiJFIiwiU0FMRVNfSk9VUk5FWV9TQUxFU19TVVBQT1JUIjoiRSIsIk1BQ0FVX01MRlVCX1JFUE9SVFMiOiJFIiwiU0hLX0FVVE9fUk9MTE9WRVJfT1BTX1NUQUZGIjoiRSIsIk1BQ0FVX01JU19SRVBPUlRTIjoiRSIsIkNVU1RPTUVSX01PQklMRV9TVUJTQ1JJUFRJT04iOiJFIiwiQ09NTUlTU0lPTl9TQ0FMRV9NQU5BR0VNRU5UIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX1JFUE9SVCI6IkUiLCJNQUNBVV9TVEFGRl9SRVBPUlRTIjoiRSIsIlNBTEVTX0pPVVJORVlfU1VQRVJfVVNFUiI6IkUiLCJNUEZfTUxGVUJfUkVQT1JUUyI6IkUiLCJDT01NX0FESl9OT1JNQUwiOiJFIiwiU0hLX01MRlVCX1JFUE9SVFMiOiJFIiwiU0hLX01JU19SRVBPUlRTIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX01BUFBJTkciOiJFIiwiQ09NTV9BREpfQVBQRUFMIjoiRSIsIlNZU19BVURJVF9MT0ciOiJFIiwiUkVTSURVRV9JTlRFUkVTVF9SQVRFIjoiRSIsIlNZU19JREVOVElUWV9BR0VOVF9NQU5BR0UiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfUEFZTUVOVF9TVEFGRiI6IkUiLCJDVVNUT01FUl9NRU1CRVIiOiJFIiwiU1lTX0NBTEVOREFSIjoiRSIsIk9SU09fTUlTX1JFUE9SVFMiOiJFIiwiTVBGX0dFTkVSQUxfUkVQT1JUUyI6IkUiLCJTSEtfQUdFTlRfQVNTSUdOTUVOVF9SRUFTU0lHTiI6IkUiLCJNUEZfTUlTX1JFUE9SVFMiOiJFIiwiQ1VTVE9NRVJfRU1QTE9ZRVJfSU5URVJNRURJQVJZIjoiRSIsIk1QRl9TVEFGRl9SRVBPUlRTIjoiRSIsIkNVU1RPTUVSX1NFUlZJQ0lOR19BR0VOVCI6IkUiLCJDT01NX0lORk9fSU5ESVZJRFVBTF9UUkYiOiJFIiwiQ0hBVEJPVF9DU08iOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQVBQUk9WRV9UT19QUklOVCI6IkUiLCJDSEFUQk9UX0FETUlOIjoiRSIsIlNZU19DT01NSVNTSU9OX0RFRkFVTFRfU0NBTEUiOiJFIiwiQ09NTV9JTkZPX0FHRU5UX0NIQU5HRSI6IkUiLCJDSEFUQk9UX1NVUEVSVklTT1IiOiJFIiwiQ09NTV9JTkZPX01BSU5fUEFSVElFU19PVEhFUlMiOiJFIiwiU0hLX0FHRU5UX0FTU0lHTk1FTlRfUkVQT1JUX0FHRU5UX0hFQUQiOiJFIiwiU0hLX1NUQUZGX1JFUE9SVFMiOiJFIiwiQ09NTUlTU0lPTl9TQ0hFTUVfTUFTVEVSX1JFQ09SRCI6IkUiLCJDT01NX0lORk9fTUFJTl9QQVJUSUVTX0NPTlRfQURKIjoiRSIsIlNBTEVTX0pPVVJORVlfQlJBTkNIX0xFVkVMIjoiRSIsIlNZU1RFTV9ST09UIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSX0FDVElWSVRZX0NPREUiOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfQ09OVFJPTF9QUklOVCI6IkUiLCJDVVNUT01FUl9DQU1QQUlHTl9JTkZPIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVFIjoiRSIsIkNPTU1fSU5GT19NQUlOX0NPTU1fU1VNTUFSWSI6IkUiLCJTQUxFU19KT1VSTkVZX0FHRU5UIjoiRSIsIlNIS19BR0VOVF9BU1NJR05NRU5UX0FHRU5UIjoiRSIsIk9SU09fR0VORVJBTF9SRVBPUlRTIjoiRSIsIk9SU09fTUxGVUJfUkVQT1JUUyI6IkUiLCJDVVNUT01FUl9FTVBMT1lFUl9TUSI6IkUiLCJTSEtfUEFZTUVOVF9JU1NVQU5DRV9BUFBST1ZFX1BSSU5URUQiOiJFIiwiQ09NTV9JTkZPX0FHRU5UX0NPTVAiOiJFIiwiU0FMRVNfSk9VUk5FWV9TVVBFUl9BRE1JTiI6IkUiLCJTQUxFU19KT1VSTkVZX1BBUEVSX0ZPUk0iOiJFIiwiU0hLX1BBWU1FTlRfSVNTVUFOQ0VfT1BTX1NUQUZGIjoiRSIsIkNVU1RPTUVSX0VNUExPWUVSIjoiRSJ9LCJzdGF0dXMiOiJBQ1RJVkUiLCJleHAiOjE4MTQ1OTM5NDh9.xuV7mGol4Q9jdLzG7XmLgTzskRJkWEcyq35deur082CfUoKNzHoWaXgtnduyinZCkvxY70mmj4-2xWLsBI9IZQ'\n // });\n // return this.get>(this.getDetailsUrl, {\n // params: filterParams(params),\n // headers: headers\n // });\n return this.get>(this.getDetailsUrl, {\n params: filterParams(params),\n });\n }\n\n getCountryCodes(): Observable> {\n return this.get>(this.getCountryCodesUrl);\n }\n\n getRelatedPolicies(id: string, md5: string): Observable> {\n return this.get>(this.getrelatedPoliciesUrl, { params: { id, md5 } });\n }\n\n getTabPolicyDetails(id: string): Observable> {\n return this.get>(this.getPolicyDetailsUrl, { params: { id } });\n }\n\n getTransferDetails(transferReferenceNo: string, id: string): Observable> {\n return this.get>(this.getTransferDetailsUrl, { params: { transferReferenceNo, id } });\n }\n\n getWithdrawalDetails(withdrawalReferenceNo: string, id: string): Observable> {\n return this.get>(this.getWithdrawalDetailsUrl, { params: { withdrawalReferenceNo, id } });\n }\n\n getterminationDetails(terminationReferenceNo: string, id: string): Observable> {\n return this.get>(this.getTerminationUrl, { params: { terminationReferenceNo, id } });\n }\n\n getterminationNoList(id: string): Observable> {\n return this.get>(this.getTerminationNoUrl, { params: { id } });\n }\n\n getStatusColorStyle(status: string, mapObj: any) {\n if (!status) {\n return '';\n }\n return `background-color: ${mapObj[status]?.color};`;\n }\n\n getStatusColor(status: string, mapObj: any) {\n if (!status) {\n return '';\n }\n return mapObj[status]?.color;\n }\n\n getStatus(status: string, mapObj: any) {\n if (!status) {\n return '';\n }\n return mapObj[status]?.text;\n }\n //http://localhost:8083/api/v1/int/employee/policy/contributionRecords\n getContributionRecords(\n id = '',\n // filterType: ContributionSortByE,\n payrollGroupId?: string,\n startDate?: string,\n runDate?: string\n ): Observable> {\n return this.get>(this.getContributionRecordssUrl, {\n params: filterParams({\n id,\n payrollGroupId,\n // filterType,\n // startDate: '2023-6-24',\n startDate: startDate ? moment(startDate, 'DD/MM/YYYY').format('YYYY-MM-DD') : undefined,\n runDate: runDate ? moment(runDate, 'DD/MM/YYYY').format('YYYY-MM-DD') : undefined,\n }),\n });\n }\n\n getDefaultContribution(params: DefaultContributionRequest): Observable> {\n return this.get>(this.getDefaultContributionUrl, {\n params: filterParams(params),\n });\n }\n\n getPolicyTransferList(page: PolicyTransferRequest): Observable> {\n return this.get>(this.getPolicyTransferListUrl, {\n params: filterParams(page),\n });\n }\n\n getPolicyWithdrawalList(page: PolicyWithdrawalRequest): Observable> {\n return this.get>(this.getPolicyWithdrawalListUrl, {\n params: filterParams(page),\n });\n }\n\n getCampaignMemberList(page: CampaignSearchRequest): Observable> {\n return this.get>(this.getCampaignListUrl, {\n params: filterParams(page),\n });\n }\n\n uploadCustomerList(file: File) {\n const formData = new FormData();\n formData.append('file', file);\n return this.post>(this.uploadCustomerListUrl, formData);\n }\n\n campaignEdit = (params: Campaign) => {\n return this.put>(this.campaignUrl, params);\n };\n\n campaignAdd = (params: Campaign) => {\n return this.post>(this.campaignUrl, params);\n };\n\n campaignDelete(id: string): Observable> {\n return this.delete>(this.campaignUrl, {\n params: {\n id,\n },\n });\n }\n\n getEmpfWorkflowList = (params: EmpfWorkflowRequest): Observable> => {\n return this.get>(this.getWorkflowUrl, {\n params: filterParams(params),\n });\n };\n\n accountTypeTrans(type?: MemberAccountTypeE) {\n if (!type) return undefined;\n return MemberAccountTypeMap.get(type);\n }\n\n getRegistrationType(type?: string) {\n if (!type) return undefined;\n return RegistrationTypeMap.get(type);\n }\n\n //\"http://localhost:8093/api/v1/int/employee/policy/fundInfo/getTransactionRecord\"\n getFundInfoTransactionRecordPageList(params: TransactionRecordRequest): Observable> {\n const paramsStr = paramsObj2paramsUrlStr(params);\n\n return this.get>(this.getTransactionRecord + paramsStr);\n }\n //\"http://localhost:8093/api/v1/int/employee/policy/fundInfo/getInvestedFundInformation\n getInvestedFundInformationResponse(id: string): Observable> {\n return this.get>(this.getInvestedFundInformation, {\n params: { id: id },\n });\n }\n\n //\"http://localhost:8093/api/v1/int/employee/policy/fundInfo/getFundBalance\"\n getFundBalance(id: string): Observable> {\n return this.get>(this.getFundBalancePath, {\n params: { id: id },\n });\n }\n\n //\"http://localhost:8093/api/v1/int/employee/policy/paymentTransaction\"\n getPaymentTransaction(id: string, transactionRefNo: string, paySubmitRefNo: string): Observable> {\n return this.get>(this.getPaymentTransactionPath, {\n params: { id: id, transactionRefNo: transactionRefNo, paySubmitRefNo: paySubmitRefNo },\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { BusinessNatureE, ContactPersion } from '../employer/employer';\n\nexport interface AbstractExpand {\n expandData?: object;\n}\nexport interface Employee extends AbstractExpand {\n id?: string;\n accountType?: string;\n dateJoiningTheSchm?: string;\n dateOfBirth?: string;\n dateOfEmployment?: string;\n empleeType?: string;\n employerId?: string;\n firstName?: string;\n lastName?: string;\n firstZhName?: string;\n lastZhName?: string;\n gender?: string;\n lastDateOfEmployment?: string;\n originalEmploymentDate?: string;\n status?: EmployeeStatusE;\n termDate?: string;\n trusteeEmplrCd?: string;\n trusteeMbrId?: string;\n empfID?: string;\n empfId?: string;\n dob?: string;\n age?: string;\n legalIdType?: string;\n legalId?: string;\n loyaltyDate?: string;\n nationality?: string[];\n optionLastUpdateDate?: string;\n memberAuthorization?: string;\n bankruptcyReceiveDate?: string;\n bankruptcyDate?: string;\n dischargeDate?: string;\n bankruptcyNumber?: string;\n oroContact?: string;\n md5?: string;\n customerId?: string;\n}\n\nexport interface EeSearchRequest extends IPageableRequest {\n [key: string]: any;\n enrolmentCompletionDateFrom?: string;\n enrolmentCompletionDateTo?: string;\n phoneNumberExt?: string;\n policyStatus?: string | CdsOption[];\n memberAccountType?: string | CdsOption[];\n servicingChannel?: string | CdsOption[];\n}\n\nexport interface CampaignInformationRequest extends IPageableRequest {\n id?: string;\n md5?: string;\n pageChannel?: string;\n}\n\nexport interface CampaignInformation {\n policyNo?: string;\n description?: string;\n customerCommunicationSendChannel?: string;\n customerCommunicationSendDate?: string;\n campaignPeriod?: string;\n followUpAgent?: string;\n}\n\nexport enum MemberAccountTypeE {\n MPF_EE_R = 'MPF-EE(R)',\n MPF_EE_C = 'MPF-EE(C)',\n MPF_SEP = 'MPF-SEP',\n MPF_AGENT_SEP = 'MPF-AGENT SEP',\n MPF_TVC = 'MPF-TVC',\n MPF_PAP = 'MPF-PAP',\n MPF_FRC = 'MPF-FRC',\n ORSO_EE = 'ORSO-EE',\n Macau_EE = 'Macau-EE',\n}\n\nexport const memberAccountTypeOptions: CdsOption[] = [\n { label: 'MPF-EE(R)', value: MemberAccountTypeE.MPF_EE_R },\n { label: 'MPF-EE(C)', value: MemberAccountTypeE.MPF_EE_C },\n { label: 'MPF-SEP', value: MemberAccountTypeE.MPF_SEP },\n { label: 'MPF-AGENT SEP', value: MemberAccountTypeE.MPF_AGENT_SEP },\n { label: 'MPF-TVC', value: MemberAccountTypeE.MPF_TVC },\n { label: 'MPF-PAP', value: MemberAccountTypeE.MPF_PAP },\n { label: 'MPF-FRC', value: MemberAccountTypeE.MPF_FRC },\n { label: 'ORSO-EE', value: MemberAccountTypeE.ORSO_EE },\n { label: 'Macau-EE', value: MemberAccountTypeE.Macau_EE },\n];\n\nexport enum AccountTypeE {\n CA = 'CA',\n PA = 'PA',\n SEP = 'SEP',\n TVC = 'TVC',\n FRC = 'FRC',\n MACAU_EE = 'Macau-EE',\n ORSO_EE = 'ORSO-EE',\n}\n\nexport const MemberAccountTypeMap = new Map([\n [MemberAccountTypeE.MPF_EE_R, AccountTypeE.CA],\n [MemberAccountTypeE.MPF_EE_C, AccountTypeE.CA],\n [MemberAccountTypeE.MPF_SEP, AccountTypeE.SEP],\n [MemberAccountTypeE.MPF_AGENT_SEP, AccountTypeE.SEP],\n [MemberAccountTypeE.MPF_TVC, AccountTypeE.TVC],\n [MemberAccountTypeE.MPF_PAP, AccountTypeE.PA],\n [MemberAccountTypeE.MPF_FRC, AccountTypeE.FRC],\n [MemberAccountTypeE.Macau_EE, AccountTypeE.CA],\n [MemberAccountTypeE.ORSO_EE, AccountTypeE.CA],\n]);\n\nexport enum PolicyStatusE {\n RECEIVE = 'RECEIVE',\n FOLLOW_UP_IN_PRGRESS = 'FOLLOW_UP_IN_PRGRESS',\n ACTIVE = 'ACTIVE',\n TERMG = 'TERMG',\n TERMD = 'TERMD',\n TR_REJECT = 'TR_REJECT',\n CANCEL = 'CANCEL',\n RETAIN = 'RETAIN',\n TEMP = 'TEMP',\n PROVISIONAL = 'PROVISIONAL',\n FOD = 'FOD',\n}\n\nexport const policyStatusOptions: CdsOption[] = [\n { label: 'Received and pending enrolment', value: PolicyStatusE.RECEIVE },\n { label: 'In progress, Unclean and need follow up action', value: PolicyStatusE.FOLLOW_UP_IN_PRGRESS },\n { label: 'Active', value: PolicyStatusE.ACTIVE },\n { label: 'Terminating', value: PolicyStatusE.TERMG },\n { label: 'Terminated', value: PolicyStatusE.TERMD },\n { label: 'Rejected by Trustee', value: PolicyStatusE.TR_REJECT },\n { label: 'Cancelled by client', value: PolicyStatusE.CANCEL },\n { label: 'Retain ESS Member', value: PolicyStatusE.RETAIN },\n { label: 'Temporary after AEOI', value: PolicyStatusE.TEMP },\n { label: 'Provisional with invested monies before AEOI', value: PolicyStatusE.PROVISIONAL },\n { label: 'FOD Terminated Fund on deposit', value: PolicyStatusE.FOD },\n];\n\nexport enum LineOfBusinessE {\n MPF = 'MPF',\n ORSO = 'ORSO',\n MacauCPF = 'Macau CPF',\n MacauPPS = 'Macau PPS',\n}\n\nexport const lineOfBusinessOptions: CdsOption[] = [\n { label: 'MPF', value: LineOfBusinessE.MPF },\n { label: 'ORSO', value: LineOfBusinessE.ORSO },\n { label: 'Macau CPF', value: LineOfBusinessE.MacauCPF },\n { label: 'Macau PPS', value: LineOfBusinessE.MacauPPS },\n];\n\nexport enum ServicingChannelE {\n Agency = 'Agency',\n Broker = 'Broker',\n SCB = 'SCB',\n DBS = 'DBS',\n Corporate = 'Corporate',\n Direct = 'Direct',\n}\n\nexport const servicingChannelOptions: CdsOption[] = [\n { label: 'Agency', value: ServicingChannelE.Agency },\n { label: 'Broker', value: ServicingChannelE.Broker },\n { label: 'SCB', value: ServicingChannelE.SCB },\n { label: 'DBS', value: ServicingChannelE.DBS },\n { label: 'Corporate', value: ServicingChannelE.Corporate },\n { label: 'Direct', value: ServicingChannelE.Direct },\n];\n\nexport interface ContryCode {\n crsCountryCode: string;\n countryCallingCode: string;\n}\n\nexport interface RelatedPolicy {\n md5: string;\n id?: string;\n memberAccountCode?: string;\n status?: string;\n originalMemberAccountCode?: string;\n statusChangeDate?: string;\n memberAccountType?: MemberAccountTypeE;\n defaultPA?: string;\n firstName?: string;\n lastName?: string;\n firstZhName?: string;\n lastZhName?: string;\n latestUpdate?: string;\n schemeCode?: SchemeCodeE;\n employeeType?: EmployeeTypeE;\n businessNature?: BusinessNatureE;\n occupation?: string;\n jobPosition?: string;\n schemeJoinedDate?: string;\n commissionPoolNumber?: string;\n originalSchemeJoinedDate?: string;\n previousCaMemberCode?: string;\n abOffer?: string;\n schemeMergeSignal?: string;\n enrolementSubmissionChannel?: string;\n enrolementCompletionDate?: string;\n applicationReceivedDate?: string;\n declarationCompletionDate?: string;\n empfId?: string;\n dob?: string;\n age?: number;\n gender?: GenderE;\n employerName?: string;\n ecaLastTransferInDate?: string;\n pmLastTransferInDate?: string;\n}\n\nexport enum GenderE {\n M = 'M',\n F = 'F',\n U = 'U',\n O = 'O',\n}\n\nexport const GenderMap: Record = {\n [GenderE.M]: 'Male',\n [GenderE.F]: 'Female',\n [GenderE.U]: 'Unisex',\n [GenderE.O]: 'No Such Information',\n};\n\nexport enum EmployeeTypeE {\n NEW = 'NEW',\n EXIST = 'EXIST',\n INTRA_GROUP = 'INTRA_GROUP',\n EXEMPT = 'EXEMPT',\n EXPATRIATE = 'EXPATRIATE',\n}\n\nexport const EmployeeTypeMap: Record = {\n [EmployeeTypeE.NEW]: 'New Employee',\n [EmployeeTypeE.EXIST]: 'Existing Employee',\n [EmployeeTypeE.INTRA_GROUP]: 'Intra-group Transfer',\n [EmployeeTypeE.EXEMPT]: 'Exempted Person',\n [EmployeeTypeE.EXPATRIATE]: 'Expatriate Employee',\n};\n\nexport enum SchemeCodeE {\n RC = 'RC',\n GS = 'GS',\n}\n\nexport const SchemeCodeMap = new Map([\n [SchemeCodeE.RC, 'Manulife RetireChoice (MPF) Scheme'],\n [SchemeCodeE.GS, 'Manulife Global Select (MPF) Scheme'],\n]);\n\nexport enum EmployeeStatusE {\n RECEIVE = 'RECEIVE',\n FOLLOW_UP_IN_PRGRESS = 'FOLLOW_UP_IN_PRGRESS',\n UNCLEAN = 'UNCLEAN',\n ACTIVE = 'ACTIVE',\n TERMG = 'TERMG',\n TERMD = 'TERMD',\n TR_REJECT = 'TR_REJECT',\n CANCEL = 'CANCEL',\n RETAIN = 'RETAIN',\n TEMP = 'TEMP',\n PROVISIONAL = 'PROVISIONAL',\n}\n\nexport const employeeStatusMapObj = {\n [EmployeeStatusE.RECEIVE]: {\n text: 'RECEIVE',\n color: '#28D7CB',\n },\n [EmployeeStatusE.FOLLOW_UP_IN_PRGRESS]: {\n text: 'Follow Up In Progress',\n color: '#F49600',\n },\n [EmployeeStatusE.UNCLEAN]: {\n text: 'Unclean & Need Follow Up',\n color: '#0000C1',\n },\n [EmployeeStatusE.ACTIVE]: {\n text: 'Active',\n color: '#00A758',\n },\n [EmployeeStatusE.TERMG]: {\n text: 'Terminating',\n color: '#6F5693',\n },\n [EmployeeStatusE.TERMD]: {\n text: 'Terminated',\n color: '#8E90A2',\n },\n [EmployeeStatusE.TR_REJECT]: {\n text: 'Rejected by Trustee',\n color: '#D03A39',\n },\n [EmployeeStatusE.CANCEL]: {\n text: 'Cancelled by client',\n color: '#EC6453',\n },\n [EmployeeStatusE.RETAIN]: {\n text: 'Retain ESS Member',\n color: '#5CD790',\n },\n [EmployeeStatusE.TEMP]: {\n text: 'Temporary after AEOI',\n color: '#FCC457',\n },\n [EmployeeStatusE.PROVISIONAL]: {\n text: 'Provisional',\n color: '#9D8DBC',\n },\n};\n\nexport interface FundBalanceResponse {\n asOfDate?: string;\n fundBalanceTotal?: string;\n netContributionsAndNetTransferIn?: string;\n accountFainLoss?: string;\n totalContributionOrAssetTransferIn?: string;\n totalWithdrawalAssetTransferOut?: string;\n vestingEmployerVoluntaryAccumulation?: string;\n dateOfTransfer?: string;\n fundTransactionFormType?: string;\n currency?: string;\n fundBalanceList?: FundBalanceItem[];\n}\n\nexport interface FundBalanceItem {\n fundCodeOrFundName?: string;\n mandatoryContributionForERMC?: string;\n mandatoryContributionForEEMC?: string;\n voluntaryContributionERVC?: string;\n voluntaryContributionEEVC?: string;\n formerEmploymentMandatoryContributionERMC?: string;\n formerEmploymentVoluntaryContributionERMC?: string;\n currency?: string;\n}\nexport interface ContactInfo {\n phoneList: ContactPhone[];\n emailList: ContactEmail[];\n addressList: ContactAddress[];\n communicationType?: string;\n languageType?: string;\n memberAuthorization?: string;\n memberAuthorizationLastUpdate?: string;\n lastUpdate?: string;\n all?: string;\n directMailing?: string;\n email?: string;\n sms?: string;\n telemarketing?: string;\n enotification?: string;\n estatementOptInFlag?: string;\n}\n\nexport interface ContactPhone {\n typeCode?: string;\n countryCode?: string;\n phoneNo?: string;\n phoneExt?: string;\n lastUpdate?: string;\n status?: string;\n}\n\nexport interface ContactEmail {\n emailAddress?: string;\n lastUpdate?: string;\n status?: string;\n}\n\nexport interface ContactAddress {\n room?: string;\n floor?: string;\n block?: string;\n building?: string;\n street?: string;\n district?: string;\n city?: string;\n country?: string;\n addressType?: string;\n lastUpdate?: string;\n status?: string;\n}\n\nexport interface Contact {\n [key: string]: any;\n lastUpdate: string;\n status: string;\n}\n\nexport interface EmploymentInfo {\n companyInfo?: CompanyInfo;\n employmentInfo?: EmploymentInfo;\n showEmploymentInfo?: boolean;\n erId?: string;\n payrollGroupId?: string;\n}\n\nexport interface CompanyInfo {\n companyEnglishName?: string;\n companyChineseName?: string;\n companyType?: string;\n statusCode?: string;\n certificateOfIncorporationNumber?: string;\n dateOfIncorporation?: string;\n placeOfIncorporation?: string;\n commencementDate?: string;\n registrationType?: string;\n registrationNumber?: string;\n branchNumber?: string;\n}\n\nexport interface EmploymentInfo {\n employeeType?: string;\n originalEmploymentDate?: string;\n dateOfEmployment?: string;\n lastDateOfEmployment?: string;\n expartriateVisaIssueDate?: string;\n departmentCode?: string;\n staffNumber?: string;\n employerGrade?: number;\n}\n\nexport interface DefaultContributionRequest {\n startDate?: string;\n id?: string;\n erAcctCd?: string;\n type: 'month' | 'day';\n month?: string;\n}\n\nexport interface DefaultContribution {\n startDate?: string;\n endDate?: string;\n defaultContributionReportedDateToMPFA?: DcMsgTypeE;\n messageTypeofDefaultContributionReporting?: string;\n submissionTypeofDefaultContributionReporting?: string;\n defaultContributionReason?: string;\n rectifiedType?: string;\n untraceableDefaulterFlag?: string;\n memberContributionDueDate?: string;\n onTimeTb?: PaidAmount[];\n lateTb?: PaidAmount[];\n surchargeER?: number;\n surchargeEE?: number;\n surchargePaidDate?: string;\n surchargeDueDate?: string;\n remarksOfDefaultContribution?: string;\n mpfaRemarks?: string;\n}\n\nexport interface TransferReference {\n refNo?: string;\n statusCd?: string;\n}\n\nexport interface PaidAmount {\n type?: string;\n mcPaidDate?: string;\n vcPaidDate?: string;\n ermc?: number;\n eemc?: number;\n ervc?: number;\n eevc?: number;\n}\nexport interface Surcharge {\n surchargeER?: number;\n surchargeEE?: number;\n surchargePaidDate?: string;\n surchargeDueDate?: string;\n}\n\nexport enum DcMsgTypeE {\n OSDC = 'OSDC',\n RTDC = 'RTDC',\n}\n\nexport const dcMsgTypeMapObj = {\n [DcMsgTypeE.OSDC]: 'Outstanding Data',\n [DcMsgTypeE.RTDC]: 'Rectified Data',\n};\n\nexport enum DcReasonTypeE {\n NOPAY = 'NOPAY',\n PAYNA = 'PAYNA',\n MISIF = 'MISIF',\n PRPAY = 'PRPAY',\n MISCL = 'MISCL',\n}\n\nexport const dcReasonTypeMapObj = {\n [DcReasonTypeE.NOPAY]: 'No full payment received (For ER & SEP types)',\n [DcReasonTypeE.PAYNA]: 'Full payment cannot be ascertained (For ER type only)',\n [DcReasonTypeE.MISIF]: 'Missing payment and contribution information of the specific EE',\n [DcReasonTypeE.PRPAY]: 'Dc reason for contribution periods start date before 2014-07-01',\n [DcReasonTypeE.MISCL]: 'Dc reason for contribution periods start date before 2014-07-01',\n};\n\nexport enum RectifyTypeE {\n FPAID = 'FPAID',\n PPAID = 'PPAID',\n RENOT = 'RENOT',\n READM = 'READM',\n CHCPD = 'CHCPD',\n}\n\nexport const rectifyTypeMapObj = {\n [RectifyTypeE.FPAID]: 'Full Payment / Rectification',\n [RectifyTypeE.PPAID]: 'Partial Payment / Rectification',\n [RectifyTypeE.RENOT]: 'Resolved Problem of NOT (Notice of Termination)',\n [RectifyTypeE.READM]: 'READM - Resolved Other Admin. Problems (By Trustee)',\n [RectifyTypeE.CHCPD]:\n 'Changed Contribution Period Details (Reported DC record with outstanding would be cleared. Another DC record should be reported with the changed Contribution Period details if there is late or outstanding payment)',\n};\n\nexport interface PolicyTransferRequest extends IPageableRequest {\n transferReferenceNo?: string;\n groupReferenceNo?: string;\n statusCode?: string;\n activityType?: string;\n fundTransactionFormType?: string;\n dateOfTransfer?: string;\n originalRequestedSubmissionDate?: string;\n id?: string;\n}\n\nexport interface PolicyTransfer {\n transferReferenceNo?: string;\n groupReferenceNo?: string;\n statusCode?: string;\n activityType?: string;\n fundTransactionFormType?: string;\n dateOfTransfer?: string;\n originalRequestedSubmissionDate?: string;\n}\n\nexport interface PolicyTransferDetails {\n firstName?: string;\n lastName?: string;\n firstZhName?: string;\n lastZhName?: string;\n status?: EmployeeStatusE;\n memberAccountCode?: string;\n memberAccountType?: string;\n latestUpdate?: string;\n groupReferenceNo?: string;\n uniqueTransferCaseNo?: string;\n workflowReferenceNo?: string;\n transferReferenceNo?: string;\n statusCode?: PolicyTransferStatusCodeE;\n activityType?: TransferActivityTypeE;\n fundTransactionFormType?: FundTransactionFormTypeE;\n pmTransferOption?: PmtransferOptionTypeE;\n ppTransferOption?: PptransferOptionTypeE;\n submissionType?: SubmissionTypeE;\n dateOfTransfer?: string;\n originalRequestedSubmissionDate?: string;\n subAccountType?: SubAccountTypeE;\n intraGroupTransactionFlag?: YesOrNoFlagE;\n completeDocumentReceiptDate?: string;\n transferLastFollowUpDate?: string;\n transferOutMemberAccountCode?: string;\n transferOutSchemeName?: string;\n transferOutSchemeRegistrationNumber?: string;\n transferOutOriginalScheme?: string;\n transferInMemberAccountCode?: string;\n transferInSchemeName?: string;\n transferInSchemeRegistrationNumber?: string;\n transferInOriginalScheme?: string;\n rejectionReason?: string[];\n remarkOfRejectionReason?: string;\n replyType?: string;\n transferReferenceList?: TransferReference[];\n}\n\nexport enum TransferActivityTypeE {\n TRF_IN = 'TRF_IN',\n TRF_OUT = 'TRF_OUT',\n}\n\nexport const transferActivityTypeMapObj = {\n [TransferActivityTypeE.TRF_IN]: 'Transfer_IN',\n [TransferActivityTypeE.TRF_OUT]: 'Transfer_OUT',\n};\n\nexport const transferActivityTypeOptions: CdsOption[] = [\n { value: TransferActivityTypeE.TRF_IN, label: 'Transfer_IN' },\n { value: TransferActivityTypeE.TRF_OUT, label: 'Transfer_OUT' },\n];\n\nexport enum FundTransactionFormTypeE {\n PP = 'PP',\n PM = 'PM',\n PC = 'PC',\n PT = 'PT',\n PE = 'PE',\n OT = 'OT',\n}\n\nexport const fundTransactionFormTypeMapObj = {\n [FundTransactionFormTypeE.PP]: 'Employee Choice Arrangement (\"ECA\")',\n [FundTransactionFormTypeE.PM]: \"Scheme Member's Request for Fund Transfer\",\n [FundTransactionFormTypeE.PC]: \"Scheme Member's Request for Account Consolidation\",\n [FundTransactionFormTypeE.PT]: \"Scheme member's request for Transfer Tax Deductible Voluntary Contribution\",\n [FundTransactionFormTypeE.PE]: \"Employer's request for fund transfer form\",\n [FundTransactionFormTypeE.OT]: 'Other than the above',\n};\n\nexport const fundTransactionFormTypeOptions: CdsOption[] = [\n { value: FundTransactionFormTypeE.PP, label: 'Employee Choice Arrangement (\"ECA\")' },\n { value: FundTransactionFormTypeE.PM, label: \"Scheme Member's Request for Fund Transfer\" },\n { value: FundTransactionFormTypeE.PC, label: \"Scheme Member's Request for Account Consolidation\" },\n { value: FundTransactionFormTypeE.PT, label: \"Scheme member's request for Transfer Tax Deductible Voluntary Contribution\" },\n { value: FundTransactionFormTypeE.PE, label: \"Employer's request for fund transfer form\" },\n { value: FundTransactionFormTypeE.OT, label: 'Other than the above' },\n];\n\nexport enum PmtransferOptionTypeE {\n EE_ALL = 'EE_ALL',\n EE_MC = 'EE_MC',\n RETAIN = 'RETAIN',\n}\n\nexport const pmtransferOptionTypeMapObj = {\n [PmtransferOptionTypeE.EE_ALL]:\n 'Transfer both Former Employment Employee Mandatory Contribution and Former Employment Employee Voluntary Contribution to the new scheme',\n [PmtransferOptionTypeE.EE_MC]:\n 'Transfer Former Employment Employee Mandatory Contribution to the new scheme and cash out Former Employment Employee Voluntary Contribution',\n [PmtransferOptionTypeE.RETAIN]: 'Retain all benefits in a personal account in the current scheme',\n};\n\nexport enum PptransferOptionTypeE {\n ALL = 'ALL',\n PARTIAL = 'PARTIAL',\n}\n\nexport const pptransferOptionTypeMapObj = {\n [PptransferOptionTypeE.ALL]: 'Transfer Option A - Transfer ALL',\n [PptransferOptionTypeE.PARTIAL]: 'Transfer Option B - Partial Transfer',\n};\n\nexport enum SubmissionTypeE {\n NEWD = 'NEWD',\n REPY = 'REPY',\n RECO = 'RECO',\n}\n\nexport const submissionTypeMapObj = {\n [SubmissionTypeE.NEWD]: 'Report the transfer case is processed by the original trustee, and accrued benefitsare transferred to new scheme',\n [SubmissionTypeE.REPY]: 'Report the transfer case is rejected by the original trustee, and/or nil amount fortransfer to new scheme',\n [SubmissionTypeE.RECO]: 'Similar to \"NEWD\" case, pending on old trustee to reply. (Sent by trustees)',\n};\n\nexport enum SubAccountTypeE {\n ERMC = 'ERMC',\n EEMC = 'EEMC',\n ERVC = 'ERVC',\n ERVC2 = 'ERVC2',\n ERVC3 = 'ERVC3',\n ERVC4 = 'ERVC4',\n ERVC5 = 'ERVC5',\n ERVC6 = 'ERVC6',\n ERVC7 = 'ERVC7',\n EEVC = 'EEVC',\n EEVC2 = 'EEVC2',\n FRMC = 'FRMC',\n FRVC = 'FRVC',\n TVC = 'TVC',\n SEPMC = 'SEPMC',\n SEPVC = 'SEPVC',\n PREMPFER = 'PREMPFER',\n PREMPFER2 = 'PREMPFER2',\n POSTMPFER = 'POSTMPFER',\n POSTMPFER2 = 'POSTMPFER2',\n PREMPFEE = 'PREMPFEE',\n PREMPFEE2 = 'PREMPFEE2',\n POSTMPFEE = 'POSTMPFEE',\n POSTMPFEE2 = 'POSTMPFEE2',\n}\n\nexport const subAccountTypeMapObj = {\n [SubAccountTypeE.ERMC]: 'Employer mandatory contributions',\n [SubAccountTypeE.EEMC]: 'Employee mandatory contributions',\n [SubAccountTypeE.ERVC]: 'Employer voluntary contributions 1',\n [SubAccountTypeE.ERVC2]: 'Employer voluntary contributions 2',\n [SubAccountTypeE.ERVC3]: 'Employer voluntary contributions 3',\n [SubAccountTypeE.ERVC4]: 'Employer voluntary contributions 4',\n [SubAccountTypeE.ERVC5]: 'Employer voluntary contributions 5',\n [SubAccountTypeE.ERVC6]: 'Employer voluntary contributions 6',\n [SubAccountTypeE.ERVC7]: 'Employer voluntary contributions 7',\n [SubAccountTypeE.EEVC]: 'Employee voluntary contributions 1',\n [SubAccountTypeE.EEVC2]: 'Employee voluntary contributions 2',\n [SubAccountTypeE.FRMC]: 'Mandatory contributions from former employment(s)',\n [SubAccountTypeE.FRVC]: 'Voluntary contributions from former employment(s)',\n [SubAccountTypeE.TVC]: 'Tax Deductible Voluntary Contributions',\n [SubAccountTypeE.SEPMC]: 'Self-employed Persons mandatory contributions',\n [SubAccountTypeE.SEPVC]: 'Self-employed Persons voluntary contributions',\n [SubAccountTypeE.PREMPFER]: 'Pre MPF Service ER Benefits',\n [SubAccountTypeE.PREMPFER2]: 'Pre MPF Service ER Benefits 2',\n [SubAccountTypeE.POSTMPFER]: 'Post MPF Service ER Benefits',\n [SubAccountTypeE.POSTMPFER2]: 'Post MPF Service ER Benefits 2',\n [SubAccountTypeE.PREMPFEE]: 'Pre MPF Service EE Benefits',\n [SubAccountTypeE.PREMPFEE2]: 'Pre MPF Service EE Benefits 2',\n [SubAccountTypeE.POSTMPFEE]: 'Post MPF Service EE Benefits',\n [SubAccountTypeE.POSTMPFEE2]: 'Post MPF Service EE Benefits 2',\n};\n\nexport enum YesOrNoFlagE {\n Y = 'Y',\n N = 'N',\n}\n\nexport const yesOrNoFlagMapObj = {\n [YesOrNoFlagE.Y]: 'Yes',\n [YesOrNoFlagE.N]: 'No',\n};\n\nexport const yesOrNoFlagOptions: CdsOption[] = [\n {\n label: 'Yes',\n value: YesOrNoFlagE.Y,\n },\n {\n label: 'No',\n value: YesOrNoFlagE.N,\n },\n];\n\nexport enum YesOrNoFlagNumberE {\n Y = 1,\n N = 0,\n}\n\nexport const yesOrNoFlagNumberMapObj = {\n [YesOrNoFlagNumberE.Y]: 'Yes',\n [YesOrNoFlagNumberE.N]: 'No',\n};\n\nexport const yesOrNoFlagNumberOptions: CdsOption[] = [\n {\n label: 'Yes',\n value: YesOrNoFlagNumberE.Y,\n },\n {\n label: 'No',\n value: YesOrNoFlagNumberE.N,\n },\n];\n\nexport interface TransferReference {\n transferReferenceNo?: string;\n statusCode?: string;\n}\n\nexport enum PolicyTransferStatusCodeE {\n CANCELLED = 'CANCELLED',\n COMPLETED = 'COMPLETED',\n RECEIVED = 'RECEIVED',\n REJECTED = 'REJECTED',\n SUBMITTED = 'SUBMITTED',\n ACCEPTED = 'ACCEPTED',\n UNCLEAN = 'UNCLEAN',\n PENDING = 'PENDING',\n PEND_PAYMT_SETTLE = 'PEND_PAYMT_SETTLE',\n NIGHT_BATCH_PEND = 'NIGHT_BATCH_PEND',\n ORDER_IN_PROGRESS = 'ORDER_IN_PROGRESS',\n}\n\nexport const policyTransferStastusCodeMapObj = {\n [PolicyTransferStatusCodeE.CANCELLED]: {\n text: 'Cancelled',\n color: '#EC6453',\n },\n [PolicyTransferStatusCodeE.COMPLETED]: {\n text: 'Completed',\n color: '#00A758',\n },\n [PolicyTransferStatusCodeE.RECEIVED]: {\n text: 'Received',\n color: '#28D7CB',\n },\n [PolicyTransferStatusCodeE.REJECTED]: {\n text: 'Rejected',\n color: '#8E90A2',\n },\n [PolicyTransferStatusCodeE.SUBMITTED]: {\n text: 'Submitted',\n color: '#6F5693',\n },\n [PolicyTransferStatusCodeE.ACCEPTED]: {\n text: 'Accepted',\n color: '#0000C1',\n },\n [PolicyTransferStatusCodeE.UNCLEAN]: {\n text: 'Unclean',\n color: '#D03A39',\n },\n [PolicyTransferStatusCodeE.PENDING]: {\n text: 'Pending',\n color: '#F49600',\n },\n [PolicyTransferStatusCodeE.PEND_PAYMT_SETTLE]: {\n text: 'Pend_payment_settle',\n color: '#FCC457',\n },\n [PolicyTransferStatusCodeE.NIGHT_BATCH_PEND]: {\n text: 'Night_batch_pend',\n color: '#9D8DBC',\n },\n [PolicyTransferStatusCodeE.ORDER_IN_PROGRESS]: {\n text: 'Order_in_progress',\n color: '#5CD790',\n },\n};\n\nexport const policyTransferStastusCodeOptions: CdsOption[] = [\n { value: PolicyTransferStatusCodeE.CANCELLED, label: 'Cancelled' },\n {\n value: PolicyTransferStatusCodeE.COMPLETED,\n label: 'Completed',\n },\n { value: PolicyTransferStatusCodeE.RECEIVED, label: 'Received' },\n { value: PolicyTransferStatusCodeE.REJECTED, label: 'Rejected' },\n { value: PolicyTransferStatusCodeE.SUBMITTED, label: 'Submitted' },\n { value: PolicyTransferStatusCodeE.ACCEPTED, label: 'Accepted' },\n { value: PolicyTransferStatusCodeE.UNCLEAN, label: 'Unclean' },\n { value: PolicyTransferStatusCodeE.PENDING, label: 'Pending' },\n { value: PolicyTransferStatusCodeE.PEND_PAYMT_SETTLE, label: 'Pend_payment_settle' },\n { value: PolicyTransferStatusCodeE.NIGHT_BATCH_PEND, label: 'Night_batch_pend' },\n { value: PolicyTransferStatusCodeE.ORDER_IN_PROGRESS, label: 'Order_in_progress' },\n];\n\nexport const reasonMapObj = {\n ['01']: 'Missing / Incorrect HKID or passport number',\n ['02']: 'Missing / Incorrect name of scheme member',\n ['03']: 'Incorrect membership number under Original Scheme',\n ['04']: 'Incorrect Original Scheme Registration Number',\n ['05']: 'Missing / Mismatch member signature',\n ['06']: 'No such member record in Original Scheme',\n ['07']: 'Member account terminated',\n ['09']: 'Preserved to a personal account',\n ['10']: 'Transfer request has been cancelled by the member',\n ['11']: 'Member has multiple accounts in Original Scheme',\n ['12']: 'Missing / Invalid option in arrangement of voluntary contributions',\n ['13']: 'Missing Notice of Termination',\n ['14']: 'No selection of which Sub-account(s) to be transferred out',\n ['15']: 'Member has ceased employment',\n ['16']: 'Unmatched data and image file',\n ['17']: 'Member still under employment',\n ['18']: 'Missing page of transfer form',\n ['19']: 'No Member Signature Specimen',\n ['99']: 'Other-please specify',\n ['20']: 'EEMC_In excess of number election allowed',\n ['21']: 'EEMC_Account contained nil balance',\n ['22']: 'EEVC_VC not allow to transfer out because not fulfill the transfer conditions in the governingg rules',\n ['23']: 'EEVC_Account contained nil balance',\n ['24']: 'FRMC_Account contained nil balance',\n ['25']: 'FR VC_ VC not allowed to transfer out because not fulfill the transfer conditions in governing rules',\n ['26']: 'FRVC_Account contained nil balance',\n ['27']: 'All selected sub accounts contained nil balance',\n ['28']: \"Member's account is a contribution account / self-employed account but P(C) form is received\",\n ['29']: \"Member's account is a personal account / self-employed account but P(P) form is received Original\",\n};\n\nexport enum ReplyTypeE {\n SUCC = 'SUCC',\n REJE = 'REJE',\n}\n\nexport const replyTypeMapObj = {\n [ReplyTypeE.SUCC]: 'Report the transfer case is processed by the original trustee, and accrued benefits are transferred to new scheme',\n [ReplyTypeE.REJE]: 'Report the transfer case is rejected by the original trustee, and/or nil amount for transfer to new scheme',\n};\n\nexport interface PolicyWithdrawalRequest extends IPageableRequest {\n withdrawalReferenceNo?: string;\n groupReferenceNo?: string;\n paymentOutReferenceNo?: string;\n originalSubmissionDate?: string;\n withdrawalStatus?: string;\n paymentOutStatus?: PaymentOutStatusE;\n claimTypeReason?: string;\n completedReceiptDateOfClaim?: string;\n id?: string;\n}\n\nexport interface PolicyWithdrawal {\n transferReferenceNo?: string;\n groupReferenceNo?: string;\n paymentOutReferenceNo?: string;\n originalSubmissionDate?: string;\n withdrawalStatus?: string;\n paymentOutStatus?: PaymentOutStatusE;\n claimTypeReason?: string;\n completedReceiptDateOfClaim?: string;\n}\n\nexport interface PolicyWithdrawalDetails {\n firstName?: string;\n lastName?: string;\n firstZhName?: string;\n lastZhName?: string;\n status?: EmployeeStatusE;\n memberAccountCode?: string;\n memberAccountType?: string;\n latestUpdate?: string;\n groupReferenceNo?: string;\n workflowReferenceNo?: string;\n withdrawalReferenceNo?: string;\n statusCode?: string;\n fundTransactionFormType?: FundTransactionFormTypeE;\n withdrawalReferenceList?: WithdrawalReference[];\n originalSubmissionDate?: string;\n submissionChannel?: SubmissionChannelE;\n claimTypeReason?: ClaimTypeReasonE;\n completedReceiptDateOfClaim?: string;\n partialWithdrawalFlag?: YesOrNoFlagE;\n accountTerminationFlag?: YesOrNoFlagE;\n standingInstructionFlag?: YesOrNoFlagE;\n effectiveDate?: string;\n frequency?: FrequencyE;\n amount?: number;\n permanentDepartureClaimFlag?: YesOrNoFlagE;\n mpfaConsentStatusCode?: string;\n claimCode?: ClaimCodeE;\n permanentDepartureClaimReportedDate?: string;\n mpfaPDNo?: string;\n pdpReportedDate?: string;\n departureDate?: string;\n departureReason?: DepartureReasonE;\n destinationCountry?: string;\n mpfaRequestDate?: string;\n mpfaResponseDate?: string;\n bankruptcy?: string;\n oroTIBConsentStatusCode?: OroTIBConsentStatusCodeE;\n payBasisType?: PayBasisTypeE;\n payBasisValue?: number;\n adjustedWithdrawalAmountByOroOrOtherParty?: number;\n oroRequestDate?: string;\n oroResponseDate?: string;\n returnIssueCodeForOro?: ReturnIssueCodeForOroE;\n contactPersonList?: ContactPersion[];\n withdrawalPayeeList?: WithdrawalPayee[];\n}\n\nexport interface WithdrawalReference {\n withdrawalReferenceNo?: string;\n statusCode?: string;\n}\n\nexport enum PolicyWithdrawalStatusCodeE {\n PENDING_APPROVAL = 'PENDING_APPROVAL',\n COMPLETE = 'COMPLETE',\n INVEST_ORDER_PEND = 'INVEST_ORDER_PEND',\n NIGHT_BATCH_PEND = 'NIGHT_BATCH_PEND',\n CANCELLED = 'CANCELLED',\n REJECTED = 'REJECTED',\n PEND_PAYMT_SETTLE = 'PEND_PAYMT_SETTLE',\n}\n\nexport const policyWithdrawalStatusCodeMapObj = {\n [PolicyWithdrawalStatusCodeE.PENDING_APPROVAL]: 'Pending MPFA/ORO Approval',\n [PolicyWithdrawalStatusCodeE.COMPLETE]: 'Transaction of old-new trustees had been completed after unit allocation, whole transfer had been completed',\n [PolicyWithdrawalStatusCodeE.INVEST_ORDER_PEND]: 'Awaiting for order completion',\n [PolicyWithdrawalStatusCodeE.NIGHT_BATCH_PEND]: 'Pending for nightly batch cycle to generate fund order',\n [PolicyWithdrawalStatusCodeE.CANCELLED]: 'Member cancel request before cutoff',\n [PolicyWithdrawalStatusCodeE.REJECTED]: 'The transfer request is rejected by eMPF or Old Trustee',\n [PolicyWithdrawalStatusCodeE.PEND_PAYMT_SETTLE]: 'Awaiting the payment to be presented',\n};\n\nexport const policyWithdrawalStatusCodeOptions: CdsOption[] = [\n {\n value: PolicyWithdrawalStatusCodeE.PENDING_APPROVAL,\n label: 'Pending MPFA/ORO Approval',\n },\n {\n value: PolicyWithdrawalStatusCodeE.COMPLETE,\n label: 'Transaction of old-new trustees had been completed after unit allocation, whole transfer had been completed',\n },\n {\n value: PolicyWithdrawalStatusCodeE.INVEST_ORDER_PEND,\n label: 'Awaiting for order completion',\n },\n {\n value: PolicyWithdrawalStatusCodeE.NIGHT_BATCH_PEND,\n label: 'Pending for nightly batch cycle to generate fund order',\n },\n {\n value: PolicyWithdrawalStatusCodeE.CANCELLED,\n label: 'Member cancel request before cutoff',\n },\n {\n value: PolicyWithdrawalStatusCodeE.REJECTED,\n label: 'The transfer request is rejected by eMPF or Old Trustee',\n },\n {\n value: PolicyWithdrawalStatusCodeE.PEND_PAYMT_SETTLE,\n label: 'Awaiting the payment to be presented',\n },\n];\n\nexport enum SubmissionChannelE {\n WEB = 'WEB',\n FAX = 'FAX',\n EMAIL = 'EMAIL',\n POST = 'POST',\n OTHERS = 'OTHERS',\n}\n\nexport const submissionChannelMapObj = {\n [SubmissionChannelE.WEB]: 'ER/EE Web Portal',\n [SubmissionChannelE.FAX]: 'Fax',\n [SubmissionChannelE.EMAIL]: 'Email',\n [SubmissionChannelE.POST]: 'Post',\n [SubmissionChannelE.OTHERS]: 'Others',\n};\n\nexport enum ClaimTypeReasonE {\n NR = 'NR',\n ER = 'ER',\n PD = 'PD',\n TI = 'TI',\n IL = 'IL',\n SB = 'SB',\n DN = 'DN',\n VW = 'VW',\n}\n\nexport const claimTypeReasonMapObj = {\n [ClaimTypeReasonE.NR]: 'Normal Retirement',\n [ClaimTypeReasonE.ER]: 'Early Retirement',\n [ClaimTypeReasonE.PD]: 'Permanent Departure',\n [ClaimTypeReasonE.TI]: 'Total Incapacity',\n [ClaimTypeReasonE.IL]: 'Terminal Illness',\n [ClaimTypeReasonE.SB]: 'Small Balance',\n [ClaimTypeReasonE.DN]: 'Death',\n [ClaimTypeReasonE.VW]: 'VC / SVC Withdrawal',\n};\n\nexport const claimTypeReasonOptions: CdsOption[] = [\n {\n value: ClaimTypeReasonE.NR,\n label: 'Normal Retirement',\n },\n {\n value: ClaimTypeReasonE.ER,\n label: 'Early Retirement',\n },\n {\n value: ClaimTypeReasonE.PD,\n label: 'Permanent Departure',\n },\n {\n value: ClaimTypeReasonE.TI,\n label: 'Total Incapacity',\n },\n {\n value: ClaimTypeReasonE.IL,\n label: 'Terminal Illness',\n },\n {\n value: ClaimTypeReasonE.SB,\n label: 'Small Balance',\n },\n {\n value: ClaimTypeReasonE.DN,\n label: 'Death',\n },\n {\n value: ClaimTypeReasonE.VW,\n label: 'VC / SVC Withdrawal',\n },\n];\n\nexport enum FrequencyE {\n QUARTERLY = 'QUARTERLY',\n MONTHLY = 'MONTHLY',\n YEARLY = 'YEARLY',\n}\n\nexport const frequencyMapObj = {\n [FrequencyE.QUARTERLY]: 'Quarterly',\n [FrequencyE.MONTHLY]: 'Monthly',\n [FrequencyE.YEARLY]: 'Yearly',\n};\n\nexport enum ClaimCodeE {\n PROC = 'PROC',\n NODD = 'NODD',\n FODD_DIFD = 'FODD_DIFD',\n FODD_PEDD = 'FODD_PEDD',\n FODD_PLDD = 'FODD_PLDD',\n CRCA = 'CRCA',\n}\n\nexport const claimCodeMapObj = {\n [ClaimCodeE.PROC]: 'Pending (PDC accepted by MPFA and awaiting response)',\n [ClaimCodeE.NODD]: 'Approved for process (Accepted and ready for redemption)',\n [ClaimCodeE.FODD_DIFD]: 'Approved in process (Accepted and ready for redemption)',\n [ClaimCodeE.FODD_PEDD]: 'Rejected (Payment reported with earlier departure date)',\n [ClaimCodeE.FODD_PLDD]: 'Rejected (Payment reported with later departure date)',\n [ClaimCodeE.CRCA]: 'PDC is cancelled (PDC record is cancelled)',\n};\n\nexport enum DepartureReasonE {\n EMIGRATION = 'EMIGRATION',\n RETIREMENT = 'RETIREMENT',\n FAMILY_REUNION = 'FAMILY_REUNION',\n OVERSEA_EMP = 'OVERSEA_EMP',\n MARRIAGE = 'MARRIAGE',\n OTHER = 'OTHER',\n NOT_PROVIDED = 'NOT_PROVIDED',\n}\n\nexport const departureReasonMapObj = {\n [DepartureReasonE.EMIGRATION]: 'Emigration',\n [DepartureReasonE.RETIREMENT]: 'Retirement',\n [DepartureReasonE.FAMILY_REUNION]: 'Family reunion',\n [DepartureReasonE.OVERSEA_EMP]: 'Long-term overseas employment',\n [DepartureReasonE.MARRIAGE]: 'Marriage',\n [DepartureReasonE.OTHER]: 'Others',\n [DepartureReasonE.NOT_PROVIDED]: 'Not Provided',\n};\n\nexport enum OroTIBConsentStatusCodeE {\n NEW = 'NEW',\n PENDING = 'PENDING',\n APPROVE = 'APPROVE',\n REJECT = 'REJECT',\n}\n\nexport enum PayBasisTypeE {\n UNIT = 'UNIT',\n AMOUNT = 'AMOUNT',\n PTC = 'PTC',\n}\n\nexport const paybasisMapObj = {\n [PayBasisTypeE.UNIT]: 'Amount in unit',\n [PayBasisTypeE.AMOUNT]: 'Amount in amount',\n [PayBasisTypeE.PTC]: 'Amount in percentage',\n};\n\nexport enum ReturnIssueCodeForOroE {\n PAY_EE = 'PAY_EE',\n NOPAY_EE = 'NOPAY_EE',\n PARTIAL_EE = 'PARTIAL_EE',\n}\n\nexport const returnIssueCodeForOroMapObj = {\n [ReturnIssueCodeForOroE.PAY_EE]: 'Full paid to employee',\n [ReturnIssueCodeForOroE.NOPAY_EE]: 'Full paid to ORO (Official Receiver’s Office) /TIB (Trustee in Bankruptcy)',\n [ReturnIssueCodeForOroE.PARTIAL_EE]: 'Partial payment to employee and partial payment to ORO/TIB',\n};\n\nexport interface WithdrawalPayee {\n paymentOutReferenceNo?: string;\n paymentOutStatus?: PaymentOutStatusE;\n paymentMethod?: string;\n paymentAmount?: number;\n currencyOfPayment?: string;\n paymentClearedDate?: string;\n chequeNumber?: string;\n chequeIssueDate?: string;\n paymentRejectReason?: string;\n reissuanceFlag?: string;\n}\n\nexport enum PaymentOutStatusE {\n PEND_PAYMENT = 'PEND_PAYMENT',\n HOLD = 'HOLD',\n UNPRESENTED = 'UNPRESENTED',\n PAYMENT_SETTLE = 'PAYMENT_SETTLE',\n REJECT = 'REJECT',\n EXPIRED = 'EXPIRED',\n RE_ISSUE = 'RE_ISSUE',\n}\n\nexport const paymentOutStatusOptions: CdsOption[] = [\n {\n value: PaymentOutStatusE.PEND_PAYMENT,\n label: 'PEND_PAYMENT',\n },\n {\n value: PaymentOutStatusE.HOLD,\n label: 'HOLD',\n },\n {\n value: PaymentOutStatusE.UNPRESENTED,\n label: 'UNPRESENTED',\n },\n {\n value: PaymentOutStatusE.PAYMENT_SETTLE,\n label: 'PAYMENT_SETTLE',\n },\n {\n value: PaymentOutStatusE.PEND_PAYMENT,\n label: 'PEND_PAYMENT',\n },\n {\n value: PaymentOutStatusE.REJECT,\n label: 'REJECT',\n },\n {\n value: PaymentOutStatusE.EXPIRED,\n label: 'EXPIRED',\n },\n {\n value: PaymentOutStatusE.RE_ISSUE,\n label: 'RE_ISSUE',\n },\n];\n\nexport interface PolicyTermination {\n id?: string;\n schemeCd?: string;\n erAcctCd?: string;\n mbAcctCd?: string;\n grpRefNo?: string;\n refNo?: string;\n seqNo?: string;\n statusCd?: TerminationStatusE;\n termReason?: TerminationReasonE;\n notNotifyDate?: string;\n lspSpFlg?: YesOrNoFlagE;\n lspspTyp?: string;\n origRequestSubmitDtm?: string;\n eeLspSpEntitleAmt?: string;\n eePayableAmt?: string;\n erLspSpPaidAmt?: string;\n erAcctOffsetAmt?: string;\n othLspSpOffsetAmt?: string;\n othLspSpOffsetDesc?: string;\n eePayAmt?: string;\n eePayeeNm?: string;\n eePayMthd?: PaymentMethodE;\n eeChqNo?: string;\n eeChqIssueDate?: string;\n eeBnkCd?: string;\n eeBnkNm?: string;\n eeBranchCd?: string;\n eeBnkAcctNo?: string;\n eePayClearDate?: string;\n eePayRejectReason?: string;\n erPayAmt?: string;\n erPayeeNm?: string;\n erPayMthd?: string;\n erChqNo?: string;\n erChqIssueDate?: string;\n erBnkCd?: string;\n erBnkNm?: string;\n erBranchCd?: string;\n erBnkAcctNo?: string;\n erPayClearDate?: string;\n erPayRejectReason?: string;\n orsoSchemeOffsetAmt?: string;\n orsoSchemeNm?: string;\n ceeLspspEmployStartDate?: string;\n ceeLdoe?: string;\n ceeLdoeRecordDate?: string;\n rejectDate?: string;\n mbTrfOptNoticeDate?: string;\n termLastFuDate?: string;\n nextFuDayCnt?: string;\n wfRefNo?: string;\n recCheckSum1?: string;\n recCheckSum2?: string;\n df2?: string;\n df3?: string;\n df4?: string;\n df5?: string;\n df6?: string;\n df7?: string;\n df8?: string;\n df9?: string;\n df10?: string;\n df1?: string;\n}\n\nexport enum TerminationStatusE {\n RECEIVE = 'RECEIVE',\n PENDING = 'PENDING',\n CANCEL = 'CANCEL',\n EE_CONFIRM = 'Pending EE confirm',\n EE_CONFIRMED = 'EE_CONFIRMED',\n EE_NOT_AGREE = 'EE_NOT_AGREE',\n ER_CONFIRM = 'Pending ER confirm',\n ER_CONFIRMED = 'ER_CONFIRMED',\n ER_NOT_AGREE = 'ER_NOT_AGREE',\n INVEST_ORDER_PEND = 'INVEST_ORDER_PEND',\n NIGHT_BATCH_PEND = 'NIGHT_BATCH_PEND',\n COMPLETE = 'COMPLETE',\n REJECT = 'REJECT',\n TR_REJECT = 'TR_REJECT',\n REVIEW_IN_PROGRESS = 'REVIEW_IN_PROGRESS',\n FOLLOW_UP_IN_PRGRESS = 'FOLLOW_UP_IN_PRGRESS',\n PEND_PAYMT_SETTLE = 'PEND_PAYMT_SETTLE',\n}\n\nexport const terminationStatusMapObj = {\n [TerminationStatusE.RECEIVE]: 'RECEIVE',\n [TerminationStatusE.PENDING]: 'PENDING',\n [TerminationStatusE.CANCEL]: 'CANCEL',\n [TerminationStatusE.EE_CONFIRM]: 'Pending EE confirm',\n [TerminationStatusE.EE_CONFIRMED]: 'EE_CONFIRMED',\n [TerminationStatusE.EE_NOT_AGREE]: 'EE_NOT_AGREE',\n [TerminationStatusE.ER_CONFIRM]: 'Pending ER confirm',\n [TerminationStatusE.ER_CONFIRMED]: 'ER_CONFIRMED',\n [TerminationStatusE.ER_NOT_AGREE]: 'ER_NOT_AGREE',\n [TerminationStatusE.INVEST_ORDER_PEND]: 'INVEST_ORDER_PEND',\n [TerminationStatusE.NIGHT_BATCH_PEND]: 'NIGHT_BATCH_PEND',\n [TerminationStatusE.COMPLETE]: 'COMPLETE',\n [TerminationStatusE.REJECT]: 'REJECT',\n [TerminationStatusE.TR_REJECT]: 'TR_REJECT',\n [TerminationStatusE.REVIEW_IN_PROGRESS]: 'REVIEW_IN_PROGRESS',\n [TerminationStatusE.FOLLOW_UP_IN_PRGRESS]: 'In progress, Unclean and need follow up action',\n [TerminationStatusE.PEND_PAYMT_SETTLE]: 'Awaiting the payment to be presented',\n};\n\nexport enum TerminationReasonE {\n RESIGN = 'RESIGN',\n RETIRE = 'RETIRE',\n EARLY_RETIRE = 'EARLY_RETIRE',\n DEATH = 'DEATH',\n ILL_HEALTH = 'ILL_HEALTH',\n TOTAL_INCAP = 'TOTAL_INCAP',\n REDUNDANCY = 'REDUNDANCY',\n LAID_OFF = 'LAID_OFF',\n DISMIS = 'DISMIS',\n SUM_DISMISS = 'SUM_DISMISS',\n AUTO_TERM_60D = 'AUTO_TERM_60D',\n WRONG_ENROL = 'WRONG_ENROL',\n INTRA_GROUP_TRF = 'INTRA_GROUP_TRF',\n CONTRACT_END = 'CONTRACT_END',\n SCHEME_TRF = 'SCHEME_TRF',\n COMP_WIND_UP = 'COMP_WIND_UP',\n NO_EMPLOYEE = 'NO_EMPLOYEE',\n}\n\nexport const terminationReasonMapObj = {\n [TerminationReasonE.RESIGN]: 'Resignation',\n [TerminationReasonE.RETIRE]: 'Retirement',\n [TerminationReasonE.EARLY_RETIRE]: 'Early Retirement',\n [TerminationReasonE.DEATH]: 'Death',\n [TerminationReasonE.ILL_HEALTH]: 'On ground of ill health',\n [TerminationReasonE.TOTAL_INCAP]: 'Total Incapacity',\n [TerminationReasonE.REDUNDANCY]: 'Redundancy',\n [TerminationReasonE.LAID_OFF]: 'Laid Off',\n [TerminationReasonE.DISMIS]: 'Dismissal',\n [TerminationReasonE.SUM_DISMISS]: 'Summary Dismissal',\n [TerminationReasonE.AUTO_TERM_60D]: 'Auto Termination within 60 days',\n [TerminationReasonE.WRONG_ENROL]: 'Wrong Enrolment',\n [TerminationReasonE.INTRA_GROUP_TRF]: 'Intra-group transfer',\n [TerminationReasonE.CONTRACT_END]: 'Contract Ended',\n [TerminationReasonE.SCHEME_TRF]: 'Scheme Transfer',\n [TerminationReasonE.COMP_WIND_UP]: 'Company Wind Up as reason of ER Termination',\n [TerminationReasonE.NO_EMPLOYEE]: 'No Eligible Employee working for this company',\n};\n\nexport enum PaymentMethodE {\n CQT = 'CQT',\n BKT = 'BKT',\n FPS = 'FPS',\n TEL = 'TEL',\n}\n\nexport const paymentMethodMapObj = {\n [PaymentMethodE.CQT]: 'Cheque Payment',\n [PaymentMethodE.BKT]: 'Bank Transfer',\n [PaymentMethodE.FPS]: 'Fast Payment Service',\n [PaymentMethodE.TEL]: 'Telegraphic Transfer',\n};\n\nexport enum WorkflowTypeE {\n EMPLOYER_ENROLEMENT = 'Employer Enrolment',\n MEMBER_ENROLEMENT = 'Member Enrolment',\n MEMBER_INVESTMENT_MANDATE = 'Member Investment Mandate',\n COUNTRIBUTION = 'Contribution',\n FUND_SWITCHING = 'Fund switching',\n TERMINATION = 'Termination',\n TRANSFER = 'Transfer',\n WITHDRAWAL = 'Withdrawal',\n}\n\nexport const workflowTypeOptions: CdsOption[] = [\n {\n label: 'Employer Enrolment',\n value: WorkflowTypeE.EMPLOYER_ENROLEMENT,\n },\n {\n label: 'Member Enrolment',\n value: WorkflowTypeE.MEMBER_ENROLEMENT,\n },\n {\n label: 'Member Investment Mandate',\n value: WorkflowTypeE.MEMBER_INVESTMENT_MANDATE,\n },\n {\n label: 'Contribution',\n value: WorkflowTypeE.COUNTRIBUTION,\n },\n {\n label: 'Fund Switching',\n value: WorkflowTypeE.FUND_SWITCHING,\n },\n {\n label: 'Termination',\n value: WorkflowTypeE.TERMINATION,\n },\n {\n label: 'Transfer',\n value: WorkflowTypeE.TRANSFER,\n },\n {\n label: 'Withdrawal',\n value: WorkflowTypeE.WITHDRAWAL,\n },\n];\n\nexport enum WorkflowStatusCodeE {\n PENDING = 'PENDING',\n CANCEL = 'CANCEL',\n COMPLETE = 'COMPLETE',\n FOLLOW_UP = 'FOLLOW_UP',\n REJECT = 'REJECT',\n OPEN = 'OPEN',\n}\n\nexport const workflowStatusCodeOptions: CdsOption[] = [\n {\n label: 'Pending',\n value: WorkflowStatusCodeE.PENDING,\n },\n {\n label: 'Cancel',\n value: WorkflowStatusCodeE.CANCEL,\n },\n {\n label: 'Complete',\n value: WorkflowStatusCodeE.COMPLETE,\n },\n {\n label: 'Follow-up',\n value: WorkflowStatusCodeE.FOLLOW_UP,\n },\n {\n label: 'Reject',\n value: WorkflowStatusCodeE.REJECT,\n },\n {\n label: 'Open',\n value: WorkflowStatusCodeE.OPEN,\n },\n];\n\nexport const workflowStatusCodeMapObj = {\n [WorkflowStatusCodeE.PENDING]: {\n text: 'Pending',\n color: '#F49600',\n },\n [WorkflowStatusCodeE.CANCEL]: {\n text: 'Cancel',\n color: '#EC6453',\n },\n [WorkflowStatusCodeE.COMPLETE]: {\n text: 'Complete',\n color: '#00A758',\n },\n [WorkflowStatusCodeE.FOLLOW_UP]: {\n text: 'Follow-up',\n color: '#28D7CB',\n },\n [WorkflowStatusCodeE.REJECT]: {\n text: 'Reject',\n color: '#8E90A2',\n },\n [WorkflowStatusCodeE.OPEN]: {\n text: 'Open',\n color: '#6F5693',\n },\n};\n\nexport interface EmpfWorkflow {\n md5?: string;\n workflowReferenceNo?: string;\n memberAccountCode?: string;\n memberName?: string;\n memberEmpfId?: string;\n statusCode?: WorkflowStatusCodeE;\n type?: WorkflowTypeE;\n createDate?: string;\n followUpRejectDate?: string;\n followUpRejectReason?: string;\n}\n\nexport interface EmpfWorkflowRequest extends IPageableRequest {\n id?: string;\n payrollGroupId?: string;\n workflowReferenceNo?: string;\n paymentSubmissionReferenceNo?: string;\n memberAccountCode?: string;\n statusCode?: WorkflowStatusCodeE;\n type?: WorkflowTypeE;\n createDate?: string;\n}\n\nexport interface PolicyDetails {\n id?: string;\n schemeJoinedDate?: string;\n terminationCompletionDate?: string;\n previousCAMemberCode?: string;\n defaultPA?: string;\n abOffer?: string;\n schemeMergeSignal?: string;\n commissionPoolNumber?: string;\n originalSchemeJoinedDate?: string;\n enrolmentReferenceNo?: string;\n workflowReferenceNo?: string;\n\n enrolmentSubmissionChannel?: string;\n enrolmentCompletionDate?: string;\n applicationReceivedDate?: string;\n declarationCompletionDate?: string;\n\n sourceOfFundWealth?: string;\n otherSourceOfFundWealth?: string;\n originOfInitialSourceOfWealth?: string;\n originOfOnGoingSourceOfFundsWealth?: string;\n}\n\nexport const RegistrationTypeMap = new Map([\n ['BR', 'Business Registration'],\n ['EDU', 'Education Institution'],\n ['IRD', 'Inland Revenue Department (Charitable Organisations)'],\n ['TU', 'Registry of Trade Unions'],\n ['SO', 'Societies Office of Hong Kong Police'],\n ['OTHERS', 'Others'],\n ['PASSPORT', 'Passport'],\n ['HKID', 'HKID'],\n]);\n\nexport const TransactionStatusCds: CdsOption[] = [\n {\n value: 'IN_PROGRESS',\n label: 'In Progress',\n },\n {\n value: 'COMPLETE',\n label: 'Transaction of old - new trustees had been completed after unit allocation, whole transfer had been completed',\n },\n {\n value: 'INVEST_ORDER_PEND',\n label: 'Awaiting for order completion',\n },\n {\n value: 'NIGHT_BATCH_PEND',\n label: 'Pending for nightly batch cycle to generate fund order',\n },\n {\n value: 'CANCEL',\n label: 'Member cancel request before cutoff',\n },\n {\n value: 'REJECT',\n label: 'The transfer request is rejected by eMPF or Old Trustee',\n },\n {\n value: 'ONHOLD',\n label: 'Fund price is not ready, or transfer in instruction that waiting transfer out instruction is completed',\n },\n];\n\nexport const TransactionActivityTypes: CdsOption[] = [\n {\n value: 'AUTO_PRESERVE_IN',\n label: 'Auto Preservation In',\n },\n {\n value: 'AUTO_PRESERVE_OUT',\n label: 'Auto Preservation Out',\n },\n {\n value: 'CONTR',\n label: 'Contribution',\n },\n {\n value: 'FEE_CHRG',\n label: 'Fee and Charge',\n },\n {\n value: 'FORF_ALLOC_IN',\n label: 'Forfeiture Allocation In',\n },\n {\n value: 'FORF_ALLOC_OUT',\n label: 'Forfeiture Allocation Out',\n },\n {\n value: 'FORFEITURE_OFFSET',\n label: 'Forfeiture Offset',\n },\n {\n value: 'TRF_IN',\n label: 'Transfer_IN',\n },\n {\n value: 'TERM',\n label: 'Termination',\n },\n {\n value: 'LSPSP_OFFSET',\n label: 'Refund Accrued Benefit (LSPSP)',\n },\n {\n value: 'OTH_INC',\n label: 'Other Income',\n },\n {\n value: 'TRF_OUT',\n label: 'Transfer_OUT',\n },\n {\n value: 'REBATE',\n label: 'Rebate',\n },\n {\n value: 'REFUND',\n label: 'Refund Overpaid Contribution',\n },\n {\n value: 'REINVEST_RESIDUAL',\n label: 'Reinvestment of residual balance',\n },\n {\n value: 'RESERVE_IN',\n label: 'Reserve In',\n },\n {\n value: 'RESERVE_OUT',\n label: 'Reserve Out',\n },\n {\n value: 'SWITCH_IN',\n label: 'Fund Switching In',\n },\n {\n value: 'SWITCH_OUT',\n label: 'Fund Switching Out',\n },\n {\n value: 'UCB',\n label: 'Unclaimed Benefit',\n },\n {\n value: 'UNIT_CORRECTION_IN',\n label: 'Unit correction IN',\n },\n {\n value: 'UNIT_CORRECTION_OUT',\n label: 'Unit correction Out',\n },\n {\n value: 'UNVEST_BAL_IN',\n label: 'Unvested Balance In',\n },\n {\n value: 'UNVEST_BAL_OUT',\n label: 'Unvested Balance Out',\n },\n {\n value: 'WDR',\n label: 'Withdrawal',\n },\n];\n\nexport const TransactionSubActivityTypes: CdsOption[] = [\n {\n value: 'AP_IN',\n label: 'Auto Preservation In',\n },\n {\n value: 'AP_IN_REDEEM',\n label: 'Auto Preservation In with change of fund class',\n },\n {\n value: 'AP_OUT',\n label: 'Auto Preservation Out',\n },\n {\n value: 'AP_OUT_REDEEM',\n label: 'Auto Preservation Out with change of fund class',\n },\n {\n value: 'CONTR_LUMPSUM',\n label: 'Lumpsum Contribution',\n },\n {\n value: 'CONTR_REGULAR',\n label: 'Regular Contribution',\n },\n {\n value: 'CONTR_SUBSEQUENT',\n label: 'Subsequent Contribution',\n },\n {\n value: 'CONTR_SURCHG',\n label: 'Surcharge Contribution',\n },\n {\n value: 'FEE_CHRG',\n label: 'Fee and Charge',\n },\n {\n value: 'FORF_ALLOC_IN',\n label: 'Forfeiture Allocation In',\n },\n {\n value: 'FORF_ALLOC_OUT',\n label: 'Forfeiture Allocation Out',\n },\n {\n value: 'FORFEITURE_OFFSET',\n label: 'Forfeiture Offset',\n },\n {\n value: 'GIC',\n label: 'Government Injection Contribution',\n },\n {\n value: 'IN_RESTRUCTURE',\n label: 'Transfer In Scheme Restructure',\n },\n {\n value: 'LSP',\n label: 'LSP Offset',\n },\n {\n value: 'LSPSP_OFFSET',\n label: 'Refund Accrued Benefit (LSPSP)',\n },\n {\n value: 'NOT',\n label: 'Notice of Termination',\n },\n {\n value: 'OTH_INC_CRYS',\n label: 'Guarantee Crystallization',\n },\n {\n value: 'OTH_INC_DISTR',\n label: 'Dividend Income Distributions',\n },\n {\n value: 'OTH_INC_GUAR_TOPUP',\n label: 'Injection of guarantee topup',\n },\n {\n value: 'OUT_RESTRUCTURE',\n label: 'Transfer Out Scheme Restructure',\n },\n {\n value: 'REBATE',\n label: 'Rebate',\n },\n {\n value: 'REFUND_FORFEITURE',\n label: 'Refund Forfeiture',\n },\n {\n value: 'REFUND_OVERPAID',\n label: 'Refund Overpaid',\n },\n {\n value: 'REFUND_SURCHG',\n label: 'Refund Overpaid Surcharge',\n },\n {\n value: 'REFUND_SUSPENSE',\n label: 'Refund Suspense',\n },\n {\n value: 'REINVEST_RESIDUAL',\n label: 'Reinvest Residual balance',\n },\n {\n value: 'RESERVE_IN',\n label: 'Reserve In',\n },\n {\n value: 'RESERVE_OFFSET',\n label: 'Reserve Offset',\n },\n {\n value: 'SP',\n label: 'SP Offset',\n },\n {\n value: 'SW_IN_DIS',\n label: 'DIS Derisking In',\n },\n {\n value: 'SW_IN_FUND_SWITCH',\n label: 'Fund Switching In',\n },\n {\n value: 'SW_IN_REBALANCE',\n label: 'Rebalance IN',\n },\n {\n value: 'SW_OUT_DIS',\n label: 'DIS Derisking Out',\n },\n {\n value: 'SW_OUT_FUND_SWITCH',\n label: 'Fund Switching Out',\n },\n {\n value: 'SW_OUT_REBALANCE',\n label: 'Rebalance OUT',\n },\n {\n value: 'TRF_IN_INTRAGROUP',\n label: 'Intragroup transfer',\n },\n {\n value: 'TRF_IN_MMB',\n label: 'Transfer In MMB',\n },\n {\n value: 'TRF_IN_MMB_INTRA_GRP',\n label: 'Transfer In MMB Intra Group',\n },\n {\n value: 'TRF_IN_MMB_PE',\n label: 'Transfer In MMB Scheme',\n },\n {\n value: 'TRF_IN_PC',\n label: 'Transfer In PC Form',\n },\n {\n value: 'TRF_IN_PE',\n label: 'Transfer In PE Form',\n },\n {\n value: 'TRF_IN_PM',\n label: 'Transfer In PM Form',\n },\n {\n value: 'TRF_IN_PP',\n label: 'Transfer In PP Form',\n },\n {\n value: 'TRF_IN_PT',\n label: 'Transfer In PT Form',\n },\n {\n value: 'TRF_OUT_INTRAGROUP',\n label: 'Intragroup transfer',\n },\n {\n value: 'TRF_OUT_PC',\n label: 'Transfer Out PCForm',\n },\n {\n value: 'TRF_OUT_PE',\n label: 'Transfer Out PE Form',\n },\n {\n value: 'TRF_OUT_PM',\n label: 'Transfer Out PM Form',\n },\n {\n value: 'TRF_OUT_PP',\n label: 'Transfer Out PP Form',\n },\n {\n value: 'TRF_OUT_PT',\n label: 'Transfer Out PT Form',\n },\n {\n value: 'UCB_REINVEST',\n label: 'Unpresented Cheque Reinvest',\n },\n {\n value: 'UNIT_ADJ_IN',\n label: 'Unit correction IN',\n },\n {\n value: 'UNIT_ADJ_OUT',\n label: 'Unit correction Out',\n },\n {\n value: 'UNIT_TRF',\n label: 'Unit Transfer',\n },\n {\n value: 'UNVEST_BAL_IN',\n label: 'Unvested Balance In',\n },\n {\n value: 'UNVEST_BAL_OUT',\n label: 'Unvested Balance Out',\n },\n {\n value: 'WDR_AUTO_TERM',\n label: 'Auto Termination within 60 days (do not show this to ER as this is logic derived and cannot be selected by ER, see UFLSP008.) Auto Preservation',\n },\n {\n value: 'WDR_DEATH',\n label: 'Death',\n },\n {\n value: 'WDR_EARLY_RETIRE',\n label: 'Early Retirement Lump Sum',\n },\n {\n value: 'WDR_FULL',\n label: 'Full Withdrawal',\n },\n {\n value: 'WDR_ORO',\n label: 'ORO/TIB Withdrawal',\n },\n {\n value: 'WDR_PARTIAL',\n label: 'Partial Withdrawal',\n },\n {\n value: 'WDR_PERMNT_DEPART',\n label: 'Permanent Departure',\n },\n {\n value: 'WDR_RETIRE',\n label: 'Retirement Lump Sum',\n },\n {\n value: 'WDR_SI_EARLY_RETIRE',\n label: 'Early Retirement Standing Instruction',\n },\n {\n value: 'WDR_SI_RETIRE',\n label: 'Retirement Standing Instruction',\n },\n {\n value: 'WDR_SMALL_BAL',\n label: 'Small Balance Claim',\n },\n {\n value: 'WDR_TERM_ILL',\n label: 'On ground of ill health',\n },\n {\n value: 'WDR_TOTAL_INCAP',\n label: 'Total Incapacity',\n },\n {\n value: 'SW_OUT_FUND_SWITCH',\n label: 'Fund Switching Out',\n },\n {\n value: 'SW_OUT_FUND_TO_FUND',\n label: 'Fund To Fund Switching Out',\n },\n];\n\nexport interface InvestedFundInfo {\n fundCode?: string;\n fundName?: string;\n unitPrice?: number;\n noOfUnit?: number;\n fundBalance?: number;\n fundCurrency?: string;\n eeNewBUFlag?: string;\n fseeoreemc?: number;\n pseeoreevc?: number;\n fserorermc?: number;\n pserorervc?: number;\n show?: boolean;\n}\n\nexport interface InvestedFundInformationResponse {\n asOfDate?: string;\n investedFundInfo?: InvestedFundInfo[];\n}\n\nexport interface TransactionRecordRequest extends IPageableRequest {\n referenceNo?: string;\n groupReferenceNo?: string;\n statusCode?: string;\n activityType?: string;\n subActivityType?: string;\n effectiveDate?: string;\n createdDate?: string;\n id?: string;\n}\n\nexport interface TransactionRecordResponse {\n referenceNo?: string;\n groupReferenceNo?: string;\n statusCode?: string;\n activityType?: string;\n subActivityType?: string;\n createDate?: string;\n effectiveDate?: string;\n}\n\nexport interface FundBaseInfo {\n fundType?: string;\n fundUnit?: string;\n fundAmount?: string;\n}\n\nexport interface FundInformationRecords {\n fundCode?: string;\n fundEnName?: string;\n fundZhName?: string;\n unitPrice?: string;\n fundBaseInfo?: FundBaseInfo[];\n}\n\nexport interface TransactionsRefInfo {\n refNo?: string;\n createDate?: string;\n effectiveDate?: string;\n originalRequestedSubmissionDateAndTime?: string;\n activityType?: string;\n subActivityType?: string;\n subAccountType?: string;\n fundInformationRecords?: FundInformationRecords[];\n}\n\nexport interface PaymentTransactionResponse {\n firstName?: string;\n lastName?: string;\n firstZhName?: string;\n lastZhName?: string;\n mbAccountCode?: string;\n list?: TransactionsRefInfo[];\n}\n","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { employerStatusMapObj } from '../../employer/employer';\nimport { EmployeeService } from '../employee.service';\nimport { EmploymentInfo } from '../employee';\n\n@Component({\n selector: 'app-employment-info',\n templateUrl: './employment-info.component.html',\n styleUrls: ['./employment-info.component.scss'],\n})\nexport class EmploymentInfoComponent implements OnInit, OnChanges {\n @Input() id = '';\n\n isLoading = false;\n\n data: EmploymentInfo = {};\n\n employerStatusMapObj = employerStatusMapObj;\n\n constructor(public service: EmployeeService, private route: ActivatedRoute, private toastAlert: ToastAlertService, private router: Router) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n this.getData();\n }\n }\n\n ngOnInit(): void {}\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getData() {\n if (!this.id) return;\n this.isLoading = true;\n this.service\n .getEmploymentInfo(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.data = res.data;\n } else {\n this.toastError(res.message);\n }\n });\n }\n goToVesting(data: EmploymentInfo) {\n this.router.navigate(['/employer/payroll-group-info'], { queryParams: { id: data.erId, payrollGroupId: data.payrollGroupId, tab: 'vestingRule' } });\n }\n}\n","\n\n
    \n
    \n
    \n \n
    \n
    \n {{ 'ee.company-information' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ data.companyInfo?.companyEnglishName }}\n {{ data.companyInfo?.companyChineseName }}\n
    \n
    \n {{ data.companyInfo?.companyType }}\n \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    Employment Information
    \n\n
    \n\n
    \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n {{ 'ee.vesting-rules' | lang }}\n
    \n
    \n
    \n
    \n
    \n Employer grade/member class:\n
    \n \n Manage\n
    \n
    \n\n
    \n {{ 'ee.voluntary-contribution-rules' | lang }}\n
    \n
    \n
    \n
    \n
    \n Employer grade/member class:\n
    \n \n Manage\n
    \n
    \n
    \n","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { agentStatusMapObj } from '../../employer/employer';\n\nimport { EmployeeService } from '../employee.service';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { DateTime } from 'luxon';\nimport { ColumnSort, I18N_KEY } from '../../employer/employer';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { dateValidator, descriptionValidator } from 'src/app/shared/validators/validators';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport moment from 'moment';\nimport {\n TransactionStatusCds,\n TransactionActivityTypes,\n TransactionSubActivityTypes,\n TransactionRecordResponse,\n TransactionRecordRequest,\n InvestedFundInformationResponse,\n InvestedFundInfo,\n FundBalanceResponse,\n} from '../employee';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { Sort } from 'src/app/components/table/table-expand';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { paymentTransactionPopComponent } from './payment-transaction-pop/payment-transaction-pop.component';\n@Component({\n selector: 'app-fund-info',\n templateUrl: './fund-info.component.html',\n styleUrls: ['./fund-info.component.scss'],\n})\nexport class FundInfoComponent implements OnInit, OnChanges {\n @Input() id = '';\n\n isLoading = false;\n\n agentStatusMapObj = agentStatusMapObj;\n\n config: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n investedFundInformationResponseData: InvestedFundInformationResponse = {\n asOfDate: '',\n investedFundInfo: [],\n };\n\n fundBalanceData: FundBalanceResponse = {\n fundBalanceList: [],\n };\n\n searchDTO: TransactionRecordRequest = {\n page: 0,\n size: 10,\n };\n\n exportParams: TransactionRecordResponse = {};\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n exportButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n I18N_KEY = I18N_KEY;\n\n exportButtonDisabled = true;\n\n _progress = false;\n\n _totalPages = 0;\n\n _totalCount = 0;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n _recordList: TransactionRecordResponse[] = [];\n\n _number = 1;\n\n _inputNumber = 1;\n\n isMobile = false;\n\n showDatePicker = true;\n\n formReady = false;\n\n isStaff = false;\n\n TransactionStatusCds = [...TransactionStatusCds];\n TransactionActivityTypes = [...TransactionActivityTypes];\n\n StatusCodeConfig: CdsDropdownConfig = {\n label: 'Status code',\n placeholder: 'Select Status code',\n options: [...TransactionStatusCds],\n };\n ActivityConfig: CdsDropdownConfig = {\n label: 'Activity Type',\n placeholder: 'Select Activity Type',\n options: [...TransactionActivityTypes],\n };\n SubActivityConfig: CdsDropdownConfig = {\n label: 'Sub Activity Type',\n placeholder: 'Select Sub Activity Type',\n options: [...TransactionSubActivityTypes],\n };\n\n displayedColumns: string[] = ['referenceNo', 'groupReferenceNo', 'statusCode', 'activityType', 'subActivityType', 'createDate'];\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'referenceNo',\n title: 'Reference No.',\n sticky: true,\n sort: SortMode.DEFAULT,\n },\n {\n key: 'groupReferenceNo',\n title: 'Group Reference No.',\n sticky: true,\n //sort: SortMode.DEFAULT,\n },\n {\n key: 'statusCode',\n title: 'Status Code',\n stickyEnd: true,\n //sort: SortMode.DEFAULT,\n },\n {\n key: 'activityType',\n title: 'Activity Type',\n //sort: SortMode.DEFAULT,\n },\n {\n key: 'subActivityType',\n title: 'Sub Activity Type',\n //sort: SortMode.DEFAULT,\n },\n {\n key: 'effectiveDate',\n title: 'Effective Date',\n },\n {\n key: 'createDate',\n title: 'Created Date',\n },\n ];\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n tempSeardhParams: TransactionRecordRequest = {\n page: 1,\n size: 10,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n columnSort: ColumnSort = {\n key: 'createdAt',\n value: SortMode.DOWN,\n };\n\n form: FormGroup = new FormGroup({});\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get groupReferenceNoControl() {\n return this.form?.get('groupReferenceNo');\n }\n\n get referenceNoControl() {\n return this.form?.get('referenceNo');\n }\n\n get statusCodeControl() {\n return this.form?.get('statusCode');\n }\n\n get activityTypeControl() {\n return this.form?.get('activityType');\n }\n\n get subActivityTypeControl() {\n return this.form?.get('subActivityType');\n }\n\n get effectiveDateControl() {\n return this.form?.get('effectiveDate');\n }\n\n get createdDateControl() {\n return this.form?.get('createdDate');\n }\n\n constructor(\n public service: EmployeeService,\n private toastAlert: ToastAlertService,\n private route: ActivatedRoute,\n private permissionService: PermissionService,\n private cdsPopup: CdsPopupService\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n this.permissionFilter();\n this.getFundBalance();\n this.getInvestedFundInfo();\n this.initForm();\n }\n }\n\n ngOnInit(): void {}\n\n getInvestedFundInfo() {\n if (!this.id) return;\n this.isLoading = true;\n this.service\n .getInvestedFundInformationResponse(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.investedFundInformationResponseData = res.data;\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n getFundBalance() {\n if (!this.id) return;\n this.isLoading = true;\n this.service\n .getFundBalance(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.fundBalanceData = res.data;\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n titleGen(data: InvestedFundInfo) {\n if (data.fundCode && data.fundName) {\n return `${data.fundCode} ${data.fundName}`;\n }\n\n return '';\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.tempSeardhParams = {\n page: 1,\n size: 10,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n onPageChange(page: number) {\n this.searchDTO.page = page - 1;\n this._inputNumber = page;\n this.loadTable();\n }\n\n onGoPage(num: number) {\n if (num < 1) {\n num = 1;\n }\n if (num > this._totalPages) {\n num = this._totalPages;\n }\n this._number = num;\n this._inputNumber = num;\n }\n\n getMinTime() {\n return moment().subtract(5, 'year').add(1, 'day').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n getMaxFromDate = (toDateStr = '31/12/9999') => {\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup({\n groupReferenceNo: new FormControl('', [Validators.maxLength(15)]),\n referenceNo: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.employerNameValidTip, true)]),\n effectiveDate: new FormControl('', [dateValidator('create.dateError', '', '')]),\n createdDate: new FormControl('', [dateValidator('create.dateError', '', '')]),\n statusCode: new FormControl('', []),\n subActivityType: new FormControl('', []),\n activityType: new FormControl('', []),\n });\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reloadTable(event: any) {\n const temp = event.column?.key?.replace('referenceNo', 'ref_no');\n\n if (event.sort !== Sort.DEFAULT) {\n this.tempSeardhParams.sort = `${temp},${event.column?.sort}`;\n } else {\n delete this.tempSeardhParams.sort;\n }\n\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n // this.columnSort = event.column\n // ? {\n // key: event.column?.key,\n // value: event.column?.sort,\n // }\n // : {\n // key: 'createdAt',\n // value: SortMode.DOWN,\n // };\n\n this.loadTable();\n }\n\n loadTable() {\n const params: TransactionRecordRequest = this.getRequestParams();\n this._progress = true;\n this.exportButtonDisabled = true;\n this.service\n .getFundInfoTransactionRecordPageList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._progress = false;\n this._recordList = data.data.empty ? [] : data.data.content;\n this._totalCount = data.data.totalElements;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n }\n });\n }\n\n getTempSearchParams() {\n const params: TransactionRecordRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n params.createdDate = params.createdDate ? this.dateTrans(params.createdDate) : '';\n params.effectiveDate = params.effectiveDate ? this.dateTrans(params.effectiveDate) : '';\n return params;\n }\n\n getRequestParams() {\n const params: TransactionRecordRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n id: this.id,\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const exportParams: any = { ...params };\n delete exportParams.page;\n delete exportParams.size;\n delete exportParams.totalLives;\n this.exportParams = exportParams;\n return params;\n }\n\n expandAll() {\n this.investedFundInformationResponseData.investedFundInfo?.forEach(item => {\n item.show = !item.show;\n });\n }\n\n goToPopUp(item: TransactionRecordResponse) {\n console.log(item);\n\n this.cdsPopup\n .open(paymentTransactionPopComponent, {\n size: 'lg',\n data: {\n transactionRefNo: item.referenceNo,\n paySubmitRefNo: '',\n id: this.id,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.loadTable();\n }\n });\n }\n\n getStatusColor(statusCode: string) {\n switch (statusCode) {\n case 'IN_PROGRESS':\n return '#F49600';\n\n case 'COMPLETE':\n return '#00A758';\n\n case 'INVEST_ORDER_PEND':\n return '#9D8DBC';\n\n case 'NIGHT_BATCH_PEND':\n return '#6F5693';\n\n case 'CANCEL':\n return '#EC6453';\n\n case 'REJECT':\n return '#424559';\n\n case 'ONHOLD':\n return '#0000C1';\n\n default:\n return '#ff0000';\n }\n }\n\n getFormType(item: string | undefined) {\n switch (item) {\n case 'PP':\n return 'PP - Employee Choice Arrangement (\"ECA\")';\n\n case 'PM':\n return \"PM - Scheme Member's Request for Fund Transfer\";\n\n case 'PC':\n return \"PC - Scheme Member's Request for Account Consolidation\";\n\n case 'PT':\n return \"PT - Scheme member's request for Transfer Tax Deductible Voluntary Contribution\";\n\n case 'PE':\n return \"PE - Employer's request for fund transfer form\";\n\n case 'OT':\n return 'OT - Other than the above';\n\n default:\n return '';\n }\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n if (this.isStaff) {\n this.loadTable();\n }\n });\n }\n}\n","\n\n
    \n
    \n
    \n \n
    \n {{ 'ee.fund.viewPrivilegeRatesDetails' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'ee.fund.fundBalance' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n {{ 'ee.fund.asOfDate' | lang }} : {{ this.fundBalanceData.asOfDate | ssmsDate }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    {{ 'ee.fund.fundBalanceTotal' | lang }}
    \n
    \n
    {{ this.fundBalanceData.currency }}
    \n
    {{ this.fundBalanceData.fundBalanceTotal | number : '1.2-2' }}
    \n
    \n
    \n\n
    =
    \n\n
    \n
    {{ 'ee.fund.netContributionsNetTransferIn' | lang }}
    \n
    \n {{ this.fundBalanceData.currency }}\n {{ this.fundBalanceData.netContributionsAndNetTransferIn | number : '1.2-2' }}\n
    \n
    {{ 'ee.fund.sinceInception' | lang }}
    \n
    \n\n
    +
    \n\n
    \n
    {{ 'ee.fund.accountGainLoss' | lang }}
    \n
    \n {{ this.fundBalanceData.currency }}\n ({{ this.fundBalanceData.netContributionsAndNetTransferIn | number : '1.2-2' }})\n
    \n
    {{ 'ee.fund.sinceInception' | lang }}
    \n
    \n
    \n\n
    \n
    {{ 'ee.fund.including' | lang }}
    \n
    \n
    \n
    \n
    \n
    {{ 'ee.fund.totalContributionAssetTransferIn' | lang }}
    \n
    {{ this.fundBalanceData.currency }} {{ this.fundBalanceData.totalContributionOrAssetTransferIn }}
    \n
    \n
    \n
    {{ 'ee.fund.totalWithdrawalAssetTransferOut' | lang }}
    \n
    {{ this.fundBalanceData.currency }} {{ this.fundBalanceData.totalWithdrawalAssetTransferOut }}
    \n
    \n
    {{ 'ee.fund.lastTransferIn' | lang }}
    \n
    \n
    \n
    \n
    \n
    {{ 'ee.fund.dateOfTransfer' | lang }}
    \n
    {{ this.fundBalanceData.currency }} {{ this.fundBalanceData.dateOfTransfer }}
    \n
    \n
    \n
    {{ 'ee.fund.fundTransactionFormType' | lang }}
    \n
    {{ this.fundBalanceData.currency }} {{ getFormType(this.fundBalanceData.fundTransactionFormType) }}
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Fund Code/ Fund NameMandatory Contribution (Employer and Employee)Voluntary Contribution (Employer and Employee)Former Employment Mandatory ContributionFormer Employment Voluntary Contribution
    {{ item.fundCodeOrFundName }}\n
    \n
    \n
    ERMC
    \n
    {{ item.currency }}: {{ item.mandatoryContributionForERMC }}
    \n
    \n
    \n
    EEMC
    \n
    {{ item.currency }}: {{ item.mandatoryContributionForEEMC }}
    \n
    \n
    \n
    \n
    \n
    \n
    ERVC
    \n
    {{ item.currency }}: {{ item.voluntaryContributionERVC }}
    \n
    \n
    \n
    EEVC
    \n
    {{ item.currency }}: {{ item.voluntaryContributionEEVC }}
    \n
    \n
    \n
    \n
    \n
    ERMC
    \n
    {{ item.currency }}: {{ item.formerEmploymentMandatoryContributionERMC }}
    \n
    \n
    \n
    \n
    ERMC
    \n
    {{ item.currency }}: {{ item.formerEmploymentVoluntaryContributionERMC }}
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n {{ 'ee.fund.investedFundInformation' | lang }}\n
    \n Expand All\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n {{ 'ee.fund.asOfDate' | lang }} : {{ this.investedFundInformationResponseData.asOfDate | ssmsDate }}\n
    \n
    \n
    \n
    \n
    \n\n \n \n \n \n \n \n \n
    \n \n\n
    \n
    \n
    FSEE/EEMC %
    \n
    \n {{ item.fseeoreemc | percent : '1.2-2' }}\n
    \n
    \n
    \n
    FSER/ERMC %
    \n
    \n {{ item.fserorermc | percent : '1.2-2' }}\n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    PSEE/EEVC %
    \n
    \n {{ item.pseeoreevc | percent : '1.2-2' }}\n
    \n
    \n
    \n
    PSER/ERVC %
    \n
    \n {{ item.pserorervc | percent : '1.2-2' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n Transaction Record\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n
    \n \n\n
    \n Max length is 15\n\n {{ referenceNoControl?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    \n \n\n
    \n Max length is 200\n\n {{ groupReferenceNoControl?.errors?.['descriptionInvalid'] }}\n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ _totalCount | number }} records
    \n
    \n
    \n\n
    \n \n \n
    \n {{ element.referenceNo }}\n
    \n
    \n \n
    \n
    {{ element['groupReferenceNo'] }}
    \n
    \n
    \n\n \n
    \n
    \n
    {{ element['statusCode'] }}
    \n
    \n
    \n\n \n
    \n
    {{ element.activityType }}
    \n
    \n
    \n\n \n
    \n
    {{ element.subActivityType }}
    \n
    \n
    \n\n \n {{ element['effectiveDate'] | ssmsDate }}\n \n \n
    \n {{ element['createDate'] | ssmsDate }}\n\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { EmployeeService } from '../../employee.service';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\nimport { PaymentTransactionResponse, FundInformationRecords } from '../../employee';\n\n@Component({\n selector: 'app-payment-transaction-pop',\n templateUrl: './payment-transaction-pop.component.html',\n styleUrls: ['./payment-transaction-pop.component.scss'],\n})\nexport class paymentTransactionPopComponent implements OnInit {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n get title() {\n return '';\n }\n\n transactionsRefInfo = [];\n\n paymentTransactionResponse: PaymentTransactionResponse = {\n list: this.transactionsRefInfo,\n firstName: '',\n lastName: '',\n firstZhName: '',\n lastZhName: '',\n mbAccountCode: '',\n };\n\n isLoading = false;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n\n @Inject(CDS_POPUP_DATA)\n public data: {\n transactionRefNo: string;\n paySubmitRefNo: string;\n id: string;\n },\n public service: EmployeeService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit() {\n this.getInvestedFundInfo();\n }\n\n getInvestedFundInfo() {\n if (!this.data.id) return;\n this.isLoading = true;\n this.service\n .getPaymentTransaction(this.data.id, this.data.transactionRefNo, this.data.paySubmitRefNo)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.paymentTransactionResponse = res.data;\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n titleGen(data: FundInformationRecords) {\n let result = '';\n if (data.fundCode) {\n result = `${data.fundCode} `;\n } else {\n return '';\n }\n\n if (data.fundEnName) {\n result = result + ' ' + data.fundEnName;\n }\n\n if (data.fundZhName) {\n result = result + ' ' + data.fundZhName;\n }\n return result;\n }\n\n close() {\n this.dialogRef.close();\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","\n \n \n
    {{ title }}
    \n
    \n \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n {{ paymentTransactionResponse.lastName }} {{ paymentTransactionResponse.firstName }}\n {{ paymentTransactionResponse.lastZhName }}{{ paymentTransactionResponse.firstZhName }} \n
    \n
    {{ paymentTransactionResponse.mbAccountCode }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    {{ 'ee.fund.referenceNo' | lang }} {{ item.refNo }}
    \n
    \n
    {{ 'ee.fund.createDate' | lang }}
    \n
    {{ item.createDate | ssmsDate }}
    \n
    \n
    \n
    {{ 'ee.fund.effectiveDate' | lang }}
    \n
    {{ item.effectiveDate | ssmsDate }}
    \n
    \n
    \n
    {{ 'ee.fund.originalRequestSubmissionDateAndTime' | lang }}
    \n
    {{ item.originalRequestedSubmissionDateAndTime | ssmsDate }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    {{ 'ee.fund.activityType' | lang }}
    \n
    {{ item.activityType }}
    \n
    \n\n
    \n
    {{ 'ee.fund.subActivityType' | lang }}
    \n
    {{ item.subActivityType }}
    \n
    \n\n
    \n
    {{ 'ee.fund.subAccountType' | lang }}
    \n
    {{ item.subAccountType }}
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    Fund UnitFund Amount
    {{ fundBaseInfoItem.fundType }}{{ fundBaseInfoItem.fundUnit | number : '1.2-2' }}\n {{ fundBaseInfoItem.fundAmount | number : '1.2-2' }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n","import { PolicyDetails } from './../employee';\nimport { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { EmployeeService } from '../employee.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'app-policy-detail',\n templateUrl: './policy-detail.component.html',\n styleUrls: ['./policy-detail.component.scss'],\n})\nexport class PolicyDetailComponent implements OnInit, OnChanges {\n @Input() id = '';\n\n isLoading = false;\n data: PolicyDetails = {};\n\n constructor(public service: EmployeeService, private route: ActivatedRoute, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n this.getData();\n }\n }\n\n getData() {\n if (!this.id) return;\n this.isLoading = true;\n this.service\n .getTabPolicyDetails(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.data = res.data;\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getSubChannel(text?: string) {\n switch (text) {\n case 'WEB_PORTAL':\n return 'Web Portal';\n case 'MOBILE_APP':\n return 'Mobile App';\n case 'PAPER_FORM':\n return 'Paper form';\n case 'THIRD_PARTY_PORTAL':\n return 'Third Party Portal';\n case 'BATCH':\n return 'Batch';\n case 'KIOSK':\n return 'Kiosk';\n case 'CONTACT_CENTER':\n return 'Contact Center';\n case 'MPFA_PORTAL':\n return 'MPFA Portal';\n case 'TRUSTEE_PORTAL':\n return 'Trustee Portal';\n default:\n return text;\n }\n }\n\n getSourceOfFund(text?: string) {\n switch (text) {\n case 'SALARY':\n return 'Salary';\n case 'PERSON_SAVE':\n return 'Personal savings';\n case 'INHERITANCE':\n return 'Inheritance';\n case 'SALE_OF_PROPERTY':\n return 'Sale of property';\n case 'INV_RETURN_MATURED':\n return 'Investment return / Investment matured';\n case 'OTHERS':\n return 'Others';\n default:\n return text;\n }\n }\n}\n","
    \n
    \n {{ 'er.profile.general-information' | lang }}\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n {{ 'er.profile.enrolment-info' | lang }}\n
    \n
    \n
    \n
    \n\n \n \n {{ data.enrolmentReferenceNo }}\n \n \n\n \n \n \n \n \n \n \n \n
    \n\n\n \n \n \n \n \n \n \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { PolicyTermination, TerminationReasonE, TerminationStatusE, terminationReasonMapObj, terminationStatusMapObj, TransferReference } from '../employee';\nimport { EmployeeService } from '../employee.service';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-policy-termination',\n templateUrl: './policy-termination.component.html',\n styleUrls: ['./policy-termination.component.scss'],\n})\nexport class PolicyTerminationComponent implements OnInit, OnChanges {\n @Input() id = '';\n\n terminationReferenceNo = '';\n terminationStatus?: TerminationStatusE;\n\n TerminationStatusE = TerminationStatusE;\n\n options: TransferReference[] = [];\n\n foods: any[] = [\n { value: 'steak-0', viewValue: 'Steak' },\n { value: 'pizza-1', viewValue: 'Pizza' },\n { value: 'tacos-2', viewValue: 'Tacos' },\n ];\n\n detailData: PolicyTermination = {};\n\n isLoading = false;\n\n constructor(public service: EmployeeService, private toastAlert: ToastAlertService, public router: Router) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n this.getList();\n }\n }\n\n ngOnInit(): void {}\n\n selectChange(value: any) {\n console.log('selectChange:', value);\n }\n\n onSelectChange(val: any) {\n console.log('onSelectChange:', val);\n if (!val) return;\n this.terminationReferenceNo = val.value;\n this.getDetail();\n }\n\n getList() {\n this.isLoading = true;\n this.service\n .getterminationNoList(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.options = res.data;\n // const referenceList = res.data.withdrawalReferenceList || [];\n // this.dropdownConfig.options = referenceList.map(item => {\n // return {\n // label: `${item.withdrawalReferenceNo}`,\n // value: item.withdrawalReferenceNo,\n // };\n // });\n // this.dropdownConfig = { ...this.dropdownConfig };\n } else {\n // this.toastError(res.message);\n }\n });\n }\n\n getDetail() {\n this.isLoading = true;\n this.service\n .getterminationDetails(this.terminationReferenceNo, this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.detailData = res.data;\n // const referenceList = res.data.withdrawalReferenceList || [];\n // this.dropdownConfig.options = referenceList.map(item => {\n // return {\n // label: `${item.withdrawalReferenceNo}`,\n // value: item.withdrawalReferenceNo,\n // };\n // });\n // this.dropdownConfig = { ...this.dropdownConfig };\n } else {\n // this.toastError(res.message);\n }\n });\n }\n\n terminationReasonRender(type: TerminationReasonE) {\n return terminationReasonMapObj[type] || '';\n }\n\n terminationStatusRender(type: TerminationStatusE) {\n return terminationStatusMapObj[type] || '';\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n jumpToWorkflow(item: PolicyTermination) {\n console.log(item);\n this.router.navigate([\n '/employee/related-policy-detail',\n {\n // todo, policy id\n id: 'MPF-EE-1337203-4681',\n // todo, ee md5\n md5: '6ffe054fcb13eb502e616ce76a735d95',\n workflowReferenceNo: item.wfRefNo,\n tab: 'empfWorkflow',\n },\n ]);\n }\n}\n","
    \n
    \n \n
    \n
    \n\n
    \n
    \n Termination Information\n
    \n
    \n\n
    \n
    \n
    \n \n \n \n
    {{ terminationReferenceNo }}
    \n
    \n \n
    \n
    {{ item.refNo }}
    \n
    {{ terminationStatusRender | fn : item.statusCd }}
    \n
    \n
    \n \n
    \n
    {{ 'termination.no.des' | lang }}  
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Termination Reference No.\n
    \n
    \n \n {{ detailData.refNo }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n {{ detailData.wfRefNo }}\n \n \n \n \n \n \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n LSP/SP\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n Payment Information\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    To EE
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n Bank Information\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    To ER
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n Bank Information\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { EmployeeService } from '../employee.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport {\n FundTransactionFormTypeE,\n PmtransferOptionTypeE,\n PolicyTransferDetails,\n PolicyTransferStatusCodeE,\n PptransferOptionTypeE,\n ReplyTypeE,\n SubAccountTypeE,\n SubmissionTypeE,\n employeeStatusMapObj,\n fundTransactionFormTypeMapObj,\n pmtransferOptionTypeMapObj,\n policyTransferStastusCodeMapObj,\n pptransferOptionTypeMapObj,\n reasonMapObj,\n replyTypeMapObj,\n subAccountTypeMapObj,\n submissionTypeMapObj,\n} from '../employee';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'app-policy-transfer-details',\n templateUrl: './policy-transfer-details.component.html',\n styleUrls: ['./policy-transfer-details.component.scss'],\n})\nexport class PolicyTransferDetailsComponent implements OnInit {\n headerButton: AdminHeaderConfig = {\n title: 'ee.profile.detail.plus.title',\n backButton: {\n text: 'Member Profile Overview',\n url: '#',\n method: this.goBack.bind(this),\n },\n };\n transferReferenceNo = '';\n\n id = '';\n\n md5 = '';\n\n detailData: PolicyTransferDetails = {};\n\n employeeStatusMapObj = employeeStatusMapObj;\n\n dropdownConfig: CdsDropdownConfig = {\n label: 'Transfer Reference No.',\n options: [],\n };\n\n isLoading = false;\n\n bankInformationTableData: PolicyTransferDetails[] = [];\n\n rejectReasonTableData: string[] = [];\n\n displayedColumns = [\n 'submissionType',\n 'dateOfTransfer',\n 'originalRequestedSubmissionDate',\n 'subAccountType',\n 'intraGroupTransactionFlag',\n 'completeDocumentReceiptDate',\n 'transferLastFollowUpDate',\n ];\n\n rejectReasondisplayedColumns = ['rejectionReason'];\n\n constructor(\n private layoutHeaderService: LayoutHeaderService,\n public service: EmployeeService,\n private route: ActivatedRoute,\n private router: Router,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.transferReferenceNo = this.route.snapshot.queryParams['transferReferenceNo'];\n this.id = this.route.snapshot.queryParams['id'];\n this.md5 = this.route.snapshot.queryParams['md5'];\n // this.getRelatedPolicies();\n // this.getDetail();\n }\n\n onSelectChange(val: string) {\n if (!val) return;\n this.transferReferenceNo = val;\n this.getDetail();\n }\n\n goBack() {\n this.router.navigate(['/employee/related-policy-detail'], {\n queryParams: { id: this.id, md5: this.md5 },\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getDetail() {\n this.isLoading = true;\n this.service\n .getTransferDetails(this.transferReferenceNo, this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.detailData = res.data;\n const referenceList = res.data.transferReferenceList || [];\n this.bankInformationTableData = this.getBankInformationTableData();\n this.dropdownConfig.options = referenceList.map(item => {\n return {\n label: `${item.transferReferenceNo}`,\n value: item.transferReferenceNo,\n };\n });\n this.dropdownConfig = { ...this.dropdownConfig };\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n getBankInformationTableData() {\n return [\n {\n submissionType: this.detailData.submissionType,\n dateOfTransfer: this.detailData.dateOfTransfer,\n originalRequestedSubmissionDate: this.detailData.originalRequestedSubmissionDate,\n subAccountType: this.detailData.subAccountType,\n intraGroupTransactionFlag: this.detailData.intraGroupTransactionFlag,\n completeDocumentReceiptDate: this.detailData.completeDocumentReceiptDate,\n transferLastFollowUpDate: this.detailData.transferLastFollowUpDate,\n },\n ];\n }\n\n getRejectReasonTableData() {\n if (!this.detailData.rejectionReason) return [];\n return this.detailData.rejectionReason.map(item => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return { rejectReason: `\"${item}\"-${(reasonMapObj as any)[item]}` };\n });\n }\n\n statusCodeRender(type: PolicyTransferStatusCodeE) {\n return policyTransferStastusCodeMapObj[type] || '';\n }\n\n fundTransactionFormTypeRender(type: FundTransactionFormTypeE) {\n return fundTransactionFormTypeMapObj[type] || '';\n }\n\n pmTransferOptionTypeRender(type: PmtransferOptionTypeE) {\n return pmtransferOptionTypeMapObj[type] || '';\n }\n\n ppTransferOptionTypeRender(type: PptransferOptionTypeE) {\n return pptransferOptionTypeMapObj[type] || '';\n }\n\n submissionTypeRender(type: SubmissionTypeE) {\n return submissionTypeMapObj[type] || '';\n }\n\n subAccountTypeRender(type: SubAccountTypeE) {\n return subAccountTypeMapObj[type] || '';\n }\n\n replyTypeRender(type: ReplyTypeE) {\n return replyTypeMapObj[type] || '';\n }\n}\n","\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    {{ detailData.lastName }}{{ detailData.firstName }}
    \n
    {{ detailData.lastZhName }}{{ detailData.firstZhName }}
    \n
    \n
    \n
    \n
    \n {{ service.getStatus | fn : detailData.status : employeeStatusMapObj }}\n
    \n
    \n
    \n Member Account Code:\n \n {{ detailData.memberAccountType }}: \n {{ detailData.memberAccountCode }}\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Group Reference No.\n
    \n
    \n \n {{ detailData.groupReferenceNo }}\n \n
    \n
    \n
    \n
    \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 Information\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Transfer-In\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n {{ 'payroll.basic-information' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n \n \n Submission Type \n {{ submissionTypeRender | fn : element.submissionType }}\n \n\n \n \n Date of Transfer \n {{ element.dateOfTransfer | ssmsDate }}\n \n\n \n \n Original Requested Submission Date and Time \n {{ element.originalRequestedSubmissionDate | ssmsDate : 'dd/MM/yyyy, hh:mm:ss' }}\n \n\n \n \n Sub-Account Type \n {{ subAccountTypeRender | fn : element.subAccountType }}\n \n\n \n \n Intra- group Transaction Flag \n \n \n \n \n\n \n \n Complete Document Receipt Date \n {{ element.completeDocumentReceiptDate | ssmsDate }}\n \n\n \n \n Transfer Last Follow-up Date \n {{ element.transferLastFollowUpDate | ssmsDate }}\n \n\n \n \n \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n {{ 'ee.transfer-in-remarks' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n
    \n\n
    \n
    \n {{ 'ee.rejection-information' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n {{ 'ee.rejection-reason' | lang }}\n {{ element.rejectionReason || ' ' }}\n \n\n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { ColumnSort } from '../../employer/employer';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { Router } from '@angular/router';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { Sort } from 'src/app/components/table/table-expand';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CurrencyE, ErSearchRequest } from '../../employer/employer';\nimport { EmployerService } from '../../employer/employer.service';\nimport { DateTime } from 'luxon';\nimport { EmployeeService } from '../employee.service';\nimport {\n PolicyTransfer,\n PolicyTransferRequest,\n fundTransactionFormTypeOptions,\n policyTransferStastusCodeMapObj,\n policyTransferStastusCodeOptions,\n transferActivityTypeOptions,\n} from '../employee';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\n\n@Component({\n selector: 'app-policy-transfer',\n templateUrl: './policy-transfer.component.html',\n styleUrls: ['./policy-transfer.component.scss'],\n})\nexport class PolicyTransferComponent implements OnInit, OnChanges {\n @Input() id = '';\n\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n public Sort = Sort;\n form: FormGroup = new FormGroup({});\n formReady = false;\n showTable = true;\n\n showDatePicker = true;\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n get transferReferenceNo() {\n return this.form?.get('transferReferenceNo');\n }\n\n get groupReferenceNo() {\n return this.form?.get('groupReferenceNo');\n }\n\n get statusCode() {\n return this.form?.get('statusCode');\n }\n\n get activityType() {\n return this.form?.get('activityType');\n }\n\n get fundTransactionFormType() {\n return this.form?.get('fundTransactionFormType');\n }\n\n get dateOfTransfer() {\n return this.form?.get('dateOfTransfer');\n }\n\n get originalRequestedSubmissionDate() {\n return this.form?.get('originalRequestedSubmissionDate');\n }\n\n tempSeardhParams: ErSearchRequest = {\n page: 1,\n size: 10,\n };\n\n policyTransferStastusCodeMapObj = policyTransferStastusCodeMapObj;\n\n constructor(private service: EmployeeService, private router: Router, private toastAlert: ToastAlertService, public employerService: EmployerService) {}\n\n statusCodeConfig: CdsDropdownConfig = {\n label: 'Status Code',\n placeholder: 'Select Status Code',\n options: policyTransferStastusCodeOptions,\n };\n\n activityTypeConfig: CdsDropdownConfig = {\n label: 'Activity Type',\n placeholder: 'Select Activity Type',\n options: transferActivityTypeOptions,\n };\n\n fundTransactionFormTypeConfig: CdsDropdownConfig = {\n label: 'Fund Transaction Form Type',\n placeholder: 'Select Fund Transaction Form Type',\n options: fundTransactionFormTypeOptions,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n isStaff = false;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n totalElements = 0;\n\n dataSource: PolicyTransfer[] = [];\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n columnSort: ColumnSort = {\n key: 'refNo',\n value: SortMode.DOWN,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'transferReferenceNo',\n title: 'Transfer Reference NO.',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'groupReferenceNo',\n title: 'Group Reference No.',\n },\n {\n key: 'statusCode',\n title: 'Status Code',\n },\n {\n key: 'activityType',\n title: 'Activity Type',\n },\n {\n key: 'fundTransactionFormType',\n title: 'Fund Transaction Form Type',\n },\n {\n key: 'dateOfTransfer',\n title: 'Date of Transfer',\n },\n {\n key: 'originalRequestedSubmissionDate',\n title: 'Original Requested Submission Date',\n },\n ];\n\n isLoading = false;\n\n noCheckConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: false,\n };\n\n checkedConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n document.documentElement.scrollTop = 0;\n this.isLoading = true;\n this.initForm();\n this.loadTable();\n }\n }\n\n ngOnInit(): void {}\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup({\n transferReferenceNo: new FormControl(''),\n groupReferenceNo: new FormControl(''),\n statusCode: new FormControl(''),\n activityType: new FormControl(''),\n fundTransactionFormType: new FormControl(''),\n dateOfTransfer: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n originalRequestedSubmissionDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n });\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n search() {\n if (this.searchButtonDisabled) return;\n this.resetButtonDisabled = false;\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.loadTable();\n }\n\n goToDetail(transferReferenceNo?: string) {\n this.router.navigate(['/employee/policy-transfer-detail'], {\n queryParams: {\n transferReferenceNo,\n id: this.id,\n },\n });\n }\n\n reset() {\n if (this.resetButtonDisabled) return;\n this.resetButtonDisabled = true;\n this.initForm();\n // reloadTable to reset sort\n this.showTable = false;\n this.showDatePicker = false;\n setTimeout(() => {\n this.showTable = true;\n this.showDatePicker = true;\n this.tempSeardhParams = { page: 1, size: 10 };\n this.loadTable();\n });\n }\n\n loadTable() {\n this.isLoading = true;\n\n const params: ErSearchRequest = this.getRequestParams();\n\n this.service\n .getPolicyTransferList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.totalElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTempSearchParams(sort = '') {\n const params: PolicyTransferRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n if (sort) {\n params.sort = sort;\n }\n return params;\n }\n\n getRequestParams() {\n const params: PolicyTransferRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n id: this.id,\n };\n params.sort = `${this.columnSort.key},${this.columnSort.value}`;\n params.dateOfTransfer = params.dateOfTransfer ? this.dateTrans(params.dateOfTransfer) : '';\n params.originalRequestedSubmissionDate = params.originalRequestedSubmissionDate ? this.dateTrans(params.originalRequestedSubmissionDate) : '';\n return params;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n amountCUrrency(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const currencyControl = control.get('aggregateInvestedAmountCurrency');\n const amountFromControl = control.get('aggregateInvestedAmountFrom');\n const amountToControl = control.get('aggregateInvestedAmountTo');\n const currency = currencyControl?.value;\n const amountFrom = amountFromControl?.value;\n const amountTo = amountToControl?.value;\n\n const fromErrors = amountFromControl?.errors ? deepCopy(amountFromControl?.errors) : {};\n const toErrors = amountToControl?.errors ? deepCopy(amountToControl?.errors) : {};\n\n if (currency !== CurrencyE.HKD && amountFrom === '' && amountTo === '') {\n fromErrors['required'] = true;\n toErrors['required'] = true;\n\n amountFromControl?.markAsTouched();\n amountToControl?.markAsTouched();\n\n amountFromControl?.setErrors(fromErrors);\n amountToControl?.setErrors(toErrors);\n\n return null;\n }\n\n delete fromErrors['required'];\n delete toErrors['required'];\n amountFromControl?.setErrors(Object.keys(fromErrors).length === 0 ? null : fromErrors);\n amountToControl?.setErrors(Object.keys(toErrors).length === 0 ? null : toErrors);\n\n return null;\n };\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort =\n event.column && event.column.sort !== SortMode.DEFAULT\n ? {\n key: event.column?.key === 'transferReferenceNo' ? 'refNo' : event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'refNo',\n value: SortMode.UP,\n };\n this.loadTable();\n }\n\n dateTrans(date: string) {\n if (date) {\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toFormat('yyyy-MM-dd');\n }\n\n return date;\n }\n\n originalDateRender(date: string) {\n if (!date || !DateTime.fromISO(date).isValid) return '';\n return DateTime.fromISO(date).toFormat('dd/MM/yyyy, hh:mm:ss');\n }\n}\n","
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n \n\n
    \n Max length is 15\n\n {{ transferReferenceNo?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 15\n\n {{ groupReferenceNo?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n \n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n\n
    \n \n \n \n\n \n {{ 'create.dateError' | lang }}\n
    \n
    \n\n
    \n \n \n
    \n\n\n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n\n
    \n
    \n \n \n \n \n {{ element['transferReferenceNo'] }}\n \n \n \n\n \n {{ element['groupReferenceNo'] }}\n \n\n \n \n \n\n \n {{ employerService.optionLabelRender | fn : element['activityType'] : activityTypeConfig.options }}\n \n\n \n {{ employerService.optionLabelRender | fn : element['fundTransactionFormType'] : fundTransactionFormTypeConfig.options }}\n \n\n \n {{ element['dateOfTransfer'] | ssmsDate }}\n \n\n \n {{ originalDateRender | fn : element['originalRequestedSubmissionDate'] }}\n \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { EmployeeService } from '../employee.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport {\n ClaimTypeReasonE,\n FundTransactionFormTypeE,\n PmtransferOptionTypeE,\n PolicyTransferDetails,\n PolicyTransferStatusCodeE,\n PolicyWithdrawalDetails,\n PptransferOptionTypeE,\n ReplyTypeE,\n SubAccountTypeE,\n SubmissionChannelE,\n SubmissionTypeE,\n WithdrawalPayee,\n claimTypeReasonMapObj,\n employeeStatusMapObj,\n fundTransactionFormTypeMapObj,\n pmtransferOptionTypeMapObj,\n policyTransferStastusCodeMapObj,\n policyWithdrawalStatusCodeMapObj,\n pptransferOptionTypeMapObj,\n replyTypeMapObj,\n subAccountTypeMapObj,\n submissionChannelMapObj,\n submissionTypeMapObj,\n} from '../employee';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { finalize } from 'rxjs';\nimport { ContactPersion, RelatedPersonTypeE } from '../../employer/employer';\n\n@Component({\n selector: 'app-policy-withdrawal-details',\n templateUrl: './policy-withdrawal-details.component.html',\n styleUrls: ['./policy-withdrawal-details.component.scss'],\n})\nexport class PolicyWithdrawalDetailsComponent implements OnInit {\n headerButton: AdminHeaderConfig = {\n title: 'ee.profile.detail.plus.title',\n backButton: {\n text: 'Member Profile Overview',\n url: '#',\n method: this.goBack.bind(this),\n },\n };\n withdrawalReferenceNo = '';\n\n id = '';\n\n md5 = '';\n\n detailData: PolicyWithdrawalDetails = {};\n\n employeeStatusMapObj = employeeStatusMapObj;\n\n policyWithdrawalStatusCodeMapObj = policyWithdrawalStatusCodeMapObj;\n\n dropdownConfig: CdsDropdownConfig = {\n label: 'Withdrawal Reference No.',\n options: [],\n };\n\n isLoading = false;\n\n bankInformationTableData: PolicyTransferDetails[] = [];\n\n rejectReasonTableData: string[] = [];\n\n rejectReasondisplayedColumns = ['rejectionReason'];\n\n constructor(\n private layoutHeaderService: LayoutHeaderService,\n public service: EmployeeService,\n private route: ActivatedRoute,\n private router: Router,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.withdrawalReferenceNo = this.route.snapshot.queryParams['withdrawalReferenceNo'];\n this.id = this.route.snapshot.queryParams['id'];\n this.md5 = this.route.snapshot.queryParams['md5'];\n // this.getRelatedPolicies();\n // this.getDetail();\n }\n\n onSelectChange(val: string) {\n if (!val) return;\n this.withdrawalReferenceNo = val;\n this.getDetail();\n }\n\n goBack() {\n this.router.navigate(['/employee/related-policy-detail'], {\n queryParams: { id: this.id, md5: this.md5 },\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getDetail() {\n this.isLoading = true;\n this.service\n .getWithdrawalDetails(this.withdrawalReferenceNo, this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.detailData = res.data;\n const referenceList = res.data.withdrawalReferenceList || [];\n this.dropdownConfig.options = referenceList.map(item => {\n return {\n label: `${item.withdrawalReferenceNo}`,\n value: item.withdrawalReferenceNo,\n };\n });\n this.dropdownConfig = { ...this.dropdownConfig };\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n statusCodeRender(type: PolicyTransferStatusCodeE) {\n return policyTransferStastusCodeMapObj[type] || '';\n }\n\n fundTransactionFormTypeRender(type: FundTransactionFormTypeE) {\n return fundTransactionFormTypeMapObj[type] || '';\n }\n\n pmTransferOptionTypeRender(type: PmtransferOptionTypeE) {\n return pmtransferOptionTypeMapObj[type] || '';\n }\n\n ppTransferOptionTypeRender(type: PptransferOptionTypeE) {\n return pptransferOptionTypeMapObj[type] || '';\n }\n\n submissionTypeRender(type: SubmissionTypeE) {\n return submissionTypeMapObj[type] || '';\n }\n\n subAccountTypeRender(type: SubAccountTypeE) {\n return subAccountTypeMapObj[type] || '';\n }\n\n replyTypeRender(type: ReplyTypeE) {\n return replyTypeMapObj[type] || '';\n }\n\n nameRender(item: WithdrawalPayee) {\n return `Payment Out Reference No. ${item.paymentOutReferenceNo || ''}`;\n }\n\n submissionChannelRender(type: SubmissionChannelE) {\n return submissionChannelMapObj[type] || '';\n }\n\n claimTypeReasonRender(type: ClaimTypeReasonE) {\n return claimTypeReasonMapObj[type] || '';\n }\n\n getOroOrTibContactPersonList(list: ContactPersion[]) {\n return list.filter(item => {\n return (\n [\n RelatedPersonTypeE.ORO,\n RelatedPersonTypeE.TIB,\n RelatedPersonTypeE.PRIMARY_TIB,\n RelatedPersonTypeE.SECOND_ORO,\n RelatedPersonTypeE.SECOND_TIB,\n RelatedPersonTypeE.SECOND_ORO,\n ].indexOf(item.contactPersonType) > -1\n );\n });\n }\n\n getClaimantPersonList(list: ContactPersion[]) {\n return list.filter(item => {\n return [RelatedPersonTypeE.CLAIMANT].indexOf(item.contactPersonType) > -1;\n });\n }\n}\n","\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    {{ detailData.lastName }}{{ detailData.firstName }}
    \n
    {{ detailData.lastZhName }}{{ detailData.firstZhName }}
    \n
    \n
    \n
    \n
    \n {{ service.getStatus | fn : detailData.status : employeeStatusMapObj }}\n
    \n
    \n
    \n Member Account Code:\n \n {{ detailData.memberAccountType }}: \n {{ detailData.memberAccountCode }}\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Group Reference No.\n
    \n
    \n \n {{ detailData.groupReferenceNo }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n Withdrawal Information\n
    \n
    \n\n
    \n
    \n
    \n Basic Information\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n Standing Instruction\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n
    \n\n
    \n
    \n
    \n Permanent Departure Claim\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n Bankruptcy (ORO/ TIB)\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n ORO/ TIB\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n Claimant\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n Withdrawal Payee\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n\n \n
    \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { ColumnSort } from '../../employer/employer';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { Router } from '@angular/router';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { Sort } from 'src/app/components/table/table-expand';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CurrencyE, ErSearchRequest } from '../../employer/employer';\nimport { EmployerService } from '../../employer/employer.service';\nimport { DateTime } from 'luxon';\nimport { EmployeeService } from '../employee.service';\nimport {\n ClaimTypeReasonE,\n PolicyTransfer,\n PolicyTransferRequest,\n PolicyWithdrawalRequest,\n claimTypeReasonMapObj,\n claimTypeReasonOptions,\n paymentOutStatusOptions,\n policyWithdrawalStatusCodeMapObj,\n policyWithdrawalStatusCodeOptions,\n} from '../employee';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\n\n@Component({\n selector: 'app-policy-withdrawal',\n templateUrl: './policy-withdrawal.component.html',\n styleUrls: ['./policy-withdrawal.component.scss'],\n})\nexport class PolicyWithDrawalComponent implements OnInit, OnChanges {\n @Input() id = '';\n\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n public Sort = Sort;\n form: FormGroup = new FormGroup({});\n formReady = false;\n showTable = true;\n\n showDatePicker = true;\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n get withdrawalReferenceNo() {\n return this.form?.get('withdrawalReferenceNo');\n }\n\n get groupReferenceNo() {\n return this.form?.get('groupReferenceNo');\n }\n\n get paymentOutReferenceNo() {\n return this.form?.get('paymentOutReferenceNo');\n }\n\n get originalSubmissionDate() {\n return this.form?.get('originalSubmissionDate');\n }\n\n get withdrawalStatus() {\n return this.form?.get('withdrawalStatus');\n }\n\n get paymentOutStatus() {\n return this.form?.get('paymentOutStatus');\n }\n\n get claimTypeReason() {\n return this.form?.get('claimTypeReason');\n }\n\n get completedReceiptDateOfClaim() {\n return this.form?.get('completedReceiptDateOfClaim');\n }\n\n tempSeardhParams: ErSearchRequest = {\n page: 1,\n size: 10,\n };\n\n policyWithdrawalStatusCodeMapObj = policyWithdrawalStatusCodeMapObj;\n\n paymentOutStatusOptions = paymentOutStatusOptions;\n\n constructor(private service: EmployeeService, private router: Router, private toastAlert: ToastAlertService, public employerService: EmployerService) {}\n\n statusCodeConfig: CdsDropdownConfig = {\n label: 'Withdrawal Status',\n placeholder: 'Select Withdrawal Status',\n options: policyWithdrawalStatusCodeOptions,\n };\n\n paymentOutStatusConfig: CdsDropdownConfig = {\n label: 'Payment Out Status',\n placeholder: 'Select Payment Out Status',\n options: paymentOutStatusOptions,\n };\n\n claimTypeReasonConfig: CdsDropdownConfig = {\n label: 'Completed Receipt Date of Claim',\n placeholder: 'Select Completed Receipt Date of Claim',\n options: claimTypeReasonOptions,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n isStaff = false;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n totalElements = 0;\n\n dataSource: PolicyTransfer[] = [];\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n columnSort: ColumnSort = {\n key: 'refNo',\n value: SortMode.UP,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'withdrawalReferenceNo',\n title: 'Withdrawal Reference No.',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'groupReferenceNo',\n title: 'Group Reference No.',\n },\n {\n key: 'paymentOutReferenceNo',\n title: 'Payment Out Reference No.',\n },\n {\n key: 'claimTypeReason',\n title: 'Claim Type Reason',\n },\n {\n key: 'withdrawalStatus',\n title: 'Withdrawal Status',\n },\n {\n key: 'paymentOutStatus',\n title: 'Payment Out Status',\n },\n {\n key: 'originalSubmissionDate',\n title: 'Original Submission Date',\n },\n {\n key: 'completedReceiptDateOfClaim',\n title: 'Completed Receipt Date of Claim',\n },\n ];\n\n isLoading = false;\n\n noCheckConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: false,\n };\n\n checkedConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue !== undefined && changes['id'].currentValue !== changes['id'].previousValue) {\n document.documentElement.scrollTop = 0;\n this.isLoading = true;\n this.initForm();\n this.loadTable();\n }\n }\n\n ngOnInit(): void {}\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup({\n withdrawalReferenceNo: new FormControl(''),\n groupReferenceNo: new FormControl(''),\n paymentOutReferenceNo: new FormControl(''),\n originalSubmissionDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n withdrawalStatus: new FormControl(''),\n paymentOutStatus: new FormControl(''),\n claimTypeReason: new FormControl(''),\n completedReceiptDateOfClaim: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n });\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n search() {\n if (this.searchButtonDisabled) return;\n this.resetButtonDisabled = false;\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.loadTable();\n }\n\n goToDetail(withdrawalReferenceNo?: string) {\n this.router.navigate(['/employee/policy-withdrawal-detail'], {\n queryParams: {\n withdrawalReferenceNo,\n id: this.id,\n },\n });\n }\n\n reset() {\n if (this.resetButtonDisabled) return;\n this.resetButtonDisabled = true;\n this.initForm();\n // reloadTable to reset sort\n this.showTable = false;\n this.showDatePicker = false;\n setTimeout(() => {\n this.showTable = true;\n this.showDatePicker = true;\n this.tempSeardhParams = { page: 1, size: 10 };\n this.loadTable();\n });\n }\n\n loadTable() {\n this.isLoading = true;\n\n const params: ErSearchRequest = this.getRequestParams();\n\n this.service\n .getPolicyWithdrawalList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.totalElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTempSearchParams(sort = '') {\n const params: PolicyTransferRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n if (sort) {\n params.sort = sort;\n }\n return params;\n }\n\n getRequestParams() {\n const params: PolicyWithdrawalRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n id: this.id,\n };\n params.sort = `${this.columnSort.key},${this.columnSort.value}`;\n params.originalSubmissionDate = params.originalSubmissionDate ? this.dateTrans(params.originalSubmissionDate) : '';\n params.completedReceiptDateOfClaim = params.completedReceiptDateOfClaim ? this.dateTrans(params.completedReceiptDateOfClaim) : '';\n return params;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n amountCUrrency(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const currencyControl = control.get('aggregateInvestedAmountCurrency');\n const amountFromControl = control.get('aggregateInvestedAmountFrom');\n const amountToControl = control.get('aggregateInvestedAmountTo');\n const currency = currencyControl?.value;\n const amountFrom = amountFromControl?.value;\n const amountTo = amountToControl?.value;\n\n const fromErrors = amountFromControl?.errors ? deepCopy(amountFromControl?.errors) : {};\n const toErrors = amountToControl?.errors ? deepCopy(amountToControl?.errors) : {};\n\n if (currency !== CurrencyE.HKD && amountFrom === '' && amountTo === '') {\n fromErrors['required'] = true;\n toErrors['required'] = true;\n\n amountFromControl?.markAsTouched();\n amountToControl?.markAsTouched();\n\n amountFromControl?.setErrors(fromErrors);\n amountToControl?.setErrors(toErrors);\n\n return null;\n }\n\n delete fromErrors['required'];\n delete toErrors['required'];\n amountFromControl?.setErrors(Object.keys(fromErrors).length === 0 ? null : fromErrors);\n amountToControl?.setErrors(Object.keys(toErrors).length === 0 ? null : toErrors);\n\n return null;\n };\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort =\n event.column && event.column.sort !== SortMode.DEFAULT\n ? {\n key: event.column?.key === 'withdrawalReferenceNo' ? 'refNo' : event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'refNo',\n value: SortMode.UP,\n };\n this.loadTable();\n }\n\n dateTrans(date: string) {\n if (date) {\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toFormat('yyyy-MM-dd');\n }\n\n return date;\n }\n\n claimTypeReasonRender(type: ClaimTypeReasonE) {\n return claimTypeReasonMapObj[type] || '';\n }\n}\n","
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n \n\n
    \n Max length is 15\n\n {{ withdrawalReferenceNo?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 15\n\n {{ groupReferenceNo?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 15\n\n {{ paymentOutReferenceNo?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n\n
    \n
    \n \n \n \n \n {{ element['withdrawalReferenceNo'] }}\n \n \n \n\n \n {{ element['groupReferenceNo'] }}\n \n\n \n {{ claimTypeReasonRender | fn : element['claimTypeReason'] }}\n \n\n \n \n \n\n \n\n \n\n \n {{ element['originalSubmissionDate'] | ssmsDate }}\n \n\n \n {{ element['completedReceiptDateOfClaim'] | ssmsDate }}\n \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport {\n AccountTypeE,\n ContactInfo,\n employeeStatusMapObj,\n EmployeeTypeE,\n EmployeeTypeMap,\n GenderE,\n GenderMap,\n RelatedPolicy,\n SchemeCodeE,\n SchemeCodeMap,\n} from '../employee';\nimport { EmployeeService } from '../employee.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { pageToTop } from 'src/app/utils/utils';\nimport { BusinessNatureE, businessNatureMapObj } from '../../employer/employer';\n\n@Component({\n selector: 'app-related-policy-detail',\n templateUrl: './related-policy-detail.component.html',\n styleUrls: ['./related-policy-detail.component.scss'],\n})\nexport class RelatedPolicyDetailComponent implements OnInit {\n headerButton: AdminHeaderConfig = {\n title: 'ee.profile.detail.plus.title',\n backButton: {\n text: 'Member Profile Overview',\n url: '#',\n method: this.goBack.bind(this),\n },\n };\n\n headerButtonForAgent: AdminHeaderConfig = {\n title: 'ee.profile.detail.plus.title',\n backButton: {\n text: 'Member Enquiry Information Summary',\n url: '#',\n method: this.goBackForAgent.bind(this),\n },\n };\n\n id = '';\n\n md5 = '';\n\n empfId = '';\n\n isStaff = false;\n\n permissionChecked = false;\n\n typeChecked = false;\n\n withMa = false;\n\n detailData: RelatedPolicy = {\n md5: '',\n };\n\n employeeStatusMapObj = employeeStatusMapObj;\n\n dropdownConfig: CdsDropdownConfig = {\n label: 'Choose a policy',\n options: [],\n };\n\n isLoading = false;\n\n data: RelatedPolicy = {\n md5: '',\n };\n\n accountType?: AccountTypeE;\n\n AccountTypeE = AccountTypeE;\n\n tabIndex = 0;\n\n activedTabList: string[] = [];\n\n tabList: string[] = [];\n\n tabReload = true;\n\n constructor(\n private layoutHeaderService: LayoutHeaderService,\n public service: EmployeeService,\n private route: ActivatedRoute,\n private router: Router,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.id = this.route.snapshot.queryParams['id'];\n this.empfId = this.route.snapshot.queryParams['empfId'];\n this.permissionFilter();\n this.getDetail().then(id => {\n this.id = id;\n this.getRelatedPolicies();\n pageToTop();\n });\n\n // todo\n // this.changeTab();\n }\n\n getTablist() {\n if (this.isStaff) {\n return [\n 'policyDetails',\n ...this.tabExist([AccountTypeE.CA, AccountTypeE.SEP], 'employementInfo'),\n ...this.tabExist([AccountTypeE.PA, AccountTypeE.CA, AccountTypeE.TVC, AccountTypeE.FRC], 'agentInfo'),\n 'fundInfo',\n ...this.tabExist([AccountTypeE.CA, AccountTypeE.SEP], 'contributionRecords'),\n ...this.tabExist([AccountTypeE.CA, AccountTypeE.SEP], 'defaultContribution'),\n 'transfer',\n 'withDrawal',\n 'termination',\n 'empfWorkflow',\n ];\n } else {\n return ['fundInfo'];\n }\n }\n\n getGender(item: string | undefined) {\n switch (item) {\n case 'M':\n return 'Male';\n case 'F':\n return 'Female';\n case 'U':\n return 'Unisex';\n case 'O':\n return 'No Such Information';\n default:\n return item;\n }\n }\n\n onSelectChange(val: string) {\n if (!val) {\n return;\n }\n this.tabReload = false;\n\n setTimeout(() => {\n this.tabReload = true;\n this.tabIndex = 0;\n });\n\n this.activedTabList = [...this.activedTabList];\n\n this.id = val;\n this.getDetail();\n }\n\n getRelatedPolicies() {\n this.isLoading = true;\n if (!this.id) {\n this.id = '';\n }\n this.service\n .getRelatedPolicies(this.id, '')\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dropdownConfig.options = data.data.map(item => {\n return {\n label: `${item.memberAccountType}:${item.id}`,\n value: item.id,\n };\n });\n this.dropdownConfig = { ...this.dropdownConfig };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n goBack() {\n this.router.navigate(['/employee/profile'], {\n queryParams: { id: this.id },\n });\n }\n\n goBackForAgent() {\n this.router.navigate(['/employee/list']);\n }\n\n getDetail() {\n return new Promise(resolve => {\n this.isLoading = true;\n this.service\n .getPolicyBasicInfo(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.detailData = res.data;\n this.accountType = this.service.accountTypeTrans(res.data?.memberAccountType);\n this.typeChecked = true;\n\n this.tabList = this.getTablist();\n this.selectedTabIndexChange(this.tabIndex);\n if (res.data?.id) {\n resolve(res.data.id);\n }\n } else {\n this.toastError(res.message);\n }\n });\n });\n }\n\n updateDate(date?: string) {\n if (!date) {\n return '';\n }\n return moment(date).utcOffset(-8).format('h:mma DD MMM, YYYY');\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYEE).then(res => {\n this.isStaff = res;\n this.permissionChecked = true;\n\n this.layoutHeaderService.setHeaderButton(this.isStaff ? this.headerButton : this.headerButtonForAgent);\n });\n }\n\n gotoPool(commissionPoolId: string | undefined) {\n this.router.navigate(['/commission/pool-info'], {\n queryParams: { commissionPoolId },\n });\n }\n\n schemeCodeRender(type?: SchemeCodeE) {\n if (type === undefined) return '';\n return SchemeCodeMap.get(type) || type || '';\n }\n\n genderRender(type?: GenderE) {\n if (!type) return '';\n return GenderMap[type] || '';\n }\n\n employeeTypeRender(type?: EmployeeTypeE) {\n if (!type) return '';\n return EmployeeTypeMap[type] || '';\n }\n\n businessNatureRender(type?: BusinessNatureE) {\n if (!type) return '';\n return businessNatureMapObj[type] || '';\n }\n\n occupationJobPosition(data?: RelatedPolicy) {\n if (!data) return '';\n return [data?.occupation, data?.jobPosition].filter(item => !!item).join(',');\n }\n\n contactDataChange(data: ContactInfo) {\n if (data && data.memberAuthorization === 'Y') {\n this.withMa = true;\n } else {\n this.withMa = false;\n }\n }\n\n // TODO\n changeTab() {\n const tab = this.route.snapshot.queryParams['tab'] || '';\n const index = this.tabList.indexOf(tab);\n if (index > -1) {\n this.tabIndex = index;\n const urlTree = this.router.parseUrl(this.router.url);\n urlTree.queryParams['tab'] = '';\n\n this.router.navigateByUrl(urlTree);\n }\n }\n\n show(allowedList: AccountTypeE[], type: AccountTypeE) {\n return allowedList.includes(type);\n }\n\n tabExist(allowedList: AccountTypeE[], tab: string) {\n const ifAllow = allowedList.includes(this.accountType as AccountTypeE);\n if (ifAllow) {\n return [tab];\n }\n return [];\n }\n\n selectedTabIndexChange(value: number) {\n this.tabIndex = value;\n const tab = this.tabList[value];\n this.activedTabList.push(tab);\n this.activedTabList = [...this.activedTabList];\n console.log(this.tabIndex);\n }\n\n ifLoadTab(activedTabList: string[], tab: string) {\n if (activedTabList.includes(tab)) return true;\n return false;\n }\n\n selectChange() {\n const tab = this.tabList[this.tabIndex];\n this.activedTabList = [tab];\n }\n}\n","\n\n\n\n\n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n {{ 'payroll.basic-information' | lang }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n
    \n
    {{ 'er.profile.commission-information' | lang }}
    \n
    \n {{ 'er.profile.commission-pool-number' | lang }}\n {{ detailData.commissionPoolNumber }}\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \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, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { RelatedPolicy, employeeStatusMapObj } from '../employee';\nimport { EmployeeService } from '../employee.service';\n\n@Component({\n selector: 'app-related-policy',\n templateUrl: './related-policy.component.html',\n styleUrls: ['./related-policy.component.scss'],\n})\nexport class RelatedPolicyComponent implements OnInit {\n @Input() id = '';\n @Input() md5 = '';\n\n dataSource: RelatedPolicy[] = [];\n\n moreBtnCfg: CdsButtonConfig = BTN_CONFIG_TERTIARY;\n\n isLoading = false;\n\n employeeStatusMapObj = employeeStatusMapObj;\n\n constructor(public service: EmployeeService, private toastAlert: ToastAlertService, private router: Router) {}\n\n ngOnInit(): void {\n this.loadTable();\n }\n\n loadTable() {\n this.isLoading = true;\n if (!this.md5) {\n this.md5 = '';\n }\n if (!this.id) {\n this.id = '';\n }\n this.service\n .getRelatedPolicies(this.id, this.md5)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data || [];\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n goToDetail(id = '') {\n this.router.navigate(['/employee/related-policy-detail'], { queryParams: { id } });\n }\n}\n","
    \n
    {{ 'ee.profile.detail.plus.title' | lang }}
    \n
    \n\n \n
    \n \n \n \n \n
    \n
    \n
    \n
    +
    \n View More\n
    \n
    \n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { AddActivityComponent } from '../add-activity/add-activity.component';\nimport { Activity, ActivitySearchRequest, ActivitySearchRequestKey, activityTypeAllOptions, ActivityTypeE, I18N_KEY } from '../employer';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-activity-records',\n templateUrl: './activity-records.component.html',\n styleUrls: ['./activity-records.component.scss'],\n})\nexport class ActivityRecordsComponent implements OnInit {\n // @ViewChild('activityCode') activityCode!: NgModel;\n // @ViewChild('description') description!: NgModel;\n @ViewChild('createStartDate') createStartDate!: NgModel;\n @ViewChild('createEndDate') createEndDate!: NgModel;\n // @ViewChild('score') score!: NgModel;\n\n @ViewChild('elementDescription') elementDescription?: NgModel;\n @ViewChild('elementScore') elementScore?: NgModel;\n\n searchDTO: ActivitySearchRequest = {\n page: 0,\n size: 10,\n activityCode: '',\n description: '',\n createStartDate: '',\n createEndDate: '',\n score: '',\n activityType: ActivityTypeE.ALL,\n };\n\n searchParams: ActivitySearchRequest = deepCopy(this.searchDTO);\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n // disabled: true,\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n // disabled: true,\n };\n\n showDatePicker = true;\n\n isLoading = false;\n\n numberOfElements = 0;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n selectedActivityType: ActivityTypeE = ActivityTypeE.ALL;\n\n activityTypes: CdsOption[] = activityTypeAllOptions;\n\n displayedColumnsWithoutPermission = ['activityCode', 'description', 'score', 'createdAt'];\n\n displayedColumns = [...this.displayedColumnsWithoutPermission, 'action'];\n\n originDataSource: Activity[] = [];\n\n dataSource: Activity[] = [];\n\n descriptionTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: 'Input Activity Description',\n type: 'text',\n };\n\n scoreTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: 'Input Activity Score',\n type: 'number',\n };\n\n secondaryBtnCfg: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n I18N_KEY = I18N_KEY;\n\n canEdit = false;\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n minTime = this.getMinTime();\n\n minTimeInStr = DateTime.fromJSDate(this.minTime).toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n searchButtonDisabled = false;\n\n isAllEmpty = true;\n\n resetButtonDisabled = true;\n\n elementSaveButtonDisabled = true;\n\n elementResetButtonDisabled = true;\n\n constructor(\n public employerService: EmployerService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private toastAlert: ToastAlertService,\n private layoutHeaderService: LayoutHeaderService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.doHidenBackButton();\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_EMPLOYER_ACTIVITY_CODE).then(hasPermission => {\n this.canEdit = hasPermission;\n });\n\n this.loadTable();\n }\n\n searchChange(event: any, key: ActivitySearchRequestKey) {\n if (event?.target?.value) {\n this.searchDTO[key] = event?.target?.value;\n } else if (typeof event == 'string' || typeof event == undefined) {\n this.searchDTO[key] = event;\n }\n //const val = event?.target?.value;\n\n if (\n this.searchDTO.activityCode == '' &&\n this.searchDTO.description == '' &&\n this.searchDTO.createStartDate == '' &&\n this.searchDTO.createEndDate == '' &&\n this.searchDTO.score == ''\n ) {\n this.isAllEmpty = true;\n } else {\n this.isAllEmpty = false;\n }\n }\n\n getMinTime() {\n return moment().subtract(5, 'year').add(1, 'day').toDate();\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n if (this.isAllEmpty) {\n return;\n }\n\n this.pageCount = { current: 1, count: 1 };\n\n this.searchParams = deepCopy(this.searchDTO);\n\n this.loadTable();\n\n this.resetButtonDisabled = false;\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.selectedActivityType = ActivityTypeE.ALL;\n this.isAllEmpty = true;\n\n this.searchDTO = {\n page: 0,\n size: 10,\n activityCode: '',\n createStartDate: '',\n createEndDate: '',\n description: '',\n score: '',\n activityType: this.searchDTO.activityType,\n };\n\n this.searchParams = deepCopy(this.searchDTO);\n // reload DatePicker to avoid select current day bug\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n });\n\n this.pageCount = { current: 1, count: 1 };\n\n this.loadTable();\n }\n\n getRequestParams() {\n let params: ActivitySearchRequest = toPageableRequest(this.pageCount, 10);\n params = {\n ...this.searchParams,\n ...params,\n };\n\n params.createStartDate = params.createStartDate ? this.dateTrans(params.createStartDate) : '';\n params.createEndDate = params.createEndDate ? this.dateTrans(params.createEndDate) : '';\n params.activityType = this.selectedActivityType;\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n loadTable() {\n const params: ActivitySearchRequest = this.getRequestParams();\n this.isLoading = true;\n this.employerService\n .getActivityList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.originDataSource = deepCopy(this.dataSource);\n this.numberOfElements = data.data.totalElements;\n this.pageCount.current = data.data.number + 1;\n this.pageCount.count = data.data.totalPages;\n this.pageCount = { ...this.pageCount };\n }\n });\n }\n\n pillSelectedChange(selected: boolean, type: ActivityTypeE) {\n if (selected) {\n if (this.selectedActivityType !== type) {\n this.selectedActivityType = type;\n this.loadTable();\n }\n }\n }\n add() {\n this.cdsPopup\n .open(AddActivityComponent, {\n size: 'md',\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.employerService\n .addActivity(result.formValue)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n }\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n\n edit(activityCode: string) {\n const alreadyInEditItem = this.dataSource.find(item => item.activityCode !== activityCode && item.inEdit);\n if (alreadyInEditItem) {\n const alreadyInEditItemActivityCode = alreadyInEditItem.activityCode as string;\n // this.cdsPopup\n // .open(ContinuePopupComponent, {\n // size: 'sm',\n // data: { message: this.langService.translate('common.action.cancel') },\n // })\n // .afterClosed()\n // .subscribe(result => {\n // if (result?.agree) {\n // this.changeEditStaus(activityCode);\n // }\n // });\n const lineData = this.getLineData(alreadyInEditItemActivityCode, this.dataSource);\n const originLineData = this.getLineData(alreadyInEditItemActivityCode, this.originDataSource);\n if (lineData && originLineData) {\n lineData.description = originLineData.description;\n lineData.score = originLineData.score;\n }\n this.changeEditStaus(activityCode);\n } else {\n this.changeEditStaus(activityCode);\n }\n // this.changeEditStaus(activityCode);\n }\n\n changeEditStaus(activityCode: string) {\n this.dataSource.forEach(item => {\n if (item.activityCode === activityCode) {\n item.inEdit = true;\n } else {\n item.inEdit = false;\n }\n });\n\n this.dataSource = [...this.dataSource];\n }\n\n delete(id: string, activityCode: string) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n title: 'Are you sure you want to delete this activity ?',\n continueButtonName: this.langService.translate('common.delete'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.isLoading = true;\n this.employerService\n .deleteActivity(id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else if (res.result === 2) {\n this.deleteError(activityCode);\n } else {\n this.toastAlert.show('error', 'common.error', res.message, 5000);\n }\n },\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n\n deleteError(activityCode: string) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('employer.delete-error'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.resetDataSource(activityCode, true);\n });\n }\n\n save = (id: string, activityCode: string, version: number) => {\n if (this.elementSaveButtonDisabled) {\n return;\n }\n this.doSave(id, activityCode, version);\n };\n\n doSave(id: string, activityCode: string, version: number) {\n const lineData = this.getLineData(activityCode, this.dataSource);\n const params: Activity = {\n id,\n description: lineData?.description,\n score: lineData?.score,\n version,\n };\n this.isLoading = true;\n\n this.employerService\n .editActivity(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (lineData) {\n lineData.inEdit = false;\n }\n this.popupWithReload();\n } else {\n this.toastAlert.show('error', 'common.error', res.message, 5000);\n }\n },\n });\n }\n\n ifResetButtonDisabled = (activityCode: string, description: string, score: number) => {\n const originLineData = this.getLineData(activityCode, this.originDataSource);\n if (originLineData && description === originLineData.description && score === originLineData.score) {\n this.elementResetButtonDisabled = true;\n return true;\n }\n this.elementResetButtonDisabled = false;\n return false;\n };\n\n getLineData(activityCode: string, dataSource: Activity[]) {\n if (!activityCode || !dataSource) {\n return null;\n }\n const lineData = dataSource.find(lineData => lineData.activityCode === activityCode);\n return lineData;\n }\n\n ifSaveButtonDisabled = (activityCode: string, description: string, score: number, descriptionValid: boolean, scoreValid: boolean) => {\n const ifResetButtonDisabled = this.ifResetButtonDisabled(activityCode, description, score);\n if (ifResetButtonDisabled) {\n this.elementSaveButtonDisabled = true;\n return true;\n }\n if (description && score && descriptionValid && scoreValid) {\n this.elementSaveButtonDisabled = false;\n return false;\n }\n this.elementSaveButtonDisabled = true;\n return true;\n };\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n resetLine = (activityCode: string, description: string, score: number) => {\n const ifResetButtonDisabled = this.ifResetButtonDisabled(activityCode, description, score);\n if (ifResetButtonDisabled) {\n return;\n }\n this.doReset(activityCode);\n };\n\n doReset(activityCode: string) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.resetDataSource(activityCode);\n }\n });\n }\n\n resetDataSource(activityCode: string, resetInEdit = false) {\n const lineData = this.getLineData(activityCode, this.dataSource);\n const originLineData = this.getLineData(activityCode, this.originDataSource);\n if (lineData && originLineData) {\n lineData.inEdit = true;\n lineData.description = originLineData.description;\n lineData.score = originLineData.score;\n if (resetInEdit) {\n lineData.inEdit = false;\n }\n this.dataSource = [...this.dataSource];\n }\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.loadTable();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n searchButtonDisabledFn = (activityCodeValid: any, description: any, createStartDate: any, createEndDate: any, score: any, isAllEmpty: any) => {\n if (isAllEmpty) {\n this.resetButtonDisabled = true;\n return true;\n } else {\n const invalid = [activityCodeValid, description, createStartDate, createEndDate, score].some(item => !item);\n this.searchButtonDisabled = invalid;\n\n return this.searchButtonDisabled;\n }\n };\n\n scoreChange(value: any, element: any) {\n if (typeof value !== 'string') return;\n\n element.score = Math.round(Math.abs(Number(value))).toString();\n }\n}\n","
    \n
    \n Record the activities (including Employer, Member and Special Program) organized to Employer so that we can calculate the relationship score of the\n Employer, monitor the participation rate and encourage ER to participate.\n \n
    \n\n
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n
    \n \n\n
    \n Max length is 6\n
    \n
    \n\n
    \n \n\n
    \n Max length is 50\n {{ description?.errors?.['descriptionInvalid'] | lang }}\n
    \n
    \n
    \n
    \n \n \n\n \n\n
    \n {{ createStartDate?.errors?.['dateInvalid'] | lang }}\n
    \n
    \n
    -
    \n
    \n \n \n\n \n\n
    \n {{ createEndDate?.errors?.['dateInvalid'] | lang }}\n
    \n
    \n
    \n
    \n \n\n
    \n Max score is 999\n Min score is 0\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n \n\n \n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ numberOfElements }} records
    \n
    \n
    \n\n
    \n
    \n Activity Type:\n {{\n item.label\n }}\n
    \n\n
    \n Add Activity \n
    \n
    \n\n \n \n \n\n \n
    \n \n \n \n Activity Code \n \n {{ element.activityCode }}\n \n \n\n \n \n Decription \n \n
    \n {{ element.description }}\n
    \n
    \n \n
    \n Missing Activity Description\n Max length is 50\n {{ elementDescription?.errors?.['descriptionInvalid'] | lang }}\n
    \n
    \n
    \n
    \n\n \n \n Score \n \n
    \n {{ element.score }}\n
    \n
    \n \n\n
    \n Missing Activity Score\n Max score is 999\n Min score is 0\n
    \n
    \n
    \n
    \n\n \n \n Create Date \n \n \n {{ element.createdAt | date : 'dd/MM/yyyy' }}\n \n \n \n\n \n \n Action \n \n
    \n
    \n
    \n \n
    \n Edit\n
    \n
    \n
    \n \n Delete\n \n\n Save\n\n Reset\n
    \n
    \n
    \n\n \n\n \n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { descriptionValidator } from 'src/app/shared/validators/validators';\nimport { activityTypeptions } from '../employer';\n\n@Component({\n selector: 'app-add-activity',\n templateUrl: './add-activity.component.html',\n styleUrls: ['./add-activity.component.scss'],\n})\nexport class AddActivityComponent implements OnInit {\n form: FormGroup = new FormGroup({});\n\n activityTypeDropdownConfig: CdsDropdownConfig = {\n label: 'Activity Type',\n options: activityTypeptions,\n placeholder: 'Select Activity Type',\n };\n\n scoreTxtfieldConfig: CdsTextfieldConfig = {\n label: 'Score',\n placeholder: 'Input Score',\n type: 'number',\n };\n\n descriptionTxtfieldConfig: CdsTextfieldConfig = {\n label: 'Activity Description',\n placeholder: 'Input Activity Description',\n type: 'text',\n };\n\n AddButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n resetDisabled = true;\n\n descriptionTip = 'Please input English, Chinese, numbers, or special characters';\n\n get activityType() {\n return this.form.get('activityType') as FormControl;\n }\n\n get score() {\n return this.form.get('score') as FormControl;\n }\n\n get description() {\n return this.form.get('description') as FormControl;\n }\n\n constructor(private dialogRef: MatDialogRef, private cdsPopup: CdsPopupService, private langService: CdsLangService) {}\n\n ngOnInit() {\n this.initForm();\n }\n\n initForm() {\n this.form = new FormGroup({\n activityType: new FormControl('', Validators.required),\n score: new FormControl('', [Validators.required, Validators.max(999), Validators.min(0)]),\n description: new FormControl('', [Validators.required, Validators.maxLength(50), descriptionValidator(this.descriptionTip, true)]),\n });\n\n this.formChangeListener();\n }\n\n formChangeListener() {\n this.form.valueChanges.subscribe(() => {\n // if every field is '', the reset button disabled\n this.resetDisabled = Object.keys(this.form.value).every(key => this.form.value[key] === '');\n });\n }\n\n descriptionChange(value: string) {\n if (!value) {\n return;\n }\n this.description?.setValue(value.trim());\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.form.patchValue({\n activityType: '',\n score: '',\n description: '',\n });\n this.form.markAsPristine();\n }\n });\n }\n\n add() {\n if (!this.form.valid) {\n return;\n }\n\n this.dialogRef.close({\n agree: true,\n formValue: this.form.value,\n });\n }\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n scoreChange(value: any) {\n if (typeof value !== 'string') return;\n\n this.score.setValue(Math.round(Math.abs(Number(value))).toString());\n }\n}\n","\n
    Add New Activity
    \n
    \n \n\n \n
    \n \n \n \n Activity Type Required\n \n \n\n \n \n \n Missing Score\n Max Score is 999\n Min Score is 0\n \n \n\n \n \n \n Missing Activity Description\n Max length is 50\n {{ description.errors?.['descriptionInvalid'] | lang }}\n \n \n
    \n
    \n\n \n {{ 'common.reset' | lang }}\n\n Add\n \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, FormControl, FormArray, Validators, AbstractControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTableComponent } from '@cds/ng-data-table/table';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { dateValidator, hkidValidator, passportValidator } from 'src/app/shared/validators/validators';\nimport { AgentSep, AgentSepCheckResult, AgentSepCheckResultTypeE, AgentSepWarn, agentSepUserIdTypeConfig, agentSepUserIdTypeOptions } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-agent-sep-add',\n templateUrl: './agent-sep-add.component.html',\n styleUrls: ['./agent-sep-add.component.scss'],\n})\nexport class AgentSepAddComponent implements OnInit {\n @ViewChild('table') table!: CdsTableComponent;\n\n isLoading = false;\n inEdit = true;\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n newData: AgentSep = {\n sepCommDate: '',\n hkid: '',\n userIdType: '',\n userId: '',\n };\n\n get resetDisabled() {\n return !this.form.dirty || this.isLoading;\n }\n\n get continueDisabled() {\n return !(this.form.dirty && this.form.valid) || this.isLoading;\n }\n\n displayedColumnsInSummary: string[] = ['number', 'sepCommDate', 'userId', 'dob'];\n\n displayedColumnsInEdit: string[] = [...this.displayedColumnsInSummary, 'delete'];\n\n haveDeletePermission = false;\n\n form: FormGroup = new FormGroup({});\n\n warnList: AgentSepWarn[] = [];\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n agentSepUserIdTypeConfig = agentSepUserIdTypeConfig;\n\n formReady = true;\n\n newDataIndex = 0;\n\n invalidHkidTip = 'Please input HKID with format XXXXXXX(X)';\n\n invalidPassportTip = 'Please enter the correct passport number';\n\n get tableArray() {\n return this.form?.get('tableArray') as FormArray;\n }\n\n checkResultInfoList: AgentSepCheckResult[] = [];\n\n AgentSepCheckResultTypeE = AgentSepCheckResultTypeE;\n\n warnIconConfig: CdsIconConfig = {\n color: '#D77D28',\n };\n\n errorIconConfig: CdsIconConfig = {\n color: '#C14A36',\n };\n\n get confirmDisabled() {\n return this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.ERR);\n }\n\n checked = false;\n\n checkOk = false;\n\n _confirmFlag = false;\n\n showConfirm = false;\n\n showButton = true;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: EmployerService,\n private permissionService: PermissionService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.E, PermissionItem.CUSTOMER_EMPLOYER).then(havePermission => {\n if (havePermission) {\n this.haveDeletePermission = true;\n }\n });\n this.initForm();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.checkResultInfoList = [];\n this.warnList = [];\n\n this.form = new FormGroup({\n tableArray: new FormArray([]),\n });\n this.add();\n }\n\n getDisplayedColumns(inEdit: boolean) {\n return inEdit && this.haveDeletePermission ? this.displayedColumnsInEdit : this.displayedColumnsInSummary;\n }\n\n backToEdit() {\n this.inEdit = true;\n\n this.reloadButton();\n }\n\n continue() {\n if (this.continueDisabled) {\n return;\n }\n\n if (this.checkOk) {\n this.inEdit = false;\n } else {\n this.checkResultInfoList = [];\n this.warnList = [];\n this.check();\n }\n\n this.reloadButton();\n }\n\n getRequestList() {\n const list = this.tableArray.controls.map(item => {\n const params: AgentSep = deepCopy(item.value);\n if (params.userIdType == 'hkid') {\n params.hkid = params.userId;\n params.passport = '';\n } else {\n params.passport = params.userId;\n params.hkid = '';\n }\n params.sepCommDate = this.requestDateTrans(params.sepCommDate);\n params.dob = this.requestDateTrans(params.dob);\n delete params.userId;\n delete params.userIdType;\n return params;\n });\n return list;\n }\n\n delete(index: number) {\n this.tableArray?.removeAt(index);\n }\n\n confirm() {\n this.addRequest();\n\n this.reloadButton();\n }\n\n check() {\n const requestList = this.getRequestList();\n\n this.isLoading = true;\n\n this.showConfirm = false;\n\n this.service\n .agentSepAdd(requestList, true)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.result === false) {\n this.checked = true;\n this.checkResultInfoList = res.data.tips || [];\n\n this.checkResultInfoList.forEach(item => {\n let key = '';\n switch (item.field) {\n case '1':\n key = 'sepCommDate';\n break;\n case '2':\n key = 'userId';\n break;\n case '3':\n key = 'dob';\n break;\n }\n\n if (item.type === AgentSepCheckResultTypeE.ERR) {\n this.tableArray\n .at(item.row - 1)\n ?.get(key)\n ?.setErrors({ backendInvalid: item.message });\n } else if (item.type === AgentSepCheckResultTypeE.WARN) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const warn: any = this.warnList[item.row - 1] || {\n sepCommDate: '',\n dob: '',\n userIdType: '',\n userId: '',\n };\n warn[key] = item.message;\n\n this.showConfirm = true;\n\n this.warnList[item.row - 1] = warn;\n }\n });\n\n this.form.updateValueAndValidity();\n\n console.log('tableArray', this.tableArray);\n console.log('warnList', this.warnList);\n\n if (this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.ERR)) {\n this.checkOk = false;\n this.inEdit = true;\n } else if (this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.WARN)) {\n this.checkOk = true;\n } else {\n this.checkOk = true;\n this.inEdit = false;\n }\n } else {\n this.inEdit = false;\n }\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n addRequest() {\n const requestList = this.getRequestList();\n\n this.isLoading = true;\n\n this.service\n .agentSepAdd(requestList)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res?.message);\n }\n },\n error: err => {\n this.requestAlert(err?.message);\n },\n });\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close({\n agree: true,\n reload: true,\n });\n });\n }\n\n requestAlert(message: string) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n title: 'Error',\n message: `${message}`,\n buttonName: this.langService.translate('confirm'),\n },\n })\n .afterClosed()\n .subscribe(() => {});\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.initForm();\n }\n });\n\n this.reloadButton();\n }\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n\n add() {\n this._confirmFlag = true;\n const data: AgentSep = deepCopy(this.newData);\n data.number = this.newDataIndex;\n this.newDataIndex++;\n\n const newFormGroup = new FormGroup({\n sepCommDate: new FormControl('', [Validators.required, dateValidator('create.dateError', '', this.maxTimeInStr)]),\n dob: new FormControl('', [Validators.required, dateValidator('create.dateError', '', this.maxTimeInStr)]),\n userIdType: new FormControl('hkid'),\n userId: new FormControl('', [Validators.required]),\n });\n\n this.tableArray.push(newFormGroup);\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getControlValue = (key: string, index: number) => {\n return this.tableArray?.at(index)?.get(key)?.value;\n };\n\n getWarnMessage = (key: string, index: number) => {\n console.log('getWarnMessage', (this.warnList?.[index] as any)?.[key]);\n return (this.warnList?.[index] as any)?.[key];\n };\n\n getUserIdStr = (index: number) => {\n const typeValue = this.getControlValue('userIdType', index);\n const typeLabel = this.service.optionLabelRender(typeValue, agentSepUserIdTypeOptions);\n\n return `${typeLabel} ${this.getControlValue('userId', index)}`;\n };\n\n requestDateTrans(date?: string) {\n if (!date) return '';\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toFormat('yyyy-MM-dd');\n }\n\n getControl(formControlName: string, index: number) {\n return this.tableArray.at(index).get(formControlName);\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n dropdownChange(value: string, index: number) {\n const dropdownContorl = this.getControl('userId', index);\n\n dropdownContorl?.clearValidators();\n dropdownContorl?.setErrors({});\n dropdownContorl?.updateValueAndValidity();\n\n if (value === 'hkid') {\n dropdownContorl?.setValidators([Validators.required, Validators.maxLength(80), hkidValidator(this.invalidHkidTip)]);\n } else {\n dropdownContorl?.setValidators([Validators.required, Validators.maxLength(80), passportValidator(this.invalidPassportTip)]);\n }\n }\n\n userIdChange(input: string, control: AbstractControl | null) {\n const value = input.replace(/[\\u4e00-\\u9fa5]/gi, '');\n control?.setValue(value.trim());\n }\n\n onControlChange(key: string, index: number) {\n (this.warnList[index] as any)[key] = '';\n\n this.checkOk = false;\n }\n\n reloadButton = () => {\n this.showButton = false;\n setTimeout(() => {\n this.showButton = true;\n });\n };\n}\n","\n \n
    Add Records
    \n
    \n
    Records Summary
    \n
    Please check to confirm and add the record(s).
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    SEP Commencement Date\n
    HKID/ Passport
    \n
    Please include bracket ( ) when typing HKID
    \n
    Date of Birth
    \n
    \n {{ index + 1 }}\n
    \n
    \n
    \n \n
    \n
    \n {{ getControlValue | fn : 'sepCommDate' : index }}\n
    \n
    \n\n
    \n \n \n \n\n \n Missing SEP Commencement Date\n Please input SEP Commencement Date with format DD/MM/YYYY\n\n {{ getControl('sepCommDate', index)?.errors?.['backendInvalid'] }}\n
    \n\n
    \n {{ getWarnMessage('sepCommDate', index) }}\n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n {{ getUserIdStr | fn : index }}\n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n Missing HKID/ Passport\n Max length is 80.\n {{ getControl('userId', index)?.errors?.['hkidInvalid'] }}\n {{ getControl('userId', index)?.errors?.['passportInvalid'] }}\n {{ getControl('userId', index)?.errors?.['backendInvalid'] }}\n
    \n\n
    \n {{ getWarnMessage('userId', index) }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ getControlValue | fn : 'dob' : index }}\n
    \n
    \n\n
    \n \n \n \n\n
    \n Missing Date of Birth\n\n Please input Date of Birth with format DD/MM/YYYY\n\n {{ getControl('dob', index)?.errors?.['backendInvalid'] }}\n
    \n\n
    \n {{ getWarnMessage('dob', index) }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    +
    \n Add New\n
    \n
    \n
    +
    \n Add New\n
    \n
    \n
    \n\n \n
    \n \n {{ 'common.reset' | lang }}\n\n {{ 'common.continue' | lang }}\n \n\n \n {{ 'common.backToEdit' | lang }}\n\n {{ 'employer.confirm-and-add' | lang }}\n \n
    \n
    \n
    \n","import { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { deepCopy } from 'src/app/utils/copy';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService, CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { dateValidator, hkidValidator, passportValidator } from 'src/app/shared/validators/validators';\nimport { EmployerService } from '../employer.service';\nimport { AgentSep, AgentSepCheckResult, AgentSepCheckResultTypeE, agentSepUserIdTypeOptions } from '../employer';\nimport { DateTime } from 'luxon';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-agent-sep-edit',\n templateUrl: './agent-sep-edit.component.html',\n styleUrls: ['./agent-sep-edit.component.scss'],\n})\nexport class AgentSepEditComponent implements OnInit {\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n backToEditButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n originFormValue: AgentSep = {};\n\n formSendValue: AgentSep = {};\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n showDatePicker = true;\n\n inEdit = true;\n\n showButton = true;\n\n agentTextfieldConfig: CdsTextfieldConfig = {\n label: 'Agent Code',\n placeholder: 'Input Agent Code',\n type: 'text',\n };\n\n accountNumbertxtfieldConfig: CdsTextfieldConfig = {\n label: 'Employer Account Code',\n placeholder: 'Input Employer Account Code',\n type: 'text',\n };\n\n companyNametxtfieldConfig: CdsTextfieldConfig = {\n label: 'Company Name',\n placeholder: 'Input Company Name',\n type: 'text',\n };\n\n invalidHkidTip = 'Please input HKID with format XXXXXXX(X)';\n\n invalidPassportTip = 'Please enter the correct passport number';\n\n form: FormGroup = new FormGroup({});\n\n isLoading = false;\n\n nowTime = DateTime.now();\n\n nowTimeInstr = this.nowTime.toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n get saveDisabled() {\n return !(this.form.dirty && this.form.valid) || this.isLoading;\n }\n\n get resetDisabled() {\n return !this.form.dirty || this.isLoading;\n }\n\n get sepCommDateControl() {\n return this.form.get('sepCommDate');\n }\n\n get dobControl() {\n return this.form.get('dob');\n }\n\n get userIdTypeControl() {\n return this.form.get('userIdType');\n }\n\n get userIdControl() {\n return this.form.get('userId');\n }\n\n agentSepUserIdTypeOptions = agentSepUserIdTypeOptions;\n\n agentSepUserIdTypeConfig: CdsDropdownConfig = {\n label: 'HKID/Passport',\n options: agentSepUserIdTypeOptions,\n placeholder: '',\n };\n\n get userIdConfirmStr() {\n const typeValue = this.userIdTypeControl?.value;\n const typeLabel = this.service.optionLabelRender(typeValue, agentSepUserIdTypeOptions);\n\n return `(${typeLabel}) ${this.userIdControl?.value}`;\n }\n\n iconConfig: CdsIconConfig = {\n color: '#00A758',\n size: 'sm',\n };\n\n checkResultInfoList: AgentSepCheckResult[] = [];\n\n AgentSepCheckResultTypeE = AgentSepCheckResultTypeE;\n\n checked = false;\n\n checkOk = true;\n\n warnIconConfig: CdsIconConfig = {\n color: '#D77D28',\n };\n\n errorIconConfig: CdsIconConfig = {\n color: '#C14A36',\n };\n\n warningTitle = 'The same agent was enrolled before.';\n warningText = 'Existing records will be replaced by clicking confirm to proceed.';\n\n warn: any = {\n sepCommDate: '',\n dob: '',\n userIdType: '',\n userId: '',\n };\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: EmployerService,\n @Inject(CDS_POPUP_DATA)\n public data: AgentSep\n ) {}\n\n ngOnInit() {\n this.initForm();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.checkResultInfoList = [];\n this.warn = {\n sepCommDate: '',\n dob: '',\n userIdType: '',\n userId: '',\n };\n\n this.form = new FormGroup({\n sepCommDate: new FormControl(this.dateTrans(this.data.sepCommDate), [Validators.required, dateValidator('create.dateError', '', this.maxTimeInStr)]),\n dob: new FormControl(this.dateTrans(this.data.sepCommDate), [Validators.required, dateValidator('create.dateError', '', this.maxTimeInStr)]),\n userIdType: new FormControl(this.data.hkid ? 'hkid' : 'passport'),\n userId: new FormControl(this.data.hkid || this.data.passport, [Validators.required]),\n });\n }\n\n changeFormImmediately(key: string, value: string) {\n if (value && typeof value === 'string') {\n this.form.get(key)?.setValue(value.trim());\n }\n }\n\n getSendFormValue() {\n const value: AgentSep = {};\n Object.keys(this.originFormValue).forEach(key => {\n const currentFromValue: AgentSep = this.form.value;\n if ((currentFromValue as any)[key] !== (this.originFormValue as any)[key]) {\n (value as any)[key] = (currentFromValue as any)[key];\n }\n });\n this.formSendValue = value;\n }\n\n getRequestParams(isCheck = false) {\n const params: AgentSep = deepCopy(this.form.value);\n if (params.userIdType == 'hkid') {\n params.hkid = params.userId;\n params.passport = '';\n } else {\n params.passport = params.userId;\n params.hkid = '';\n }\n params.id = this.data.id;\n params.sepCommDate = this.requestDateTrans(params.sepCommDate);\n params.dob = this.requestDateTrans(params.dob);\n delete params.userId;\n delete params.userIdType;\n params.check = isCheck;\n return params;\n }\n\n continue() {\n if (this.saveDisabled) {\n return;\n }\n\n this.reloadButton();\n\n if (this.checkOk) {\n this.inEdit = false;\n } else {\n this.checkResultInfoList = [];\n this.warn = {\n sepCommDate: '',\n dob: '',\n userIdType: '',\n userId: '',\n };\n this.check();\n }\n }\n\n save() {\n this.doSave();\n\n this.reloadButton();\n }\n\n check() {\n const params = this.getRequestParams(true);\n\n this.isLoading = true;\n\n this.service\n .agentSepEdit(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.result === false) {\n this.checked = true;\n this.checkResultInfoList = res.data.tips || [];\n\n this.checkResultInfoList.forEach(item => {\n let key = '';\n switch (item.field) {\n case '1':\n key = 'sepCommDate';\n break;\n case '2':\n key = 'userId';\n break;\n case '3':\n key = 'dob';\n break;\n }\n\n if (item.type === AgentSepCheckResultTypeE.ERR) {\n this.form.get(key)?.setErrors({ backendInvalid: item.message });\n } else if (item.type === AgentSepCheckResultTypeE.WARN) {\n this.warn[key] = item.message;\n }\n });\n\n this.form.updateValueAndValidity();\n\n console.log('form', this.form, this.warn);\n\n if (this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.ERR)) {\n this.checkOk = false;\n this.inEdit = true;\n } else if (this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.WARN)) {\n this.checkOk = true;\n } else {\n this.checkOk = true;\n this.inEdit = false;\n }\n } else {\n this.checkOk = true;\n this.inEdit = false;\n }\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n\n doSave() {\n const params = this.getRequestParams();\n\n this.isLoading = true;\n\n this.service\n .agentSepEdit(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n\n this.reloadButton();\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.initForm();\n });\n }\n });\n }\n\n delete() {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('agent.delete-tip'),\n continueButtonName: this.langService.translate('common.delete'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.isLoading = true;\n this.service\n .agentSepDelete(this.data.id as string)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n }\n });\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n\n requestAlert(message: string) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n title: 'Error',\n message: `${message}`,\n buttonName: this.langService.translate('confirm'),\n },\n })\n .afterClosed()\n .subscribe(() => {});\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close({\n agree: true,\n reload: true,\n });\n });\n }\n\n dateTrans(date?: string) {\n if (!date) return '';\n return DateTime.fromFormat(date, 'yyyy-MM-dd').toFormat('dd/MM/yyyy');\n }\n\n requestDateTrans(date?: string) {\n if (!date) return '';\n return DateTime.fromFormat(date, 'dd/MM/yyyy').toFormat('yyyy-MM-dd');\n }\n\n backToEdit() {\n this.inEdit = true;\n\n this.reloadButton();\n }\n\n dropdownChange(value: string) {\n const dropdownContorl = this.userIdControl;\n dropdownContorl?.clearValidators();\n dropdownContorl?.setErrors({});\n dropdownContorl?.updateValueAndValidity();\n\n if (value === 'hkid') {\n dropdownContorl?.setValidators([Validators.required, Validators.maxLength(80), hkidValidator(this.invalidHkidTip)]);\n } else {\n dropdownContorl?.setValidators([Validators.required, Validators.maxLength(80), passportValidator(this.invalidPassportTip)]);\n }\n }\n\n userIdChange(input: string) {\n const value = input.replace(/[\\u4e00-\\u9fa5]/gi, '');\n this.userIdControl?.setValue(value.trim());\n }\n\n getWarnMessage = (key: string) => {\n return this.warn[key];\n };\n\n onControlChange(key: string) {\n (this.warn as any)[key] = '';\n\n this.checkOk = false;\n }\n\n reloadButton = () => {\n this.showButton = false;\n setTimeout(() => {\n this.showButton = true;\n });\n };\n}\n","\n \n
    Edit Record
    \n
    \n
    Records Summary
    \n
    Please check to confirm and edit the record.
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n
    \n \n {{ data.agentCode }}\n {{ data.agentName }}\n {{ data.agentNameChi }}\n
    \n\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n \n \n\n
    \n Missing SEP Commencement Date\n Please input SEP Commencement Date with format DD/MM/YYYY\n\n {{ sepCommDateControl?.errors?.['backendInvalid'] }}\n
    \n\n
    \n {{ getWarnMessage('sepCommDate') }}\n
    \n
    \n\n
    \n \n \n \n\n
    \n Missing Date of Birth\n\n Please input Date of Birth with format DD/MM/YYYY\n\n {{ dobControl?.errors?.['backendInvalid'] }}\n
    \n\n
    \n {{ getWarnMessage('dob') }}\n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n Missing HKID/ Passport\n Max length is 80.\n {{ userIdControl?.errors?.['hkidInvalid'] }}\n {{ userIdControl?.errors?.['passportInvalid'] }}\n\n {{ userIdControl?.errors?.['backendInvalid'] }}\n
    \n\n
    \n {{ getWarnMessage('userId') }}\n
    \n\n
    \n
    \n
    Please include bracket ( ) when typing HKID
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n {{ 'common.reset' | lang }}\n\n {{ 'common.continue' | lang }}\n \n\n \n {{ 'common.backToEdit' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_PRIMARY, BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AgentSepAddComponent } from '../agent-sep-add/agent-sep-add.component';\nimport { AgentSepEditComponent } from '../agent-sep-edit/agent-sep-edit.component';\nimport { AgentSep, ColumnSort, EnrolmentStatusE, enrolmentStatusMapObj } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { UploadAgentSepListFileComponent } from '../upload-agent-sep-list-file/upload-agent-sep-list-file.component';\n\n@Component({\n selector: 'app-agent-sep',\n templateUrl: './agent-sep.component.html',\n styleUrls: ['./agent-sep.component.scss'],\n})\nexport class AgentSepComponent implements OnInit {\n uploadBtnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n addBtnCfg: CdsButtonConfig = BTN_CONFIG_PRIMARY;\n\n totalElements = 0;\n\n canEdit = true;\n\n isLoading = false;\n\n showButton = true;\n\n dataSource: AgentSep[] = [];\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 20,\n totalCount: 0,\n };\n\n EnrolmentStatusE = EnrolmentStatusE;\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'agentCode',\n title: 'Agent Code',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'agentName',\n title: 'Agent Name',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'sepCommDate',\n title: 'SEP Commencement Date',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'dob',\n title: 'Date of Birth',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'hkid',\n title: 'HKID/ Passport',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'mbAcctCd',\n title: 'Member Account Code',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'createdAt',\n title: 'Created Date',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'status',\n title: 'Status',\n sort: SortMode.DEFAULT,\n },\n ];\n\n columnsConfigWithEditPermission: ColumnConfig[] = [\n ...this.columnsConfig,\n {\n key: 'action',\n title: 'Action',\n },\n ];\n\n columnSort: ColumnSort = {\n key: 'sepCommDate',\n value: SortMode.DOWN,\n };\n\n enrolmentStatusMapObj = enrolmentStatusMapObj;\n\n constructor(\n private service: EmployerService,\n private cdsPopup: CdsPopupService,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService,\n private langService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n this.loadTable();\n\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_EMPLOYER).then(hasPermission => {\n this.canEdit = hasPermission;\n });\n }\n\n getRequestParams() {\n const params: IPageableRequest = {\n page: (this.pageConfig.current as number) - 1,\n size: 20,\n };\n params.sort = `${this.columnSort.key},${this.columnSort.value}`;\n return params;\n }\n\n loadTable() {\n const params: IPageableRequest = this.getRequestParams();\n this.isLoading = true;\n\n this.service\n .getAgentSepList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.totalElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n add() {\n this.cdsPopup\n .open(AgentSepAddComponent, {\n size: 'lg',\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n\n this.reloadButton();\n }\n\n upload() {\n this.cdsPopup\n .open(UploadAgentSepListFileComponent, {\n size: 'md',\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.popupWithReload();\n } else {\n this.isLoading = false;\n }\n });\n\n this.reloadButton();\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.uploadSuccess'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n edit(element: AgentSep) {\n this.cdsPopup\n .open(AgentSepEditComponent, {\n size: 'md',\n data: element,\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort =\n event.column && event.column.sort !== SortMode.DEFAULT\n ? {\n key: event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'sepCommDate',\n value: SortMode.DOWN,\n };\n this.loadTable();\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n reloadButton = () => {\n this.showButton = false;\n setTimeout(() => {\n this.showButton = true;\n });\n };\n}\n","
    \n \n
    \n This is a page to maintain the Manulife Agent list. If there is newly onboard agent, Operation team either upload enrolment excel in iPension or input\n directly on screen.\n \n
    \n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ totalElements }} records
    \n
    \n
    \n Upload csv file \n Add records \n
    \n
    \n\n
    \n
    \n \n \n {{ element['agentName'] }}\n {{ element['agentNameChi'] }}\n \n\n \n {{ element['dob'] | ssmsDate }}\n \n\n \n {{ element['hkid'] || element['passport'] }}\n \n\n \n {{ element['sepCommDate'] | ssmsDate }}\n \n\n \n {{ element['createdAt'] | ssmsDate }}\n \n\n \n \n \n\n \n
    \n
    \n \n
    \n Edit\n
    \n
    \n \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport { CommentHistory } from '../employer';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-comments-history',\n templateUrl: './comments-history.component.html',\n styleUrls: ['./comments-history.component.scss'],\n})\nexport class CommentsHistoryComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA) public data: { customerId: string | undefined },\n private service: EmployerService\n ) {}\n\n dataList: CommentHistory[] = [];\n\n ngOnInit(): void {\n if (this.data.customerId) {\n this.getCommentsHistory(this.data.customerId);\n }\n }\n\n gotIt() {\n this.dialogRef.close({ agree: false });\n }\n\n getCommentsHistory(customerId: string) {\n this.service.getCommentsHistory(customerId).subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dataList = data.data;\n }\n });\n }\n\n updateDateGen(value: string) {\n const dateTime = DateTime.fromISO(value);\n if (dateTime.isValid) {\n return dateTime.toFormat('hh:mma dd/MM/yyyy (Z') + 'T)';\n }\n return '';\n }\n}\n","
    \n \n
    \n
    \n {{ 'er.profile.edit-log-history' | lang }}\n
    \n
    \n \n
    \n
    \n {{ 'payment.comment-details' | lang }}\n
    \n
    \n {{ element.comments }} \n
    \n
    \n
    \n \n \n \n \n \n {{ updateDateGen | fn : element.updateDate }}\n \n
    \n
    \n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-commonts-popup',\n templateUrl: './commonts-popup.component.html',\n styleUrls: ['./commonts-popup.component.scss'],\n})\nexport class CommontsPopupComponent implements OnInit {\n @Input() title = 'The changes you’ve made will be lost, are you sure to continue?';\n\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n name: string;\n message: string;\n noCloseIcon: string;\n }\n ) {}\n\n ngOnInit(): void {}\n\n agree() {\n this.dialogRef.close({ agree: false });\n }\n disagree() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n {{ title }}\n
    \n \n \n \n \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-commonts-success',\n templateUrl: './commonts-success.component.html',\n styleUrls: ['./commonts-success.component.scss'],\n})\nexport class CommontsSuccessComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef, @Inject(CDS_POPUP_DATA) public data: { name: string }) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: false });\n }\n}\n","\n {{ 'confirm.popup.title1' | lang }} {{ 'confirm.popup.title2' | lang }}\n \n \n \n \n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { InterestRateService } from '../../interest-rate.service';\nimport { DividendRate, DividendRateDoSubmit } from 'src/app/views/system/calendar/shared/calendar.model';\nimport { DividendRateSearch } from '../../employer';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-dividend-rate-add-popup',\n templateUrl: './dividend-rate-add-popup.component.html',\n styleUrls: ['./dividend-rate-add-popup.component.scss'],\n})\nexport class DividendRateAddPopupComponent implements OnInit {\n constructor(\n @Inject(CDS_POPUP_DATA)\n public data: {\n year: string;\n },\n private service: InterestRateService,\n private dialogRef: MatDialogRef,\n private toastAlert: ToastAlertService\n ) {}\n\n form = new FormGroup({\n year: new FormControl(),\n month: new FormControl(),\n normalRate: new FormControl('', [this.amtValidator()]),\n });\n\n monthConfig: CdsDropdownConfig = {\n placeholder: 'Month',\n options: [\n { label: '01', value: '01' },\n { label: '02', value: '02' },\n { label: '03', value: '03' },\n { label: '04', value: '04' },\n { label: '05', value: '05' },\n { label: '06', value: '06' },\n { label: '07', value: '07' },\n { label: '08', value: '08' },\n { label: '09', value: '09' },\n { label: '10', value: '10' },\n { label: '11', value: '11' },\n { label: '12', value: '12' },\n ],\n };\n yearConfig: CdsDropdownConfig = {\n placeholder: 'Year',\n options: [],\n };\n\n resetConfig: CdsButtonConfig = {\n style: 'secondary',\n size: 'sm',\n };\n saveConfig: CdsButtonConfig = {\n style: 'primary',\n size: 'sm',\n };\n _loadding = false;\n\n formatter = new Intl.NumberFormat('en', {\n useGrouping: false,\n minimumFractionDigits: 4,\n maximumFractionDigits: 4,\n });\n\n _error: Set = new Set();\n _waring: Set = new Set();\n _valid = false;\n\n dataList: DividendRate[] = [];\n\n yearCodeConfig: CdsDropdownConfig = {\n label: 'Calendar Year',\n placeholder: 'Select Calendar Year',\n options: [],\n };\n\n fundCodeConfig: CdsDropdownConfig = {\n label: 'Fund Code',\n placeholder: 'Select Fund Code',\n options: [\n {\n label: 'SHK150 Manulife MPF Retirement Income Fund',\n value: 1,\n },\n ],\n };\n\n _fundCode = 1;\n\n searchDTO: DividendRateSearch = {};\n\n ngOnInit(): void {\n this.yearsInit();\n }\n\n yearsInit() {\n this._loadding = true;\n this.service\n .getDividendYearList()\n .pipe(\n finalize(() => {\n this._loadding = false;\n })\n )\n .subscribe(res => {\n if (res.data) {\n const _list: CdsOption[] = [];\n res.data.forEach(x => {\n _list.push({\n label: x,\n value: x,\n });\n });\n this.yearCodeConfig.options = _list;\n this.yearCodeConfig = { ...this.yearCodeConfig };\n if (_list.length > 0) {\n this.searchDTO.year = this.data.year;\n }\n }\n });\n }\n\n selectedChange(val: string, type: string) {\n switch (type) {\n case 'year':\n this.searchDTO.year = val;\n break;\n default:\n }\n this.loadTable();\n }\n\n getRequestParams() {\n const params: DividendRateSearch = { ...this.searchDTO };\n return params;\n }\n\n loadTable() {\n if (!this.searchDTO.year) {\n return;\n }\n const params: DividendRateSearch = this.getRequestParams();\n this._loadding = true;\n this.service\n .getDividendRateEvents(params)\n .pipe(\n finalize(() => {\n this._loadding = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dataList = data.data ? data.data : [];\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n amtValidator() {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return {};\n }\n const reg = /^[0-9]{1,2}\\.*[0-9]{0,4}$/; // eslint-disable-line\n if (!reg.test(value)) {\n return { msg: 'Invalid percent for Normal Rate' };\n }\n return {};\n };\n }\n\n initForm() {}\n\n reset() {\n this.loadTable();\n }\n\n validating() {}\n\n save() {\n this._loadding = true;\n\n const params: DividendRateDoSubmit = {\n list: this.dataList.filter(x => x.dividendRate),\n };\n\n this.service\n .diviendRateDoConfirm(params)\n .pipe(\n finalize(() => {\n this._loadding = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dialogRef.close({ data: true });\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n inputChange(val: string, type: string, item: DividendRate) {\n switch (type) {\n case 'dividendRate':\n item.dividendRate = this.formatAmt(val);\n break;\n default:\n }\n }\n\n formatAmt(val: string | undefined) {\n if (!val) {\n return;\n }\n return this.formatter.format(Number.parseFloat(val));\n }\n}\n","\n \n {{ 'dividend-rate.addLable' | lang }}\n \n
    \n
    \n {{ 'interest-rate.interest-rate' | lang }}\n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n
    MonthDividend/ UnitRecord Date
    \n {{ item.month }}\n \n \n \n {{ item.recordDate | ssmsDate }}\n
    \n
    \n
    \n \n \n \n \n
    \n","import { PermissionService } from './../../../../core/services/permission.service';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport { configPrimary, configSecondary, DividendRateSearch, InterestRateStatus } from '../../employer';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { InterestRateService } from '../../interest-rate.service';\nimport { DividendRateAddPopupComponent } from '../dividend-rate-add-popup/dividend-rate-add-popup.component';\nimport { DividendRate } from 'src/app/views/system/calendar/shared/calendar.model';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\n\n@Component({\n selector: 'app-dividend-rate',\n templateUrl: './dividend-rate.component.html',\n styleUrls: ['./dividend-rate.component.scss'],\n})\nexport class DividendRateComponent implements OnInit {\n constructor(\n private permissionService: PermissionService,\n private service: InterestRateService,\n private cdsPopup: CdsPopupService,\n private toastAlert: ToastAlertService\n ) {}\n\n @Input() load = false;\n\n form = new FormGroup({\n year: new FormControl(),\n });\n\n fundCodeConfig: CdsDropdownConfig = {\n label: 'Fund Code',\n placeholder: 'Select Fund Code',\n options: [\n {\n label: 'SHK150 Manulife MPF Retirement Income Fund',\n value: 1,\n },\n ],\n };\n\n _fundCode = 1;\n\n yearCodeConfig: CdsDropdownConfig = {\n label: 'Calendar Year',\n placeholder: 'Select Calendar Year',\n options: [],\n };\n\n searchDTO: DividendRateSearch = {};\n\n searchButtonConfig = configPrimary();\n _searchDisable = false;\n\n resetButtonConfig = configSecondary();\n _resetDisable = false;\n\n addButtonConfig = configPrimary();\n\n approveConfig = configSecondary();\n\n _valid = false;\n\n _loading = false;\n\n columnConfig: ColumnConfig[] = [\n { title: 'Month', key: 'month' },\n { title: 'Dividend/ Unit', key: 'dividendRate' },\n { title: 'Record Date', key: 'recordDate' },\n { title: 'Approval', key: 'status' },\n ];\n\n dataList: DividendRate[] = [];\n\n hasReviewPermission = false;\n hasApprovePermission = false;\n hasEditPermission = false;\n\n ngOnInit(): void {\n this.initPermission();\n this.yearsInit();\n // this.loadTable();\n }\n\n initPermission() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SYS_CALENDAR_REVIEWER).then(has => {\n this.hasReviewPermission = has;\n });\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SYS_CALENDAR_APPROVE).then(has => {\n this.hasApprovePermission = has;\n });\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SYS_CALENDAR).then(has => {\n this.hasEditPermission = has;\n });\n }\n\n yearsInit() {\n this._loading = true;\n this.service\n .getDividendYearList()\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(res => {\n if (res.data) {\n const _list: CdsOption[] = [];\n res.data.forEach(x => {\n _list.push({\n label: x,\n value: x,\n });\n });\n this.yearCodeConfig.options = _list;\n this.yearCodeConfig = { ...this.yearCodeConfig };\n if (_list.length > 0) {\n this.searchDTO.year = _list[0].value;\n }\n }\n });\n }\n\n approveDividendRate(item: DividendRate) {\n this._loading = true;\n const param: string[] = [];\n if (item.id) {\n param.push(item.id);\n }\n this.service\n .diviendRateDoApprove(param)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n statusFormat(status: InterestRateStatus) {\n let re = '';\n switch (status) {\n case InterestRateStatus.PENDING:\n re = 'Pending approval';\n break;\n case InterestRateStatus.APPROVED:\n re = 'Approved';\n break;\n default:\n }\n return re;\n }\n\n add() {\n const popupRef: MatDialogRef = this.cdsPopup.open(DividendRateAddPopupComponent, {\n size: 'lg',\n data: {\n year: this.searchDTO.year,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data) {\n this.loadTable();\n }\n });\n }\n\n getRequestParams() {\n const params: DividendRateSearch = { ...this.searchDTO };\n return params;\n }\n\n loadTable() {\n if (!this.searchDTO.year) {\n return;\n }\n const params: DividendRateSearch = this.getRequestParams();\n this._loading = true;\n this.service\n .getDividendRateEvents(params)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dataList = data.data ? data.data : [];\n }\n });\n }\n\n selectedChange(val: string, type: string) {\n switch (type) {\n case 'year':\n this.searchDTO.year = val;\n break;\n default:\n }\n this.loadTable();\n }\n}\n","
    \n
    \n {{ 'list.search-record' | lang }}\n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n {{ 'page.total' | lang }} {{ dataList.length }}{{ 'page.records' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n
    \n {{ element.month }}\n
    \n
    \n \n {{ element.dividendRate | number : '1.3-3' }}\n \n \n {{ element.recordDate | ssmsDate }}\n \n\n \n
    \n \n \n \n \n {{ element.status }}\n \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { Activity, ActivityTypeE, activityTypeptions } from '../employer';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-edit-completed-activity',\n templateUrl: './edit-completed-activity.component.html',\n styleUrls: ['./edit-completed-activity.component.scss'],\n})\nexport class EditCompletedActivityComponent implements OnInit {\n form: FormGroup = new FormGroup({});\n\n selectedActivity?: Activity;\n\n activityTypeDropdownConfig: CdsDropdownConfig = {\n label: 'Activity Type',\n options: activityTypeptions,\n placeholder: 'Select Activity Type',\n };\n\n descriptionDropdownConfig: CdsDropdownConfig = {\n label: 'Activity Description',\n options: [\n {\n label: 'ER0013 - Employer Seminar (Public Onsite) 001 ',\n value: '1',\n },\n {\n label: 'ER0023 - Employer Seminar (Onsite) 202',\n value: '2',\n },\n {\n label: 'ER0051 - Employer Seminar (Public Virtual) 012',\n value: '3',\n },\n ],\n placeholder: 'Select Activity Type',\n };\n\n showDatePicker = true;\n\n displayedColumns = ['activityCode', 'description', 'score'];\n\n originFormValue: Activity = {\n activityType: '',\n description: '',\n completionDate: '',\n };\n\n sendFormValue: Activity = {};\n\n dataSource: Activity[] = [];\n\n AddButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n requestUrl = 'customer-service/employer/activity/completionSelect';\n\n requestParams = {\n employerId: this.data.employerId,\n activityType: ActivityTypeE.ALL,\n };\n\n isLoading = false;\n\n nowTime = this.getNowTime();\n\n minTime = this.getMinTime();\n\n nowDateInStr = DateTime.now().toFormat('dd/MM/yyyy');\n\n minTimeInStr = DateTime.fromJSDate(this.minTime).toFormat('dd/MM/yyyy');\n\n get activityType() {\n return this.form.get('activityType') as FormControl;\n }\n\n get description() {\n return this.form.get('description') as FormControl;\n }\n\n get completionDate() {\n return this.form.get('completionDate') as FormControl;\n }\n\n get addDisabled() {\n if (this.dataSource[0]?.activityCode && this.completionDate.valid) {\n return false;\n }\n return true;\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private employerService: EmployerService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n employerId: string;\n title: string;\n isEdit: boolean;\n activity: Activity;\n }\n ) {}\n\n ngOnInit(): void {\n this.initDataSource();\n this.initData();\n this.initForm();\n\n if (!this.data.isEdit) {\n this.description.disable();\n }\n }\n\n initData() {\n if (this.data.isEdit) {\n this.data.activity.createdAt = this.data.activity.completionDate;\n this.dataSource = [deepCopy(this.data.activity)];\n\n this.sendFormValue = {\n activityType: this.data.activity.activityType,\n description: this.data.activity.description,\n completionDate: moment(this.data.activity.completionDate).format('DD/MM/YYYY'),\n };\n\n this.originFormValue = deepCopy(this.sendFormValue);\n }\n }\n\n initDataSource() {\n this.dataSource = [\n {\n activityType: '',\n description: '',\n score: undefined,\n createdAt: '',\n },\n ];\n }\n\n initForm() {\n this.form = new FormGroup({\n activityType: new FormControl(''),\n description: new FormControl(''),\n completionDate: new FormControl('', [Validators.required, dateValidator('create.dateError', this.minTimeInStr, this.nowDateInStr)]),\n });\n\n if (this.data.isEdit) {\n setTimeout(() => {\n this.restore();\n });\n }\n\n // this.formChangeListener();\n }\n\n getMinTime() {\n return moment().subtract(5, 'year').toDate();\n }\n\n restore() {\n this.form.patchValue(this.originFormValue);\n if (!this.data.isEdit) {\n this.initDataSource();\n } else {\n this.dataSource = [deepCopy(this.data.activity)];\n }\n this.form.markAsPristine();\n this.form.markAsUntouched();\n }\n\n formChangeListener() {\n this.form.valueChanges.subscribe(() => {\n this.getSendFormValue();\n // const noFormChanged = Object.keys(this.sendFormValue).length === 0;\n // const haveEmptyString = Object.keys(this.form.value).some(key => this.form.value[key] === '');\n // this.addDisabled = noFormChanged || haveEmptyString;\n // this.resetDisabled = noFormChanged;\n });\n }\n\n getSendFormValue() {\n const value: Activity = {};\n Object.keys(this.originFormValue).forEach(key => {\n const currentFromValue: Activity = this.form.value;\n if ((currentFromValue as any)[key] !== (this.originFormValue as any)[key]) {\n (value as any)[key] = (currentFromValue as any)[key];\n }\n });\n this.sendFormValue = value;\n }\n\n reset() {\n if (!this.form.dirty) {\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.restore();\n if (!this.data.isEdit) {\n this.description.disable();\n }\n this.form.markAsUntouched();\n this.form.markAsPristine();\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n });\n }\n });\n }\n\n check() {\n const params: Activity = {\n employerId: this.data.employerId,\n activityId: this.selectedActivity?.id || this.data.activity.activityId,\n completionDate: this.dateTrans(this.completionDate.value),\n };\n this.isLoading = true;\n\n this.employerService\n .checkActivity(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.data === true) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n title: this.langService.translate('employer.er-activity-same-confirm'),\n cancelButtonName: this.langService.translate('confirm.backBotton'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doAdd();\n }\n });\n } else {\n this.doAdd();\n }\n });\n }\n\n add() {\n if (this.addDisabled || !this.form.dirty) {\n return;\n }\n\n this.check();\n }\n\n doAdd() {\n this.dialogRef.close({\n agree: true,\n data: {\n employerId: this.data.employerId,\n activityId: this.selectedActivity?.id || this.data.activity.activityId,\n completionId: this.data.activity?.id,\n completionDate: this.dateTrans(this.completionDate.value),\n },\n });\n }\n\n activityTypeChange(value: ActivityTypeE) {\n if (value) {\n this.description.enable();\n this.form.patchValue({\n description: '',\n //completionDate: '',\n });\n this.initDataSource();\n this.requestParams = {\n employerId: this.data.employerId,\n activityType: value,\n };\n setTimeout(() => {\n this.description?.markAsUntouched();\n this.description?.markAsPristine();\n });\n }\n }\n\n selectChange(data: Activity) {\n this.selectedActivity = data;\n this.dataSource = [data];\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n labelRenderFn(data: Activity) {\n return `${data.activityCode} - ${data.description}`;\n }\n\n getNowTime() {\n return moment().toDate();\n }\n close() {\n if (this.form.dirty) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n}\n","\n \n
    Update Completed Activity
    \n
    Edit Completed Activity Record
    \n
    \n \n
    \n
    \n\n \n \n\n
    \n \n\n \n \n \n\n
    \n \n \n \n Activity Code \n \n
    \n {{ element.activityCode }}\n
    \n
    \n
    \n\n \n \n Description \n \n
    \n
    \n
    \n {{ element.description }}\n
    \n
    \n Last Submission Date (DD/MM/YYYY):\n {{ element.createdAt | date : 'dd/MM/yyyy' }}\n
    \n
    \n
    \n
    \n
    \n\n \n \n Score \n \n
    \n {{ element.score }}\n
    \n
    \n
    \n\n \n \n
    \n
    \n\n
    \n \n \n \n \n Missing Date of Completion. \n Invalid Date. \n \n
    \n \n
    \n\n \n {{ 'common.reset' | lang }}\n\n {{ data.isEdit ? 'Update' : 'Add' }}\n \n
    \n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { EmployerProfileDetail, EmployerStatusE, isOrsoSchema } from '../employer';\n\n@Component({\n selector: 'app-employer-detail-quick-access',\n templateUrl: './employer-detail-quick-access.component.html',\n styleUrls: ['./employer-detail-quick-access.component.scss'],\n})\nexport class EmployerDetailQuickAccessComponent implements OnInit {\n @Input() employerProfileDetail?: EmployerProfileDetail;\n @Input() id?: string;\n\n @Output() changeShowQuickAccess = new EventEmitter();\n @Output() erProfileInfoDetailShow = new EventEmitter();\n\n isInternalStaff = false;\n\n _typeShow = false;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n get showTerminationDetail() {\n const status = this.employerProfileDetail?.employerStatus;\n return status === EmployerStatusE.TERMD || status === EmployerStatusE.TERMG;\n }\n\n constructor(private router: ActivatedRoute, private permissionService: PermissionService, private route: ActivatedRoute) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(hasPermission => {\n if (hasPermission) {\n this.isInternalStaff = true;\n }\n });\n this.initType(this.id || '');\n }\n\n initType(id: string) {\n this._typeShow = isOrsoSchema(id);\n }\n\n anchorScrollTo(id: string, isErProfileInfoDetailItem = false) {\n if (isErProfileInfoDetailItem) {\n this.erProfileInfoDetailShow.emit();\n }\n this.changeShowQuickAccess.emit(false);\n\n setTimeout(() => {\n window.location.hash = '';\n window.location.hash = id;\n setTimeout(() => {\n window.location.hash = '';\n });\n });\n }\n}\n","
    \n
    \n \n \n \n \n \n \n \n \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 { deepCopy } from 'src/app/utils/copy';\nimport { CurrencyE } from './../employer';\nimport { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { aggregateInvestedAmountCurrencyDropdownOptions, ErRecord, ErSearchRequest, ProfileAgentInfo } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { Router } from '@angular/router';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ColumnItem, Sort } from 'src/app/components/table/table-expand';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { descriptionValidator, numberStringValidator, rangeValidator } from 'src/app/shared/validators/validators';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n//test\n@Component({\n selector: 'app-employer-list',\n templateUrl: './employer-list.component.html',\n styleUrls: ['./employer-list.component.scss'],\n})\nexport class EmployerListComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n public Sort = Sort;\n form: FormGroup = new FormGroup({});\n formReady = false;\n showTable = true;\n _noResutlMsg?: string;\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n get employerNo() {\n return this.form?.get('employerNo');\n }\n\n get origErAcctCd() {\n return this.form?.get('origErAcctCd');\n }\n\n get eMpfId() {\n return this.form?.get('eMpfId');\n }\n\n get employerName() {\n return this.form?.get('employerName');\n }\n\n get intermediatoryCode() {\n return this.form?.get('intermediatoryCode');\n }\n\n get aggregateInvestedAmountCurrency() {\n return this.form?.get('aggregateInvestedAmountCurrency');\n }\n\n get aggregateInvestedAmountFrom() {\n return this.form?.get('aggregateInvestedAmountFrom');\n }\n\n get aggregateInvestedAmountTo() {\n return this.form?.get('aggregateInvestedAmountTo');\n }\n\n tempSeardhParams: ErSearchRequest = {\n page: 1,\n size: 10,\n };\n\n constructor(private service: EmployerService, private router: Router, private toastAlert: ToastAlertService, private permissionService: PermissionService) {}\n\n lineOfBusinessConfig: CdsDropdownConfig = {\n label: 'Line of Business',\n placeholder: 'Select Line of Business',\n options: [\n { label: 'MPF', value: 'MPF' },\n { label: 'ORSO', value: 'ORSO' },\n { label: 'MACAUCPF', value: 'MACAUCPF' },\n { label: 'MACAUPPS', value: 'MACAUPPS' },\n ],\n };\n isStaff = false;\n\n totalLivesConfig: CdsDropdownConfig = {\n label: 'Total Lives',\n placeholder: 'Select Number of Total Lives',\n options: [\n { label: '0-50 Lives', value: [0, 50] },\n { label: '51-100 Lives', value: [51, 100] },\n { label: '101-200 Lives', value: [101, 200] },\n { label: '>200 Lives', value: [201] },\n ],\n };\n\n _totalLiveModel?: number[];\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n aggregateInvestedAmountCurrencyConfig: CdsDropdownConfig = {\n label: '',\n placeholder: '',\n options: aggregateInvestedAmountCurrencyDropdownOptions,\n };\n\n _sortChange(columnItem: ColumnItem) {\n const temp = columnItem.prop?.replace('employerNo', 'erAcctCd').replace('employerName', 'companyNm');\n if (columnItem.sort !== Sort.DEFAULT) {\n this.tempSeardhParams.sort = `${temp},${columnItem.sort}`;\n } else {\n delete this.tempSeardhParams.sort;\n }\n this.getPageList();\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n });\n }\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n isCheckPass = true;\n\n _pageCount: IPaginationCount = { current: 1, count: 1 };\n _totalCount = 0;\n\n _erRecordList?: ErRecord[];\n _progress = false;\n isLoading = false;\n\n noCheckConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: false,\n };\n\n checkedConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n\n ngOnInit(): void {\n document.documentElement.scrollTop = 0;\n this.isLoading = true;\n this.permissionFilter();\n this.initForm();\n this.getPageList();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n employerNo: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n origErAcctCd: new FormControl('', [Validators.maxLength(100), numberStringValidator()]),\n eMpfId: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n employerName: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.employerNameValidTip, true)]),\n lineOfBusiness: new FormControl(''),\n _totalLiveModel: new FormControl(),\n intermediatoryCode: new FormControl('', [Validators.maxLength(20), numberStringValidator()]),\n aggregateInvestedAmountCurrency: new FormControl(CurrencyE.HKD),\n aggregateInvestedAmountFrom: new FormControl(''),\n aggregateInvestedAmountTo: new FormControl(''),\n },\n { validators: [rangeValidator('list.invalid-range', 'aggregateInvestedAmountFrom', 'aggregateInvestedAmountTo'), this.amountCUrrency()] }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n search() {\n if (this.searchButtonDisabled) return;\n this.resetButtonDisabled = false;\n this._pageCount = { current: 1, count: 1 };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.getPageList();\n }\n\n goToDetail(item: ErRecord) {\n this.router.navigate(['/employer/profile-detail'], {\n queryParams: {\n id: item.id,\n },\n });\n }\n\n expandRow(index: number) {\n if (this._erRecordList && this._erRecordList[index]) {\n this.getListExpansion(this._erRecordList[index].id, index).then(() => {});\n }\n }\n\n async getListExpansion(id: string, index: number) {\n this._progress = true;\n this.service\n .getListExpansion(id)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && this._erRecordList) {\n this._erRecordList[index].expandData = data.data;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n profileAgentInfo(val: ProfileAgentInfo) {\n if (!val) {\n return '';\n }\n return val.agentCode ? val.agentCode : '' + ' ' + val.agentName ? val.agentName : '';\n }\n defaultPaymentMethodStr(val: string[]) {\n if (!val) {\n return '';\n }\n let str = '';\n val.forEach((i, index) => {\n str = str + i + (index + 1 != val.length ? ' | ' : '');\n });\n return str;\n }\n reset() {\n if (this.resetButtonDisabled) return;\n this.resetButtonDisabled = true;\n this.initForm();\n // reloadTable to reset sort\n this.showTable = false;\n setTimeout(() => {\n this.showTable = true;\n this._pageCount = { current: 1, count: 1 };\n this.tempSeardhParams = { page: 1, size: 10 };\n this.getPageList();\n });\n }\n\n currencyChange() {\n this.aggregateInvestedAmountCurrency?.markAsPristine();\n this.aggregateInvestedAmountCurrency?.markAsUntouched();\n }\n\n noChange(val: string, type: 'aggregateInvestedAmountFrom' | 'aggregateInvestedAmountTo') {\n let result = 0;\n const num = Number(val);\n if (!isNaN(num)) {\n result = Math.abs(num);\n }\n this.form.get(type)?.setValue(result);\n }\n\n getPageList() {\n this._progress = true;\n\n const params: ErSearchRequest = this.getRequestParams();\n\n this.service\n .getPageList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n this._noResutlMsg = undefined;\n if (data.result === 4 && data.message == 'Restricted Manulife Staff Policy - Enquiry Prohibited') {\n this._erRecordList = [];\n this._pageCount.count = 0;\n this._totalCount = 0;\n this._noResutlMsg = data.message;\n console.log(data.message);\n return;\n }\n if (data.result === 0 && data.data) {\n this._erRecordList = data.data.empty ? [] : data.data.content;\n this._pageCount.count = data.data.totalPages;\n this._totalCount = data.data.totalElements;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTempSearchParams(sort = '') {\n const params: ErSearchRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this._pageCount.current as number) - 1,\n size: 10,\n };\n if (params._totalLiveModel) {\n [params.startTotalLives, params.endTotalLives] = params._totalLiveModel;\n }\n\n if (!params.aggregateInvestedAmountFrom && !params.aggregateInvestedAmountTo) {\n delete params.aggregateInvestedAmountCurrency;\n delete params.aggregateInvestedAmountFrom;\n delete params.aggregateInvestedAmountTo;\n }\n\n if (sort) {\n params.sort = sort;\n }\n\n delete params._totalLiveModel;\n return params;\n }\n getRequestParams() {\n const params: ErSearchRequest = {\n ...this.tempSeardhParams,\n page: (this._pageCount.current as number) - 1,\n size: 10,\n };\n\n if (params.aggregateInvestedAmountFrom === '') {\n params.aggregateInvestedAmountFrom = 0;\n }\n if (params.aggregateInvestedAmountTo === '') {\n params.aggregateInvestedAmountTo = 10000000000000000;\n }\n return params;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n amountCUrrency(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const currencyControl = control.get('aggregateInvestedAmountCurrency');\n const amountFromControl = control.get('aggregateInvestedAmountFrom');\n const amountToControl = control.get('aggregateInvestedAmountTo');\n const currency = currencyControl?.value;\n const amountFrom = amountFromControl?.value;\n const amountTo = amountToControl?.value;\n\n const fromErrors = amountFromControl?.errors ? deepCopy(amountFromControl?.errors) : {};\n const toErrors = amountToControl?.errors ? deepCopy(amountToControl?.errors) : {};\n\n if (currency !== CurrencyE.HKD && amountFrom === '' && amountTo === '') {\n fromErrors['required'] = true;\n toErrors['required'] = true;\n\n amountFromControl?.markAsTouched();\n amountToControl?.markAsTouched();\n\n amountFromControl?.setErrors(fromErrors);\n amountToControl?.setErrors(toErrors);\n\n return null;\n }\n\n delete fromErrors['required'];\n delete toErrors['required'];\n amountFromControl?.setErrors(Object.keys(fromErrors).length === 0 ? null : fromErrors);\n amountToControl?.setErrors(Object.keys(toErrors).length === 0 ? null : toErrors);\n\n return null;\n };\n }\n\n channelStrGen(data?: string[]) {\n if (!data) return '';\n return data.join(' | ');\n }\n}\n","
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n \n\n
    \n Max length is 15\n\n {{ employerNo?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    \n \n\n
    \n Max length is 100\n\n {{ origErAcctCd?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    \n \n\n
    \n Max length is 20\n\n {{ eMpfId?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    \n \n\n
    \n Max length is 200\n\n {{ employerName?.errors?.['descriptionInvalid'] }}\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n \n
    \n \n\n
    \n Max length is 20\n\n {{ intermediatoryCode?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    \n
    \n
    Aggregate Invested Amount
    \n
    \n
    \n \n
    \n
    \n \n\n \n {{ aggregateInvestedAmountFrom?.errors?.['invalidRange'] | lang }}\n Please input amount from\n
    \n
    \n
    \n
    \n \n\n
    \n {{ aggregateInvestedAmountTo?.errors?.['invalidRange'] | lang }}\n Please input amount to\n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ _totalCount | number }} records\n
    \n
    \n\n\n \n \n\n\n
    \n
    \n \n {{ element['employerName'] }}\n \n
    \n
    \n \n {{ element['employerChineseName'] }}\n \n
    \n
    \n
    \n\n\n
    \n \n {{ element['employerName'] }}\n \n \n \n {{ element['employerChineseName'] }}\n \n
    \n
    \n\n\n
    \n \n \n \n \n \n \n \n
    0\" class=\"col-xs-12\">\n {{ 'list.related-companies' | lang }}\n
    \n 0\" [data]=\"element['relatedCompanies']\">\n \n \n \n \n \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, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { BillingClass, ContributionFrequencyE, contributionFrequencyMapObj } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'app-employer-profile-billing-class',\n templateUrl: './employer-profile-billing-class.component.html',\n styleUrls: ['./employer-profile-billing-class.component.scss'],\n})\nexport class EmployerProfileBillingClassComponent implements OnInit, OnChanges {\n isStaff = false;\n\n schema = '';\n\n _loadding = false;\n\n constructor(private router: Router, private service: EmployerService, private permissionService: PermissionService, private route: ActivatedRoute) {}\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id']) {\n if (this.id) {\n this.getBillingClassList(this.id);\n }\n }\n }\n\n @Input() id: string | undefined;\n\n data?: BillingClass[] = [];\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(havePermission => {\n if (havePermission) {\n this.isStaff = true;\n }\n });\n\n //const urlParams = new URLSearchParams(window.location.search);\n //this.schema = urlParams.get('schema') || '';\n }\n\n toDetail = (billingClass: BillingClass) => {\n this.router.navigate(['/employer/payroll-group-info'], {\n queryParams: {\n id: this.id,\n // entityCode: billingClass.entityCode,\n payrollGroupId: billingClass.payrollGroupId,\n //schema: this.schema,\n },\n });\n };\n\n getBillingClassList(id: string) {\n this._loadding = true;\n this.service\n .getBillingClassList(id)\n .pipe(\n finalize(() => {\n this._loadding = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.data = data.data;\n }\n });\n }\n\n contributionFrequencyRender(type: ContributionFrequencyE) {\n return contributionFrequencyMapObj[type] || '';\n }\n\n formatNum(id?: string) {\n if (!id) {\n return '';\n }\n if (Number(id) < 10) {\n return id.padStart(2, '0');\n }\n return id;\n }\n}\n","
    \n
    \n
    \n {{ 'er.employer-payroll-group' | lang }}\n
    \n
    \n\n
    \n \n
    \n\n\n \n
    \n
    \n
    \n
    \n {{ 'er.profile.01.lives' | lang }}\n
    \n
    \n {{ item.lives }}\n
    \n
    \n
    \n
    \n {{ 'payment.contribution-frequency' | lang }}\n
    \n
    \n {{ contributionFrequencyRender | fn : item.contributionFrequency }}\n
    \n
    \n
    \n
    \n {{ 'er.profile.effective-date' | lang }}\n
    \n
    \n {{ item.effDate | ssmsDate }}-{{ item.termDate | ssmsDate }}\n
    \n
    \n
    \n
    \n {{ 'er.profile.01.mcn' | lang }}\n
    \n
    \n {{ item.mcn }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ 'er.profile.view-more' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { CdsTableComponent } from '@cds/ng-data-table/table';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { finalize, Subscription } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { descriptionValidator, numberStringValidator } from 'src/app/shared/validators/validators';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { ErRecord, searchCompanyGroupRequest } from '../../employer';\nimport { CompanyGroupListRequest } from '../employer-profile-company-list';\nimport { EmployerProfileCompanyListService } from '../employer-profile-company-list.service';\n\nconst MIN_LENGTH = 2;\n\n@Component({\n selector: 'app-edit-company-list',\n templateUrl: './edit-company-list.component.html',\n styleUrls: ['./edit-company-list.component.scss'],\n})\nexport class EditCompanyListComponent implements OnInit {\n @ViewChild('table') table!: CdsTableComponent;\n\n dataSource: ErRecord[] = [];\n\n addButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n backToEditButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n companyRespOptions: CdsOption[] = [];\n\n selectedCompany: ErRecord | undefined = {\n id: '',\n employerName: '',\n employerChineseName: '',\n };\n\n codeTip = 'Please input numbers.';\n\n englishNameTip = 'Please input English, numbers, or special English characters.';\n\n chineseNameTip = 'Please input Chinese, numbers, or special characters.';\n\n form: FormGroup = new FormGroup({});\n\n searchForm: FormGroup = new FormGroup({});\n\n addDisabled = true;\n\n isLoading = false;\n\n show = true;\n\n ifShowAlert = false;\n\n alertValue = '';\n\n inEdit = true;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n displayedColumnsInSummary: string[] = [\n 'employerNo',\n 'employerName',\n 'totalLives',\n 'action',\n // 'relationshipScore',\n // 'aggregateInvestedAmount',\n // 'annualizedContribution',\n ];\n\n displayedColumnsInEdit: string[] = [...this.displayedColumnsInSummary, 'delete'];\n\n radioConfig: CdsRadioConfig = {\n options: [{ label: '', value: 1 }],\n };\n\n subscription?: Subscription;\n\n cannotAddTip = 'The selected company is already in another linked company group, before adding, please remove it from the group first.';\n\n get resetDisabled() {\n if (this.data?.value) {\n return JSON.stringify(this.data.value) === JSON.stringify(this.dataSource);\n } else {\n return true;\n }\n }\n\n get saveDisabled() {\n if (this.data?.value) {\n return JSON.stringify(this.data.value) === JSON.stringify(this.dataSource);\n } else {\n return true;\n }\n }\n\n get employerNo() {\n return this.searchForm.get('employerNo') as FormControl;\n }\n\n get employerName() {\n return this.searchForm.get('employerName') as FormControl;\n }\n\n get employerChineseName() {\n return this.searchForm.get('employerChineseName') as FormControl;\n }\n\n searchUrl = 'customer-service/employer/searchCompanyGroup';\n\n searchParams: searchCompanyGroupRequest = {\n employerNo: '',\n employerName: '',\n employerChineseName: '',\n employerId: '',\n };\n\n selectedEr?: ErRecord;\n\n MIN_LENGTH = MIN_LENGTH;\n\n showSearchForm = true;\n\n haveDeletePermission = false;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n public companyService: EmployerProfileCompanyListService,\n private alert: CdsAlertService,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n title: string;\n value: ErRecord[];\n id: string;\n }\n ) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.E, PermissionItem.CUSTOMER_EMPLOYER_SUBSIDIARY).then(havePermission => {\n if (havePermission) {\n this.haveDeletePermission = true;\n }\n this.initSearchForm();\n this.initSearchParams();\n this.loadTable();\n });\n }\n\n init() {\n this.ifShowAlert = false;\n this.initForm();\n this.initSearchForm();\n this.initSearchParams();\n }\n\n loadTable() {\n if (!this.isLoading) {\n this.isLoading = true;\n // set 10000 to get all data\n const params: CompanyGroupListRequest = toPageableRequest(this.pageCount, 10000);\n params.id = this.data.id;\n params.showAmount = false;\n\n this.companyService\n .getCompanyGroupList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.dataSource = res.data.content || [];\n\n if (this.dataSource.length === 0) {\n this.dataSource = [...this.data.value];\n }\n\n this.initForm();\n } else {\n this.toastError(res.message);\n }\n },\n error: err => {\n console.error('Call role-list API error: ', err);\n },\n });\n }\n }\n\n initForm() {\n const group: { [key: string]: FormControl } = {};\n this.dataSource.forEach(element => {\n group[element.id] = new FormControl(this.isParentCompanySelectedRadio(element.parentCompany));\n\n group[this.getSummaryId(element.id)] = new FormControl(this.isParentCompanySelectedRadio(element.parentCompany));\n });\n this.form = new FormGroup(group);\n }\n\n initSearchForm() {\n this.showSearchForm = false;\n setTimeout(() => {\n this.showSearchForm = true;\n this.searchForm = new FormGroup({\n employerNo: new FormControl('', [Validators.minLength(MIN_LENGTH), Validators.maxLength(15), numberStringValidator()]),\n employerName: new FormControl('', [Validators.minLength(MIN_LENGTH), Validators.maxLength(200), descriptionValidator(this.englishNameTip)]),\n employerChineseName: new FormControl('', [\n Validators.minLength(MIN_LENGTH),\n Validators.maxLength(200),\n descriptionValidator(this.chineseNameTip, true, true),\n ]),\n });\n });\n }\n\n private companySearch(key: string) {\n if (!!key && key.trim().length > 0 && !this.isLoading) {\n this.companyRespOptions = [];\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n // this.isLoading = true;\n //\n this.subscription = this.companyService\n .searchCompany(key, this.data.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.companyRespOptions = res.data.map(e => {\n return {\n label: e.employerName,\n details: e.employerNo,\n value: {\n ...e,\n parentCompany: 'N',\n },\n };\n });\n } else {\n this.toastError(res.message);\n }\n },\n error: err => {\n console.error(err);\n },\n });\n }\n }\n\n isParentCompanySelectedRadio(parentCompany: string | undefined) {\n return parentCompany === 'Y' ? 1 : undefined;\n }\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close({\n agree: false,\n });\n }\n }\n\n searchChange(value: string, key: 'employerNo' | 'employerName' | 'employerChineseName') {\n const control = this.searchForm.get(key) as FormControl;\n this.searchParams[key] = control.invalid ? '' : value;\n this.searchParams = { ...this.searchParams };\n this.searchParams.id = this.searchParams.employerId;\n this.selectedEr = undefined;\n this.ifShowAlert = false;\n }\n\n initSearchParams() {\n this.searchParams = {\n employerNo: '',\n employerName: '',\n employerChineseName: '',\n employerId: this.data.id,\n id: this.data.id,\n };\n }\n\n selectChange(data: ErRecord) {\n this.selectedEr = data;\n this.ifShowAlert = false;\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n if (this.dataSource.length > 1) {\n const noParentCompany = this.dataSource.every(element => element.parentCompany !== 'Y');\n if (noParentCompany) {\n this.showAlert('Parent company should be selected.');\n return;\n }\n }\n this.inEdit = false;\n this.initForm();\n }\n\n reset() {\n if (this.resetDisabled) return;\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.init();\n }\n });\n }\n\n resetSearch() {\n if (!this.searchForm.dirty) return;\n this.initSearchForm();\n this.initSearchParams();\n this.selectedEr = undefined;\n this.searchForm.markAsPristine();\n this.searchForm.markAsUntouched();\n this.ifShowAlert = false;\n }\n\n labelRenderFn = (key: 'employerNo' | 'employerName' | 'employerChineseName') => {\n return (data: ErRecord) => {\n if (key === 'employerNo') {\n return `${data.employerNo} - ${data.employerName}`;\n }\n return `${data.employerNo} - ${data[key]}`;\n };\n };\n\n companyNameRender(data: ErRecord) {\n return `${data.employerName}`;\n }\n\n chineseCompanyNameRender(data: ErRecord) {\n return `${data.employerChineseName}`;\n }\n\n delete(id: string) {\n const list: ErRecord[] = [];\n\n this.dataSource.forEach(element => {\n if (element.id !== id) {\n list.push(element);\n }\n });\n this.dataSource = list;\n this.checkAvailable();\n }\n\n radioChange(value: number, id: string) {\n this.dataSource = this.dataSource.map(element => {\n const data = { ...element };\n if (element.id === id) {\n data.parentCompany = 'Y';\n } else {\n data.parentCompany = 'N';\n }\n return data;\n });\n this.checkAvailable();\n this.initForm();\n }\n\n add() {\n if (this.selectedEr === undefined || this.searchForm.invalid) {\n return;\n }\n\n if (this.ifAlreadyExisted()) {\n this.showAlert(this.cannotAddTip);\n this.addDisabled = true;\n return;\n }\n this.isLoading = true;\n this.companyService\n .canAdd(this.data.id, this.selectedEr.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && this.selectedEr) {\n if (res.data === true) {\n this.dataSource = [...this.dataSource, this.selectedEr];\n this.checkAvailable();\n this.initForm();\n this.selectedEr = undefined;\n } else {\n this.showAlert(this.cannotAddTip);\n }\n } else {\n this.showAlert(res.message);\n this.addDisabled = true;\n }\n },\n error: err => {\n this.toastError(err.message);\n },\n });\n }\n\n checkAvailable() {\n // this.saveDisabled = false;\n this.ifShowAlert = false;\n }\n\n ifAlreadyExisted() {\n return this.dataSource.some(element => element.id === this.selectedEr?.id);\n }\n\n showAlert(value: string) {\n this.ifShowAlert = true;\n this.alertValue = value;\n }\n\n getDisplayedColumns(inEdit: boolean) {\n return inEdit && this.haveDeletePermission ? this.displayedColumnsInEdit : this.displayedColumnsInSummary;\n }\n\n getSummaryId(id: string) {\n return `summary-${id}`;\n }\n\n backToEdit() {\n this.inEdit = true;\n this.initForm();\n }\n\n confirm() {\n this.dialogRef.close({\n agree: true,\n data: this.dataSource,\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","\n \n
    \n
    {{ inEdit ? 'Edit Parent/ Subsidiary Company List' : 'Summary' }}
    \n
    \n\n
    \n \n
    \n
    \n\n \n \n
    \n \n \n \n Minimum 2 characters.\n Max length is 15.\n Please input numbers.\n \n \n\n \n \n \n Minimum 2 characters.\n Max length is 200.\n {{ employerName.errors?.['descriptionInvalid'] | lang }}\n \n \n\n \n \n \n Minimum 2 characters.\n Max length is 200.\n {{ employerChineseName.errors?.['descriptionInvalid'] | lang }}\n \n \n
    \n Add\n Reset\n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n Employer Account Code\n {{ element.employerNo }}\n \n \n \n Employer Name \n \n
    \n {{ element.employerName }}\n {{ element.employerChineseName }}\n
    \n
    \n
    \n
    {{ companyService.getStatus(element.employerStatus) }}
    \n
    \n
    \n
    \n \n \n Total Lives \n \n {{ element.totalLives }}\n \n \n \n \n Parent Company \n \n \n \n \n \n \n \n\n \n \n Relationship Score \n \n {{ element.relationshipScore }}\n \n \n\n \n \n Aggregate Invested Amount \n \n {{ element.aggregateInvestedAmount ? 'HKD ' + (element.aggregateInvestedAmount | number : '1.2-2') : '' }}\n \n \n\n \n \n Annualized Contribution \n \n {{ element.aggregateInvestedAmount ? 'HKD ' + (element.annualizedContribution | number : '1.2-2') : '' }}\n \n \n\n \n \n \n \n \n \n\n \n\n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n {{ 'common.reset' | lang }}\n\n {{ 'common.save' | lang }}\n \n\n \n {{ 'common.backToEdit' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n
    \n
    \n
    \n
    \n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { EmployerProfileDetail, ErRecord, RelationshipTotalCount } from '../employer';\nimport { EditCompanyListComponent } from './edit-company-list/edit-company-list.component';\nimport { CompanyGroupListRequest } from './employer-profile-company-list';\nimport { EmployerProfileCompanyListService } from './employer-profile-company-list.service';\n\n@Component({\n selector: 'app-employer-profile-company-list',\n templateUrl: './employer-profile-company-list.component.html',\n styleUrls: ['./employer-profile-company-list.component.scss'],\n})\nexport class EmployerProfileCompanyListComponent implements OnInit {\n @Input() employerDetaildata?: EmployerProfileDetail;\n @Input() relationshipTotalCount?: RelationshipTotalCount = {};\n\n @Output() updateTotalScore = new EventEmitter();\n\n dataSource: ErRecord[] = [];\n totoalCountDataSource: RelationshipTotalCount[] = [];\n displayedColumns: string[] = [\n 'employerNo',\n 'employerName',\n 'totalLives',\n 'isParentCompany',\n 'relationshipScore',\n 'aggregateInvestedAmount',\n 'annualizedContribution',\n ];\n displayedTotalCountColumns: string[] = ['totalAggregateInvestedAmount', 'totalAnnualizedContribution'];\n isLoading = false;\n form: FormGroup = new FormGroup({});\n radioConfig: CdsRadioConfig = {\n options: [{ label: '', value: 1 }],\n };\n isChecked = true;\n\n editable = false;\n\n id: string | undefined;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n isStaff = false;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private toast: CdsToastService,\n private langService: CdsLangService,\n public companyService: EmployerProfileCompanyListService,\n private alert: CdsAlertService,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.id = this.employerDetaildata?.id;\n this.permissionFilter();\n this.loadTable();\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n });\n }\n\n loadTable() {\n if (!this.isLoading && this.id !== undefined) {\n this.isLoading = true;\n const params: CompanyGroupListRequest = toPageableRequest(this.pageCount, 10);\n params.id = this.id;\n params.showAmount = true;\n\n this.companyService\n .getCompanyGroupList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.dataSource = res.data.content || [];\n\n if (this.pageCount.current != res.data.number + 1) {\n this.pageCount.current = res.data.number + 1;\n }\n if (this.pageCount.count !== res.data.totalPages) {\n this.pageCount.count = res.data.totalPages;\n }\n this.pageCount = { ...this.pageCount };\n this.ifEditable();\n if (this.dataSource.length === 0) {\n this.noCompanyLinkedHandler();\n }\n this.initForm();\n } else {\n this.toast.error(res.message);\n }\n },\n error: err => {\n console.error('Call role-list API error: ', err);\n },\n });\n }\n }\n\n // ngOnChanges(changes: SimpleChanges): void {\n // if (changes['relationshipTotalCount'] && changes['relationshipTotalCount'].currentValue) {\n // this.totoalCountDataSource = [changes['relationshipTotalCount'].currentValue];\n // }\n // }\n\n ifEditable() {\n const noParentCompany = this.dataSource.every(element => element.parentCompany !== 'Y');\n const isParentCompany = this.dataSource.some(element => element.id === this.id && element.parentCompany === 'Y');\n this.editable = noParentCompany || isParentCompany;\n }\n\n noCompanyLinkedHandler() {\n if (this.employerDetaildata) {\n const currentCompanyObj: ErRecord = {\n id: this.employerDetaildata.id,\n employerNo: this.employerDetaildata.employerAccountCode,\n employerName: this.employerDetaildata.companyName,\n employerChineseName: this.employerDetaildata.companyName,\n totalLives: this.employerDetaildata.totalLives,\n relationshipScore: this.employerDetaildata.relationshipScore,\n employerStatus: this.employerDetaildata.employerStatus,\n parentCompany: 'N',\n };\n\n this.dataSource = [currentCompanyObj];\n }\n }\n\n initForm() {\n const group: { [key: string]: FormControl } = {};\n this.dataSource.forEach(element => {\n group[element.id] = new FormControl(this.isParentCompanySelectedRadio(element.parentCompany));\n });\n this.form = new FormGroup(group);\n }\n\n isParentCompanySelectedRadio(parentCompany: string | undefined) {\n return parentCompany === 'Y' ? 1 : undefined;\n }\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n this.updateTotalScore.emit();\n });\n }\n\n syncDataSource() {\n // stay in sync with edit page data\n return this.dataSource.map(item => {\n item.relationshipScore = null;\n item.aggregateInvestedAmount = null;\n item.annualizedContribution = null;\n return item;\n });\n }\n\n edit() {\n this.cdsPopup\n .open(EditCompanyListComponent, {\n size: 'lg',\n data: {\n value: this.syncDataSource(),\n id: this.id,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree && this.id) {\n this.companyService\n .commit(result.data, this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.requestAlert(res.message);\n }\n },\n error: err => {\n this.requestAlert(err.message);\n },\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n\n requestAlert(message: string) {\n this.alert.error('Got Error', message);\n }\n}\n","
    \n
    \n
    \n Parent/ Subsidiary Company List\n \n
    \n
    \n \n
    \n Edit\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    Total Relationship Score
    \n
    {{ relationshipTotalCount?.totalRelationshipScore }}
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Total Aggregate Invested AmountTotal Annualized Contribution
    HKD {{ relationshipTotalCount?.totalAggregateInvestedAmount | number : '1.2-2' }}HKD {{ relationshipTotalCount?.totalAnnualizedContribution | number : '1.2-2' }}
    \n
    \n\n
    \n \n \n \n \n Employer Account Code \n {{ element.employerNo }}\n \n\n \n \n Employer Name \n \n
    \n {{ element.employerName }}\n
    \n
    {{ element.employerChineseName }}
    \n
    \n
    \n
    {{ companyService.getStatus(element.employerStatus) }}
    \n
    \n
    \n
    \n\n \n \n Total Lives \n \n {{ element.totalLives }}\n \n \n\n \n \n Parent Company \n \n \n \n \n\n \n \n Relationship Score \n \n {{ element.relationshipScore }}\n \n \n\n \n \n Aggregate Invested Amount \n HKD {{ element.aggregateInvestedAmount | number : '1.2-2' }} \n \n\n \n \n Annualized Contribution \n HKD {{ element.annualizedContribution | number : '1.2-2' }} \n \n\n \n\n \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { EmployerStatusE, employerStatusMapObj, ErRecord } from '../employer';\nimport { CompanyGroupListRequest } from './employer-profile-company-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EmployerProfileCompanyListService {\n constructor(private http: HttpClient) {}\n\n private getApiPath(...strings: string[]) {\n return environment.apiPrefix.concat('/ext/eb-ssms/customer-service').concat(...strings);\n }\n private getCompanyAipPath(iStr: string) {\n return this.getApiPath('/employer', iStr);\n }\n\n getCompanyGroupList(params: CompanyGroupListRequest): Observable> {\n return this.http.get>(this.getCompanyAipPath('/companyGroupList'), {\n params: filterParams(params),\n });\n }\n\n findAll(id: string): Observable> {\n return this.http.get>(this.getCompanyAipPath('/companyGroupDropdown'), {\n params: { id },\n });\n }\n\n searchCompany(searchKey: string, employerId: string): Observable> {\n return this.http.get>(this.getCompanyAipPath('/searchCompanyGroup'), {\n params: {\n searchKey,\n employerId,\n id: employerId,\n },\n });\n }\n\n canAdd(employerId: string, checkId: string): Observable> {\n return this.http.get>(this.getCompanyAipPath('/canAddCompanyGroup'), {\n params: {\n employerId: employerId,\n id: employerId,\n checkIds: [checkId],\n },\n });\n }\n\n commit(data: ErRecord[], id: string): Observable> {\n return this.http.post>(this.getCompanyAipPath('/commitCompanyGroup'), {\n list: this.getParamList(data),\n employerId: id,\n id: id,\n });\n }\n\n private getParamList(data: ErRecord[]) {\n return data.map(element => {\n return {\n employerId: element.id,\n parent: element.parentCompany,\n };\n });\n }\n\n getStatusColorStyle(status?: EmployerStatusE) {\n if (!status) {\n return '';\n }\n return `background-color: ${employerStatusMapObj[status]?.color};`;\n }\n\n getStatus(status?: EmployerStatusE) {\n if (!status) {\n return '';\n }\n return employerStatusMapObj[status]?.text;\n }\n}\n","import { IPageableRequest } from 'src/app/core/models/request';\n\nexport interface EmployerStatusData {\n text: string;\n chineseText?: string;\n color: string;\n}\n\nexport enum ContactStatusE {\n ACTIVE = 'ACTIVE',\n INVALID = 'INVALID',\n}\n\nexport const ContactStatusMapObj = {\n [ContactStatusE.INVALID]: {\n text: 'Invalid',\n color: '#8E90A2',\n },\n [ContactStatusE.ACTIVE]: {\n text: 'Active',\n color: '#00A758',\n },\n};\n\nexport interface CompanyGroupListRequest extends IPageableRequest {\n id?: string;\n showAmount?: boolean;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\n\n@Component({\n selector: 'app-inline-alert',\n templateUrl: './inline-alert.component.html',\n styleUrls: ['./inline-alert.component.scss'],\n})\nexport class InlineAlertComponent implements OnInit {\n @Input() value = '';\n\n iconConfig: CdsIconConfig = {\n color: '#fff',\n };\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n
    \n \n
    \n
    {{ value }}
    \n
    \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { EmployerProfileDetail, isOrsoSchema, RelationshipTotalCount } from '../employer';\nimport { EmployerProfileInformationComponent } from '../employer-profile-information/employer-profile-information.component';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-employer-profile-detail',\n templateUrl: './employer-profile-detail.component.html',\n styleUrls: ['./employer-profile-detail.component.scss'],\n})\nexport class EmployerProfileDetailComponent implements OnInit {\n @ViewChild('erProfileInfo')\n erProfileInfoComponent!: EmployerProfileInformationComponent;\n erInfoDetailShow = false;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n relationshipTotalCount?: RelationshipTotalCount = {};\n\n id = '';\n\n detailLoading = false;\n\n scoreLoading = false;\n\n isHeaderSticky = false;\n\n get isLoading() {\n return this.detailLoading || this.scoreLoading;\n }\n\n isStaff = false;\n\n haveSqPermission = false;\n\n haveSubsidiaryPermission = false;\n\n _typeShow = false;\n\n constructor(\n private route: ActivatedRoute,\n private service: EmployerService,\n private layoutHeaderService: LayoutHeaderService,\n private router: Router,\n private permissionService: PermissionService,\n private toastAlert: ToastAlertService\n ) {}\n\n headerButton: AdminHeaderConfig = {\n title: 'er.profile.title',\n backButton: {\n text: 'Employer Enquiry Information Page',\n url: '#',\n method: this.back.bind(this),\n },\n };\n\n back() {\n this.router.navigate(['/employer/list']);\n }\n employerProfileDetail?: EmployerProfileDetail;\n\n ngOnInit(): void {\n document.documentElement.scrollTop = 0;\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n\n this.getPermissions();\n\n this.id = this.route.snapshot.queryParams['id'];\n this.getProfileDetail(this.id).then(id => {\n this.id = id;\n this.initType(this.id);\n this.getTotalScore(this.id);\n });\n }\n\n getPermissions() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(havePermission => {\n if (havePermission) {\n this.isStaff = true;\n }\n });\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER_SQ).then(havePermission => {\n if (havePermission) {\n this.haveSqPermission = true;\n }\n });\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER_SUBSIDIARY).then(havePermission => {\n if (havePermission) {\n this.haveSubsidiaryPermission = true;\n }\n });\n }\n\n getProfileDetail(id: string) {\n return new Promise(resolve => {\n this.detailLoading = true;\n this.service\n .getProfileDetail(id)\n .pipe(\n finalize(() => {\n this.detailLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.employerProfileDetail = data.data;\n if (data.data?.id) {\n resolve(data.data.id);\n }\n } else {\n this.toastError(data.message);\n }\n });\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getTotalScore(id: string) {\n this.scoreLoading = true;\n this.service\n .getTotalScore(id)\n .pipe(\n finalize(() => {\n this.scoreLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.relationshipTotalCount = res.data;\n }\n });\n }\n\n erProfileInfoDetailShow() {\n this.erProfileInfoComponent.detailShow = true;\n }\n\n showPlaceholderHeight(isSticky: boolean) {\n this.isHeaderSticky = isSticky;\n }\n\n initType(id?: string) {\n this._typeShow = isOrsoSchema(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","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CommentsHistoryComponent } from 'src/app/views/employer/commonts-history/comments-history.component';\nimport { SpecialManagementPopupComponent } from 'src/app/views/employer/special-management-popup/special-management-popup.component';\nimport {\n AccountTypeE,\n BusinessNatureE,\n businessNatureMapObj,\n CommentHistory,\n CommunicationTypeE,\n communicationTypeMapObj,\n CompanyTypeE,\n companyTypeMapObj,\n CurrencyE,\n currencyMapObj,\n EmployerProfileDetail,\n EmployerStatusE,\n employerStatusMapObj,\n erAccountTypeMap,\n LanguageTypeE,\n languageTypeMapObj,\n LspspoffsetSeqE,\n lspspoffsetSeqMapObj,\n OrsoAppSignalE,\n orsoAppSignalMapObj,\n RegistrationTypeE,\n registrationTypeMapObj,\n RelationshipTotalCount,\n SchemeMergeSignalE,\n schemeMergeSignalMapObj,\n SourceOfFundAndWealthE,\n sourceOfFundAndWealthMapObj,\n SubmitChannelE,\n submitChannelMapObj,\n} from '../employer';\nimport { EmployerProfileInvestedComponent } from '../employer-profile-invested/employer-profile-invested.component';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-employer-profile-information',\n templateUrl: './employer-profile-information.component.html',\n styleUrls: ['./employer-profile-information.component.scss'],\n})\nexport class EmployerProfileInformationComponent implements OnInit, OnChanges {\n constructor(\n public service: EmployerService,\n private router: Router,\n private cdsPopup: CdsPopupService,\n private permissionService: PermissionService,\n private langService: CdsLangService,\n private toastAlert: ToastAlertService\n ) {}\n\n @Input() detailShow = false;\n others = false;\n @Input() data?: EmployerProfileDetail;\n @Input() relationshipTotalCount?: RelationshipTotalCount = {};\n commentsShow = false;\n commentsData = '';\n comments?: CommentHistory;\n\n resetConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: true,\n };\n confirmConfig: CdsButtonConfig = {\n size: 'sm',\n disabled: true,\n };\n\n isStaff = false;\n haveSpecialOfferPermission = false;\n haveActivityCodePermission = false;\n\n activityScore = 0;\n\n PermissionAccess = PermissionAccess;\n PermissionItem = PermissionItem;\n\n employerStatusMapObj = employerStatusMapObj;\n\n workflowReferenceNos: string[] = [];\n\n EmployerStatusE = EmployerStatusE;\n\n get showTerminationDetail() {\n const status = this.data?.employerStatus;\n return status === EmployerStatusE.TERMD || status === EmployerStatusE.TERMG;\n }\n\n ngOnInit(): void {\n this.getPermission();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && changes['data'].currentValue) {\n // this.getProfileDetail(changes['data'].currentValue.id);\n const workfolowData = this.data?.workflowReferenceNo;\n this.workflowReferenceNos = workfolowData ? workfolowData.split(',') : [];\n if (this.haveActivityCodePermission) {\n this.getActivityScore(changes['data'].currentValue.id);\n }\n }\n }\n\n goToWorkFlow(workflowRef?: string) {\n console.log(workflowRef, '>>');\n }\n\n getPermission() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(havePermission => {\n if (havePermission) {\n this.isStaff = true;\n }\n });\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER_ADDITIONAL_INFORMATION).then(havePermission => {\n if (havePermission) {\n this.haveSpecialOfferPermission = true;\n }\n });\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER_ACTIVITY_CODE).then(havePermission => {\n if (havePermission) {\n this.haveActivityCodePermission = true;\n }\n });\n }\n\n validating(val: string) {\n const reg = /[\\u4e00-\\u9fa5]/g;\n val = val.replace(reg, '');\n\n this.resetConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: this.data?.comments?.comments === val,\n };\n this.confirmConfig = {\n size: 'sm',\n disabled: this.data?.comments?.comments === val,\n };\n\n if (val.length > 1000) {\n val = val.slice(0, 1000);\n this.commentsShow = false;\n this.commentsData = val;\n setTimeout(() => {\n this.commentsShow = true;\n });\n } else {\n this.commentsData = val;\n }\n }\n\n reset() {\n if (this.resetConfig.disabled) return;\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.commentsData = this.data?.comments?.comments || '';\n this.validating(this.commentsData);\n }\n });\n }\n\n confirm() {\n if (!this.data) {\n return;\n }\n if (this.confirmConfig.disabled) return;\n if (!this.data?.comments) {\n this.data.comments = {\n customerId: this.data?.id,\n };\n }\n this.data.comments.comments = this.commentsData;\n this.service.updateComments(this.data.comments).subscribe(data => {\n if (data.result === 0 && this.data) {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.commentsShow = false;\n this.validating(this.commentsData);\n this.getProfileDetail(this.data?.id as string);\n });\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n showInfo() {\n this.cdsPopup.open(EmployerProfileInvestedComponent, {\n size: 'lg',\n data: {\n investedFundsData: this.data?.investedFundsInformationList,\n },\n });\n }\n\n showOfferManagement() {\n this.cdsPopup.open(SpecialManagementPopupComponent, {\n size: 'lg',\n data: {\n employerProfileDetail: this.data,\n },\n });\n }\n showCommentsLog() {\n this.cdsPopup.open(CommentsHistoryComponent, {\n size: 'lg',\n data: {\n customerId: this.data?.id,\n },\n });\n }\n\n editTrigger() {\n if (this.commentsShow && !this.resetConfig.disabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.commentsShow = !this.commentsShow;\n this.commentsData = this.data?.comments?.comments || '';\n this.validating(this.commentsData);\n }\n });\n } else {\n this.commentsShow = !this.commentsShow;\n this.commentsData = this.data?.comments?.comments || '';\n this.validating(this.commentsData);\n }\n }\n\n detailTrigger() {\n this.detailShow = !this.detailShow;\n }\n\n updateDateGen(value: string) {\n const dateTime = DateTime.fromISO(value);\n if (dateTime.isValid) {\n return dateTime.toFormat('hh:mma dd/MM/yyyy (Z') + 'T)';\n }\n return '';\n }\n\n getProfileDetail(id: string) {\n this.service.getProfileDetail(id).subscribe(data => {\n if (data.result === 0) {\n this.data = data.data;\n const workfolowData = data.data?.workflowReferenceNo;\n this.workflowReferenceNos = workfolowData ? workfolowData.split(',') : [];\n }\n });\n }\n\n getActivityScore(id: string) {\n this.service.getErActivityScore(id).subscribe(data => {\n if (data.result === 0) {\n this.activityScore = data.data as number;\n }\n });\n }\n\n goToActivityCodeDetail(id: string | undefined) {\n this.router.navigate(['/employer/employer-activity-record'], {\n queryParams: { id },\n });\n }\n\n gotoPool(commissionPoolId: string | undefined) {\n this.router.navigate(['/commission/pool-info'], {\n queryParams: { commissionPoolId },\n });\n }\n\n poolIdRender(id?: string) {\n if (id) {\n return id.split('-')[0];\n }\n return '';\n }\n\n dbClick(id: string) {\n this.router.navigate(['/commission/pool-info/'], {\n queryParams: { commissionPoolId: id },\n });\n }\n\n employerStatusRender(status: EmployerStatusE) {\n return employerStatusMapObj[status]?.text || '';\n }\n\n accountTypeRender(type?: AccountTypeE) {\n if (!type) {\n return '';\n }\n return erAccountTypeMap[type] || '';\n }\n\n registrationTypeRender(type: RegistrationTypeE) {\n return registrationTypeMapObj[type] || '';\n }\n\n companyTypeRender(type: CompanyTypeE) {\n return companyTypeMapObj[type] || '';\n }\n\n businessNatureRender(type: BusinessNatureE) {\n return businessNatureMapObj[type] || '';\n }\n\n orsoAppSignalRender(type: OrsoAppSignalE) {\n return orsoAppSignalMapObj[type] || '';\n }\n\n languageTypeRender(type: LanguageTypeE) {\n return languageTypeMapObj[type] || '';\n }\n\n currencyRender(type?: CurrencyE) {\n if (!type) {\n return '';\n }\n return currencyMapObj[type] || '';\n }\n\n communicationTypeRender(type: CommunicationTypeE) {\n return communicationTypeMapObj[type] || '';\n }\n\n submitChannelRender(type: SubmitChannelE) {\n return submitChannelMapObj[type] || '';\n }\n\n lspspoffsetSeqRender(type: LspspoffsetSeqE) {\n return lspspoffsetSeqMapObj[type] || '';\n }\n\n schemeMergeSignalRender(val: SchemeMergeSignalE) {\n return schemeMergeSignalMapObj[val] || '';\n }\n\n sourceOfFundAndWealthRender(val: SourceOfFundAndWealthE) {\n return sourceOfFundAndWealthMapObj[val] || '';\n }\n}\n","
    \n
    \n
    \n {{ 'er.profile.general-information' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    Total Relationship Score
    \n
    {{ relationshipTotalCount?.totalRelationshipScore }}
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n {{ 'er.profile.annualized-contribution' | lang }}\n \n
    \n
    \n
    \n {{ 'er.profile.aggregate' | lang }}\n \n
    \n
    \n
    \n {{ 'er.profile.total-lives' | lang }}\n
    \n
    \n
    \n {{ 'er.profile.vip-code' | lang }}\n \n
    \n
    HKD {{ data?.annualizedContribution | number : '1.2-2' }}\n \n {{ data?.totalLives | number }}{{ data?.vipCode || 'NB' }}
    \n
    \n\n
    \n
    \n
    \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n
    \n
    \n \n {{ data?.workflowReferenceNo }}\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n \n\n \n\n
    \n
    {{ 'er.profile.commission-information' | lang }}
    \n
    \n {{ 'er.profile.commission-pool-number' | lang }}\n {{ poolIdRender | fn : data?.commissionPoolNumber }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'er.profile.termination-details' | lang }}\n
    \n
    \n
    \n
    \n \n \n \n \n
    \n\n\n
    \n
    \n
    \n {{ 'er.profile.communication-method' | lang }}\n
    \n
    \n
    \n
    \n\n \n \n \n \n\n \n \n
    \n\n
    \n
    \n
    \n
    \n {{ 'employer.activity-record' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    Activity Score within 5 years:
    \n
    {{ activityScore }}
    \n
    \n
    \n\n
    \n
    \n
    \n\n \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'er.profile.comments' | lang }}\n
    \n\n \n
    \n \n
    \n Edit\n
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n View edit log history\n
    \n
    \n\n
    \n \n
    \n Cancel Editing\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n Latest update: {{ updateDateGen | fn : data?.comments?.updatedAt }}, by {{ data?.comments?.updatedName }}\n
    \n
    \n {{ data?.comments?.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 {{ 'er.profile.special-offer-management' | lang }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n View Client Additional Information Details\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'er.profile.view-all-info' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'er.profile.view-less' | lang }}\n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { ERInvestedFundsInformation } from '../employer';\n\n@Component({\n selector: 'app-employer-profile-invested',\n templateUrl: './employer-profile-invested.component.html',\n styleUrls: ['./employer-profile-invested.component.scss'],\n})\nexport class EmployerProfileInvestedComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: { investedFundsData: ERInvestedFundsInformation[] }\n ) {}\n\n investedFundsData?: ERInvestedFundsInformation[] = [];\n\n ngOnInit(): void {\n this.investedFundsData = this.data.investedFundsData;\n }\n\n gotIt() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
    \n \n
    \n
    \n {{ 'er.profile.invested-funds-information' | lang }}\n
    \n
    \n
    \n Fund Code\n
    \n
    \n Fund Description\n
    \n
    \n Fund Balance\n \n
    \n
    \n \n
    \n
    \n {{ item.fundCode }}\n
    \n
    \n {{ item.fundDescription }}\n
    \n
    \n {{ item.totalBalance | number : '1.2-2' }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n","import { PaymentNotice } from './../employer';\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { MONTH_OPTS } from 'src/app/config/month.config';\nimport { AppealDetails, EmployerProfileDetail, PaymentNoticeRequest, PaymentNoticeTableItem } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-employer-profile-payment-notice',\n templateUrl: './employer-profile-payment-notice.component.html',\n styleUrls: ['./employer-profile-payment-notice.component.scss'],\n})\nexport class EmployerProfilePaymentNoticeComponent implements OnInit, OnChanges {\n @Input() employerProfileDetail?: EmployerProfileDetail;\n\n radioConfig: CdsRadioConfig = {\n options: [\n { label: 'Contribution Date', value: 'DAY' },\n { label: 'Contribution Month', value: 'MONTH' },\n ],\n };\n\n form = new FormGroup({});\n\n data: PaymentNotice[] = [];\n\n paymentNoticeTableDataSource: PaymentNoticeTableItem[] = [];\n\n apealDetailsDataSource: AppealDetails[] = [];\n\n get dateControl() {\n return this.form.get('date');\n }\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'noticeIssueDate',\n title: 'Notice Issue Date',\n },\n {\n key: 'typeOfNotice',\n title: 'Type of Notice',\n },\n {\n key: 'noticeReferenceNumber',\n title: 'Notice Reference No.',\n },\n {\n key: 'firstPaymentDueDate',\n title: 'First Payment Due Date',\n },\n {\n key: 'secondPaymentDueDate',\n title: 'Second Payment Due Date',\n },\n ];\n\n apealDetailsColumnsConfig: ColumnConfig[] = [\n { key: 'appealSubmissionDate', title: 'Appeal Submission Date' },\n { key: 'appealResultStatus', title: 'Appeal Result Status' },\n { key: 'dateOfAppealResult', title: 'Date of Appeal Result' },\n { key: 'mpfaObjectionCaseNumber\t', title: 'MPFA Objection Case No.' },\n ];\n\n moreBtnCfg: CdsButtonConfig = BTN_CONFIG_TERTIARY;\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n get searchBy() {\n return this.form.get('searchBy')?.value || '';\n }\n\n get monthControl() {\n return this.form.get('month');\n }\n\n get yearControl() {\n return this.form.get('year');\n }\n\n monthCfg: CdsDropdownConfig = this.getMonthCfg();\n\n yearCfg: CdsDropdownConfig = this.getYearCfg();\n\n get currentMonth() {\n return new Date().getMonth();\n }\n\n get currentYear() {\n return new Date().getFullYear();\n }\n\n get currentDate() {\n return DateTime.now().toFormat('dd/MM/yyyy');\n }\n\n isLoading = false;\n\n showMore = false;\n\n constructor(private service: EmployerService, private toastAlert: ToastAlertService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['employerProfileDetail'] && changes['employerProfileDetail'].currentValue !== changes['employerProfileDetail'].previousValue) {\n if (this.employerProfileDetail) {\n this.getPaymentNotice();\n }\n }\n }\n\n ngOnInit(): void {\n this.initForm();\n }\n\n initForm() {\n this.form = new FormGroup({\n searchBy: new FormControl('DAY'),\n date: new FormControl(this.currentDate, [dateValidator('create.dateError', '', this.maxTimeInStr)]),\n month: new FormControl(this.currentMonth),\n year: new FormControl(this.currentYear),\n });\n }\n\n getPaymentNotice() {\n if (!this.employerProfileDetail) return;\n const params: PaymentNoticeRequest = {\n startDate: this.searchBy === 'DAY' ? this.dateTrans(this.dateControl?.value) : '',\n id: this.employerProfileDetail?.id,\n erAcctCd: this.employerProfileDetail?.employerAccountCode,\n type: this.searchBy === 'DAY' ? 'day' : 'month',\n conMnth: this.searchBy === 'DAY' ? '' : this.getConMnth(),\n };\n this.isLoading = true;\n this.showMore = false;\n this.service\n .getPaymentNotice(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.data = res.data?.list || [];\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n onDateChange() {\n if (this.dateControl?.valid) {\n this.getPaymentNotice();\n }\n }\n\n radioChange(value: string) {\n this.getPaymentNotice();\n if (value === 'MONTH') {\n // this.dateControl?.setValue(undefined);\n // this.monthControl?.setValue(this.currentMonth);\n // this.yearControl?.setValue(this.currentYear);\n } else {\n // this.monthControl?.setValue(undefined);\n // this.yearControl?.setValue(undefined);\n // this.dateControl?.setValue(this.currentDate);\n }\n }\n\n createMonthOpts(): CdsOption[] {\n if (this.yearControl?.value !== this.currentYear) {\n return [...MONTH_OPTS];\n }\n return MONTH_OPTS.slice(0, this.currentMonth + 1);\n }\n\n createYearOpts(): CdsOption[] {\n const result = [];\n for (let i = this.currentYear; i >= 1970; i--) {\n result.push({\n label: i.toString(),\n value: i,\n });\n }\n return result;\n }\n\n dateYearChange(value?: number) {\n this.monthCfg = this.getMonthCfg();\n if (this.currentYear === value && this.monthControl?.value > this.currentMonth) {\n this.monthControl?.setValue(undefined);\n } else if (value !== undefined) {\n this.getPaymentNotice();\n }\n }\n\n dateMonthChange(value?: number) {\n if (value !== undefined) {\n this.getPaymentNotice();\n }\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getConMnth() {\n if (this.monthControl?.value === '') return '';\n return DateTime.fromObject({ year: this.yearControl?.value, month: this.monthControl?.value + 1 }).toFormat('yyyy-MM');\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMonthCfg(): CdsDropdownConfig {\n return { options: this.createMonthOpts() };\n }\n\n getYearCfg(): CdsDropdownConfig {\n return { options: this.createYearOpts() };\n }\n\n clickShowMore() {\n this.showMore = true;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n
    \n
    \n
    Search By:
    \n \n
    \n
    \n
    Date:
    \n
    \n \n \n\n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n
    \n\n
    \n
    Month:
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n \n \n
    \n
    \n {{ 'account.contribution-period' | lang }}\n {{ item.contributionPeriodStartDate | ssmsDate }}\n - \n {{ item.contributionPeriodEndDate | ssmsDate }}\n
    \n\n
    \n
    \n {{ 'account.payment-notice' | lang }}\n
    \n\n
    \n \n \n \n {{ element['noticeIssueDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n {{ element['firstPaymentDueDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n {{ element['secondPaymentDueDate'] | date : 'dd/MM/yyyy' }}\n \n \n
    \n
    \n\n
    \n
    \n {{ 'account.appeal-details' | lang }}\n
    \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.title }}
    \n {{ element.appealSubmissionDate | ssmsDate }}\n \n {{ element.appealResultStatus }}\n \n {{ element.dateOfAppealResult | ssmsDate }}\n \n {{ element.mpfaObjectionCaseNumber }}\n
    \n
    \n
    \n
    Appeal Result Text:
    \n
    {{ element.appealResultText }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    +
    \n View More Records\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ErRecord, I18N_KEY, SpecialQuote, SpecialQuoteStatusOptions, SpecialQuoteTypeOptions } from '../../employer';\nimport { EmployerProfileCompanyListService } from '../../employer-profile-company-list/employer-profile-company-list.service';\nimport { EmployerService } from '../../employer.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\n\n@Component({\n selector: 'app-add-special-quote',\n templateUrl: './add-special-quote.component.html',\n styleUrls: ['./add-special-quote.component.scss'],\n})\nexport class AddSpecialQuoteComponent implements OnInit {\n @ViewChild('sqReferenceNo') sqReferenceNo?: NgModel;\n @ViewChild('sqSubmissionDate') sqSubmissionDate?: NgModel;\n @ViewChild('remarks') remarks?: NgModel;\n\n resetButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n backButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n saveButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n resetDisabled = true;\n\n saveDisabled = true;\n\n isLoading = false;\n\n isSummary = false;\n\n get nowDateStr() {\n return moment().format('DD/MM/YYYY');\n }\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_TERTIARY;\n\n customerOption: CdMultidropdownTopping[] = [];\n\n originDataSource: SpecialQuote = this.data.editMode\n ? {\n ...this.data.specialQuote,\n }\n : {\n sqReferenceNo: '',\n quoteType: undefined,\n sqSubmissionDate: '',\n customerIds: [],\n companyList: [],\n showRemarks: false,\n quoteStatus: undefined,\n remarks: '',\n };\n\n dataSource: SpecialQuote = deepCopy(this.originDataSource);\n\n txtfieldConfig: CdsTextfieldConfig = {\n label: 'SQ Reference No.',\n placeholder: 'Input SQ Reference No.',\n type: 'text',\n };\n\n dropdownConfig: CdsDropdownConfig = {\n label: 'Quote Type',\n placeholder: 'Select Quote Type',\n options: SpecialQuoteTypeOptions,\n };\n\n statusDropdownConfig: CdsDropdownConfig = {\n label: 'Status',\n placeholder: 'Select Status',\n options: SpecialQuoteStatusOptions,\n };\n\n selectedCustomerOption: CdMultidropdownTopping[] = [];\n\n selectAllIconConfig: CdsIconConfig = {\n color: '#EC6453',\n };\n\n showDatePicker = true;\n\n SpecialQuoteTypeOptions = SpecialQuoteTypeOptions;\n\n SpecialQuoteStatusOptions = SpecialQuoteStatusOptions;\n\n iconConfig: CdsIconConfig = {\n color: '#D03A39',\n size: 'sm',\n };\n\n I18N_KEY = I18N_KEY;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n get nowDate() {\n return new Date();\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n public employerService: EmployerService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private companyService: EmployerProfileCompanyListService,\n private toastAlert: ToastAlertService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n id: string;\n editMode: boolean;\n specialQuote: SpecialQuote;\n }\n ) {}\n\n ngOnInit(): void {\n if (!this.data.editMode) {\n this.loadCompany();\n }\n }\n\n loadCompany() {\n this.isLoading = true;\n this.companyService\n .findAll(this.data.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.customerOption = this.customerOptionGen(res.data);\n this.ifSelectAll(this.dataSource.companyList?.length);\n // this.add();\n this.originDataSource = deepCopy(this.dataSource);\n } else {\n this.toastAlert.show('error', 'common.error', res.message, 5000);\n }\n },\n });\n }\n\n customerOptionGen(data: ErRecord[]): CdMultidropdownTopping[] {\n return data\n .filter(item => item.id !== this.data.id)\n .map(item => {\n return {\n subLabel: item.employerName,\n label: item.employerNo || '',\n value: item.id,\n isParentCompany: item.parentCompany === 'Y',\n exatraInfo: item.parentCompany === 'Y' ? '(mother company)' : '',\n };\n });\n }\n\n delete() {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n title: 'Are you sure you want to delete this SQ record?',\n continueButtonName: this.langService.translate('common.delete'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close({\n agree: true,\n isDelete: true,\n });\n }\n });\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n // reload datepicker dom to clear the selected date\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.dataSource = deepCopy(this.originDataSource);\n this.sqReferenceNo?.control.markAsPristine();\n this.validate();\n });\n }\n });\n }\n\n save() {\n if (this.saveDisabled) {\n return;\n }\n\n this.isSummary = true;\n }\n\n confirm() {\n if (this.saveDisabled) {\n return;\n }\n\n const params = this.getAddParams();\n delete params.updatedAt;\n\n this.dialogRef.close({\n agree: true,\n params: params,\n });\n }\n validate() {\n setTimeout(() => {\n this.doValidate();\n });\n }\n\n doValidate = () => {\n const allValid =\n this.sqReferenceNo?.control.valid && this.sqSubmissionDate?.control.valid && (this.dataSource.showRemarks ? this.remarks?.control.valid : true);\n\n if (JSON.stringify(this.dataSource) !== JSON.stringify(this.originDataSource)) {\n this.resetDisabled = false;\n\n this.saveDisabled = !(\n !!this.dataSource.sqReferenceNo &&\n this.dataSource.quoteType !== undefined &&\n !!this.dataSource.sqSubmissionDate &&\n (this.dataSource.showRemarks ? !!this.dataSource.remarks : true) &&\n this.dataSource.quoteStatus !== undefined &&\n allValid\n );\n } else {\n this.resetDisabled = true;\n this.saveDisabled = true;\n }\n };\n\n getAddParams() {\n this.dataSource.customerIds = this.dataSource.companyList?.map(item => item.value);\n return this.dataSource;\n }\n\n selectAll() {\n if (this.ifSelectAll(this.dataSource.companyList?.length)) {\n this.dataSource.companyList = [];\n } else {\n this.dataSource.companyList = [...this.customerOption];\n }\n this.dataSource = { ...this.dataSource };\n this.validate();\n }\n\n ifSelectAll = (selectedLength?: number) => {\n if (!selectedLength) {\n return false;\n }\n if (selectedLength === this.customerOption.length) {\n return true;\n } else {\n return false;\n }\n };\n\n back() {\n this.isSummary = false;\n }\n\n close() {\n if (!this.resetDisabled) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n}\n","\n \n
    Edit Special Quote
    \n
    \n {{ isSummary ? 'Add Special Quote Summary' : 'Add Special Quote' }}\n
    \n
    \n \n
    \n
    \n\n \n
    \n \n\n \n
    \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n
    \n Misssing SQ Reference No.\n Max length is 50\n {{ sqReferenceNo?.errors?.['descriptionInvalid'] | lang }}\n
    \n
    \n\n \n
    \n \n \n\n
    \n Missing SQ Submission Date\n {{ sqSubmissionDate?.errors?.['dateInvalid'] | lang }}\n
    \n
    \n\n \n \n \n\n
    \n \n \n Apply to all Related Groups\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 input Remark message as ‘Remarks’ button is selected\n Max length is 200\n {{ remarks?.errors?.['descriptionInvalid'] | lang }}\n \n \n
    \n
    \n\n
    \n
    \n
    SQ Reference No.
    \n
    \n {{ dataSource.sqReferenceNo }}\n
    \n
    \n\n
    \n
    Apply to SSN
    \n
    \n
    \n {{ item.label }}{{ item.subLabel }}\n
    \n
    \n
    \n\n
    \n
    SQ Submission Date
    \n\n
    \n {{ dataSource.sqSubmissionDate }}\n
    \n
    \n\n
    \n
    Quote Type
    \n
    \n {{ employerService.optionLabelRender | fn : dataSource.quoteType : SpecialQuoteTypeOptions }}\n
    \n
    \n\n
    \n
    Status
    \n
    \n {{ employerService.optionLabelRender | fn : dataSource.quoteStatus : SpecialQuoteStatusOptions }}\n
    \n
    \n\n
    \n
    Remarks
    \n
    \n {{ dataSource.showRemarks ? dataSource.remarks : '' }}\n
    \n
    \n
    \n
    \n\n \n \n {{ 'common.reset' | lang }}\n\n {{ 'common.submit' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n\n \n {{ 'common.backToEdit' | lang }}\n\n {{ 'common.confirm' | lang }}\n \n \n
    \n\n\n \n
    \n
    \n \n
    \n Delete Record\n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsTableComponent } from '@cds/ng-data-table/table';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { MONTH_OPTS } from 'src/app/config/month.config';\nimport { QuoteTypeE, SpecialQuote, SpecialQuoteRequest, SpecialQuoteStatusOptions, SpecialQuoteTypeOptions } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { AddSpecialQuoteComponent } from './add-special-quote/add-special-quote.component';\n\n@Component({\n selector: 'app-employer-profile-special-quote',\n templateUrl: './employer-profile-special-quote.component.html',\n styleUrls: ['./employer-profile-special-quote.component.scss'],\n})\nexport class EmployerProfileSpecialQuoteComponent implements OnInit, OnChanges {\n @ViewChild('table') table!: CdsTableComponent;\n\n @Input() id?: string;\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_TERTIARY;\n\n isLoading = false;\n\n SpecialQuoteTypeOptions = SpecialQuoteTypeOptions;\n\n SpecialQuoteStatusOptions = SpecialQuoteStatusOptions;\n\n originDataSource: SpecialQuote[] = [];\n\n dataSource: SpecialQuote[] = [];\n\n txtfieldConfig: CdsTextfieldConfig = {\n placeholder: 'Input SQ Ref No.',\n type: 'text',\n };\n\n dropdownConfig: CdsDropdownConfig = {\n options: SpecialQuoteTypeOptions,\n };\n\n displayedColumnsWithoutPermission = ['referenceNo', 'type', 'submissionDate'];\n\n displayedColumns = [...this.displayedColumnsWithoutPermission, 'action'];\n\n columnsConfig: ColumnConfig[] = [\n { key: 'referenceNo', title: 'SQ Reference No.' },\n { key: 'type', title: 'Quote Type' },\n { key: 'submissionDate', title: 'SQ Submission Date' },\n { key: 'status', title: 'Status' },\n { key: 'updateDate', title: 'Last Status Update Date' },\n ];\n\n secondaryBtnCfg: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n noLoadMonth = true;\n\n canEdit = false;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n monthCfg: CdsDropdownConfig = {\n options: this.createMonthOpts(),\n };\n\n yearCfg: CdsDropdownConfig = {\n options: [],\n };\n\n formGroup = new FormGroup({\n month: new FormControl('All', []),\n year: new FormControl('All', []),\n });\n\n allowLoadTable = false;\n\n constructor(\n public employerService: EmployerService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_EMPLOYER_SQ).then(hasPermission => {\n this.canEdit = hasPermission;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id']) {\n if (this.id) {\n this.getYears();\n }\n }\n }\n\n getYears() {\n if (this.id) {\n this.isLoading = true;\n this.employerService\n .getSpecialQuoteSubmissionYears(this.id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n const currentYear = new Date().getFullYear();\n const minimumYear = res.data.length ? Math.min.apply(null, res.data) : currentYear;\n const options: CdsOption[] = [\n {\n label: 'All',\n value: 'All',\n },\n ];\n\n for (let i = currentYear; i >= minimumYear; i--) {\n options.push({\n label: i.toString(),\n value: i,\n });\n }\n\n this.yearCfg = {\n options,\n };\n const yearFormControl = this.formGroup.get('year');\n const selectYear = yearFormControl?.value as number;\n this.allowLoadTable = false;\n if (selectYear < minimumYear) {\n yearFormControl?.setValue('All');\n }\n this.loadTable();\n } else {\n this.toastError(res.message);\n }\n });\n }\n }\n\n loadTable() {\n if (this.id) {\n this.isLoading = true;\n const params: SpecialQuoteRequest = toPageableRequest(this.pageCount, 5);\n const selectMonth = this.formGroup.get('month')?.value;\n const selectYear = this.formGroup.get('year')?.value;\n\n if (selectMonth !== 'All') {\n params.sqSubmissionDateMonth = selectMonth + 1;\n }\n if (selectYear !== 'All') {\n params.sqSubmissionDateYear = this.formGroup.get('year')?.value;\n }\n this.employerService\n .getSpecialQuoteList(this.id, params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n this.allowLoadTable = true;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n // if current page has no data, reload the last page which has data\n if (!res.data.content?.length && res.data.totalPages !== 0) {\n // this will trigger loadTable()\n this.pageCount = {\n current: res.data.totalPages,\n count: res.data.totalPages,\n };\n } else {\n this.originDataSource = deepCopy(this.dataTrans(res.data.content || []));\n this.dataSource = deepCopy(this.originDataSource);\n if (this.pageCount.current != res.data.number + 1) {\n this.pageCount.current = res.data.number + 1;\n }\n if (this.pageCount.count !== res.data.totalPages) {\n this.pageCount.count = res.data.totalPages;\n }\n this.pageCount = { ...this.pageCount };\n }\n } else {\n this.toastError(res.message);\n }\n });\n }\n }\n\n dataTrans(data: SpecialQuote[]) {\n return data.map(item => {\n item.sqSubmissionDate = item.sqSubmissionDate ? moment(item.sqSubmissionDate).format('DD/MM/YYYY') : '';\n item.lastStatusUpdatedDate = item.lastStatusUpdatedDate ? moment(item.lastStatusUpdatedDate).format('DD/MM/YYYY') : '';\n item.showAllRemarks = false;\n item.showAllButton = false;\n return item;\n });\n }\n\n edit(id?: string) {\n const alreadyInEdit = this.dataSource.some(item => item.id !== id && item.inEdit);\n if (alreadyInEdit) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.changeEditStaus(id as string);\n }\n });\n } else {\n this.changeEditStaus(id as string);\n }\n }\n\n dateMonthChange() {\n const selectMonth = this.formGroup.get('month')?.value;\n const selectyear = this.formGroup.get('year')?.value;\n\n if (selectMonth === 'All' && selectyear == 'All') {\n this.noLoadMonth = true;\n } else {\n this.noLoadMonth = false;\n }\n\n if (this.allowLoadTable) {\n this.loadTable();\n }\n }\n\n dateYearChange() {\n const monthFormControl = this.formGroup.get('month');\n const selectYear = this.formGroup.get('year')?.value;\n //const selectmonth = this.formGroup.get('month')?.value;\n // eslint-disable-next-line no-debugger\n\n if (selectYear === 'All') {\n monthFormControl?.setValue('All');\n this.noLoadMonth = true;\n } else {\n this.noLoadMonth = false;\n }\n\n if (this.allowLoadTable) {\n this.loadTable();\n }\n }\n\n changeEditStaus(id: string) {\n this.dataSource.forEach(item => {\n if (item.id === id) {\n item.inEdit = true;\n } else {\n item.inEdit = false;\n }\n });\n\n this.dataSource = [...this.dataSource];\n }\n\n delete(data: SpecialQuote) {\n this.isLoading = true;\n this.employerService\n .deleteSpecialQuote(this.id as string, data.id as string)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n\n save = (id: string, quoteType: QuoteTypeE, sqReferenceNo: string, sqSubmissionDate: string) => {\n const ifSaveButtonDisabled = this.ifSaveButtonDisabled(id, quoteType, sqReferenceNo, sqSubmissionDate);\n if (ifSaveButtonDisabled) {\n return;\n }\n this.doSave(id);\n };\n\n doSave(id: string) {\n const lineData = this.getLineData(id, this.dataSource);\n const params: SpecialQuote = {\n id,\n customerId: this.id,\n sqReferenceNo: lineData?.sqReferenceNo,\n quoteType: lineData?.quoteType,\n sqSubmissionDate: this.paramDateTrans(lineData?.sqSubmissionDate),\n };\n this.isLoading = true;\n if (this.id !== undefined) {\n this.employerService\n .saveSpecialQuote(this.id, params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (lineData) {\n lineData.inEdit = false;\n }\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n }\n\n reset = (id: string, quoteType: QuoteTypeE, sqReferenceNo: string, sqSubmissionDate: string) => {\n const ifResetButtonDisabled = this.ifResetButtonDisabled(id, quoteType, sqReferenceNo, sqSubmissionDate);\n if (ifResetButtonDisabled) {\n return;\n }\n this.doReset(id);\n };\n\n doReset(id: string) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n const lineData = this.getLineData(id, this.dataSource);\n const originLineData = this.getLineData(id, this.originDataSource);\n if (lineData && originLineData) {\n lineData.inEdit = true;\n lineData.quoteType = originLineData.quoteType;\n lineData.sqReferenceNo = originLineData.sqReferenceNo;\n lineData.sqSubmissionDate = originLineData.sqSubmissionDate;\n this.dataSource = [...this.dataSource];\n }\n }\n });\n }\n\n getLineData(id: string, dataSource: SpecialQuote[]) {\n if (!id || !dataSource) {\n return null;\n }\n const lineData = dataSource.find(lineData => lineData.id === id);\n return lineData;\n }\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.getYears();\n });\n }\n\n addParamGen(value: SpecialQuote) {\n return {\n ...value,\n sqSubmissionDate: this.paramDateTrans(value.sqSubmissionDate),\n customerId: this.id,\n remarks: value.showRemarks ? value.remarks : '',\n };\n }\n\n paramDateTrans(dateStr?: string) {\n if (!dateStr) {\n return '';\n }\n return DateTime.fromFormat(dateStr, 'd/M/yyyy').toFormat('yyyy-MM-dd');\n }\n\n ifResetButtonDisabled = (id: string, quoteType: QuoteTypeE, sqReferenceNo: string, sqSubmissionDate: string) => {\n const originLineData = this.getLineData(id, this.originDataSource);\n if (\n originLineData &&\n quoteType === originLineData.quoteType &&\n sqReferenceNo === originLineData.sqReferenceNo &&\n sqSubmissionDate === originLineData.sqSubmissionDate\n ) {\n return true;\n }\n return false;\n };\n\n ifSaveButtonDisabled = (id: string, quoteType: QuoteTypeE, sqReferenceNo: string, sqSubmissionDate: string) => {\n const ifResetButtonDisabled = this.ifResetButtonDisabled(id, quoteType, sqReferenceNo, sqSubmissionDate);\n if (ifResetButtonDisabled) {\n return true;\n }\n if (quoteType !== undefined && sqReferenceNo && sqSubmissionDate) {\n return false;\n }\n return true;\n };\n\n add(data?: SpecialQuote) {\n const editMode = !!data;\n this.cdsPopup\n .open(AddSpecialQuoteComponent, {\n size: 'md',\n data: {\n id: this.id,\n specialQuote: {\n ...data,\n showRemarks: !!data?.remarks,\n },\n editMode: editMode,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree && this.id !== undefined) {\n if (result.isDelete) {\n this.delete(data as SpecialQuote);\n } else {\n const params = this.addParamGen(result.params);\n const requestObservable = editMode ? this.employerService.saveSpecialQuote(this.id, params) : this.employerService.addSpecialQuote(this.id, params);\n requestObservable\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n } else {\n this.isLoading = false;\n }\n });\n }\n\n remarksToggle = (index: number) => {\n this.dataSource[index].showAllRemarks = !this.dataSource[index].showAllRemarks;\n this.dataSource = [...this.dataSource];\n };\n\n showButton = (fold: boolean, element: SpecialQuote) => {\n element.showAllButton = fold;\n this.dataSource = [...this.dataSource];\n };\n\n createMonthOpts(): CdsOption[] {\n return [{ label: 'All', value: 'All', month: '00', days: 0 }, ...MONTH_OPTS];\n }\n\n createYearOpts(): CdsOption[] {\n const currentYear = new Date().getFullYear();\n const result = [];\n for (let i = currentYear; i >= 1970; i--) {\n result.push({\n label: i.toString(),\n value: i,\n });\n }\n return result;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n
    \n Special Quote\n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    SQ Submission 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 \n \n
    {{ item.title }}Action
    \n {{ element.sqReferenceNo }}\n \n {{ employerService.optionLabelRender | fn : element.quoteType : SpecialQuoteTypeOptions }}\n \n {{ element.sqSubmissionDate }}\n \n {{ employerService.optionLabelRender | fn : element.quoteStatus : SpecialQuoteStatusOptions }}\n \n {{ element.lastStatusUpdatedDate }}\n \n
    \n
    \n \n
    \n Edit\n
    \n
    \n
    \n
    \n \n
    \n Edit\n
    \n
    \n
    \n \n Remarks: \n
    \n\n
    \n {{ element.showAllRemarks ? 'Show Less' : 'Show All' }}\n
    \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 Special Quote\n
    \n
    \n
    \n
    \n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, Renderer2, ElementRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { BillingClass, EmployerProfile, EmployerProfileDetail, employerStatusMapObj } from '../employer';\nimport { EmployerProfileCompanyListService } from '../employer-profile-company-list/employer-profile-company-list.service';\nimport { EmployerProfileInvestedComponent } from '../employer-profile-invested/employer-profile-invested.component';\n\n@Component({\n selector: 'app-employer-profile-title',\n templateUrl: './employer-profile-title.component.html',\n styleUrls: ['./employer-profile-title.component.scss'],\n})\nexport class EmployerProfileTitleComponent implements OnInit {\n @Input() detailShow = false;\n @Input() positionShow = true;\n @Input() lineShow = true;\n @Input() showQuickAccessBtn = false;\n @Input() showErInfoBtn = false;\n @Input() employerProfileDetail?: EmployerProfileDetail;\n @Input() payrollGroup?: BillingClass;\n\n @Output() erProfileInfoDetailShow = new EventEmitter();\n @Output() stickyStatusChange = new EventEmitter();\n\n status = 'Active';\n\n data?: EmployerProfile;\n\n btnConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n showQuickAccess = false;\n\n id = '';\n schema = '';\n\n toolTipString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet nisl ultricies, ultrices augue id, finibus diam. ';\n\n sticky = false;\n\n employerStatusMapObj = employerStatusMapObj;\n\n constructor(\n private cdsPopup: CdsPopupService,\n public companyService: EmployerProfileCompanyListService,\n private router: Router,\n private route: ActivatedRoute,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.id = this.route.snapshot.queryParams['id'];\n this.schema = this.route.snapshot.queryParams['schema'];\n\n const scrollDiv = document.getElementsByClassName('cds-navigation-content')[0] as HTMLElement;\n scrollDiv.onscroll = this.scrollFunction;\n }\n\n scrollFunction = () => {\n const scrollDiv = document.getElementsByClassName('cds-navigation-content')[0] as HTMLElement;\n const navigation = document.getElementById('ttt') as HTMLElement;\n const style = getComputedStyle(navigation);\n const height = parseInt(style.paddingTop) + +parseInt(style.height) + parseInt(style.paddingBottom);\n if (scrollDiv.scrollTop > height) {\n this.sticky = true;\n this.forceRender();\n } else {\n this.sticky = false;\n this.sticky = false;\n this.forceRender();\n }\n };\n\n showInfo() {\n this.cdsPopup.open(EmployerProfileInvestedComponent, {\n size: 'lg',\n data: {},\n });\n }\n\n goBack() {\n this.router.navigate(['/employer/profile-detail'], {\n queryParams: {\n id: this.id,\n schema: this.schema,\n },\n });\n }\n\n quickAccess(status?: boolean) {\n if (status !== undefined) {\n this.showQuickAccess = status;\n } else {\n this.showQuickAccess = !this.showQuickAccess;\n }\n }\n\n updateDate(date: string) {\n if (!date) {\n return '';\n }\n return moment(date).format('h:mma DD MMM, YYYY');\n }\n\n forceRender() {\n this.cdr.detectChanges();\n this.stickyStatusChange.emit(this.sticky);\n const hostElement = this.el.nativeElement;\n this.renderer.setStyle(hostElement, 'box-shadow', this.sticky ? '0px 8px 6px -6px rgba(0, 0, 0, 0.1)' : '');\n this.renderer.setStyle(hostElement, 'border-top', this.sticky ? '1px solid #ededed' : '');\n }\n}\n","
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ employerProfileDetail?.companyName || ' ' }}\n \n {{ employerProfileDetail?.companyChineseName || ' ' }}\n \n
    \n\n
    \n
    {{ employerProfileDetail?.companyName || ' ' }}
    \n
    \n {{ employerProfileDetail?.companyChineseName || ' ' }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n Latest update from eMPF:\n {{ updateDate | fn : employerProfileDetail?.latestUpdateFromEMPF }}\n (HKT)\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n\n \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n \n
    \n \n Quick Acess\n
    \n
    \n \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { EmployerProfileDetail } from '../employer';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-employer-profile',\n templateUrl: './employer-profile.component.html',\n styleUrls: ['./employer-profile.component.scss'],\n})\nexport class EmployerProfileComponent implements OnInit {\n constructor(private layoutHeaderService: LayoutHeaderService, private route: ActivatedRoute, private service: EmployerService) {}\n\n headerButton: AdminHeaderConfig = {\n title: 'er.profile.title',\n backButton: {\n text: 'Employer Enquiry Information Page',\n url: '/employer/list',\n },\n };\n\n employerProfileDetail?: EmployerProfileDetail;\n\n ngOnInit(): void {\n document.documentElement.scrollTop = 0;\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n\n const _id = this.route.snapshot.queryParams['id'];\n this.getProfileDetail(_id);\n }\n\n getProfileDetail(id: string) {\n this.service.getProfileDetail(id).subscribe(data => {\n if (data.result === 0) {\n this.employerProfileDetail = data.data;\n }\n });\n }\n}\n","\n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { ActivityRecordsComponent } from './activity-records/activity-records.component';\nimport { AgentSepComponent } from './agent-sep/agent-sep.component';\nimport { EmployerListComponent } from './employer-list/employer-list.component';\nimport { EmployerProfileDetailComponent } from './employer-profile-detail/employer-profile-detail.component';\nimport { EmployerProfileComponent } from './employer-profile/employer-profile.component';\nimport { FundBenifitComponent } from './fund-benifit/fund-benifit.component';\nimport { PayrollGroupActivityRecordComponent } from './payroll-group-activity-record/payroll-group-activity-record.component';\nimport { PaymentRecordDetailsComponent } from './payroll-group-info/payment-record-details/payment-record-details.component';\nimport { PayrollGroupInfoComponent } from './payroll-group-info/payroll-group-info.component';\nimport { SqLogMasterListComponent } from './sq-log-master-list/sq-log-master-list.component';\n\nconst routes: Routes = [\n {\n path: 'employer',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'profile',\n component: EmployerProfileComponent,\n data: {\n title: 'er.profile.title',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n CUSTOMER_EMPLOYER_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'list',\n component: EmployerListComponent,\n data: {\n title: 'er.list.title',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n CUSTOMER_EMPLOYER_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'profile-detail',\n component: EmployerProfileDetailComponent,\n data: {\n title: 'er.profile.title',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n CUSTOMER_EMPLOYER_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'payroll-group-info',\n component: PayrollGroupInfoComponent,\n data: {\n title: 'er.profile.title',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n CUSTOMER_EMPLOYER_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'payment-record-detail',\n component: PaymentRecordDetailsComponent,\n data: {\n title: 'payment.record-details',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n },\n },\n },\n {\n path: 'activity-record',\n component: ActivityRecordsComponent,\n data: {\n title: 'employer.activity-record-list',\n roles: {\n CUSTOMER_EMPLOYER_ACTIVITY_CODE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'employer-activity-record',\n component: PayrollGroupActivityRecordComponent,\n data: {\n title: 'employer.er-activity-record',\n roles: {\n CUSTOMER_EMPLOYER_ACTIVITY_CODE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'sq-log-master-list',\n component: SqLogMasterListComponent,\n data: {\n title: 'employer.sq-log-master-list',\n roles: {\n CUSTOMER_EMPLOYER_SQ: PermissionAccess.R,\n },\n },\n },\n {\n path: 'agent-sep',\n component: AgentSepComponent,\n data: {\n title: 'employer.agent-sep-list',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n CUSTOMER_EMPLOYER_INTERMEDIARY: PermissionAccess.R,\n },\n },\n },\n {\n path: 'fund-benifit',\n component: FundBenifitComponent,\n data: {\n title: 'employer.fund-benefit',\n roles: {\n CUSTOMER_EMPLOYER: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class EmployerRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmployerRoutingModule } from './employer-routing.module';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { EmployerProfileComponent } from './employer-profile/employer-profile.component';\nimport { EmployerProfileDetailComponent } from './employer-profile-detail/employer-profile-detail.component';\nimport { EmployerProfileTitleComponent } from './employer-profile-title/employer-profile-title.component';\nimport { EmployerProfileInformationComponent } from './employer-profile-information/employer-profile-information.component';\nimport { EmployerProfileBillingClassComponent } from './employer-profile-billing-class/employer-profile-billing-class.component';\nimport { EmployerProfileInvestedComponent } from './employer-profile-invested/employer-profile-invested.component';\nimport { PayrollGroupInfoComponent } from './payroll-group-info/payroll-group-info.component';\nimport { SchemeInfoComponent } from './payroll-group-info/scheme-info/scheme-info.component';\nimport { ContactPersionComponent } from './payroll-group-info/contact-persion/contact-persion.component';\nimport { InvestedFundsInfoComponent } from './payroll-group-info/invested-funds-info/invested-funds-info.component';\nimport { VestingScaleComponent } from './payroll-group-info/vesting-scale/vesting-scale.component';\nimport { PaymentDetailsComponent } from './payroll-group-info/payment-details/payment-details.component';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { CommentsHistoryComponent } from 'src/app/views/employer/commonts-history/comments-history.component';\nimport { CommontsPopupComponent } from './commonts-popup/commonts-popup.component';\nimport { CommontsSuccessComponent } from './commonts-success/commonts-success.component';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\nimport { CdAccordionModule } from 'src/app/components/accordion/cd-accordion.module';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { EmployerListComponent } from './employer-list/employer-list.component';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { AgentInfoComponent } from './payroll-group-info/agent-info/agent-info.component';\nimport { AccountInfoComponent } from './payroll-group-info/account-info/account-info.component';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { MemberLevelComponent } from './payroll-group-info/member-level/member-level.component';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { EmployerProfileCompanyListComponent } from './employer-profile-company-list/employer-profile-company-list.component';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { EditCompanyListComponent } from './employer-profile-company-list/edit-company-list/edit-company-list.component';\nimport { InlineAlertComponent } from './employer-profile-company-list/inline-alert/inline-alert.component';\nimport { EmployerProfilePaymentNoticeComponent } from './employer-profile-payment-notice/employer-profile-payment-notice.component';\nimport { LoadingModule } from 'src/app/shared/loading/loading.modules';\nimport { EmployerProfileSpecialQuoteComponent } from './employer-profile-special-quote/employer-profile-special-quote.component';\nimport { OutstandingAmountOfPaymentPopupComponent } from './payroll-group-info/outstanding-amount-of-payment-popup/outstanding-amount-of-payment-popup.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { AddSpecialQuoteComponent } from './employer-profile-special-quote/add-special-quote/add-special-quote.component';\nimport { EmployerDetailQuickAccessComponent } from './employer-detail-quick-access/employer-detail-quick-access.component';\nimport { CdsPillModule } from '@cds/ng-web-components/pill';\nimport { AmountTableComponent } from './payroll-group-info/amount-table/amount-table.component';\nimport { BillReferenceComponent } from './payroll-group-info/bill-reference/bill-reference.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { CdsAccordionModule } from '@cds/ng-web-components/accordion';\nimport { SuspenseRecordComponent } from './payroll-group-info/suspense-record/suspense-record.component';\nimport { PaymentRecordComponent } from './payroll-group-info/payment-record/payment-record.component';\nimport { PaymentRecordDetailsComponent } from './payroll-group-info/payment-record-details/payment-record-details.component';\nimport { SpecialManagementPopupComponent } from './special-management-popup/special-management-popup.component';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ActivityRecordsComponent } from './activity-records/activity-records.component';\nimport { AddActivityComponent } from './add-activity/add-activity.component';\nimport { PayrollGroupActivityRecordComponent } from './payroll-group-activity-record/payroll-group-activity-record.component';\nimport { EditCompletedActivityComponent } from './edit-completed-activity/edit-completed-activity.component';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { SqLogMasterListComponent } from './sq-log-master-list/sq-log-master-list.component';\nimport { AgentSepComponent } from './agent-sep/agent-sep.component';\nimport { UploadAgentSepListFileComponent } from './upload-agent-sep-list-file/upload-agent-sep-list-file.component';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { AgentSepEditComponent } from './agent-sep-edit/agent-sep-edit.component';\nimport { AgentSepAddComponent } from './agent-sep-add/agent-sep-add.component';\nimport { FundBenifitComponent } from './fund-benifit/fund-benifit.component';\nimport { UnitPriceComponent } from './unit-price/unit-price.component';\nimport { UploadUnitPriceListFileComponent } from './upload-unit-price-list-file/upload-unit-price-list-file.component';\nimport { CdsInlineAlertModule } from '@cds/ng-web-components/inline-alert';\nimport { InterestRateComponent } from './interest-rate/interest-rate/interest-rate.component';\nimport { InterestRateAddPopupComponent } from './interest-rate/interest-rate-add-popup/interest-rate-add-popup.component';\nimport { InterestRateHistoryPopupComponent } from './interest-rate/interest-rate-history-popup/interest-rate-history-popup.component';\nimport { EmpfWorkflowModule } from '../empf-workflow/empf-workflow.module';\nimport { FormulaClassComponent } from './payroll-group-info/formula-class/formula-class.component';\nimport { ChargeInfoComponent } from './payroll-group-info/charge-info/charge-info.component';\nimport { MoreInfoDetailsComponent } from './more-info-details/more-info-details.component';\nimport { DividendRateComponent } from './dividend-rate/dividend-rate/dividend-rate.component';\nimport { DividendRateAddPopupComponent } from './dividend-rate/dividend-rate-add-popup/dividend-rate-add-popup.component';\n\n@NgModule({\n declarations: [\n EmployerProfileComponent,\n EmployerProfileDetailComponent,\n EmployerProfileTitleComponent,\n EmployerProfileInformationComponent,\n EmployerProfileBillingClassComponent,\n EmployerProfileInvestedComponent,\n PayrollGroupInfoComponent,\n SchemeInfoComponent,\n ContactPersionComponent,\n InvestedFundsInfoComponent,\n VestingScaleComponent,\n PaymentDetailsComponent,\n CommentsHistoryComponent,\n CommontsPopupComponent,\n CommontsSuccessComponent,\n EmployerListComponent,\n AgentInfoComponent,\n AccountInfoComponent,\n MemberLevelComponent,\n EmployerProfileCompanyListComponent,\n EditCompanyListComponent,\n InlineAlertComponent,\n EmployerProfilePaymentNoticeComponent,\n OutstandingAmountOfPaymentPopupComponent,\n EmployerProfileSpecialQuoteComponent,\n AddSpecialQuoteComponent,\n EmployerDetailQuickAccessComponent,\n AmountTableComponent,\n BillReferenceComponent,\n SuspenseRecordComponent,\n PaymentRecordComponent,\n PaymentRecordDetailsComponent,\n SpecialManagementPopupComponent,\n ActivityRecordsComponent,\n AddActivityComponent,\n PayrollGroupActivityRecordComponent,\n EditCompletedActivityComponent,\n SqLogMasterListComponent,\n AgentSepComponent,\n UploadAgentSepListFileComponent,\n AgentSepEditComponent,\n AgentSepAddComponent,\n FundBenifitComponent,\n UnitPriceComponent,\n UploadUnitPriceListFileComponent,\n InterestRateComponent,\n InterestRateAddPopupComponent,\n InterestRateHistoryPopupComponent,\n FormulaClassComponent,\n ChargeInfoComponent,\n MoreInfoDetailsComponent,\n DividendRateComponent,\n DividendRateAddPopupComponent,\n ],\n\n imports: [\n CommonModule,\n EmployerRoutingModule,\n CdsTextfieldModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsButtonModule,\n CdsPaginationModule,\n FormsModule,\n CdsPopupModule,\n HttpClientModule,\n CdsProgressModule,\n CdsTableModule,\n CdsSortModule,\n CdsCheckboxModule,\n CdsTabsModule,\n CdsDropdownModule,\n CdsTooltipModule,\n ReactiveFormsModule,\n CdsTextareaModule,\n ExpandTableModule,\n CdAccordionModule,\n RowItemModule,\n CdsDatepickerModule,\n CdsSearchModule,\n MatRadioModule,\n CdsRadioModule,\n LoadingModule,\n SharedModule,\n CdsPillModule,\n BrowserAnimationsModule,\n CdsAccordionModule,\n MatAutocompleteModule,\n MatSelectModule,\n CdsAssistiveTextModule,\n CdsFormFieldModule,\n CdsFileUploadModule,\n CdsInlineAlertModule,\n EmpfWorkflowModule,\n ],\n\n exports: [ContactPersionComponent],\n})\nexport class EmployerModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { Observable } from 'rxjs';\nimport {\n AccountBalance,\n AccountInfoAmountRequest,\n Activity,\n ActivitySearchRequest,\n AgentInfo,\n AgentSep,\n AgentSepFileCheckRes,\n BankInformation,\n BillingClass,\n BillReference,\n ChargeInfoClass,\n ChargeInfoRequest,\n CommentHistory,\n ContactPersion,\n ContributionAmount,\n ContributionDetails,\n ContributionSortByE,\n EmployerProfile,\n EmployerProfileDetail,\n ErBaseRequest,\n ErRecord,\n ErRecordDetail,\n ErSearchRequest,\n FormulaClass,\n MemberAmount,\n PaymentContribution,\n PaymentDetail,\n PaymentMemberLevel,\n PaymentMemberLevelRequest,\n PaymentNoticeRequest,\n PaymentNoticeRes,\n PaymentRecord,\n PaymentRecordsDetailPaymentInfo,\n PaymentRecordSearchRequest,\n PaymentSubmission,\n RelationshipTotalCount,\n SchemeInfo,\n SpecialManagement,\n SpecialQuote,\n SpecialQuoteRequest,\n SuspenseRecordSearchRequest,\n WorkflowDTO,\n} from './employer';\nimport { filterParams, IPageableRequest } from 'src/app/core/models/request';\nimport moment from 'moment';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { DateTime } from 'luxon';\nimport { ContactStatusE, ContactStatusMapObj } from './employer-profile-company-list/employer-profile-company-list';\nimport { Sort } from 'src/app/components/table/table-expand';\nimport { paramsObj2paramsUrlStr } from 'src/app/utils/utils';\nimport { EmpfWorkflowRequest } from '../employee/employee';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EmployerService {\n private customerServiceUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n private base_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/employer/`;\n private base_ee_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/EE-Profile/`;\n private overview = this.base_url + 'overview';\n private contactPersion = this.base_url + 'contactPersonList';\n private billingClassList = this.base_url + 'billingClassList';\n private profileDetails = this.base_url + 'details';\n private totalScoreUrl = this.base_url + 'totalRelationshipScore';\n private schemeInfo = this.base_url + 'payrollGroup/schemeInfo';\n private getPaymentRecordsListUrl = this.base_url + 'payrollGroup/paymentRecords';\n private getPaymentRecordsDetailUrl = this.base_url + 'payrollGroup/paymentRecordsDetail/baseInfo';\n private getPaymentRecordsDetailSearchListUrl = this.base_url + 'payrollGroup/paymentRecordsDetail/paymentInfoSearchList';\n private getPaymentRecordsDetailPaymentInformationUrl = this.base_url + 'payrollGroup/paymentRecordsDetail/paymentInformation';\n private getPaymentRecordsDetailPaymentContributionUrl = this.base_url + 'payrollGroup/paymentRecordsDetail/contribution';\n private getPaymentRecordsDetailMemberLevelListUrl = this.base_url + 'payrollGroup/paymentRecordsDetail/memberLevel';\n private updateCommentsUrl = this.base_url + 'updateComments';\n private getCommentsHistoryUrl = this.base_url + 'commentsHistory';\n private getPageListUrl = this.base_url + 'list';\n private getWorkflowUrl = this.base_url + 'workflowList';\n private getListExpansionUrl = this.base_url + 'listExpansion';\n private getAgentInfoUrl = this.base_url + 'agentInfo';\n private getPaymentNoticUrl = this.base_url + 'paymentNotice';\n private getContributionDetailsUrl = this.base_url + 'payrollGroup/accountInfo/contributionDetails';\n private special_quote_base_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/employers/`;\n private specialQuoteSubmissionYearsUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/employers/`;\n private specialQuotesPath = '/special-quotes';\n private sqLogMasterListUrl = this.customerServiceUrl + 'special-quotes/list';\n private sqLogMasterExportUrl = this.customerServiceUrl + 'special-quotes/export';\n private yearsPath = '/years';\n private getActivityListUrl = this.base_url + 'activity/list';\n private getCompletionActivityListUrl = this.base_url + 'activity/completionList';\n private editActivityUrl = this.base_url + 'activity/edit';\n private editCompletionActivityUrl = this.base_url + 'activity/editCompletion';\n private deleteActivityUrl = this.base_url + 'activity/delete';\n private addActivityUrl = this.base_url + 'activity/add';\n private addCompletionActivityUrl = this.base_url + 'activity/addCompletion';\n private getErActivityScoreUrl = this.base_url + 'activity/employerScore';\n private getCompletionActivityScoreUrl = this.base_url + 'activity/completionScore';\n private specialOfferUrl = this.base_url + 'special-offer';\n private checkActivityUrl = this.base_url + 'activity/sameCompletion';\n private getAccountInfoAmountListUrl = this.base_url + 'payrollGroup/accountInfo/amountPopup';\n private getAccountInfoBillReferenceUrl = this.base_url + 'payrollGroup/accountInfo/billReference';\n private getAccountInfoMemberLevelListUrl = this.base_url + 'payrollGroup/accountInfo/memberLevel';\n private getAccountBalanceUrl = this.base_url + 'payrollGroup/accountBalance';\n private getAgentSepUrl = this.customerServiceUrl + 'agent-sep-enrolment/recordList';\n private getAgentSepEditUrl = this.customerServiceUrl + 'agent-sep-enrolment/editRecord';\n private getAgentSepAddUrl = this.customerServiceUrl + 'agent-sep-enrolment/addRecords';\n private deleteAgentSepurl = this.customerServiceUrl + 'agent-sep-enrolment/deleteRecord';\n private uploadAgentSepListUrl = this.customerServiceUrl + 'agent-sep-enrolment/uploadCsvFile';\n private getVestingRulesUrl = this.base_url + 'getVestingRulesByAcctNo';\n private getVoluntaryRulesUrl = this.base_url + 'getVoluntaryRulesByAcctNo';\n private getFormulaClassUrl = this.base_url + 'formulaClass';\n private getChargeInfoDateUrl = this.base_url + 'chargeInformationEffectiveDate';\n private getChargeInfoClassUrl = this.base_url + 'chargeInformation';\n private getBillingClassInfoClassUrl = this.base_url + 'payrollGroup/billingInfo';\n\n constructor(private http: HttpClient, private route: ActivatedRoute) {}\n\n buildParam(\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n },\n body?: any | null\n ) {\n const urlParams = new URLSearchParams(window.location.search);\n const _key = 'policyKey';\n const _policyKey = urlParams.get(_key);\n if (_policyKey) {\n if (options && options.params) {\n if (options.params instanceof HttpParams) {\n options.params = options.params.set(_key, _policyKey);\n if (options.params.get('id') == undefined) {\n options.params.delete('id');\n }\n }\n if (typeof options.params === 'object' && options.params !== null && !(options.params instanceof HttpParams)) {\n options.params = {\n ...options.params,\n policyKey: _policyKey,\n };\n if (options.params['id'] == undefined) {\n delete options.params['id'];\n }\n }\n } else {\n options = {\n params: {\n policyKey: _policyKey,\n },\n };\n }\n if (body) {\n body = {\n ...body,\n policyKey: _policyKey,\n };\n } else {\n body = {\n policyKey: _policyKey,\n };\n }\n }\n }\n\n get(\n url: string,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }\n ): Observable {\n this.buildParam(options);\n return this.http.get(url, options);\n }\n\n post(\n url: string,\n body: any | null,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }\n ): Observable {\n this.buildParam(options, body);\n return this.http.post(url, body, options);\n }\n\n put(\n url: string,\n body: any | null,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }\n ): Observable {\n this.buildParam(options, body);\n return this.http.put(url, body, options);\n }\n\n delete(\n url: string,\n options?: {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?:\n | HttpParams\n | {\n [param: string]: string | number | boolean | ReadonlyArray;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n body?: any | null;\n }\n ): Observable {\n this.buildParam(options);\n return this.http.delete(url, options);\n }\n\n getById(id: string): Observable> {\n return this.get>(this.overview, {\n params: { id: id },\n });\n }\n\n getProfileDetail(id: string): Observable> {\n return this.get>(this.profileDetails, {\n params: { id: id },\n });\n }\n\n getTotalScore(id: string): Observable> {\n return this.get>(this.totalScoreUrl, {\n params: { id: id },\n });\n }\n\n getErActivityScore(id: string): Observable> {\n return this.get>(this.getErActivityScoreUrl, {\n params: { employerId: id },\n });\n }\n\n getCompletionActivityScore(params: ActivitySearchRequest): Observable> {\n return this.get>(this.getCompletionActivityScoreUrl, {\n params: filterParams(params),\n });\n }\n\n getContactPersionList(param: ErBaseRequest): Observable> {\n return this.get>(this.contactPersion, {\n params: { ...param },\n });\n }\n\n getBillingClassList(id: string): Observable> {\n return this.get>(this.billingClassList, {\n params: { id: id },\n });\n }\n\n getSchemeInfo(param: ErBaseRequest): Observable> {\n return this.get>(this.schemeInfo, {\n params: { ...param },\n });\n }\n\n updateComments(commentHistory: CommentHistory) {\n return this.post>(this.updateCommentsUrl, commentHistory);\n }\n\n getCommentsHistory(customerId: string): Observable> {\n return this.get>(this.getCommentsHistoryUrl, {\n params: { customerId: customerId },\n });\n }\n\n getPageList(params: ErSearchRequest): Observable> {\n return this.get>(this.getPageListUrl, {\n params: filterParams(params),\n });\n }\n\n getListExpansion(id: string): Observable> {\n return this.get>(this.getListExpansionUrl, {\n params: { id: id },\n });\n }\n\n getAgentInfo(id: string): Observable> {\n return this.get>(this.getAgentInfoUrl, {\n params: { id: id },\n });\n }\n\n getPaymentNotice(params: PaymentNoticeRequest): Observable> {\n return this.get>(this.getPaymentNoticUrl, {\n params: filterParams(params),\n });\n }\n\n getContributionDetails(\n id = '',\n filterType: ContributionSortByE,\n payrollGroupId?: string,\n startDate?: string\n ): Observable> {\n return this.get>(this.getContributionDetailsUrl, {\n params: filterParams({\n id,\n payrollGroupId,\n filterType,\n // startDate: '2023-6-24',\n startDate: startDate ? moment(startDate, 'DD/MM/YYYY').format('YYYY-MM-DD') : undefined,\n }),\n });\n }\n\n contributionAmountTableDataTrans(data: ContributionDetails) {\n const tableData: ContributionAmount[] = [\n {\n category: 'memberContributionAmountForTheBill',\n ...data.billContributionAmount,\n },\n {\n category: 'reportedMemberContributionAmount',\n ...data.reportedMemberContributionAmount,\n },\n {\n category: 'paidContributionAmount',\n ...data.paidAmount,\n },\n {\n category: 'outstandingAmountOfThePayment',\n ...data.outstandingPaymentAmount,\n },\n ];\n\n return tableData;\n }\n\n getSpecialQuoteUrl(customerId: string) {\n return `${this.special_quote_base_url}${customerId}${this.specialQuotesPath}`;\n }\n\n getSpecialQuoteSubmissionYearsUrl(customerId: string) {\n return `${this.specialQuoteSubmissionYearsUrl}${customerId}${this.specialQuotesPath}${this.yearsPath}`;\n }\n\n getSpecialQuoteList(customerId: string, params: IPageableRequest): Observable> {\n Object.keys(params).forEach(\n key =>\n (params[key as keyof IPageableRequest] === undefined || params[key as keyof IPageableRequest] === '') && delete params[key as keyof IPageableRequest]\n );\n\n let paramsStr = '';\n\n Object.keys(params).forEach((key, index) => {\n paramsStr = `${paramsStr}${index === 0 ? '?' : '&'}${key}=${params[key as keyof IPageableRequest]}`;\n });\n return this.get>(this.getSpecialQuoteUrl(customerId) + paramsStr + '&sort=sqSubmissionDate,desc&sort=updatedAt,desc');\n }\n\n getSpecialQuoteSubmissionYears(customerId: string): Observable> {\n return this.get>(this.getSpecialQuoteSubmissionYearsUrl(customerId));\n }\n\n deleteSpecialQuote(customerId: string, id: string): Observable> {\n return this.delete>(`${this.getSpecialQuoteUrl(customerId)}/${id}`);\n }\n\n saveSpecialQuote(customerId: string, data: SpecialQuote) {\n return this.put>(this.getSpecialQuoteUrl(customerId), data);\n }\n\n addSpecialQuote(customerId: string, data: SpecialQuote) {\n return this.post>(`${this.getSpecialQuoteUrl(customerId)}`, data);\n }\n\n getSqLogMasterList(params: SpecialQuoteRequest): Observable> {\n return this.sqLogMasterGetRequest(params, this.sqLogMasterListUrl);\n }\n\n sqLogMasterGetRequest(params: SpecialQuoteRequest, url: string): Observable> {\n const sortOrderList = [\n {\n key: 'sqReferenceNo',\n sort: Sort.DOWN,\n },\n {\n key: 'sqSubmissionDate',\n sort: Sort.DOWN,\n },\n {\n key: 'erAcctCd',\n sort: Sort.UP,\n },\n {\n key: 'companyNm',\n sort: Sort.UP,\n },\n ];\n let paramsUrl = '';\n let resetSortParamsUrl = '';\n if (params.sort) {\n const key = params.sort.split(',')[0];\n const restSortOrderList = sortOrderList.filter(item => item.key !== key);\n resetSortParamsUrl = restSortOrderList.map(item => `sort=${item.key},${item.sort}`).join('&');\n } else {\n resetSortParamsUrl = sortOrderList.map(item => `sort=${item.key},${item.sort}`).join('&');\n }\n paramsUrl = Object.keys(params)\n .filter(key => (params as any)[key] !== '')\n .map(key => `${key}=${(params as any)[key]}`)\n .join('&');\n\n return this.get>(`${url}?${paramsUrl}&${resetSortParamsUrl}`);\n }\n\n sqLogMasterExport(params: SpecialQuoteRequest): Observable> {\n return this.sqLogMasterGetRequest(params, this.sqLogMasterExportUrl);\n }\n\n optionLabelRender(value?: string, options?: CdsOption[]) {\n if (!value || !options) {\n return '';\n }\n const option = options.find(item => item.value === value);\n if (option) {\n return option.label;\n }\n return '';\n }\n\n getAccountBalance(params: SuspenseRecordSearchRequest): Observable> {\n return this.get>(this.getAccountBalanceUrl, {\n params: filterParams(params),\n });\n }\n\n getPaymentRcordList(params: PaymentRecordSearchRequest): Observable> {\n return this.get>(this.getPaymentRecordsListUrl, {\n params: filterParams(params),\n });\n }\n\n getActivityList(params: ActivitySearchRequest): Observable> {\n params = {\n ...params,\n createStartDate: params.createStartDate ? encodeURIComponent(params.createStartDate) : '',\n createEndDate: params.createEndDate ? encodeURIComponent(params.createEndDate) : '',\n };\n return this.get>(this.getActivityListUrl, {\n params: filterParams(params),\n });\n }\n\n editActivity(params: Activity) {\n return this.post>(this.editActivityUrl, params);\n }\n\n checkActivity(params: Activity) {\n return this.get>(this.checkActivityUrl, {\n params: filterParams(params),\n });\n }\n\n editCompletionActivity(params: Activity) {\n return this.post>(this.editCompletionActivityUrl, params);\n }\n\n deleteActivity(id: string): Observable> {\n return this.post>(this.deleteActivityUrl, {\n id,\n });\n }\n\n addActivity(params: Activity) {\n return this.post>(this.addActivityUrl, params);\n }\n\n addCompletionActivity(params: Activity) {\n return this.post>(this.addCompletionActivityUrl, params);\n }\n\n getActivityCompletionList(params: ActivitySearchRequest): Observable> {\n return this.get>(this.getCompletionActivityListUrl, {\n params: filterParams(params),\n });\n }\n\n getSpecialOffer(employerId: string): Observable> {\n return this.get>(this.specialOfferUrl, {\n params: {\n employerId,\n },\n });\n }\n\n editSpecialOffer(params: SpecialManagement) {\n return this.post>(this.specialOfferUrl, params);\n }\n\n formateDate(date?: string) {\n if (!date) return '';\n const tempDate = moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD') + ' 00:00:00';\n return DateTime.fromFormat(tempDate, 'yyyy-MM-dd H:m:s').toISO();\n }\n\n getStatusColorStyle(status: ContactStatusE | undefined) {\n if (!status) {\n return '';\n }\n return `background-color: ${ContactStatusMapObj[status].color};`;\n }\n\n getStatus(status: ContactStatusE | undefined) {\n if (!status) {\n return '';\n }\n return ContactStatusMapObj[status].text;\n }\n\n getAccountInfoAmountList(params: AccountInfoAmountRequest): Observable> {\n return this.get>(this.getAccountInfoAmountListUrl, {\n params: filterParams(params),\n });\n }\n\n getAccountInfoBillReferenceList(params: AccountInfoAmountRequest): Observable> {\n return this.get>(this.getAccountInfoBillReferenceUrl, {\n params: filterParams(params),\n });\n }\n\n getAccountInfoMemberLevelList(params: AccountInfoAmountRequest): Observable> {\n return this.get>(this.getAccountInfoMemberLevelListUrl, {\n params: filterParams(params),\n });\n }\n\n getAgentSepList(params: IPageableRequest): Observable> {\n let paramsStr = paramsObj2paramsUrlStr(params);\n const sortList: string[] | undefined = params.sort?.split(',');\n if (sortList) {\n const sortKey = sortList[0];\n const sortMode = sortList[1];\n if (sortKey === 'hkid') {\n paramsStr += `&sort=passport,${sortMode}&sort=sepCommDate,desc&sort=mbAcctCd,asc`;\n } else if (sortKey === 'sepCommDate') {\n paramsStr += `&sort=mbAcctCd,asc`;\n } else if (sortKey === 'mbAcctCd') {\n paramsStr += `&sort=sepCommDate,desc`;\n } else {\n paramsStr += `&sort=sepCommDate,desc&sort=mbAcctCd,asc`;\n }\n }\n return this.get>(this.getAgentSepUrl + paramsStr);\n }\n\n uploadAgentSepList(file: File, isCheck = false) {\n const formData = new FormData();\n formData.append('file', file);\n return this.post>(this.uploadAgentSepListUrl, formData, { params: { check: isCheck } });\n }\n\n agentSepEdit(params: AgentSep) {\n return this.post>(this.getAgentSepEditUrl, params);\n }\n\n agentSepAdd(list: AgentSep[], check = false) {\n return this.post>(this.getAgentSepAddUrl, {\n list,\n check,\n });\n }\n\n agentSepDelete(id: string): Observable> {\n return this.post>(this.deleteAgentSepurl, {\n id,\n });\n }\n\n getPaymentRecordsDetailBaseInfo(subRefNo: string, id: string, payrollGroupId: string): Observable> {\n return this.get>(this.getPaymentRecordsDetailUrl, {\n params: {\n subRefNo,\n id,\n payrollGroupId,\n },\n });\n }\n\n getPaymentRecordsDetailSearchList(subRefNo: string, id: string, payrollGroupId: string): Observable> {\n return this.get>(this.getPaymentRecordsDetailSearchListUrl, {\n params: {\n subRefNo,\n id,\n payrollGroupId,\n },\n });\n }\n\n getPaymentRecordsDetailPaymentInformation(\n subRefNo: string,\n id: string,\n payrollGroupId: string,\n receiptReferenceNo: string\n ): Observable> {\n return this.get>(this.getPaymentRecordsDetailPaymentInformationUrl, {\n params: {\n subRefNo,\n id,\n payrollGroupId,\n receiptReferenceNo,\n },\n });\n }\n\n getPaymentRecordsDetailContribution(\n subRefNo: string,\n id: string,\n payrollGroupId: string,\n receiptReferenceNo: string\n ): Observable> {\n return this.get>(this.getPaymentRecordsDetailPaymentContributionUrl, {\n params: {\n subRefNo,\n id,\n payrollGroupId,\n receiptReferenceNo,\n },\n });\n }\n\n getPaymentRecordsDetailMemberLevelList(params: PaymentMemberLevelRequest): Observable> {\n return this.get>(this.getPaymentRecordsDetailMemberLevelListUrl, {\n params: filterParams(params),\n });\n }\n\n getVestingRules(params: any): Observable> {\n return this.get>(this.getVestingRulesUrl, {\n params,\n });\n }\n\n getVoluntaryRules(params: any): Observable> {\n return this.get>(this.getVoluntaryRulesUrl, {\n params,\n });\n }\n\n getEmpfWorkflowList = (params: EmpfWorkflowRequest): Observable> => {\n return this.get>(this.getWorkflowUrl, {\n params: filterParams(params),\n });\n };\n\n getFurmulaClassList = (params: ErBaseRequest): Observable> => {\n return this.get>(this.getFormulaClassUrl, {\n params: filterParams(params),\n });\n };\n\n getChargeInformationEffectiveDate = (params: ChargeInfoRequest): Observable> => {\n return this.get>(this.getChargeInfoDateUrl, {\n params: filterParams(params),\n });\n };\n\n getChargeInformation = (params: ChargeInfoRequest): Observable> => {\n return this.get>(this.getChargeInfoClassUrl, {\n params: filterParams(params),\n });\n };\n\n getBillingClassInfo(param: ErBaseRequest): Observable> {\n return this.get>(this.getBillingClassInfoClassUrl, {\n params: { ...param },\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { IPageResponse } from 'src/app/core/models/response/response';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\n\nexport const I18N_KEY = {\n INVALID_DATE: 'common.invalidDate',\n INVALID_DESCRIPTION: 'employer.invalid-description',\n INVALID_DESCRIPTION_CHINESE: 'employer.invalid-description-chinese',\n INVALID_USERNAME: 'employer.invalid-username',\n PROVIDER_DULPLICATED: 'employer.provider-dulplicated',\n};\nexport function isOrsoSchema(id?: string) {\n if (id == '' || id == undefined) {\n return false;\n }\n return id.startsWith('ORSO') || id.startsWith('MACAU');\n}\nexport function initPage() {\n return {\n page: 0,\n size: 10,\n };\n}\nexport function configPrimary(): CdsButtonConfig {\n return { style: 'primary' };\n}\nexport function configSecondary(): CdsButtonConfig {\n return { style: 'secondary' };\n}\n\nexport interface ChargeBreakpoint {\n breakpoint?: number;\n percentage?: number;\n}\n\nexport interface ChargeItem {\n chargeCode?: string;\n deductType?: number;\n expChargeLastPolicyYear?: number;\n expChargeCurrentPolicyYear?: number;\n contributionLastAnniversary?: string;\n contYearToDate?: string;\n investAcctFee?: string;\n expensesChargeWaiverAmount?: string;\n breakpointType?: number;\n breakpointList?: ChargeBreakpoint[];\n perLifeCharge?: string;\n min?: string;\n max?: string;\n lifeCountChargeWaiverAmount?: string;\n policyFeeType?: string;\n policyFee?: string;\n}\nexport interface ChargeInfoClass {\n effectiveDate?: string;\n flatRateDate?: string;\n chargeApplicationType?: number;\n chargeList?: ChargeItem[];\n}\n\nexport interface ChargeInfoRequest extends ErBaseRequest {\n chargeApplicationType?: string;\n effectiveDate?: string;\n}\n\nexport interface Breakpoint {\n breakPoint?: string;\n val?: string;\n}\n\nexport interface ChargeInfoSelected {\n label: string;\n value: string;\n dropName: string;\n codeName: string;\n debuctTypeMap: Map;\n}\n\nexport interface DividendRateDeatilRequest {\n year?: string;\n month?: string;\n}\n\nexport interface DividendRateSearch {\n year?: string;\n}\n\nexport interface InterestRateSearch {\n fundCode?: string;\n year?: string;\n}\n\nexport interface EmployeeBreakpoint {\n breakpoint?: string;\n percentage?: string;\n flatAmount?: string;\n}\n\nexport interface FormulaClass {\n formulaClassNo?: string;\n formulaClassName?: string;\n roundSignal?: number;\n noPayLeave?: number;\n erCountType?: string;\n eeContCalc?: number;\n erContCalc?: number;\n eeMaxMthCont?: string;\n erMaxMthCont?: string;\n employeeBreakpointType?: number;\n employeeBreakpointList?: EmployeeBreakpoint[];\n employerBreakpointType?: number;\n employerBreakpointList?: EmployeeBreakpoint[];\n}\n\nexport enum RateType {\n NORMAL_RATE = 'NORMAL_RATE',\n WITHDRAWAL_RATE = 'WITHDRAWAL_RATE',\n INTERIM_RATE = 'INTERIM_RATE',\n}\n\nexport enum InterestRateStatus {\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\nexport interface FundCodeMapping {\n id?: string;\n fundCode?: string;\n fundName?: string;\n chineseFundName?: string;\n}\n\nexport interface InterestRateFundDTO {\n fundCode?: string;\n year?: number;\n month?: number;\n}\nexport interface InterestRateHistory {\n createdAt?: string;\n rate?: string;\n status?: string;\n}\n\nexport interface InterestRateItem {\n rate?: string;\n status?: string;\n historyList?: InterestRateHistory[];\n}\n\nexport interface InterestRateAddItem {\n month?: string;\n newMoney?: string;\n gross?: string;\n wdrl?: string;\n gtee?: string;\n}\n\nexport interface InterestRateAdd {\n fundCode?: string;\n year?: string;\n list?: InterestRateAddItem[];\n}\n\nexport interface InterestRateEdit {\n id?: string;\n fundCode?: string;\n fundName?: string;\n chineseFundName?: string;\n year?: string;\n month?: string;\n newMoney: InterestRateItem;\n gross: InterestRateItem;\n wdrl: InterestRateItem;\n gtee: InterestRateItem;\n status?: string;\n}\n\nexport interface InterestRate {\n id?: string;\n fundCode?: string;\n fundName?: string;\n chineseFundName?: string;\n year?: string;\n month?: string;\n newMoney?: InterestRateItem;\n gross?: InterestRateItem;\n wdrl?: InterestRateItem;\n gtee?: InterestRateItem;\n status?: string;\n}\n\nexport interface Policy {\n lob: string;\n policyNo: string;\n status: string;\n role: string;\n}\n\nexport interface InvertedFundsInfo {\n fundCode: string;\n fundDescription: string;\n unitBalace: string;\n}\n\nexport interface PaymentTranscation {\n stmtNo: string;\n date: string;\n receivedDate: string;\n paymentAmount: string;\n remarks: string;\n}\n\nexport interface Outstand {\n endDate: string;\n fsee: string;\n opt: string;\n fser: string;\n charges: string;\n ttl: string;\n}\n\nexport interface ContactPersionList {\n enName: string;\n zhName: string;\n post: string;\n}\n\nexport interface PayrollGroup {\n itName: string;\n groupNo: string;\n show?: boolean;\n}\n\nexport interface VestingRuleDetail {\n mnthOfServiceFrm?: number;\n mnthOfServiceTo?: number;\n vestRt?: number;\n conRt?: number;\n conAmt?: number;\n vcCapdAmt?: number;\n}\n\nexport interface EmployerProfile {\n id: string;\n aggregateInvestedAmount: string;\n annualizedContribution: string;\n businessNature: string;\n companyChineseName: string;\n companyName: string;\n companyType: string;\n employerStatus: string;\n lastUpdatedDateOfEmployerStatus: string;\n mpfaReferenceNumber: string;\n orsoRegDate: string;\n registrationNumber: string;\n schemeTerminationEffectiveDate: string;\n subsidNo: string;\n terminationCompletionDate: string;\n totalLives: string;\n trusteeEntityCode: string;\n vipCode: string;\n businessAddress: AddressDTO;\n registeredOfficeAddress: AddressDTO;\n}\n\nexport interface ERInvestedFundsInformation {\n fundCode?: string;\n fundDescription?: string;\n fundDescriptionCN?: string;\n fundPrice?: string;\n unitCount?: string;\n totalBalance?: string;\n}\nexport interface EmployerProfileDetail {\n id: string;\n companyName: string;\n companyChineseName: string;\n employerStatus: EmployerStatusE;\n totalLives: number;\n score: number;\n relationshipScore?: number;\n employerAccountCode: string;\n originalEmployerCode: string;\n empfId: string;\n mpfaReferenceNumber: string;\n registrationNumber: string;\n subsidNo: string;\n lastUpdatedDateOfEmployerStatus: string;\n businessNature: BusinessNatureE;\n orsoRegDate: string;\n vipCode: string;\n companyType: CompanyTypeE;\n annualizedContribution: string;\n aggregateInvestedAmount: string;\n ivrSig: string;\n unsubscribeSignal: string;\n orsoAppSignal: OrsoAppSignalE;\n schemeTerminationEffectiveDate: string;\n terminationCompletionDate: string;\n commencementDate: string;\n employerStatus2: string;\n lastUpdatedDateOfEmployerStatus2: string;\n certNoType: string;\n enrolmentSubmissionChannel: SubmitChannelE;\n enrolmentReferenceNumber?: string;\n lsFlag: string;\n currency: CurrencyE;\n companyGroupCode: string;\n maxOptPercent: string;\n spclGroupType: string;\n spclGroupSubType: string;\n branchNo: string;\n annualPrem: string;\n dateOfIncorporation: string;\n addition: string;\n registrationType: RegistrationTypeE;\n lsp_spOffsetSequence: string;\n mpfExemptNo: string;\n certificateOfIncorporationNumber: string;\n placeOfIncorporation: string;\n firstDefaultPp: string;\n annualPerm: string;\n languageType: LanguageTypeE;\n communicationType: CommunicationTypeE;\n directMarketingConsentFlag: string;\n comments: CommentHistory;\n sourceOfFund_wealth: string;\n otherSourceOfFund_wealth: string;\n originOfInitialSourceOfWealth: string;\n originOfOnGoingSourceOfFunds_wealth: string;\n investedFundsInformationList: ERInvestedFundsInformation[];\n lineOfBusiness: string;\n accountType: AccountTypeE;\n commissionPoolNumber: string;\n updatedAt: string;\n schemeMergeSignal: SchemeMergeSignalE;\n policyTypeOrPooledRetirementCode: string;\n nameOfORSOScheme: string;\n latestUpdateFromEMPF: string;\n workflowReferenceNo: string;\n //\n // addition: string;\n // aggregateInvestedAmount: string;\n // annualPrem: string;\n // annualPerm: string;\n // annualizedContribution: string;\n // branchNo: string;\n // businessNature: string;\n // certNoType: string;\n // certificateOfIncorporationNumber: string;\n // commencementDate: string;\n // comments: CommentHistory;\n // communicationType: string;\n // companyChineseName: string;\n // companyGroupCode: string;\n // companyName: string;\n // companyType: string;\n // consentToDirectMarketing: string;\n // currency: string;\n // dateOfIncorporation: string;\n // employerEnrolmentSubmissionChannel: string;\n // employerStatus: EmployerStatusE;\n // employerStatus2: string;\n // firstDefaultPp: string;\n // languageTypeId: string;\n // lastUpdatedDateOfEmployerStatus: string;\n // lastUpdatedDateOfEmployerStatus2: string;\n // lsFlag: string;\n // lsp_spOffsetSequence: string;\n // maxOptPercent: string;\n // mpfExemptNo: string;\n // mpfaReferenceNumber: string;\n // originOfInitialSourceOfWealth: string;\n // originOfOnGoingSourceOfFunds_wealth: string;\n // orsoRegDate: string;\n // otherSourceOfFund_wealth: string;\n // placeOfIncorporation: string;\n // registrationNumber: string;\n // registrationType: string;\n // sourceOfFund_wealth: string;\n // spclGroupType: string;\n // subsidNo: string;\n // totalLives: string;\n // trusteeEntityCode: string;\n // vipCode: string;\n // businessAddress: AddressDTO;\n // registeredOfficeAddress: AddressDTO;\n // schemeTerminationEffectiveDate: string;\n // terminationCompletionDate: string;\n // ivrSig: string;\n // unsubscribeSignal: string;\n}\nexport interface AddressDTO {\n addressType: ErAddressTypeE;\n building: string;\n city: string;\n country: string;\n district: string;\n floor: string;\n block: string;\n room: string;\n street: string;\n effectiveDate: string;\n statusCode: 'ACTIVE' | 'INVALID';\n remarks?: string;\n zhAddrFlg?: 'Y' | 'N';\n formatTyp?: 'FREE' | 'STD';\n}\n\nexport enum ErAddressTypeE {\n REGISTERED = 'REGISTERED',\n RESIDENTIAL = 'RESIDENTIAL',\n BUSINESS = 'BUSINESS',\n CORRESP = 'CORRESP',\n SALES_PROPERTY = 'SALES_PROPERTY',\n OVERSEAS = 'OVERSEAS',\n}\n\nexport const erAddressTypeMapObj = {\n [ErAddressTypeE.CORRESP]: {\n text: 'Correspondence Address',\n order: 0,\n },\n [ErAddressTypeE.RESIDENTIAL]: {\n text: 'Residential Address',\n order: 1,\n },\n [ErAddressTypeE.REGISTERED]: {\n text: 'Registered Office Address',\n order: 2,\n },\n [ErAddressTypeE.BUSINESS]: {\n text: 'Business Address',\n order: 3,\n },\n [ErAddressTypeE.OVERSEAS]: {\n text: 'Overseas Settlement Address',\n order: 4,\n },\n [ErAddressTypeE.SALES_PROPERTY]: {\n text: 'Address of the Sale of Property',\n order: 5,\n },\n};\n\nexport const inValidStatusMapObj = {\n INVALID: {\n text: 'Invalid',\n color: '#8E90A2',\n },\n ACTIVE: {\n text: 'Active',\n color: '#00A758',\n },\n};\n\nexport interface ContactPersion {\n contactPersonType: RelatedPersonTypeE;\n firstName: string;\n lastName?: string;\n chineseFirstName: string;\n chineseLastName?: string;\n jobPosition: string;\n primaryContact?: Contact;\n secondaryContact?: Contact;\n thirdContact?: Contact;\n fourthContact?: Contact;\n fifthContact?: Contact;\n emailList: Email[];\n phoneList: Phone[];\n}\n\nexport interface Email {\n emailAddress?: string;\n lastUpdate?: number;\n status?: number;\n}\n\nexport interface Phone {\n countryCode?: string;\n phoneExt?: number;\n phoneNo?: number;\n typeCode: PhoneType;\n status: string;\n lastUpdate: string;\n}\n\nexport interface Contact {\n emailAddress: string;\n mobileCountryCode: string;\n mobileNumber: string;\n contactCountryCode: string;\n contactNumber: string;\n extCountryCode: string;\n extNumber: string;\n faxCountryCode: string;\n faxNumber: string;\n}\n\nexport interface BillingClass {\n id: string;\n erAcctCd?: string;\n payrollGroupName: string;\n entityCode?: string;\n payrollGroupId?: string;\n employerStatus?: string;\n registeredOfficeAddress?: AddressDTO;\n lastRegisteredOfficeAddress?: string;\n businessAddress?: AddressDTO;\n lastBusinessAddress?: string;\n lives?: string;\n // billHit?: string;\n // stmtHit?: string;\n // lineOfBusiness?: string;\n // contSig?: string;\n mcn?: string;\n effDate?: string;\n termDate?: string;\n addressList: AddressDTO[];\n contributionFrequency?: ContributionFrequencyE;\n}\n\nexport enum ContributionFrequencyE {\n DAILY = 'DAILY',\n WEEKLY = 'WEEKLY',\n SEMI_MONTHLY = 'SEMI_MONTHLY',\n MONTHLY = 'MONTHLY',\n BI_MONTHLY = 'BI_MONTHLY',\n QUARTERLY = 'QUARTERLY',\n SEMI_ANNUALLY = 'SEMI_ANNUALLY',\n ANNUALLY = 'ANNUALLY',\n FORTNIGHTLY = 'FORTNIGHTLY',\n}\n\nexport const contributionFrequencyMapObj = {\n [ContributionFrequencyE.DAILY]: 'Daily',\n [ContributionFrequencyE.WEEKLY]: 'Weekly',\n [ContributionFrequencyE.SEMI_MONTHLY]: 'Semi-Monthly',\n [ContributionFrequencyE.MONTHLY]: 'Monthly',\n [ContributionFrequencyE.BI_MONTHLY]: 'Bi-Monthly',\n [ContributionFrequencyE.QUARTERLY]: 'Quarterly',\n [ContributionFrequencyE.SEMI_ANNUALLY]: 'Half-Yearly',\n [ContributionFrequencyE.ANNUALLY]: 'Annually',\n [ContributionFrequencyE.FORTNIGHTLY]: 'Fortnightly',\n};\n\nexport interface CommentHistory {\n customerId?: string;\n comments?: string;\n updatedAt?: string;\n updateDate?: string;\n updateBy?: string;\n createdName?: string;\n updatedName?: string;\n}\n\nexport interface SchemeInfo {\n annualizedPrem?: string;\n forfeitureHandling?: string;\n contFreq?: string;\n fundCurrency?: string;\n allocationMethod?: string;\n erNewBuFlag?: string;\n effectiveDate?: string;\n fundList?: Fund[];\n vestingScale?: VestingScale;\n contactPersonList: ContactPersion[];\n otherContactPersonList: ContactPersion[];\n activeLives: number;\n}\n\nexport enum ForfeitureHandlingE {\n REFUND = 'Forfeiture Refund',\n OFFSET_FUTURE_CONTR = 'Accumulated to Forfeiture Account in unit / balance',\n DSTRB_TO_EE = 'Distribution to existing employees',\n REINV = 'Accumulated to Forfeiture Account and reinvest',\n}\n\nexport enum AllocationMethodE {\n ER_MCVC_BAL = 'In proportion of employer’s mandatory and voluntary contribution balance of each eligible member',\n ER_VC_BAL = 'In proportion of employer’s voluntary contribution balance of each eligible member',\n ALL_BAL = 'In proportion of total account balance of each eligible member',\n EVEN = 'Evenly distributed to all eligible members',\n}\n\nexport interface Fund {\n fundCode: string;\n fundNm?: string;\n fundDescription?: string;\n fundDescriptionCN?: string;\n commencementDate?: string;\n terminationDate?: string;\n fundUnit?: string;\n totalBalance?: string;\n unitPrice?: string;\n bidPriceDisplay?: string;\n fundSuspension?: string;\n fundUsed?: string;\n latestUpdate?: string;\n fsee_EEMCPercent?: string;\n fser_ERMCPercent?: string;\n optPercent?: string;\n psee_EEVCPercent?: string;\n pser_ERVCPercent?: string;\n bonusFtrPercent?: string;\n show?: boolean;\n fundPercent?: FundPercent;\n}\n\nexport interface FundPercent {\n [key: string]: number | null;\n}\n\nexport interface PaymentDetail {\n contributionFrequency?: string;\n firstContributionDate?: string;\n secondContributionDate?: string;\n ddaDefaultPaymentMethodFlag?: string;\n bankHolderName?: string;\n bankCode?: string;\n branchCodeOfBank?: string;\n bankAccountNumber?: string;\n debtorReferenceType?: string;\n debtorReferenceNumber?: string;\n lastUpdateDateOfDdaStatus?: string;\n debitDay?: string;\n paymentMaximumLimit?: string;\n ddaExpiryDate?: string;\n status?: string;\n limitMod?: string;\n}\n\nexport interface VestingScale {\n calMnthServiceTyp?: CalMnthServiceTypE;\n calBaseUnt?: CalBaseUntE;\n}\n\nexport enum SubacctTypE {\n ERVC = 'ERVC',\n ERVC2 = 'ERVC2',\n ERVC3 = 'ERVC3',\n ERVC4 = 'ERVC4',\n ERVC5 = 'ERVC5',\n ERVC6 = 'ERVC6',\n ERVC7 = 'ERVC7',\n EEVC = 'EEVC',\n EEVC2 = 'EEVC2',\n}\n\nexport const subacctTypMapObj = {\n [SubacctTypE.ERVC]: 'Employer voluntary contributions 1',\n [SubacctTypE.ERVC2]: 'Employer voluntary contributions 2',\n [SubacctTypE.ERVC3]: 'Employer voluntary contributions 3',\n [SubacctTypE.ERVC4]: 'Employer voluntary contributions 4',\n [SubacctTypE.ERVC5]: 'Employer voluntary contributions 5',\n [SubacctTypE.ERVC6]: 'Employer voluntary contributions 6',\n [SubacctTypE.ERVC7]: 'Employer voluntary contributions 7',\n [SubacctTypE.EEVC]: 'Employee voluntary contributions 1',\n [SubacctTypE.EEVC2]: 'Employee voluntary contributions 2',\n};\n\nexport enum CalBaseUntE {\n YEAR = 'YEAR',\n MONTH = 'MONTH',\n DAY = 'DAY',\n}\n\nexport const calBaseUntMapObj = {\n [CalBaseUntE.YEAR]: 'Year',\n [CalBaseUntE.MONTH]: 'Month',\n [CalBaseUntE.DAY]: 'Day',\n};\n\nexport enum CalMnthServiceTypE {\n EMP = 'EMP',\n DJS = 'DJS',\n MEM_CAT = 'MEM_CAT',\n ADOE = 'ADOE',\n DATE_BY_ER = 'DATE_BY_ER',\n VC_SAME_MC = 'VC_SAME_MC',\n}\n\nexport const calMnthServiceTypMapObj = {\n [CalMnthServiceTypE.EMP]: 'From the date of employment',\n [CalMnthServiceTypE.DJS]: 'From the date of joining the scheme',\n [CalMnthServiceTypE.MEM_CAT]: 'From the date of joining the category of members',\n [CalMnthServiceTypE.ADOE]: 'From the date after specified period after date of employment',\n [CalMnthServiceTypE.DATE_BY_ER]: 'From the vesting entitlement date specified by ER',\n [CalMnthServiceTypE.VC_SAME_MC]: 'From the same start date as Mandatory Contribution',\n};\n\nexport const definitionOfServiceTypMapObj = {\n [CalMnthServiceTypE.EMP]: 'From date of employment',\n [CalMnthServiceTypE.DJS]: 'From date join scheme',\n [CalMnthServiceTypE.MEM_CAT]: 'From the date of joining the category of members',\n [CalMnthServiceTypE.ADOE]: 'From the date after specified period after date of employment',\n [CalMnthServiceTypE.DATE_BY_ER]: 'From the date specified by Employer',\n [CalMnthServiceTypE.VC_SAME_MC]: 'From the same start date as Mandatory Contribution',\n};\n\nexport interface ErBaseRequest {\n id?: string;\n entityCode?: string;\n payrollGroup?: string;\n payrollGroupId?: string;\n}\n\nexport interface ErSearchRequest extends IPageableRequest {\n employerNo?: string;\n eMpfId?: string;\n employerName?: string;\n lineOfBusiness?: string;\n _totalLiveModel?: number[];\n startTotalLives?: number;\n endTotalLives?: number;\n intermediatoryCode?: string;\n aggregateInvestedAmountCurrency?: string;\n aggregateInvestedAmountFrom?: string | number;\n aggregateInvestedAmountTo?: string | number;\n origErAcctCd?: string;\n}\n\nexport interface AccountInfoAmountRequest extends IPageableRequest {\n amountType?: string;\n endDate?: string;\n subAcctType?: string;\n erAcctCd?: string;\n id?: string;\n filterType?: string;\n payrollGroupId?: string;\n startDate?: string;\n runDate?: string;\n billRefNo?: string;\n}\n\nexport interface AbstractExpand {\n expandData?: object;\n}\n\nexport interface ErRecord extends AbstractExpand {\n id: string;\n employerNo?: string;\n empfId?: string;\n employerName: string;\n employerChineseName: string;\n lineOfBusiness?: string;\n totalLives?: number;\n relationshipScore?: number | null;\n score?: number;\n commissionAgentCode?: string;\n servicingAgentCode?: string;\n parentCompany?: string;\n employerStatus?: string;\n aggregateInvestedAmount?: string | null;\n annualizedContribution?: string | null;\n systemId?: string;\n}\n\nexport interface searchCompanyGroupRequest {\n id?: string;\n employerNo?: string;\n employerName?: string;\n employerChineseName?: string;\n employerId: string;\n}\n\nexport interface ProfileAgentInfo {\n registrationNumber: string;\n agentName: string;\n agentCode: string;\n branchCode: string;\n mobile: string;\n office: string;\n email: string;\n status: string;\n}\nexport interface ErRecordDetail {\n employerNo: string;\n commencementDate: string;\n rsSubmissionChannel: SubmitChannelE;\n servicingAgent: ProfileAgentInfo;\n commissionAgent: ProfileAgentInfo;\n relatedCompanies: ErRecord[];\n paymentMethod: string;\n}\n\nexport interface BillPaymentDetail {\n referenceNo: string;\n chequeinBankInDate: string;\n paymentClearedDate: string;\n paidAmount: string;\n}\n\nexport interface ContributionDetails {\n contributionPeriodStartDate?: string;\n contributionPeriodEndDate?: string;\n billingReferenceNumber: string;\n billReferenceNumber?: string;\n billingStatusType?: string;\n billingStatusCode?: string;\n contributionFrequency: string;\n outstandingAmountOfPayment: number;\n remittanceStatementReceivedDate: string;\n lives: number;\n contLives: number;\n runDate?: string;\n receiptReferenceNumberList?: string[];\n paymentSubmissionReferenceNumberList?: string[];\n paymentWorkflowReferenceNoList?: string[];\n workFlowReferenceNo?: string;\n billContributionAmount?: ContributionAmount;\n reportedMemberContributionAmount?: ContributionAmount;\n paidAmount?: ContributionAmount;\n outstandingPaymentAmount?: ContributionAmount;\n employerAccountCode?: string;\n billReferenceNos?: BillReference[] | EeBillReference[];\n submissionReferenceNo?: string;\n receiptReferenceNo?: string;\n paymentSubmissionReferenceNo?: string;\n vcCdr?: string;\n cdr?: string;\n salaryTypeId?: string;\n incomeOrBasicSalary?: string;\n}\n\nexport type ContributionDetailsCategory =\n | 'memberContributionAmountForTheBill'\n | 'reportedMemberContributionAmount'\n | 'paidContributionAmount'\n | 'outstandingAmountOfThePayment';\n\nexport enum ContributionDetailsCategoryE {\n memberContributionAmountForTheBill = 'account.memberContributionAmountForTheBill',\n reportedMemberContributionAmount = 'account.reportedMemberContributionAmount',\n paidContributionAmount = 'account.paidContributionAmount',\n outstandingAmountOfThePayment = 'account.outstandingAmountOfThePayment',\n}\n\nexport interface ContributionAmount {\n category?: ContributionDetailsCategory;\n ermc?: number;\n eemc?: number;\n\n ervc?: number;\n eevc?: number;\n ervc2?: number;\n ervc3?: number;\n ervc4?: number;\n ervc5?: number;\n ervc6?: number;\n ervc7?: number;\n eevc2?: number;\n tvc?: number;\n svc?: number;\n sepmc?: number;\n sepvc?: number;\n surcharge?: number;\n // surchargeMemberAmountList?: MemberAmount[];\n // ermcMemberAmountList?: MemberAmount[];\n // eemcMemberAmountList?: MemberAmount[];\n // eevcMemberAmountList?: MemberAmount[];\n // ervcMemberAmountList?: MemberAmount[];\n}\n\nexport enum ContributionAmountListMappingE {\n ermc = 'ermcMemberAmountList',\n eemc = 'eemcMemberAmountList',\n surcharge = 'surchargeMemberAmountList',\n ervc = 'ervcMemberAmountList',\n eevc = 'eevcMemberAmountList',\n}\n\nexport type ContributionAmountType =\n | 'ERMC'\n | 'EEMC'\n | 'SURCHARGE'\n | 'ERVC'\n | 'EEVC'\n | 'ERVC2'\n | 'ERVC3'\n | 'ERVC4'\n | 'ERVC5'\n | 'ERVC6'\n | 'ERVC7'\n | 'EEVC2'\n | 'TVC'\n | 'SVC'\n | 'SEPMC'\n | 'SEPVC'\n | 'ERMCFSER'\n | 'EEMCFSEE'\n | 'ERVCPSER'\n | 'EEVCPSEE';\n\nexport enum ContributionAmountTypeE {\n ERMC = 'ERMC',\n EEMC = 'EEMC',\n SURCHARGE = 'SURCHARGE',\n ERVC = 'ERVC',\n EEVC = 'EEVC',\n ERVC2 = 'ERVC2',\n ERVC3 = 'ERVC3',\n ERVC4 = 'ERVC4',\n ERVC5 = 'ERVC5',\n ERVC6 = 'ERVC6',\n ERVC7 = 'ERVC7',\n EEVC2 = 'EEVC2',\n TVC = 'TVC',\n SVC = 'SVC',\n SEPMC = 'SEPMC',\n SEPVC = 'SEPVC',\n ERMCFSER = 'ERMCFSER',\n EEMCFSEE = 'EEMCFSEE',\n ERVCPSER = 'ERVCPSER',\n EEVCPSEE = 'EEVCPSEE',\n}\n\nexport interface MemberAmount {\n memberCode: string;\n memberName?: string;\n amount?: number;\n chineseFirstName?: string;\n chineseLastName?: string;\n firstName?: string;\n lastName?: string;\n statusOfDefaultContribution?: string;\n rectifiedType?: string;\n}\n\nexport interface SuspenseRecord {\n id?: string;\n paymentSubmissionReferenceNo?: string;\n paymentReferenceNo?: string;\n paymentReceivedDate?: string;\n suspenseAmount?: number;\n avaliableAmount?: number;\n taggedAmount?: number;\n paymentMethod?: string;\n // chequeNo: string;\n}\n\nexport interface RelevantIncome {\n id: string;\n frequencyTypeId: string;\n income: string;\n contributionType: string;\n effectiveDate: string;\n}\n\nexport interface Surcharge {\n surchargeEr: string;\n surchargeEe: string;\n paidDate: string;\n dudate: string;\n}\n\nexport interface AgentInfo {\n servicingAgent: any;\n commissionAgent: AgentInfoDetail[];\n delegatedAgent: any;\n showCommission?: boolean;\n showDelegated?: boolean;\n}\n\nexport interface AgentInfoDetail {\n registrationNumber?: string;\n agentName?: string;\n agentCode?: string;\n branchCode?: string;\n mobile?: string;\n office?: string;\n email?: string;\n status?: AgentStatusE;\n delegationDate?: string;\n agentNameChi?: string;\n show?: boolean;\n}\n\nexport interface PaymentNotice {\n contributionPeriodStartDate?: string;\n contributionPeriodEndDate?: string;\n erProfilePaymentNoticeListResponses?: ErProfilePaymentNoticeListResponses[];\n}\n\nexport interface PaymentNoticeRes {\n list?: PaymentNotice[];\n}\n\nexport interface ErProfilePaymentNoticeListResponses {\n typeOfNotice: string;\n paymentNoticeReceivedDate: string;\n noticeReferenceNumber: string;\n noticeIssueDate: string;\n firstPaymentDueDate: string;\n secondPaymentDueDate: string;\n appealSubmissionDate: string;\n appealResultStatus: string;\n dateOfAppealResult: string;\n mpfaObjectionCaseNumber: string;\n appealResultText: string;\n}\n\nexport interface PaymentNoticeTableItem {\n typeOfNotice: string;\n paymentNoticeReceivedDate: string;\n noticeReferenceNumber: string;\n noticeIssueDate: string;\n firstPaymentDueDate: string;\n secondPaymentDueDate: string;\n}\n\nexport interface AppealDetails {\n appealSubmissionDate: string;\n appealResultStatus: string;\n dateOfAppealResult: string;\n mpfaObjectionCaseNumber: string;\n appealResultText: string;\n}\n\nexport interface PaymentNoticeRequest {\n startDate?: string;\n id?: string;\n erAcctCd?: string;\n type: 'month' | 'day';\n conMnth?: string;\n}\n\nexport interface OutstandingAmoutOfPayment {\n trusteeMemberName: string;\n trusteeMemberNumber: string;\n outstandingAmountOfPayment: string;\n}\n\nexport interface SpecialQuoteRequest extends IPageableRequest {\n sqSubmissionDateMonth?: number;\n sqSubmissionDateYear?: number;\n employerAccountCode?: string;\n employerName?: string;\n sqReferenceNo?: string;\n sqSubmissionDateFrom?: string;\n sqSubmissionDateTo?: string;\n}\n\nexport interface SpecialQuote {\n id?: string;\n sqReferenceNo?: string;\n quoteType?: QuoteTypeE;\n sqSubmissionDate?: string;\n customerIds?: string[];\n customerId?: string;\n inEdit?: boolean;\n companyList?: CdMultidropdownTopping[];\n remarks?: string;\n showRemarks?: boolean;\n showAllRemarks?: boolean;\n showAllButton?: boolean;\n version?: number;\n quoteStatus?: QuoteStatusE;\n employerAccountCode?: string;\n employerName?: string;\n employerChineseName?: string;\n updatedAt?: string;\n lastStatusUpdatedDate?: string;\n}\n\nexport enum QuoteTypeE {\n ADD_NB = 'ADD_NB',\n CGF_GUARANTEE_RATE = 'CGF_GUARANTEE_RATE',\n COMBINE_EXISTING = 'COMBINE_EXISTING',\n GROUP_SPLIT = 'GROUP_SPLIT',\n INJECTION = 'INJECTION',\n INTRA_GROUP_TRANSFER = 'INTRA_GROUP_TRANSFER',\n REQUOTE_BU = 'REQUOTE_BU',\n REQUOTE_TRF_PC_COMM = 'REQUOTE_TRF_PC_COMM',\n RETENTION = 'RETENTION',\n WAIVE_MVA = 'WAIVE_MVA',\n OTHERS = 'OTHERS',\n}\n\nexport const SpecialQuoteTypeOptions = [\n { label: 'Add NB', value: QuoteTypeE.ADD_NB },\n { label: 'CGF Guarantee Rate', value: QuoteTypeE.CGF_GUARANTEE_RATE },\n { label: 'Combine Existing', value: QuoteTypeE.COMBINE_EXISTING },\n { label: 'Group Split', value: QuoteTypeE.GROUP_SPLIT },\n { label: 'Injection', value: QuoteTypeE.INJECTION },\n { label: 'Intra-Group Transfer', value: QuoteTypeE.INTRA_GROUP_TRANSFER },\n { label: 'Requote BU', value: QuoteTypeE.REQUOTE_BU },\n { label: 'Requote Trf PC & Comm', value: QuoteTypeE.REQUOTE_TRF_PC_COMM },\n { label: 'Retention', value: QuoteTypeE.RETENTION },\n { label: 'Waive MVA', value: QuoteTypeE.WAIVE_MVA },\n { label: 'Others', value: QuoteTypeE.OTHERS },\n];\n\nexport enum QuoteStatusE {\n SQ_OFFER_PENDING_FOR_FINANCE_REPLY = 'SQ_OFFER_PENDING_FOR_FINANCE_REPLY',\n SQ_OFFER_PENDING_FOR_CR__AGENT_REPLY = 'SQ_OFFER_PENDING_FOR_CR__AGENT_REPLY',\n SQ_OFFER_REJECTED_BY_CR__AGENT__CLIENT = 'SQ_OFFER_REJECTED_BY_CR__AGENT__CLIENT',\n CALCULATOR_PENDING_FOR_FINANCE_REPLY = 'CALCULATOR_PENDING_FOR_FINANCE_REPLY',\n CALCULATOR_PENDING_FOR_CR__AGENT_REPLY = 'CALCULATOR_PENDING_FOR_CR__AGENT_REPLY',\n OFFER_LETTER_PENDING_FOR_CR_MANAGER_REVIEW = 'OFFER_LETTER_PENDING_FOR_CR_MANAGER_REVIEW',\n OFFER_LETTER_SENT_TO_CLIENT_COMPLETED = 'OFFER_LETTER_SENT_TO_CLIENT_COMPLETED',\n}\n\nexport const SpecialQuoteStatusOptions = [\n { label: 'SQ Offer – Pending for Finance Reply', value: QuoteStatusE.SQ_OFFER_PENDING_FOR_FINANCE_REPLY },\n { label: 'SQ Offer – Pending for CR/ Agent reply', value: QuoteStatusE.SQ_OFFER_PENDING_FOR_CR__AGENT_REPLY },\n { label: 'SQ Offer – Rejected by CR/ Agent/ Client', value: QuoteStatusE.SQ_OFFER_REJECTED_BY_CR__AGENT__CLIENT },\n { label: 'Calculator – Pending for Finance reply', value: QuoteStatusE.CALCULATOR_PENDING_FOR_FINANCE_REPLY },\n { label: 'Calculator – Pending for CR/ Agent reply', value: QuoteStatusE.CALCULATOR_PENDING_FOR_CR__AGENT_REPLY },\n { label: 'Offer letter – Pending for CR Manager review', value: QuoteStatusE.OFFER_LETTER_PENDING_FOR_CR_MANAGER_REVIEW },\n { label: 'Offer letter – Sent to Client (Completed)', value: QuoteStatusE.OFFER_LETTER_SENT_TO_CLIENT_COMPLETED },\n];\n\nexport enum RelatedPersonTypeE {\n CLAIMANT = 'Claimant',\n ORO = 'ORO Contact',\n TIB = 'TIB Conact',\n PRIMARY_CONTACT = 'Primary Contact Person',\n SECOND_CONTACT = 'Second Contact Person',\n AP = 'Authorized Person',\n DIRECTOR = 'Director',\n BENE_OWNER = 'Beneficial Owner',\n PARTNER = 'Partner',\n SCHEME_TRUSTEE = 'Scheme Trustee',\n SOLE_PROPRIETORSHIP = 'Sole Proprietorship',\n CONTROLLING_PERSON = 'Controlling Person',\n LIQUIDATOR = 'Liquidator',\n OTHER = 'Other contact person',\n PRIMARY_TIB = 'primary TIB',\n PRIMARY_ORO = 'primary oro',\n SECOND_TIB = 'second TIB',\n SECOND_ORO = 'second oro',\n THIRD_PAYOR = 'Third Party Payor',\n}\n\nexport enum PhoneTypeE {\n PHONE = 'Telephone',\n MOBILE = 'Mobile',\n MOBILE2 = '2nd Mobile',\n TEL_OVERSEAS = 'Claimant Overseas Telephone',\n FAX_OVERSEAS = 'Claimant Overseas Fax no',\n FAX = 'Fax',\n PHONE2 = 'PHONE2',\n PHONE3 = 'PHONE3',\n PHONE4 = 'PHONE4',\n}\n\nexport type PhoneType = 'PHONE' | 'MOBILE' | 'MOBILE2' | 'TEL_OVERSEAS' | 'FAX_OVERSEAS' | 'FAX' | 'PHONE2' | 'PHONE3' | 'PHONE4';\n\nexport interface ContactPersonView {\n email?: Email[];\n PHONE?: Phone[];\n PHONE2?: Phone[];\n PHONE3?: Phone[];\n PHONE4?: Phone[];\n MOBILE?: Phone[];\n MOBILE2?: Phone[];\n TEL_OVERSEAS?: Phone[];\n FAX_OVERSEAS?: Phone[];\n FAX?: Phone[];\n}\n\nexport enum ContributionSortByE {\n All = 'All',\n DC_REPORTED = 'DC_REPORTED',\n DC_NOT_REPORTED = 'DC_NOT_REPORTED',\n DC_GENERATED = 'DC_GENERATED',\n Reported_Contribution_0 = 'Reported_Contribution_0',\n Fully_Settled = 'Fully_Settled',\n VC_Outstanding_Only = 'VC_Outstanding_Only',\n}\n\nexport interface BillReference {\n // id?: string;\n // runDate?: string;\n // billStatusType?: string;\n // remittanceStatementReceivedDate?: string;\n // paymentReferenceNo?: string;\n // paymentSubmissionReferenceNo?: string;\n // memberContributionAmountForTheBill?: ContributionAmount;\n // reportedMemberContributionAmount?: ContributionAmount;\n // paidContributionAmount?: ContributionAmount;\n // outstandingAmountOfThePayment?: ContributionAmount;\n billReferenceNumber: string;\n list: ContributionDetails[];\n}\n\nexport interface EeBillReference {\n billReferenceNo: string;\n runDateInfos: ContributionDetails[];\n}\n\nexport interface MemberLevel {\n memberAccountCode?: string;\n memberName?: string;\n totalPaidContribution?: number;\n paymentReceivedDate?: string;\n chineseFirstName?: string;\n chineseLastName?: string;\n id?: string;\n legalId?: string;\n legalIdType?: string;\n}\n\n// export interface MultiServiceProvider {\n// providerName: string;\n// }\n\nexport interface AccountBalance {\n forfeitureAccount?: number;\n reservedAccount?: number;\n suspenseRecord?: number;\n // frontend\n accountBalance?: number;\n records?: IPageResponse;\n}\n\nexport type SuspenseRecordSearchRequestKey = 'id' | 'paymentSubmissionReferenceNo' | 'paymentReferenceNo' | 'paymentReceivedDate';\n\nexport interface SuspenseRecordSearchRequest extends IPageableRequest {\n receiptReferenceNo?: string;\n paymentSubmissionReferenceNo?: string;\n paymentReceivedDate?: string;\n paymentMethod?: string;\n sort?: string;\n id?: string;\n payrollGroupId?: string;\n}\n\nexport interface ColumnSort {\n key: string;\n value: string;\n}\n\nexport type PaymentRecordSearchRequestKey =\n | 'paymentSubmissionReferenceNo'\n | 'paymentReferenceNo'\n | 'contributionStartDate'\n | 'contributionEndDate'\n | 'billReferenceNo';\n\nexport interface PaymentRecordSearchRequest extends IPageableRequest {\n paymentSubmissionReferenceNo?: string;\n receiptReferenceNo?: string;\n contributionPeriodFrom?: string;\n contributionPeriodTo?: string;\n billReferenceNo?: string;\n id?: string;\n payrollGroupId?: string;\n}\n\nexport interface PaymentRecord {\n paymentSubmissionReferenceNo?: string;\n receiptReferenceNo?: string;\n billReferenceNo?: string;\n contributionPeriod?: string;\n contributionPeriodFrom?: string;\n contributionPeriodTo?: string;\n statusCode?: number;\n paymentMethod?: string;\n company?: string;\n chequeBankInDate?: string;\n chequeDate?: string;\n paymentClearedDate?: string;\n suspenseId?: string;\n}\n\nexport interface PaymentSubmission {\n employerAccountCode?: string;\n paymentSubmissionReferenceNo?: string;\n companyEnName?: string;\n companyZhName?: string;\n suspenseId?: string;\n workflowReferenceNo?: string;\n workflowReferenceNoList?: string[];\n otherTransactionReferenceNo?: string;\n otherTransactionReferenceNoList?: string[];\n}\n\nexport interface WorkflowDTO {\n memberAccountCode?: string;\n memberFirstName?: string;\n memberLastName?: string;\n memberFirstZhName?: string;\n memberLastZhName?: string;\n memberEmpfId?: string;\n workflowReferenceNo?: string;\n statusCode?: string;\n type?: string;\n createDate?: string;\n followupRejectDate?: string;\n followupRejectReason?: string;\n}\n\nexport interface BankInformation {\n bankCode?: string;\n branchCode?: string;\n bankAccountNo?: string;\n paymentMethod?: string;\n chequeNo?: string;\n chequeBankInDate?: string;\n paymentClearedDate?: string;\n paymentReceivedDate?: string;\n receivedAmount?: number;\n payerName?: string;\n chequeDirectMailingToeMpfFlag?: string;\n trusteeBankCode?: string;\n trusteeBranchCode?: string;\n trusteeBankAccountNo?: string;\n}\n\nexport interface PaymentRecordsDetailPaymentInfo {\n receiptReferenceNo?: string;\n status?: ReiceiptRefNoStatusE;\n}\n\nexport enum ReiceiptRefNoStatusE {\n CLEARED = 'CLEARED',\n REJECT = 'REJECT',\n RECEIVE = 'RECEIVE',\n PENDING = 'PENDING',\n UNIDENTIFIED = 'UNIDENTIFIED',\n TAGGED = 'TAGGED',\n}\n\nexport const reiceiptRefNoStatusMapObj = {\n [ReiceiptRefNoStatusE.CLEARED]: {\n text: 'CLEARED',\n color: '#00A758',\n },\n [ReiceiptRefNoStatusE.REJECT]: {\n text: 'REJECT',\n color: '#8E90A2',\n },\n [ReiceiptRefNoStatusE.PENDING]: {\n text: 'PENDING',\n color: '#F49600',\n },\n [ReiceiptRefNoStatusE.RECEIVE]: {\n text: 'RECEIVE',\n color: '#6F5693',\n },\n [ReiceiptRefNoStatusE.UNIDENTIFIED]: {\n text: 'UNIDENTIFIED',\n color: '#28D7CB',\n },\n [ReiceiptRefNoStatusE.TAGGED]: {\n text: 'TAGGED',\n color: '#EC6453',\n },\n};\n\nexport interface HandledBy {\n relationshipManager: string;\n relationshipTeamManger: string;\n cso: string;\n csoTeamManager: string;\n mspArrangement: string;\n arrangementDescription: string;\n optionFrequency: string;\n optFrequencyDescription: string;\n lastOptDate: string;\n}\n\nexport type PaymentMemberLevelRequestKey = 'memberAccountCode' | 'memberName' | 'countributionDate';\n\nexport interface PaymentMemberLevelRequest extends IPageableRequest {\n memberAccountCode?: string;\n memberName?: string;\n // frontend only\n countributionDate?: string;\n // frontend only\n contributionPeriod?: string;\n contributionPeriodFrom?: string;\n contributionPeriodTo?: string;\n payrollGroupId?: string;\n receiptReferenceNo?: string;\n id?: string;\n subRefNo?: string;\n}\n\nexport interface PaymentMemberLevel {\n memberAccountCode?: string;\n firstName?: string;\n lastName?: string;\n firsZhtName?: string;\n lastZhName?: string;\n contributionStart?: string;\n contributionEnd?: string;\n receivedAmount?: number;\n}\n\nexport interface PaymentContribution {\n contributionStart?: string;\n contributionEnd?: string;\n}\n\nexport enum ActivityTypeE {\n ALL = '',\n EMPLOYER = 'ER',\n EMPLOYEE = 'EE',\n SPECIAL = 'SP',\n}\n\nexport const activityTypeptions: CdsOption[] = [\n {\n label: 'Employer',\n value: ActivityTypeE.EMPLOYER,\n },\n {\n label: 'Employee',\n value: ActivityTypeE.EMPLOYEE,\n },\n {\n label: 'Special',\n value: ActivityTypeE.SPECIAL,\n },\n];\n\nexport const activityTypeAllOptions: CdsOption[] = [\n {\n label: 'All',\n value: ActivityTypeE.ALL,\n },\n ...activityTypeptions,\n];\n\nexport type ActivitySearchRequestKey = 'activityCode' | 'description' | 'createStartDate' | 'createEndDate' | 'score' | 'activityType';\n\nexport interface ActivitySearchRequest extends IPageableRequest {\n activityCode?: string;\n description?: string;\n createStartDate?: string;\n createEndDate?: string;\n fromDate?: string;\n toDate?: string;\n score?: string;\n activityType?: ActivityTypeE;\n employerId?: string;\n}\n\nexport interface Activity {\n id?: string;\n activityCode?: string;\n description?: string;\n score?: number;\n createdAt?: string;\n activityType?: ActivityTypeE | '';\n completionDate?: string;\n inEdit?: boolean;\n version?: number;\n employerId?: string;\n activityId?: string;\n}\n\nexport interface SpecialManagement {\n id?: string;\n multiNationalClient: boolean;\n multiRelationshipManager: string;\n multiRelationshipTeamManager: string;\n providerNames?: MultiServiceProvider[];\n providers?: MultiServiceProvidersE[];\n relationshipManager: string;\n relationshipTeamManager: string;\n cso: string;\n csoTeamManager: string;\n mspArrangement: string;\n arrangementDescription: string;\n memberOptionFrequency: string;\n optFrequencyDescription: string;\n lastOptDate: string;\n version?: string;\n}\n\nexport interface MultiServiceProvider {\n id?: string;\n arrangementId?: string;\n provider: MultiServiceProvidersE;\n}\n\nexport enum MultiServiceProvidersE {\n AIA_COMPANY_TRUSTEE_LIMITED = 'AIA_COMPANY_TRUSTEE_LIMITED',\n BANK_OF_COMMUNICATIONS_TRUSTEE_LIMITED = 'BANK_OF_COMMUNICATIONS_TRUSTEE_LIMITED',\n BANK_CONSORTIUM_TRUST_COMPANY_LIMITED = 'BANK_CONSORTIUM_TRUST_COMPANY_LIMITED',\n BANK_OF_EAST_ASIA_TRUSTEES_LIMITED = 'BANK_OF_EAST_ASIA_TRUSTEES_LIMITED',\n BOCI_PRUDENTIAL_TRUSTEE_LIMITED = 'BOCI_PRUDENTIAL_TRUSTEE_LIMITED',\n CHINA_LIFE_TRUSTEES_LIMITED = 'CHINA_LIFE_TRUSTEES_LIMITED',\n HSBC_PROVIDENT_FUND_TRUSTEE_HONG_KONG_LIMITED = 'HSBC_PROVIDENT_FUND_TRUSTEE_HONG_KONG_LIMITED',\n MANULIFE_PROVIDENT_FUNDS_TRUST_COMPANY_LIMITED = 'MANULIFE_PROVIDENT_FUNDS_TRUST_COMPANY_LIMITED',\n PRINCIPAL_TRUST_COMPANY_ASIA_LIMITED = 'PRINCIPAL_TRUST_COMPANY_ASIA_LIMITED',\n RBC_INVESTOR_SERVICES_TRUST_HONG_KONG_LIMITED = 'RBC_INVESTOR_SERVICES_TRUST_HONG_KONG_LIMITED',\n SUN_LIFE_PENSION_TRUST_LIMITED = 'SUN_LIFE_PENSION_TRUST_LIMITED',\n SUN_LIFE_TRUSTEE_COMPANY_LIMITED = 'SUN_LIFE_TRUSTEE_COMPANY_LIMITED',\n YF_LIFE_TRUSTEES_LIMITED = 'YF_LIFE_TRUSTEES_LIMITED',\n INFORMATION_NOT_AVAILABLE = 'INFORMATION_NOT_AVAILABLE',\n}\n\nexport enum MspArrangementE {\n BOTH_CONT_AND_ASSETS_AT_MIL = 'BOTH_CONT_AND_ASSETS_AT_MIL',\n CONT_AT_MIL_BUT_ASSET_AT_OTHER_PROVIDER = 'CONT_AT_MIL_BUT_ASSET_AT_OTHER_PROVIDER',\n BOTH_CONT_AND_ASSET_TO_OTHER_PROVIDER = 'BOTH_CONT_AND_ASSET_TO_OTHER_PROVIDER',\n CONT_TO_OTHER_PROVIDER_BUT_ASSET_AT_MIL = 'CONT_TO_OTHER_PROVIDER_BUT_ASSET_AT_MIL',\n OTHERS = 'OTHERS',\n INFORMATION_NOT_AVAILABLE = 'INFORMATION_NOT_AVAILABLE',\n}\n\nexport enum MemberOptionFrequencyE {\n ONE_OFF_AT_INCEPTION = 'ONE_OFF_AT_INCEPTION',\n ANNUAL = 'ANNUAL',\n SEMI_ANNUAL = 'SEMI_ANNUAL',\n OTHERS_PLEASE_SPECIFY = 'OTHERS_PLEASE_SPECIFY',\n INFORMATION_NOT_AVAILABLE = 'INFORMATION_NOT_AVAILABLE',\n}\n\nexport interface RelationshipTotalCount {\n totalRelationshipScore?: string;\n totalAggregateInvestedAmount?: string;\n totalAnnualizedContribution?: string;\n}\n\nexport enum AgentStatusE {\n ACTIVE = 'ACTIVE',\n TERMINATE = 'TERMINATE',\n TRANSFER = 'TRANSFER',\n RETIRED = 'RETIRED',\n DECEASED = 'DECEASED',\n DISABLE = 'DISABLE',\n LOSS = 'LOSS',\n DUMMY = 'DUMMY',\n}\n\nexport const agentStatusMapObj = {\n [AgentStatusE.ACTIVE]: {\n text: 'Active',\n color: '#07A455',\n },\n [AgentStatusE.TERMINATE]: {\n text: 'Terminated',\n color: '#8E91A0',\n },\n [AgentStatusE.TRANSFER]: {\n text: 'Transfer',\n color: '#22DBC9',\n },\n [AgentStatusE.RETIRED]: {\n text: 'Retired',\n color: '#6F5690',\n },\n [AgentStatusE.DECEASED]: {\n text: 'Deceased',\n color: '#0004BE',\n },\n [AgentStatusE.DISABLE]: {\n text: 'Disable',\n color: '#F99500',\n },\n [AgentStatusE.LOSS]: {\n text: 'Loss',\n color: '#C5423A',\n },\n [AgentStatusE.DUMMY]: {\n text: 'Dummy',\n color: '#60D48B',\n },\n};\n\nexport enum EmployerStatusE {\n RECEIVE = 'RECEIVE',\n FOLLOW_UP_IN_PRGRESS = 'FOLLOW_UP_IN_PRGRESS',\n ACTIVE = 'ACTIVE',\n TERMG = 'TERMG',\n TERMD = 'TERMD',\n TR_REJECT = 'TR_REJECT',\n CANCEL = 'CANCEL',\n RETAIN = 'RETAIN',\n TEMP = 'TEMP',\n PROVISIONAL = 'PROVISIONAL',\n}\n\nexport const employerStatusMapObj = {\n [EmployerStatusE.RECEIVE]: {\n text: 'Received and pending enrolment',\n color: '#28D7CB',\n },\n [EmployerStatusE.FOLLOW_UP_IN_PRGRESS]: {\n text: 'In progress, Unclean and need follow up action',\n color: '#F49600',\n },\n [EmployerStatusE.ACTIVE]: {\n text: 'Active',\n color: '#00A758',\n },\n [EmployerStatusE.TERMG]: {\n text: 'Terminating',\n color: '#6F5693',\n },\n [EmployerStatusE.TERMD]: {\n text: 'Terminated',\n color: '#D03A39',\n },\n [EmployerStatusE.TR_REJECT]: {\n text: 'Rejected by Trustee',\n color: '#8E90A2',\n },\n [EmployerStatusE.CANCEL]: {\n text: 'Cancelled by client',\n color: '#EC6453',\n },\n [EmployerStatusE.RETAIN]: {\n text: 'Retain ESS Member',\n color: '#8E90A2',\n },\n [EmployerStatusE.TEMP]: {\n text: 'Temporary after AEOI',\n color: '#8E90A2',\n },\n [EmployerStatusE.PROVISIONAL]: {\n text: 'Provisional with invested monies before AEOI',\n color: '#8E90A2',\n },\n};\n\nexport enum EnrolmentStatusE {\n PENDING = 'Pending',\n COMPELETED = 'Completed',\n}\n\nexport const enrolmentStatusMapObj = {\n [EnrolmentStatusE.PENDING]: {\n text: 'Pending',\n color: '#F49600',\n },\n [EnrolmentStatusE.COMPELETED]: {\n text: 'Completed',\n color: '#00A758',\n },\n};\n\nexport enum AccountTypeE {\n ER = 'ER',\n SEP = 'SEP',\n TVC = 'TVC',\n SVC = 'SVC',\n PA = 'PA',\n}\n\nexport const accountTypeMapObj = {\n [AccountTypeE.ER]: 'MPF-ER',\n [AccountTypeE.SEP]: 'Self-Employed Person',\n [AccountTypeE.TVC]: 'Tax Deductible Voluntary',\n [AccountTypeE.SVC]: 'Special Voluntary Contribution',\n [AccountTypeE.PA]: 'Personal Account Holder',\n};\n\nexport enum ErAccountTypeE {\n MPF = 'MPF',\n ORSO = 'ORSO',\n Macau = 'Macau',\n}\n\nexport const erAccountTypeMapObj = {\n [ErAccountTypeE.MPF]: 'MPF-ER',\n [ErAccountTypeE.ORSO]: 'ORSO-ER',\n [ErAccountTypeE.Macau]: 'Macau-ER',\n};\n\nexport const erAccountTypeMap = {\n [AccountTypeE.ER]: 'Employer',\n [AccountTypeE.SEP]: 'Self-Employed Person',\n [AccountTypeE.TVC]: 'Tax Deductible Voluntary Contribution',\n [AccountTypeE.SVC]: 'Special Voluntary Contribution',\n [AccountTypeE.PA]: 'Personal Account Holder',\n};\n\nexport enum RegistrationTypeE {\n BR = 'BR',\n EDU = 'EDU',\n IRD = 'IRD',\n TU = 'TU',\n SO = 'SO',\n OTHERS = 'OTHERS',\n}\n\nexport const registrationTypeMapObj = {\n [RegistrationTypeE.BR]: 'Business Registration',\n [RegistrationTypeE.EDU]: 'Education Institution',\n [RegistrationTypeE.IRD]: 'Inland Revenue Department (Charitable Organisations)',\n [RegistrationTypeE.TU]: 'Registry of Trade Unions',\n [RegistrationTypeE.SO]: 'Societies Office of Hong Kong Police',\n [RegistrationTypeE.OTHERS]: 'Others',\n};\n\nexport enum CompanyTypeE {\n SOLE_PROPRIETORSHIP = 'SOLE_PROPRIETORSHIP',\n PARTNERSHIP = 'PARTNERSHIP',\n PARTNERSHIP_LTD = 'PARTNERSHIP_LTD',\n PUBLIC_LTD = 'PUBLIC_LTD',\n REP_OFFICE = 'REP_OFFICE',\n PRIVATE_LTD = 'PRIVATE_LTD',\n TRADE_UNION = 'TRADE_UNION',\n EDU_INST = 'EDU_INST',\n CHAR_ORG = 'CHAR_ORG',\n NP_ORG = 'NP_ORG',\n LIMITED = 'LIMITED',\n COOP = 'COOP',\n GVN_AGN = 'GVN_AGN',\n OTHERS = 'OTHERS',\n}\n\nexport const companyTypeMapObj = {\n [CompanyTypeE.SOLE_PROPRIETORSHIP]: 'Sole Proprietorship',\n [CompanyTypeE.PARTNERSHIP]: 'Partnership',\n [CompanyTypeE.PARTNERSHIP_LTD]: 'Limited Partnership',\n [CompanyTypeE.PUBLIC_LTD]: 'Public Limited Company',\n [CompanyTypeE.REP_OFFICE]: 'Representative Office / Foreign Company Office',\n [CompanyTypeE.PRIVATE_LTD]: 'Private Limited Company',\n [CompanyTypeE.TRADE_UNION]: 'Trade Union',\n [CompanyTypeE.EDU_INST]: 'Educational Institution',\n [CompanyTypeE.CHAR_ORG]: 'Charitable Organization',\n [CompanyTypeE.NP_ORG]: 'Non-Profit Organization',\n [CompanyTypeE.LIMITED]: 'Limited Company',\n [CompanyTypeE.COOP]: 'Cooperative Societies',\n [CompanyTypeE.GVN_AGN]: 'Government Agency',\n [CompanyTypeE.OTHERS]: 'Other Company Type',\n};\n\nexport enum BusinessNatureE {\n CATR = 'CATR',\n CONS = 'CONS',\n MANF = 'MANF',\n FINA = 'FINA',\n COMM = 'COMM',\n WRIE = 'WRIE',\n TRAN = 'TRAN',\n CLEN = 'CLEN',\n SECU = 'SECU',\n HAIR = 'HAIR',\n OTHR = 'OTHR',\n UNKN = 'UNKN',\n COMN = 'COMN',\n EDU = 'EDU',\n HOTEL = 'HOTEL',\n PERSONAL = 'PERSONAL',\n JEWELLERY = 'JEWELLERY',\n PHARMACEUTE = 'PHARMACEUTE',\n ESTATE = 'ESTATE',\n SALES = 'SALES',\n TEXTILE = 'TEXTILE',\n}\n\nexport const businessNatureMapObj = {\n [BusinessNatureE.CATR]: 'Catering',\n [BusinessNatureE.CONS]: 'Construction',\n [BusinessNatureE.MANF]: 'Manufacturing',\n [BusinessNatureE.FINA]: 'Financing/Insurance/Real Estate/Business Services',\n [BusinessNatureE.COMM]: 'Community/Social/Personal Services',\n [BusinessNatureE.WRIE]: 'Wholesale/Retail/Import and Export Trades',\n [BusinessNatureE.TRAN]: 'Transport',\n [BusinessNatureE.CLEN]: 'Cleaning',\n [BusinessNatureE.SECU]: 'Security Guard',\n [BusinessNatureE.HAIR]: 'Hairdressing and Beauty',\n [BusinessNatureE.OTHR]: 'Others',\n [BusinessNatureE.UNKN]: 'Unknown',\n [BusinessNatureE.COMN]: 'Communication',\n [BusinessNatureE.EDU]: 'Unknown',\n [BusinessNatureE.HOTEL]: 'Hotel/Boarding houses',\n [BusinessNatureE.PERSONAL]: 'Personal/Household services',\n [BusinessNatureE.JEWELLERY]: 'Jewellery/Precious metals/Art dealers',\n [BusinessNatureE.PHARMACEUTE]: 'Pharmaceutical industry',\n [BusinessNatureE.ESTATE]: 'Real estate',\n [BusinessNatureE.SALES]: 'Sales/Rental of vehicles & equipment',\n [BusinessNatureE.TEXTILE]: 'Textile business',\n};\n\nexport enum OrsoAppSignalE {\n F = 'F',\n T = 'T',\n N = 'N',\n Y = 'Y',\n E = 'E',\n NA = 'NA',\n}\n\nexport const orsoAppSignalMapObj = {\n [OrsoAppSignalE.F]: 'F-ORSO EXEMPT',\n [OrsoAppSignalE.T]: 'T-TRUSTED ORSO',\n [OrsoAppSignalE.N]: 'N-NON-TRUSTED',\n [OrsoAppSignalE.Y]: 'Y-MPF EXEMPT',\n [OrsoAppSignalE.E]: 'E-MPFORSO EXEM',\n [OrsoAppSignalE.NA]: 'N/A',\n};\n\nexport enum LanguageTypeE {\n EN = 'EN',\n ZH_HK = 'ZH-HK',\n ZH_CN = 'ZH-CN',\n BI = 'BI',\n}\n\nexport const languageTypeMapObj = {\n [LanguageTypeE.EN]: 'English',\n [LanguageTypeE.ZH_HK]: 'Traditional Chinese',\n [LanguageTypeE.ZH_CN]: 'Simplified Chinese',\n [LanguageTypeE.BI]: 'Bilingual',\n};\n\nexport enum CommunicationTypeE {\n EMAIL = 'EMAIL',\n PAPER = 'PAPER',\n SMS = 'SMS',\n APP_PUSH = 'APP_PUSH',\n}\n\nexport const communicationTypeMapObj = {\n [CommunicationTypeE.EMAIL]: 'Email',\n [CommunicationTypeE.PAPER]: 'Paper',\n [CommunicationTypeE.SMS]: 'SMS',\n [CommunicationTypeE.APP_PUSH]: 'App Push',\n};\n\nexport enum SubmitChannelE {\n WEB_PORTAL = 'WEB_PORTAL',\n MOBILE_APP = 'MOBILE_APP',\n PAPER_FORM = 'PAPER_FORM',\n THIRD_PARTY_PORTAL = 'THIRD_PARTY_PORTAL',\n BATCH = 'BATCH',\n KIOSK = 'KIOSK',\n CONTACT_CENTER = 'CONTACT_CENTER',\n MPFA_PORTAL = 'MPFA_PORTAL',\n TRUSTEE_PORTAL = 'TRUSTEE_PORTAL',\n}\n\nexport const submitChannelMapObj = {\n [SubmitChannelE.WEB_PORTAL]: 'Web Portal',\n [SubmitChannelE.MOBILE_APP]: 'Mobile App',\n [SubmitChannelE.PAPER_FORM]: 'Paper form',\n [SubmitChannelE.THIRD_PARTY_PORTAL]: 'Third Party Portal',\n [SubmitChannelE.BATCH]: 'Batch',\n [SubmitChannelE.KIOSK]: 'Kiosk',\n [SubmitChannelE.CONTACT_CENTER]: 'Contact Center',\n [SubmitChannelE.MPFA_PORTAL]: 'MPFA Portal',\n [SubmitChannelE.TRUSTEE_PORTAL]: 'Trustee Portal',\n};\n\nexport enum LspspoffsetSeqE {\n OFFSET_MC_VC = 'OFFSET_MC_VC',\n OFFSET_VC_MC = 'OFFSET_VC_MC',\n}\n\nexport const lspspoffsetSeqMapObj = {\n [LspspoffsetSeqE.OFFSET_MC_VC]: 'Offset MC then VC',\n [LspspoffsetSeqE.OFFSET_VC_MC]: 'Offset VC then MC',\n};\n\nexport enum CurrencyE {\n HKD = 'HKD',\n USD = 'USD',\n MOP = 'MOP',\n}\n\nexport const currencyMapObj = {\n [CurrencyE.HKD]: 'Hong Kong Dollar',\n [CurrencyE.MOP]: 'Macau Dollar',\n [CurrencyE.USD]: 'US Dollar',\n};\n\nexport const aggregateInvestedAmountCurrencyDropdownOptions: CdsOption[] = [\n {\n label: 'HKD',\n value: CurrencyE.HKD,\n },\n {\n label: 'USD',\n value: CurrencyE.USD,\n },\n {\n label: 'MOP',\n value: CurrencyE.MOP,\n },\n];\n\nexport enum PaymentMethodE {\n PHYSICAL_CHEQUE = 'PHYSICAL_CHEQUE',\n DIRECT_DEBIT = 'DIRECT_DEBIT',\n FORFEIT_ACCT_OFFSET = 'FORFEIT_ACCT_OFFSET',\n RESERVE_ACCT_OFFSET = 'RESERVE_ACCT_OFFSET',\n FPS = 'FPS',\n E_CHEQUE = 'E_CHEQUE',\n CASHIER_ORDER = 'CASHIER_ORDER',\n PPS = 'PPS',\n CREDIT_TRANSFER = 'CREDIT_TRANSFER',\n CASH = 'CASH',\n CMU = 'CMU',\n OTHERS = 'OTHERS',\n MPFA_TRANSFER = 'MPFA_TRANSFER',\n BILL_PYM = 'BILL_PYM',\n}\n\nexport const paymentMethodOptions: CdsOption[] = [\n {\n label: 'Physical Cheque',\n value: PaymentMethodE.PHYSICAL_CHEQUE,\n },\n {\n label: 'Direct Debit',\n value: PaymentMethodE.DIRECT_DEBIT,\n },\n {\n label: 'Offset From Forfeiture Account',\n value: PaymentMethodE.FORFEIT_ACCT_OFFSET,\n },\n {\n label: 'Offset From Reserve Account',\n value: PaymentMethodE.RESERVE_ACCT_OFFSET,\n },\n {\n label: 'FPS',\n value: PaymentMethodE.FPS,\n },\n {\n label: 'e-Cheque',\n value: PaymentMethodE.E_CHEQUE,\n },\n {\n label: 'Cashier Order',\n value: PaymentMethodE.CASHIER_ORDER,\n },\n {\n label: 'PPS',\n value: PaymentMethodE.PPS,\n },\n {\n label: 'Credit Transfer',\n value: PaymentMethodE.CREDIT_TRANSFER,\n },\n {\n label: ' Cash Deposit',\n value: PaymentMethodE.CASH,\n },\n {\n label: 'CMU',\n value: PaymentMethodE.CMU,\n },\n {\n label: 'Others',\n value: PaymentMethodE.OTHERS,\n },\n {\n label: 'MPFA Transfer',\n value: PaymentMethodE.MPFA_TRANSFER,\n },\n {\n label: 'Bill Payment',\n value: PaymentMethodE.BILL_PYM,\n },\n];\n\nexport enum ContributionStatusE {\n 'NEW' = 'NEW',\n 'GENERATED' = 'GENERATED',\n 'REPORTED' = 'REPORTED',\n 'EXCEPTION' = 'EXCEPTION',\n 'VOID' = 'VOID',\n 'NOT_REPORTED' = 'NOT_REPORTED',\n 'CANCELLED' = 'CANCELLED',\n 'NA' = 'N/A',\n}\n\nexport const contributionStatusOptions: CdsOption[] = [\n {\n label: 'New - newly identified DC, pending report to MPFA',\n value: ContributionStatusE.NEW,\n },\n {\n label: 'Generated - reported to MPFA, pending to validate',\n value: ContributionStatusE.GENERATED,\n },\n {\n label: 'DC REPORTED – successfully reported to MPFA',\n value: ContributionStatusE.REPORTED,\n },\n {\n label: 'Exception - rejected by MPFA, pending follow-up/ re-submission',\n value: ContributionStatusE.EXCEPTION,\n },\n {\n label: 'Void - void status',\n value: ContributionStatusE.VOID,\n },\n {\n label: 'Not Reported - not reported to MPFA',\n value: ContributionStatusE.NOT_REPORTED,\n },\n {\n label: 'Cancelled - cancelled upon client’s requests with verification by eMPF, no submission is required',\n value: ContributionStatusE.CANCELLED,\n },\n {\n label: 'N/A - Insufficient voluntary contribution payment received',\n value: ContributionStatusE.NA,\n },\n];\n\nexport enum RectifiedTypeE {\n 'FPAID' = 'FPAID',\n 'PPAID' = 'PPAID',\n 'RENOT' = 'RENOT',\n 'READM' = 'READM',\n 'CHCPD' = 'CHCPD',\n}\n\nexport const rectifiedTypeOptions: CdsOption[] = [\n {\n label: '\"FPAID\" - Full Payment / Rectification',\n value: RectifiedTypeE.FPAID,\n },\n {\n label: '\"ppaid\" - Partial Payment / Rectification',\n value: RectifiedTypeE.PPAID,\n },\n {\n label: '\"RENOT\" - Resolved Problem of NOT',\n value: RectifiedTypeE.RENOT,\n },\n {\n label: '\"READM\" - Resolved Other Admin. Problems',\n value: RectifiedTypeE.READM,\n },\n {\n label: '\"CHCPD\" - Changed Contribution Period Details',\n value: RectifiedTypeE.CHCPD,\n },\n];\nexport interface AgentSep {\n number?: number;\n id?: string;\n createdAt?: string;\n sepCommDate?: string;\n hkid?: string;\n passport?: string;\n dob?: string;\n userId?: string;\n userIdType?: string;\n agentCode?: string;\n agentName?: string;\n agentNameChi?: string;\n check?: boolean;\n mbAcctCd?: string;\n}\n\nexport interface AgentSepCheckResult {\n row: number;\n field: string;\n type: AgentSepCheckResultTypeE;\n message: string;\n}\n\nexport enum AgentSepCheckResultTypeE {\n WARN = 'Warning',\n ERR = 'Error',\n}\n\nexport interface AgentSepFileCheckRes {\n result: boolean;\n tips: AgentSepCheckResult[];\n}\n\nexport const agentSepUserIdTypeOptions: CdsOption[] = [\n {\n label: 'HKID',\n value: 'hkid',\n },\n {\n label: 'Passport',\n value: 'passport',\n },\n];\n\nexport const agentSepUserIdTypeConfig: CdsDropdownConfig = {\n options: agentSepUserIdTypeOptions,\n};\n\nexport enum SchemeMergeSignalE {\n Y = 'Y',\n S = 'S',\n C = 'C',\n}\n\nexport const schemeMergeSignalMapObj = {\n [SchemeMergeSignalE.Y]: 'LS to GS',\n [SchemeMergeSignalE.S]: 'SCB to GS',\n [SchemeMergeSignalE.C]: 'SCB combine with GS',\n};\n\nexport enum SourceOfFundAndWealthE {\n SALARY = 'SALARY',\n PERSON_SAVE = 'PERSON_SAVE',\n BIZ_INCOME_PROFITS = 'BIZ_INCOME_PROFITS',\n INHERITANCE = 'INHERITANCE',\n SALE_OF_PROPERTY = 'SALE_OF_PROPERTY',\n INV_RETURN_MATURED = 'INV_RETURN_MATURED',\n OTHERS = 'OTHERS',\n}\n\nexport const sourceOfFundAndWealthMapObj = {\n [SourceOfFundAndWealthE.SALARY]: 'Salary',\n [SourceOfFundAndWealthE.PERSON_SAVE]: 'Personal savings',\n [SourceOfFundAndWealthE.BIZ_INCOME_PROFITS]: 'Business income and profits',\n [SourceOfFundAndWealthE.INHERITANCE]: 'Inheritance',\n [SourceOfFundAndWealthE.SALE_OF_PROPERTY]: 'Sale of property',\n [SourceOfFundAndWealthE.INV_RETURN_MATURED]: 'Investment return / Investment matured',\n [SourceOfFundAndWealthE.OTHERS]: 'Others',\n};\n\nexport interface VestingRulesList {\n managerList?: VestingRule[];\n officerList?: VestingRule[];\n staffList?: VestingRule[];\n allMembersList?: VestingRule[];\n}\n\nexport interface VestingRule {\n // frontend only\n role?: string;\n vestSeqNo?: number;\n erGrdMbClss?: string;\n effDate?: string;\n termDate?: string;\n calMnthServiceTyp?: string;\n calBaseUnt?: string;\n subacctTyp?: string;\n vcNorRetireAge?: number;\n vcEarRetireAge?: number;\n vestTermReason?: string;\n mnthOfServiceFrm?: number;\n mnthOfServiceTo?: number;\n vestRt?: number;\n vestingClassNo?: number;\n vestingClassName?: string;\n}\n\nexport interface VestingRuleOrso {\n vestingClassNo?: number;\n vestingClassName?: string;\n noPayLeave?: NoPayLeaveE;\n deathBenefitVesting?: OrsoVestingE;\n earlyRetirementVesting?: OrsoVestingE;\n disabilityVesting?: OrsoVestingE;\n discontinuedVesting?: OrsoVestingE;\n minimumVestingAge?: number;\n fullVestingAge?: number;\n serviceYearOrMonthMinimumVesting?: number;\n serviceYearOrMonthFullVesting?: number;\n participationYearOrMonthMinimumVesting?: number;\n requirementTypeMinimumVesting?: RequirementTypeE;\n requirementTypeFullVesting?: RequirementTypeE;\n participationYearOrMonthFullVesting?: number;\n rules: VestingScheme[];\n}\n\nexport interface VestingRuleMpfRes {\n erVestingRulesResponse?: VestingRuleMpf;\n terminationReasonList?: MpfTermination[];\n // only for frontend\n structuredTerminationList?: StructuredTermination[];\n}\n\nexport interface StructuredTermination {\n reasons: VestTermReasonE[];\n // without vestTermReason\n dataSource: MpfTermination[];\n}\n\nexport interface MpfTermination {\n mnthOfServiceFrm?: number;\n mnthOfServiceTo?: number;\n vestRt?: number;\n vestTermReason?: VestTermReasonE;\n}\nexport interface ReasonTable {\n completedMonthOfServiceFrom: number;\n completedMonthOfServiceTo: number;\n vestingRate?: string;\n}\nexport interface TerminationReason {\n reasonHeader?: VestTermReasonE[];\n reasonTable?: ReasonTable[];\n}\nexport interface VestingRuleMpfDTO {\n vestingSequenceNumber?: string;\n employerGradeMemberClass?: string;\n effectiveDate?: string;\n effectiveEndDate?: string;\n calculationOfCompleteMonthOfService?: string;\n calculationBaseUnit?: string;\n subAccountType?: string[];\n vcNormalRetirementAge?: string;\n vcEarlyRetirementAge?: string;\n terminationReasonList?: TerminationReason[];\n}\n\nexport interface RelevantIncomeDTO {\n completedMonthOfServiceFrom?: string;\n completedMonthOfServiceTo?: string;\n rangeOfTheRelevantIncomeAgeFrom?: string;\n rangeOfTheRelevantIncomeAgeTo?: string;\n contributionAmount?: string;\n cappedAmount?: string;\n}\n\nexport interface VoluntaryRuleMpfDTO {\n employerGradeMemberClass?: string;\n effectiveDate?: string;\n effectiveEndDate?: string;\n definitionOfService?: CalMnthServiceTypE;\n definitionOfIncome?: string;\n subAccountType?: string[];\n voluntaryContributionRuleInCommonStandard?: string;\n specifiedPeriodTypeOfADOE?: CalBaseUntE;\n valueOfSpecifiedPeriodOfADOE?: string;\n relevantIncomeList?: RelevantIncomeDTO[];\n}\n\nexport interface VestingRuleMpf {\n vestSeqNo?: number;\n erGrdMbClss?: VestingClassE;\n effDate?: string;\n termDate?: string;\n calBaseUnt?: string;\n calMnthServiceTyp?: CalMnthServiceTypE;\n subacctTyp?: SubacctTypE;\n vcNorRetireAge?: string;\n vcEarRetireAge?: string;\n}\n\nexport enum VestingClassE {\n MANAGER = 'MANAGER',\n OFFICER = 'OFFICER',\n // To be determined\n GENERAL_STAFF = 'GENERAL STAFF',\n}\n\nexport const VestingClassMap = new Map([\n [VestingClassE.MANAGER, 'Manger'],\n [VestingClassE.OFFICER, 'Officer'],\n [VestingClassE.GENERAL_STAFF, 'General Staff'],\n]);\n\nexport interface VestingScheme {\n name?: string;\n vestingSchemeBreakpoints?: VestingSchemeBreakpoint[];\n}\n\nexport interface VestingSchemeBreakpoint {\n vestingSchemeBreakpoint1?: string;\n vestingSchemeBreakpoint2?: string;\n vestingSchemeBreakpoint3?: string;\n vestingSchemeBreakpoint4?: string;\n vestingSchemeBreakpoint5?: string;\n vestingSchemeBreakpoint6?: string;\n vestingSchemeBreakpoint7?: string;\n vestingSchemeBreakpoint8?: string;\n vestingSchemeBreakpoint9?: string;\n vestingSchemeBreakpoint10?: string;\n vestingSchemeBreakpoint11?: string;\n vestingSchemeBreakpoint12?: string;\n vestingSchemeBreakpoint13?: string;\n vestingSchemeBreakpoint14?: string;\n vestingSchemeBreakpoint15?: string;\n vestingSchemeBreakpoint16?: string;\n vestingSchemeBreakpoint17?: string;\n vestingSchemeBreakpoint18?: string;\n vestingSchemeBreakpoint19?: string;\n vestingSchemeBreakpoint20?: string;\n vestingSchemePercentage1?: number;\n vestingSchemePercentage2?: number;\n vestingSchemePercentage3?: number;\n vestingSchemePercentage4?: number;\n vestingSchemePercentage5?: number;\n vestingSchemePercentage6?: number;\n vestingSchemePercentage7?: number;\n vestingSchemePercentage8?: number;\n vestingSchemePercentage9?: number;\n vestingSchemePercentage10?: number;\n vestingSchemePercentage11?: number;\n vestingSchemePercentage12?: number;\n vestingSchemePercentage13?: number;\n vestingSchemePercentage14?: number;\n vestingSchemePercentage15?: number;\n vestingSchemePercentage16?: number;\n vestingSchemePercentage17?: number;\n vestingSchemePercentage18?: number;\n vestingSchemePercentage19?: number;\n vestingSchemePercentage20?: number;\n}\n\nexport enum NoPayLeaveE {\n NA = 0,\n INCLUDED_FOR_VESTING = 1,\n EXCLUED_FOR_VESTING = 2,\n}\n\nexport const NoPayLeaveMap = new Map([\n [NoPayLeaveE.NA, 'NA'],\n [NoPayLeaveE.INCLUDED_FOR_VESTING, 'Included for vesting'],\n [NoPayLeaveE.EXCLUED_FOR_VESTING, 'Excluded for vesting'],\n]);\n\nexport enum OrsoVestingE {\n ZERO_PERCENT = 1,\n ONE_HUNDRED_PERCENT = 2,\n SAME_AS_TERMINATION = 3,\n SPECIFIED_PERCENT = 9,\n}\n\nexport const OrsoVestingMap = new Map([\n [OrsoVestingE.ZERO_PERCENT, '0%'],\n [OrsoVestingE.ONE_HUNDRED_PERCENT, '100%'],\n [OrsoVestingE.SAME_AS_TERMINATION, 'Same as Termination'],\n [OrsoVestingE.SPECIFIED_PERCENT, 'Specified %'],\n]);\n\nexport enum RequirementTypeE {\n NA = 0,\n REQUEST_1_OF_3 = 1,\n REQUEST_2_OF_3 = 2,\n REQUEST_ALL_3 = 3,\n}\n\nexport const RequirementTypeMap = new Map([\n [RequirementTypeE.NA, 'NA'],\n [RequirementTypeE.REQUEST_1_OF_3, 'REQUEST 1 OF 3'],\n [RequirementTypeE.REQUEST_2_OF_3, 'REQUEST 2 OF 3'],\n [RequirementTypeE.REQUEST_ALL_3, 'REQUEST ALL 3'],\n]);\n\nexport enum VestingSchemeBreakpointTypeE {\n NA = 0,\n SERVICE = 10,\n PARTICIPATION = 11,\n AGE = 12,\n}\n\nexport const VestingSchemeBreakpointTypeMap = new Map([\n [VestingSchemeBreakpointTypeE.NA, 'NA'],\n [VestingSchemeBreakpointTypeE.SERVICE, 'Service'],\n [VestingSchemeBreakpointTypeE.PARTICIPATION, 'Participation'],\n [VestingSchemeBreakpointTypeE.AGE, 'Age'],\n]);\n\nexport interface VoluntaryRule {\n // frontend only\n role?: string;\n erGrdMbClss?: string;\n effDate?: string;\n termDate?: string;\n serviceDef?: string;\n incomeDef?: string;\n subacctTyp?: string;\n commonStdVcRule?: string;\n adoePrdTyp?: string;\n adoePrdValue?: number;\n mnthOfServiceFrm?: number;\n mnthOfServiceTo?: number;\n rngFrm?: number;\n rngTo?: number;\n conRt?: number;\n conAmt?: number;\n vcCapdAmt?: number;\n // for frontend\n rules?: VestingRuleDetail[];\n}\n\nexport enum VestTermReasonE {\n RSN = 'RSN',\n RTM = 'RTM',\n ERM = 'ERM',\n DTH = 'DTH',\n ILH = 'ILH',\n TIC = 'TIC',\n RDD = 'RDD',\n}\n\nexport const vestTermReasonMapObj = {\n [VestTermReasonE.RSN]: 'Resignation',\n [VestTermReasonE.RTM]: 'Retirement',\n [VestTermReasonE.ERM]: 'Early Retirement',\n [VestTermReasonE.DTH]: 'Death',\n [VestTermReasonE.ILH]: 'On ground of ill health',\n [VestTermReasonE.TIC]: 'Total Incapacity',\n [VestTermReasonE.RDD]: 'Redundancy',\n};\n\nexport enum IncomeTypeE {\n BS = 'BS',\n RI = 'RI',\n}\n\nexport const incomeTypeMapObj = {\n [IncomeTypeE.BS]: 'Basic Salary only',\n [IncomeTypeE.RI]: 'Relevant Income as defined under MPF legislation',\n};\n\nexport interface AgentSepWarn {\n sepCommDate?: string;\n dob?: string;\n userIdType?: string;\n userId?: string;\n}\n","import { AfterViewInit, Component, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CdsTabGroupComponent } from '@cds/ng-web-components/tabs';\n\n@Component({\n selector: 'app-fund-benifit',\n templateUrl: './fund-benifit.component.html',\n styleUrls: ['./fund-benifit.component.scss'],\n})\nexport class FundBenifitComponent implements OnInit, AfterViewInit {\n _index = 0;\n @ViewChildren(CdsTabGroupComponent) myButton!: QueryList;\n\n constructor(private route: ActivatedRoute) {}\n\n ngOnInit(): void {}\n ngAfterViewInit() {\n const _index = this.route.snapshot.queryParams['index'];\n if (_index) {\n this.myButton.get(0)?.selectTabByIndex(1);\n }\n }\n\n selectedTabIndexChange(index: number) {\n this._index = index;\n }\n}\n","
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport {\n InterestRateSearch,\n InterestRate,\n InterestRateFundDTO,\n FundCodeMapping,\n InterestRateHistory,\n DividendRateSearch,\n DividendRateDeatilRequest,\n InterestRateAdd,\n} from './employer';\nimport { HttpClient } from '@angular/common/http';\nimport { DividendRate, DividendRateDoSubmit } from '../system/calendar/shared/calendar.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InterestRateService {\n private customerServiceUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n private paymentServiceUrl = `${environment.apiPrefix}/ext/eb-ssms/payment-service/`;\n private interestRateUrl = this.paymentServiceUrl + 'interest-rate/rateList';\n private interestRatedoConfirmUrl = this.paymentServiceUrl + 'interest-rate/doConfirm';\n private interestRateFindUrl = this.customerServiceUrl + 'interest-rate/find';\n private interestRateFundListUrl = this.paymentServiceUrl + 'interest-rate/fundList';\n private interestRateYearListUrl = this.paymentServiceUrl + 'interest-rate/yearList';\n private interestRateApproveUrl = this.paymentServiceUrl + 'interest-rate/doApprove';\n private interestRateHistoryUrl = this.customerServiceUrl + 'interest-rate/history';\n private dividendListUrl = `${environment.apiPrefix}${environment.paymentServiceExt}/dividend-rate/ratePage`;\n private dividendDeatailUrl = `${environment.apiPrefix}${environment.paymentServiceExt}/dividend-rate/editReview`;\n private diviendRateYearsUrl = `${environment.apiPrefix}${environment.paymentServiceExt}/dividend-rate/yearList`;\n private diviendRateDoConfirmUrl = `${environment.apiPrefix}${environment.paymentServiceExt}/dividend-rate/doConfirm`;\n private diviendRateDoApproveUrl = `${environment.apiPrefix}${environment.paymentServiceExt}/dividend-rate/doApprove`;\n\n constructor(@Inject(LOCALE_ID) public locale: string, private http: HttpClient) {}\n\n interestRatePage(page: InterestRateSearch): Observable> {\n return this.http.get>(this.interestRateUrl, {\n params: filterParams(page),\n });\n }\n\n interestRateSave(param: InterestRateAdd): Observable> {\n return this.http.post>(this.interestRatedoConfirmUrl, param);\n }\n\n interestRateFind(request: InterestRateFundDTO): Observable> {\n return this.http.get>(this.interestRateFindUrl, {\n params: filterParams(request),\n });\n }\n\n listAllFund(): Observable> {\n return this.http.get>(this.interestRateFundListUrl);\n }\n\n listYears(): Observable> {\n return this.http.get>(this.interestRateYearListUrl);\n }\n\n interestRateApprove(param: InterestRate): Observable> {\n return this.http.post>(this.interestRateApproveUrl, param);\n }\n\n getHistoryList(request: InterestRateHistory): Observable> {\n return this.http.get>(this.interestRateHistoryUrl, {\n params: filterParams(request),\n });\n }\n\n getDividendYearList() {\n return this.http.get>>(this.diviendRateYearsUrl);\n }\n\n getDividendRateEvents(request?: DividendRateSearch): Observable> {\n return this.http.get>(this.dividendListUrl, {\n params: filterParams(request),\n });\n }\n\n getDetailRate(request?: DividendRateDeatilRequest): Observable> {\n return this.http.get>(this.dividendDeatailUrl, {\n params: filterParams(request),\n });\n }\n diviendRateDoConfirm(param: DividendRateDoSubmit): Observable> {\n return this.http.post>(this.diviendRateDoConfirmUrl, param);\n }\n\n diviendRateDoApprove(param?: string[]): Observable> {\n return this.http.post>(this.diviendRateDoApproveUrl, {\n ids: param,\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { InterestRate, InterestRateAdd, InterestRateAddItem, InterestRateSearch, InterestRateEdit } from '../../employer';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { finalize } from 'rxjs';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { InterestRateService } from '../../interest-rate.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-interest-rate-add-popup',\n templateUrl: './interest-rate-add-popup.component.html',\n styleUrls: ['./interest-rate-add-popup.component.scss'],\n})\nexport class InterestRateAddPopupComponent implements OnInit {\n constructor(\n @Inject(CDS_POPUP_DATA)\n public data: any,\n private service: InterestRateService,\n private dialogRef: MatDialogRef,\n private toastAlert: ToastAlertService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService\n ) {}\n\n form = new FormGroup({\n fundCode: new FormControl('', []),\n year: new FormControl(),\n month: new FormControl(),\n normalRate: new FormControl('', [this.amtValidator()]),\n withdrawalRate: new FormControl('', [this.amtValidator()]),\n interimRate: new FormControl('', [this.amtValidator()]),\n });\n\n searchDTO: InterestRateSearch = {};\n\n fundCodeConfig: CdsDropdownConfig = {\n label: 'Fund Code',\n placeholder: 'Select Fund Code',\n options: [],\n };\n\n yearCodeConfig: CdsDropdownConfig = {\n label: 'Year',\n placeholder: 'Select Year',\n options: [],\n };\n\n addList: InterestRateEdit[] = [];\n _ori_addList: InterestRateEdit[] = [];\n\n yearConfig: CdsDropdownConfig = {\n placeholder: 'Year',\n options: [],\n };\n\n resetConfig: CdsButtonConfig = {\n style: 'secondary',\n size: 'sm',\n };\n saveConfig: CdsButtonConfig = {\n style: 'primary',\n size: 'sm',\n };\n _loadding = false;\n\n formatter = new Intl.NumberFormat('en', {\n useGrouping: false,\n minimumFractionDigits: 4,\n maximumFractionDigits: 4,\n });\n\n _error: Set = new Set();\n _waring: Set = new Set();\n _valid = false;\n\n _confirm = false;\n _canReset = false;\n\n ngOnInit(): void {\n this.initList();\n }\n\n selectedChange(val: string, type: string) {\n console.log(this.searchDTO, val);\n switch (type) {\n case 'fundCode':\n this.searchDTO.fundCode = val;\n break;\n case 'year':\n this.searchDTO.year = val;\n break;\n default:\n }\n this.validating();\n this.loadTable();\n }\n\n initList() {\n this.fundCodeConfig = this.data.fundCodeConfig;\n this.yearCodeConfig = this.data.yearCodeConfig;\n this.searchDTO = this.data.searchDTO;\n this.initAddList();\n this.loadTable();\n this.validating();\n }\n\n initAddList() {\n this.addList = [];\n for (let i = 1; i < 13; i++) {\n this.addList.push({\n month: i.toString().padStart(2, '0'),\n newMoney: {},\n gross: {},\n wdrl: {},\n gtee: {},\n });\n }\n this._ori_addList = this.addList;\n }\n\n getFundFullName(fundCode?: string) {\n const _s = this.fundCodeConfig.options.find(x => x.value == fundCode);\n if (_s) {\n return _s.label;\n }\n return '';\n }\n\n loadTable() {\n if (!this.searchDTO.fundCode || !this.searchDTO.year) {\n return;\n }\n this._loadding = true;\n this.service\n .interestRatePage(this.searchDTO)\n .pipe(\n finalize(() => {\n this._loadding = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n if (data.data && data.data?.length > 0) {\n data.data?.forEach(res => {\n for (let i = 0; i < this.addList.length; i++) {\n if (res.month == this.addList[i].month) {\n this.addList[i] = deepCopy(res);\n }\n }\n });\n } else {\n this.initAddList();\n }\n\n this.validating();\n }\n });\n }\n\n validating() {\n const _error: Set = new Set();\n const _waring: Set = new Set();\n this.addList.forEach(x => {\n if (x.newMoney && x.newMoney.rate) {\n const reg = /^[0-9]{1,2}\\.[0-9]{0,3}$/; // eslint-disable-line\n if (!reg.test(x.newMoney.rate)) {\n _error.add('Invalid percent for New Money%');\n }\n console.log(_error);\n }\n });\n // const date = new Date();\n // const monthSelected = this.interestRateDTO.month;\n // const yearSelected = this.interestRateDTO.year;\n // const code = this.interestRateDTO.fundCode;\n // const _error: Set = new Set();\n // const _waring: Set = new Set();\n\n // if (this.interestRateDTO.newMoney) {\n // const _normalRate = Number.parseFloat(this.interestRateDTO.newMoney);\n // if (!this.interestRateDTO.month) {\n // _error.add('For Normal Rate, month must be current month – 1');\n // }\n // if (monthSelected == 12 && date.getFullYear() - 1 != yearSelected) {\n // _error.add('For Normal Rate, month must be current month – 1');\n // }\n // if (date.getFullYear() == yearSelected && date.getMonth() != monthSelected) {\n // _error.add('For Normal Rate, month must be current month – 1');\n // }\n // const codeList1 = ['DHK121', 'SHK122'];\n // if (code && codeList1.includes(code)) {\n // _waring.add('NORMAL RATE = 0 - IS THIS CORRECT ?');\n // }\n // const codeList2 = ['DHK005', 'DUS005', 'DHK015', 'DUS015'];\n // if (code && codeList2.includes(code)) {\n // this._error.add('INTEREST RATE DATE NOT = BLANK AND NM % = BLANK');\n // }\n // if (_normalRate < 5 || _normalRate > 15) {\n // this._waring.add('NM OR GTEE INTEREST RATE IS NOT WITHIN THE RANGE OF 5 - 15 % - IS THIS CORRECT ?');\n // }\n // const codeList3 = ['DHK121', 'SHK122', 'DHK005', 'DUS005', 'DHK015', 'DUS015', 'DUS067', 'DHK067', 'SHK078'];\n // if (code && codeList3.includes(code) && _normalRate > 19) {\n // _error.add('Normal Rate is not within the range of 0 - 19 %');\n // }\n // const codeLis4 = ['DHK005', 'DUS005', 'DHK015', 'DUS015'];\n // if (code && codeLis4.includes(code) && !this.interestRateDTO.withdrawalRate) {\n // _waring.add('Withdrawal Rate = BLANK AND Normal Rate NOT = BLANK');\n // }\n // const codeList5 = ['DHK121', 'SHK122', 'SHK078'];\n // if (code && codeList5.includes(code) && this.interestRateDTO.recordSent) {\n // _error.add('\tNOT ALLOWED TO CHANGE AS NORMAL / GTEE RATE FOR MONTH (XX) HAS BEEN PASSED TO EMPF/ IFAST. ');\n // }\n // }\n\n // if (this.interestRateDTO.withdrawalRate) {\n // const _withdrawalRate = Number.parseFloat(this.interestRateDTO.withdrawalRate);\n // if (_withdrawalRate == 0) {\n // _error.add('WDRL INTEREST RATE = 0');\n // }\n // const codeList1 = ['DHK121', 'DHK067', 'DUS067', 'SHK122', 'SHK078'];\n // if (code && codeList1.includes(code) && _withdrawalRate > 5) {\n // _waring.add('WDRL INTEREST RATE IS GREATER THAN 5 % - IS THIS CORRECT ?');\n // }\n // }\n\n // if (this.interestRateDTO.interimRate) {\n // const _interimRate = Number.parseFloat(this.interestRateDTO.interimRate);\n // const codeList1 = ['DHK005', 'DUS005', 'DHK015', 'DUS015'];\n // if (code && codeList1.includes(code) && _interimRate == 0) {\n // _error.add('INTERIM % = 0');\n // }\n // }\n\n // if (this.interestRateDTO.normalRate && this.interestRateDTO.interimRate) {\n // const _normalRate = Number.parseFloat(this.interestRateDTO.normalRate);\n // const _interimRate = Number.parseFloat(this.interestRateDTO.interimRate);\n // const codeList1 = ['DHK005', 'DUS005', 'DHK015', 'DUS015'];\n // if (code && codeList1.includes(code) && _interimRate <= _normalRate) {\n // _waring.add('INTERIM % IS NOT GREATER THAN NORMAL % - IS THIS CORRECT ?');\n // }\n // }\n // if (this.interestRateDTO.withdrawalRate || this.interestRateDTO.interimRate) {\n // if (this.interestRateDTO.month != monthSelected && this.interestRateDTO.year != yearSelected) {\n // _error.add('For Withdrawal Rate/ Interim Rate, month must be current month');\n // }\n // }\n if (!!this.searchDTO.fundCode || !!this.searchDTO.year) {\n this._valid = false;\n } else {\n this._valid = true;\n }\n this._canReset = JSON.stringify(this.addList) == JSON.stringify(this._ori_addList);\n this._error = _error;\n this._waring = _waring;\n // this._valid = this._valid && this._error.size == 0;\n }\n\n amtValidator() {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value?.trim();\n if (!value) {\n return {};\n }\n const reg = /^[0-9]{1,2}\\.*[0-9]{0,4}$/; // eslint-disable-line\n if (!reg.test(value)) {\n return { msg: 'Invalid percent for Normal Rate' };\n }\n return {};\n };\n }\n\n initForm() {\n // this.interestRateDTO.year = new Date().getFullYear();\n }\n\n close() {\n if (this._canReset) {\n this.dialogRef.close();\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n }\n\n reset() {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel.italic') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.initList();\n }\n });\n }\n backToEdit() {\n this._confirm = false;\n }\n\n toConfirm() {\n this._confirm = true;\n }\n\n save() {\n // if (!this.form.valid || !this._valid) {\n // return;\n // }\n this._loadding = true;\n const param: InterestRateAdd = {\n ...this.searchDTO,\n };\n const _list: InterestRateAddItem[] = [];\n this.addList.forEach(x => {\n const _item: InterestRateAddItem = {\n month: x.month,\n };\n if (x.newMoney.rate) {\n _item.newMoney = x.newMoney.rate;\n }\n if (x.gross.rate) {\n _item.gross = x.gross.rate;\n }\n if (x.wdrl.rate) {\n _item.wdrl = x.wdrl.rate;\n }\n if (x.gtee.rate) {\n _item.gtee = x.gtee.rate;\n }\n if (_item.gross || _item.newMoney || _item.gtee || _item.wdrl) {\n _list.push(_item);\n }\n });\n param.list = _list;\n this.service\n .interestRateSave(param)\n .pipe(\n finalize(() => {\n this._loadding = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dialogRef.close({ data: true });\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n findInterestRate() {\n // if (!this.interestRateDTO.code || !this.interestRateDTO.year || !this.interestRateDTO.month) {\n // return;\n // }\n // const parm: InterestRateFundDTO = {\n // fundCode: this.interestRateDTO.code,\n // year: this.interestRateDTO.year,\n // month: this.interestRateDTO.month,\n // };\n // this.service\n // .interestRateFind(parm)\n // .pipe(\n // finalize(() => {\n // // this._loading = false;\n // })\n // )\n // .subscribe(data => {\n // if (data.result === 0) {\n // this.interestRateDTO.id = data.data ? data.data.id : undefined;\n // this.interestRateDTO.normalRate = data.data ? this.formatAmt(data.data.normalRate) : undefined;\n // this.interestRateDTO.withdrawalRate = data.data ? this.formatAmt(data.data.withdrawalRate) : undefined;\n // this.interestRateDTO.interimRate = data.data ? this.formatAmt(data.data.interimRate) : undefined;\n // }\n // });\n }\n inputChange(item: InterestRate, val: string, type: string) {\n if (type == 'newMoney' && item.newMoney) {\n item.newMoney.rate = val;\n }\n if (type == 'gross' && item.gross) {\n item.gross.rate = val;\n }\n if (type == 'wdrl' && item.wdrl) {\n item.wdrl.rate = val;\n }\n if (type == 'gtee' && item.gtee) {\n item.gtee.rate = val;\n }\n this.validating();\n }\n\n formatAmt(val: string | undefined) {\n if (!val) {\n return;\n }\n return this.formatter.format(Number.parseFloat(val));\n }\n}\n","\n \n \n
    {{ (_confirm ? 'interest-rate.interest-rate-summary' : 'interest-rate.add-interest-rate') | lang }}
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n {{ 'common.alert' | lang }}\n
    \n
    \n {{ 'calendar.approve.alert' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'interest-rate.interest-rate' | lang }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n
    MonthNew Money %GROSS %WDRL %GTEE %
    {{ item.month }}\n {{ item.newMoney.rate }}\n \n {{ item.gross.rate }}\n \n {{ item.wdrl.rate }}\n \n {{ item.gtee.rate }}\n
    {{ item.month }}\n \n {{ item.newMoney.rate }}\n \n \n \n \n \n \n {{ item.gross.rate }}\n \n \n \n \n \n \n {{ item.wdrl.rate }}\n \n \n \n \n \n \n {{ item.gtee.rate }}\n \n \n \n \n
    \n 0\">\n
    Error
    \n · {{ item }} \n
    \n {{form.get('normalRate')?.['errors']?.['msg']}} \n {{form.get('withdrawalRate')?.['errors']?.['msg']}}\n \n {{form.get('interimRate')?.['errors']?.['msg']}}\n \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { InterestRate, InterestRateHistory } from '../../employer';\nimport { finalize } from 'rxjs';\nimport { InterestRateService } from '../../interest-rate.service';\n\n@Component({\n selector: 'app-interest-rate-history-popup',\n templateUrl: './interest-rate-history-popup.component.html',\n styleUrls: ['./interest-rate-history-popup.component.scss'],\n})\nexport class InterestRateHistoryPopupComponent implements OnInit {\n constructor(\n @Inject(CDS_POPUP_DATA)\n public data: InterestRate,\n private service: InterestRateService\n ) {}\n\n _loading = false;\n dataList: InterestRateHistory[] = [];\n\n ngOnInit(): void {\n // this.getList();\n }\n\n getList() {\n this._loading = true;\n const param: InterestRateHistory = {\n // fundId: this.data.fundId,\n // type: RateType.WITHDRAWAL_RATE,\n // month: this.data.month,\n // year: this.data.year,\n };\n this.service\n .getHistoryList(param)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dataList = data.data ? data.data : [];\n }\n });\n }\n}\n","\n \n \n
    {{ 'interest-rate.interest-rate-hisotry-log' | lang }}
    \n
    {{ 'interest-rate.interest-rate-hisotry-log-tips' | lang }}
    \n
    \n \n
    \n
    \n
    Fund Code
    \n
    {{ data.fundCode + ' ' + data.fundName + ' ' + data.chineseFundName }}
    \n
    \n
    \n
    Month/ Year
    \n
    {{ data.month }}/{{ data.year }}
    \n
    \n\n \n \n \n \n \n \n {{ index + 1 }}\n \n \n {{ element.rate | number : '1.2-2' }} %\n \n \n {{ element.createdAt | ssmsDate }}\n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { ColumnConfig } from 'src/app/shared/data-table';\nimport { configPrimary, configSecondary, InterestRate, InterestRateSearch, InterestRateStatus } from '../../employer';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { InterestRateAddPopupComponent } from '../interest-rate-add-popup/interest-rate-add-popup.component';\nimport { InterestRateHistoryPopupComponent } from '../interest-rate-history-popup/interest-rate-history-popup.component';\nimport { InterestRateService } from '../../interest-rate.service';\n\n@Component({\n selector: 'app-interest-rate',\n templateUrl: './interest-rate.component.html',\n styleUrls: ['./interest-rate.component.scss'],\n})\nexport class InterestRateComponent implements OnInit {\n constructor(private service: InterestRateService, private cdsPopup: CdsPopupService) {}\n\n @Input() load = false;\n\n form = new FormGroup({\n fundCode: new FormControl('', []),\n year: new FormControl(),\n });\n\n searchDTO: InterestRateSearch = {};\n\n label = {\n fundCode: {\n label: 'Fund Code ',\n placeholder: 'Select Fund Code',\n },\n year: {\n label: 'Calendar Year',\n placeholder: 'Select Calendar Year',\n },\n };\n\n fundCodeConfig: CdsDropdownConfig = {\n label: 'Fund Code',\n placeholder: 'Select Fund Code',\n options: [],\n };\n\n yearCodeConfig: CdsDropdownConfig = {\n label: 'Calendar Year',\n placeholder: 'Select Calendar Year',\n options: [],\n };\n\n searchButtonConfig = configPrimary();\n _searchDisable = false;\n\n resetButtonConfig = configSecondary();\n _resetDisable = false;\n\n addButtonConfig = configPrimary();\n\n approveConfig = configSecondary();\n\n _valid = false;\n\n _loading = false;\n\n columnConfig: ColumnConfig[] = [\n { title: 'Month', key: 'month' },\n { title: 'New Money %', key: 'newMoney' },\n { title: 'GROSS %', key: 'gross' },\n { title: 'WDRL %', key: 'wdrl' },\n { title: 'GTEE %', key: 'gtee' },\n { title: 'Status', key: 'status' },\n ];\n\n dataList: InterestRate[] = [];\n\n ngOnInit(): void {\n this.listAllFund();\n this.listYears();\n // this.loadTable();\n }\n\n listYears() {\n this._loading = true;\n this.service\n .listYears()\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(res => {\n if (res.data) {\n const _list: CdsOption[] = [];\n res.data.forEach(x => {\n _list.push({\n label: x,\n value: x,\n });\n });\n this.yearCodeConfig.options = _list;\n this.yearCodeConfig = { ...this.yearCodeConfig };\n }\n });\n }\n\n listAllFund() {\n this._loading = true;\n this.service\n .listAllFund()\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(res => {\n if (res.data) {\n const _list: CdsOption[] = [];\n res.data.forEach(x => {\n _list.push({\n label: x.fundCode + ' ' + x.fundName + ' ' + x.chineseFundName,\n value: x.fundCode,\n });\n });\n this.fundCodeConfig.options = _list;\n this.fundCodeConfig = { ...this.fundCodeConfig };\n }\n });\n }\n\n statusFormat(status: InterestRateStatus) {\n let re = '';\n switch (status) {\n case InterestRateStatus.PENDING:\n re = 'Pending approval';\n break;\n case InterestRateStatus.APPROVED:\n re = 'Approved';\n break;\n default:\n }\n return re;\n }\n approve(item: InterestRate) {\n this._loading = true;\n this.service\n .interestRateApprove(item)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.loadTable();\n }\n });\n }\n\n openHistory(item: InterestRate) {\n this.cdsPopup.open(InterestRateHistoryPopupComponent, {\n size: 'md',\n data: item,\n });\n }\n\n add() {\n const popupRef: MatDialogRef = this.cdsPopup.open(InterestRateAddPopupComponent, {\n size: 'lg',\n data: {\n searchDTO: this.searchDTO,\n fundCodeConfig: this.fundCodeConfig,\n yearCodeConfig: this.yearCodeConfig,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data) {\n this.loadTable();\n }\n });\n }\n\n searchFn() {\n if (this._valid) {\n this.loadTable();\n }\n }\n\n reset() {\n this.searchDTO = {};\n this.loadTable();\n }\n\n loadTable() {\n this._loading = true;\n this.service\n .interestRatePage(this.searchDTO)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dataList = data.data ? data.data : [];\n }\n });\n }\n\n selectedChange(val: string, type: string) {\n switch (type) {\n case 'fundCode':\n this.searchDTO.fundCode = val;\n break;\n case 'year':\n this.searchDTO.year = val;\n break;\n default:\n }\n this.validating();\n }\n\n validating() {\n if (!!this.searchDTO.fundCode || !!this.searchDTO.year) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n}\n","
    \n
    \n {{ 'list.search-record' | lang }}\n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n {{ 'page.total' | lang }} {{ dataList.length }}{{ 'page.records' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n {{ 'interest-rate.latest-updated' | lang }}\n
    \n\n
    \n \n \n {{ element.newMoney.rate }} %\n \n \n {{ element.gross.rate }} %\n \n \n
    \n {{ element.wdrl.rate }} %\n 0\" icon=\"arrow:history\">\n
    \n
    \n \n {{ element.gtee.rate }} %\n \n \n \n
    \n \n \n \n \n {{ element.status }}\n \n
    \n
    \n
    \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { EmployerProfileDetail } from '../employer';\n\n@Component({\n selector: 'app-more-info-details',\n templateUrl: './more-info-details.component.html',\n styleUrls: ['./more-info-details.component.scss'],\n})\nexport class MoreInfoDetailsComponent implements OnInit {\n @Input() id?: string;\n @Input() employerProfileDetail?: EmployerProfileDetail;\n @Input() isStaff = false;\n\n payrollGroupId?: string;\n\n tabIndex = 0;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n selectedTabIndexChange(value: number) {\n this.tabIndex = value;\n }\n}\n","
    \n
    \n
    \n {{ 'er.more-employer-info-details' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { EditCompletedActivityComponent } from '../edit-completed-activity/edit-completed-activity.component';\nimport { Activity, ActivitySearchRequest, ActivitySearchRequestKey, activityTypeAllOptions, ActivityTypeE, activityTypeptions, I18N_KEY } from '../employer';\nimport { EmployerService } from '../employer.service';\n\n@Component({\n selector: 'app-payroll-group-activity-record',\n templateUrl: './payroll-group-activity-record.component.html',\n styleUrls: ['./payroll-group-activity-record.component.scss'],\n})\nexport class PayrollGroupActivityRecordComponent implements OnInit {\n @ViewChild('createStartDate') createStartDate!: NgModel;\n @ViewChild('createEndDate') createEndDate!: NgModel;\n\n id = '';\n\n activityTypeDropdownConfig: CdsDropdownConfig = {\n label: 'Activity Type',\n options: activityTypeptions,\n placeholder: 'Select Activity Type',\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n searchButtonDisabled = true;\n\n resetButtonDisabled = true;\n\n isAllEmpty = true;\n\n showDatePicker = true;\n\n isLoading = false;\n\n numberOfElements = 0;\n\n activityTypes: CdsOption[] = activityTypeAllOptions;\n\n displayedColumnsWithoutPermission = ['activityCode', 'description', 'score', 'completionDate'];\n\n displayedColumns = [...this.displayedColumnsWithoutPermission, 'action'];\n\n originDataSource: Activity[] = [];\n\n dataSource: Activity[] = [];\n\n descriptionTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: 'Input Activity Description',\n type: 'text',\n };\n\n scoreTxtfieldConfig: CdsTextfieldConfig = {\n placeholder: 'Input Activity Score',\n type: 'number',\n };\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n I18N_KEY = I18N_KEY;\n\n canEdit = false;\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'activityCode',\n title: 'Activity Code',\n },\n { key: 'description', title: 'Decription' },\n { key: 'score', title: 'Score' },\n { key: 'completionDate', title: 'Date of Completion' },\n ];\n\n headerButton: AdminHeaderConfig = {\n title: 'employer.er-activity-record',\n backButton: {\n text: 'Employer Enquiry Information Page',\n url: '#',\n method: this.back.bind(this),\n },\n };\n\n back() {\n this.router.navigate(['/employer/profile-detail'], {\n queryParams: { id: this.id },\n });\n }\n\n erActivityScore = 0;\n\n completionActivityScore = 0;\n\n get nowTimeInstr() {\n return DateTime.now().toFormat('dd/MM/yyyy');\n }\n\n get minTime() {\n return this.getMinTime();\n }\n\n get minTimeInStr() {\n return DateTime.fromJSDate(this.minTime).toFormat('dd/MM/yyyy');\n }\n\n get maxTime() {\n return this.getNowTime();\n }\n\n get maxTimeInStr() {\n return DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n }\n\n searchDTO: ActivitySearchRequest = {\n page: 0,\n size: 10,\n activityCode: '',\n description: '',\n fromDate: this.minTimeInStr,\n toDate: this.maxTimeInStr,\n score: '',\n activityType: ActivityTypeE.ALL,\n };\n\n searchParams: ActivitySearchRequest = deepCopy(this.searchDTO);\n\n constructor(\n public employerService: EmployerService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private permissionService: PermissionService,\n private layoutHeaderService: LayoutHeaderService,\n private router: Router,\n private activatedRoute: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTop = 0;\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_EMPLOYER_ACTIVITY_CODE).then(hasPermission => {\n this.canEdit = hasPermission;\n if (hasPermission) {\n this.columnsConfig = [...this.columnsConfig, { key: 'action', title: 'Action' }];\n }\n });\n\n this.id = this.activatedRoute.snapshot.queryParams['id'];\n\n this.loadTable();\n }\n\n searchChange(event: any, key: ActivitySearchRequestKey) {\n const val = event?.target?.value;\n this.searchDTO[key] = val;\n this.validating();\n }\n\n activityChange(value: ActivityTypeE) {\n this.searchDTO.activityType = value;\n this.validating();\n }\n\n searchButtonDisabledFn = (activityCodeValid: any, description: any, createStartDate: any, createEndDate: any, score: any, isAllEmpty: any) => {\n if (isAllEmpty) {\n this.resetButtonDisabled = true;\n return true;\n } else {\n const invalid = [activityCodeValid, description, createStartDate, createEndDate, score].some(item => !item);\n this.searchButtonDisabled = invalid;\n\n return this.searchButtonDisabled;\n }\n };\n\n validating() {\n if (\n !!this.searchDTO.activityCode ||\n !!this.searchDTO.fromDate ||\n !!this.searchDTO.toDate ||\n !!this.searchDTO.description ||\n !!this.searchDTO.score ||\n !!this.searchDTO.activityType\n ) {\n this.isAllEmpty = false;\n } else {\n this.isAllEmpty = true;\n }\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinTime() {\n return moment().subtract(5, 'year').add(1, 'day').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n search = () => {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.searchParams = deepCopy(this.searchDTO);\n this.loadTable();\n this.resetButtonDisabled = false;\n };\n\n reset = () => {\n if (this.resetButtonDisabled) {\n return;\n }\n this.searchDTO = {\n page: 0,\n size: 10,\n activityCode: '',\n fromDate: this.minTimeInStr,\n toDate: this.maxTimeInStr,\n description: '',\n score: '',\n activityType: undefined,\n };\n this.searchButtonDisabled = true;\n this.resetButtonDisabled = true;\n\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n this.searchParams = deepCopy(this.searchDTO);\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n this.validating();\n });\n };\n\n getRequestParams() {\n const params: ActivitySearchRequest = {\n ...this.searchParams,\n page: (this.pageConfig.current as number) - 1,\n size: this.pageConfig.pageSize as number,\n };\n\n params.fromDate = params.fromDate ? this.dateTrans(params.fromDate) : '';\n params.toDate = params.toDate ? this.dateTrans(params.toDate) : '';\n params.employerId = this.id;\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n loadTable() {\n const params: ActivitySearchRequest = this.getRequestParams();\n this.getCompletionActivityScore(params);\n this.getErActivityScore(this.id as string);\n\n this.isLoading = true;\n this.employerService\n .getActivityCompletionList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n // this.originDataSource = deepCopy(this.dataSource);\n this.numberOfElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n }\n });\n }\n\n add() {\n this.cdsPopup\n .open(EditCompletedActivityComponent, {\n size: 'lg',\n data: {\n employerId: this.id,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.employerService\n .addCompletionActivity(result.data)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n }\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n\n edit(activity: Activity) {\n this.cdsPopup\n .open(EditCompletedActivityComponent, {\n size: 'lg',\n data: {\n isEdit: true,\n activity,\n employerId: this.id,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.employerService\n .editCompletionActivity(result.data)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n }\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n\n changeEditStaus(activityCode: string) {\n this.dataSource.forEach(item => {\n if (item.activityCode === activityCode) {\n item.inEdit = true;\n } else {\n item.inEdit = false;\n }\n });\n\n this.dataSource = [...this.dataSource];\n }\n\n delete(id: string) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n title: 'Are you sure you want to delete this activity ?',\n continueButtonName: this.langService.translate('common.delete'),\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.isLoading = true;\n this.employerService\n .deleteActivity(id)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n }\n },\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n\n save = (id: string, activityCode: string, description: string, score: number) => {\n const ifSaveButtonDisabled = this.ifSaveButtonDisabled(activityCode, description, score);\n if (ifSaveButtonDisabled) {\n return;\n }\n this.doSave(id, activityCode);\n };\n\n doSave(id: string, activityCode: string) {\n const lineData = this.getLineData(activityCode, this.dataSource);\n const params: Activity = {\n id,\n description: lineData?.description,\n score: lineData?.score,\n };\n this.isLoading = true;\n\n this.employerService\n .editActivity(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (lineData) {\n lineData.inEdit = false;\n }\n this.popupWithReload();\n }\n },\n });\n }\n\n ifResetButtonDisabled = (activityCode: string, description: string, score: number) => {\n const originLineData = this.getLineData(activityCode, this.originDataSource);\n if (originLineData && description === originLineData.description && score === originLineData.score) {\n return true;\n }\n return false;\n };\n\n getLineData(activityCode: string, dataSource: Activity[]) {\n if (!activityCode || !dataSource) {\n return null;\n }\n const lineData = dataSource.find(lineData => lineData.activityCode === activityCode);\n return lineData;\n }\n\n ifSaveButtonDisabled = (activityCode: string, description: string, score: number) => {\n const ifResetButtonDisabled = this.ifResetButtonDisabled(activityCode, description, score);\n if (ifResetButtonDisabled) {\n return true;\n }\n if (description && score) {\n return false;\n }\n return true;\n };\n\n getErActivityScore(id: string) {\n this.employerService.getErActivityScore(id).subscribe(data => {\n if (data.result === 0) {\n this.erActivityScore = data.data as number;\n }\n });\n }\n\n getCompletionActivityScore(params: ActivitySearchRequest) {\n this.employerService.getCompletionActivityScore(params).subscribe(data => {\n if (data.result === 0) {\n this.completionActivityScore = data.data as number;\n }\n });\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n\n this.loadTable();\n }\n}\n","
    \n
    \n Record the activities (including Employer, Member and Special Program) organized to Employer so that we can calculate the relationship score of the\n Employer, monitor the participation rate and encourage ER to participate.\n
    \n\n
    \n Search record\n
    \n\n
    \n
    \n \n\n
    \n Max length is 6\n
    \n
    \n
    \n \n\n
    \n Max length is 50\n {{ description?.errors?.['descriptionInvalid'] | lang }}\n
    \n
    \n\n
    \n \n\n
    \n Max score is 999\n Min score is 0\n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{ createStartDate?.errors?.['dateInvalid'] | lang }}\n
    \n
    \n
    -
    \n
    \n \n \n\n \n\n
    \n {{ createEndDate?.errors?.['dateInvalid'] | lang }}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n Activity Records\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    Total result score within the period / Total score summed within 5 years
    \n
    \n {{ completionActivityScore }}/{{ erActivityScore }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n Update Completed Activity \n
    \n
    \n\n
    Total {{ numberOfElements | number }} records
    \n\n
    \n \n \n {{ element['completionDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n
    \n
    \n \n
    \n Edit\n
    \n
    \n \n
    \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport {\n BillingClass,\n ContributionAmount,\n ContributionAmountType,\n ContributionDetails,\n ContributionDetailsCategory,\n ContributionDetailsCategoryE,\n ContributionSortByE,\n} from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { OutstandingAmountOfPaymentPopupComponent } from '../outstanding-amount-of-payment-popup/outstanding-amount-of-payment-popup.component';\nimport { PermissionService } from 'src/app/core/services/permission.service';\n\n@Component({\n selector: 'app-account-info',\n templateUrl: './account-info.component.html',\n styleUrls: ['./account-info.component.scss'],\n})\nexport class AccountInfoComponent implements OnInit, OnChanges {\n @Input() billingClass?: BillingClass;\n @Input() employerId? = '';\n\n public get startDate(): string {\n return this.startDateFormControl.value;\n }\n\n ContributionDetailsCategoryE = ContributionDetailsCategoryE;\n\n contributionDetails: ContributionDetails = {\n contributionPeriodStartDate: '',\n contributionPeriodEndDate: '',\n billingReferenceNumber: '',\n billingStatusType: '',\n contributionFrequency: '',\n outstandingAmountOfPayment: 0,\n remittanceStatementReceivedDate: '',\n lives: 0,\n contLives: 0,\n billContributionAmount: undefined,\n reportedMemberContributionAmount: undefined,\n paidAmount: undefined,\n outstandingPaymentAmount: undefined,\n };\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n nowTime = new Date();\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n contributionTableDataSource: ContributionAmount[] = [];\n\n contributionTablDisplayedColumns = ['category', 'ermc', 'eemc', 'surcharge', 'ervc', 'eevc'];\n\n selectedContributionSortBy: ContributionSortByE = ContributionSortByE.All;\n\n contributionSortBy: CdsOption[] = [\n {\n label: 'All',\n value: ContributionSortByE.All,\n },\n {\n label: 'DC REPORTED – successfully reported to MPFA',\n value: ContributionSortByE.DC_REPORTED,\n },\n {\n label: 'DC NOT_REPORTED - Not reported to MPFA',\n value: ContributionSortByE.DC_NOT_REPORTED,\n },\n {\n label: 'Reported Contribution as 0',\n value: ContributionSortByE.Reported_Contribution_0,\n },\n {\n label: 'DC GENERATED - reported to MPFA, pending to validate',\n value: ContributionSortByE.DC_GENERATED,\n },\n {\n label: 'Fully Settled',\n value: ContributionSortByE.Fully_Settled,\n },\n {\n label: 'VC Outstanding Only',\n value: ContributionSortByE.VC_Outstanding_Only,\n },\n ];\n\n resetButtonDisabled = true;\n\n startDateFormControl = new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]);\n\n get searchButtonDisabled() {\n return !this.startDateFormControl?.valid || !this.startDateFormControl?.dirty;\n }\n\n isLoading = false;\n\n showBillInfo = false;\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n showDatePicker = true;\n\n isStaff = false;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private employerService: EmployerService,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.permissionFilter();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['billingClass'].currentValue !== undefined && changes['billingClass'].currentValue !== changes['billingClass'].previousValue) {\n this.search(true);\n }\n }\n\n pillSelectedChange(selected: boolean, sortBy: ContributionSortByE) {\n if (selected) {\n this.selectedContributionSortBy = sortBy;\n this.filter();\n }\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n });\n }\n\n popupDetail(category: ContributionDetailsCategory, type: ContributionAmountType, amount: number) {\n if (amount === 0) {\n return;\n }\n this.cdsPopup.open(OutstandingAmountOfPaymentPopupComponent, {\n size: 'lg',\n data: {\n category,\n type,\n contributionDetails: this.contributionDetails,\n },\n });\n }\n\n toDetail() {}\n\n filter() {\n this.search(true);\n }\n\n search(directly = false, resetFilter = false) {\n if (this.searchButtonDisabled && !directly) {\n return;\n }\n\n if (this.billingClass === undefined) {\n return;\n }\n\n if (resetFilter) {\n this.selectedContributionSortBy = ContributionSortByE.All;\n }\n\n this.isLoading = true;\n\n this.employerService\n .getContributionDetails(this.employerId, this.selectedContributionSortBy, this.billingClass.payrollGroupId, this.startDate)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n if (data.data && data.data.contributionPeriodStartDate) {\n this.contributionDetails = data.data;\n this.contributionTableDataSource = this.employerService.contributionAmountTableDataTrans(data.data);\n this.showBillInfo = true;\n } else {\n this.showBillInfo = false;\n }\n } else {\n this.toastError(data.message);\n }\n if (!directly && this.outofPeriod()) {\n this.resetButtonDisabled = false;\n }\n });\n }\n\n outofPeriod() {\n const currentDate = DateTime.fromFormat(DateTime.now().toFormat('yyyy-MM-dd'), 'yyyy-MM-dd');\n const startDate = DateTime.fromFormat(this.contributionDetails?.contributionPeriodStartDate || '', 'yyyy-MM-dd');\n const endDate = DateTime.fromFormat(this.contributionDetails?.contributionPeriodEndDate || '', 'yyyy-MM-dd');\n if (currentDate < startDate || currentDate > endDate) {\n return true;\n }\n return false;\n }\n\n current() {\n return new Date();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.resetButtonDisabled = true;\n this.startDateFormControl.setValue('');\n this.startDateFormControl.markAsPristine();\n // this.validating(this.startDate);\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.search(true, true);\n });\n }\n\n getCategoryTitle(category: ContributionDetailsCategory) {\n if (!category) {\n return '';\n }\n return ContributionDetailsCategoryE[category];\n }\n\n canClick(amount: number | string) {\n if (amount === 0 || amount === '0') {\n return false;\n }\n return true;\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n\n
    \n \n
    \n\n
    \n
    \n {{ 'account.contribution-period' | lang }}\n {{ contributionDetails.contributionPeriodStartDate | ssmsDate }}\n - \n {{ contributionDetails.contributionPeriodEndDate | ssmsDate }}\n
    \n
    \n\n
    \n
    \n {{ (isStaff ? 'account.employer-contribution-details' : 'account.employer-contribution-details-for-agent') | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'account.bill-information' | lang }}\n
    \n \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n
    \n\n
    \n \n
    \n
    {{ 'account.contribution-details' | lang }}
    \n
    \n\n
    \n \n \n \n
    \n Filter by:\n {{ item.label }}\n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n\n\n \n \n \n\n \n\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { AgentInfo, AgentStatusE, agentStatusMapObj } from '../../employer';\nimport { EmployerService } from '../../employer.service';\n\n@Component({\n selector: 'app-agent-info',\n templateUrl: './agent-info.component.html',\n styleUrls: ['./agent-info.component.scss'],\n})\nexport class AgentInfoComponent implements OnInit, OnChanges {\n constructor(private service: EmployerService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id']) {\n if (this.id) {\n this.getAgentInfo(this.id);\n }\n }\n }\n\n @Input() id: string | undefined;\n\n agentInfo?: AgentInfo;\n\n ngOnInit(): void {}\n\n toDetail() {}\n\n getAgentInfo(id: string) {\n this.service.getAgentInfo(id).subscribe(data => {\n if (data.result === 0) {\n this.agentInfo = data.data;\n }\n });\n }\n\n getStatusColorStyle(status: AgentStatusE | undefined) {\n if (!status) {\n return '';\n }\n return agentStatusMapObj[status]?.color;\n }\n\n getStatus(status: AgentStatusE | undefined) {\n if (!status) {\n return '';\n }\n return agentStatusMapObj[status]?.text;\n }\n}\n","
    \n
    \n
    \n {{ 'er.profile.agent-info' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'agent.servicing-agent-information' | lang }}\n
    \n
    \n\n\n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n\n\n\n
    \n
    \n {{ 'agent.commission-agent-information' | lang }}\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, SimpleChanges, OnChanges } from '@angular/core';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport {\n BillingClass,\n ContributionAmount,\n ContributionAmountType,\n ContributionDetails,\n ContributionDetailsCategory,\n ContributionDetailsCategoryE,\n ContributionSortByE,\n} from '../../employer';\nimport { OutstandingAmountOfPaymentPopupComponent } from '../outstanding-amount-of-payment-popup/outstanding-amount-of-payment-popup.component';\n\n@Component({\n selector: 'app-amount-table',\n templateUrl: './amount-table.component.html',\n styleUrls: ['./amount-table.component.scss'],\n})\nexport class AmountTableComponent implements OnChanges {\n @Input() contributionTableDataSource: ContributionAmount[] = [];\n @Input() contributionDetails?: ContributionDetails;\n @Input() billingClass?: BillingClass;\n @Input() employerId?: string;\n @Input() selectedContributionSortBy?: ContributionSortByE;\n @Input() byBillReference = false;\n\n contributionTablDisplayedColumns: string[] = [];\n\n showTable = false;\n\n constructor(private cdsPopup: CdsPopupService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['contributionTableDataSource']?.currentValue !== changes['contributionTableDataSource']?.previousValue) {\n this.genDisaplayedColums();\n }\n // if (changes['runDate'].currentValue) {\n // this.genDisaplayedColums(changes['runDate'].currentValue);\n // }\n }\n\n genDisaplayedColums() {\n this.showTable = false;\n this.contributionTablDisplayedColumns = [];\n const firstLineData = this.contributionTableDataSource[0];\n Object.keys(firstLineData).forEach(key => {\n if (\n key === 'category' ||\n key === 'surcharge' ||\n firstLineData[key as keyof ContributionAmount] === 0 ||\n !!firstLineData[key as keyof ContributionAmount]\n ) {\n this.contributionTablDisplayedColumns.push(key);\n }\n });\n setTimeout(() => {\n this.showTable = true;\n });\n }\n\n getCategoryTitle(category: ContributionDetailsCategory) {\n if (!category) {\n return '';\n }\n return ContributionDetailsCategoryE[category];\n }\n\n canClick(amount: number | string) {\n if (amount === '0' || !amount) {\n return false;\n }\n return true;\n }\n\n popupDetail(category: ContributionDetailsCategory, type: ContributionAmountType, amount: number) {\n if (amount === undefined || amount === null) {\n return;\n }\n this.cdsPopup.open(OutstandingAmountOfPaymentPopupComponent, {\n size: 'lg',\n data: {\n category,\n type,\n amount,\n contributionDetails: this.contributionDetails,\n billingClass: this.billingClass,\n employerId: this.employerId,\n selectedContributionSortBy: this.selectedContributionSortBy,\n byBillReference: this.byBillReference,\n },\n });\n }\n}\n","
    \n \n \n \n \n {{ getCategoryTitle | fn : element.category | lang }}\n \n\n \n \n ERMC\n {{ element.ermc | number }}\n \n\n \n \n EEMC\n {{ element.eemc | number }}\n \n\n \n \n Surcharge\n {{ element.surcharge | number }}\n \n\n \n \n ERVC\n {{ element.ervc | number }}\n \n\n \n \n EEVC\n {{ element.eevc | number }}\n \n\n \n \n ERVC2\n {{ element.ervc2 | number }}\n \n\n \n \n ERVC3\n {{ element.ervc3 | number }}\n \n\n \n \n ERVC4\n {{ element.ervc4 | number }}\n \n\n \n \n ERVC5\n {{ element.ervc5 | number }}\n \n\n \n \n ERVC6\n {{ element.ervc6 | number }}\n \n\n \n \n ERVC7\n {{ element.ervc7 | number }}\n \n\n \n \n EEVC2\n {{ element.eevc2 | number }}\n \n\n \n \n TVC\n {{ element.tvc | number }}\n \n\n \n \n SVC\n {{ element.svc | number }}\n \n\n \n \n SEPMC\n {{ element.sepmc | number }}\n \n\n \n \n SEPVC\n {{ element.sepvc | number }}\n \n\n \n \n \n
    \n","import { deepCopy } from 'src/app/utils/copy';\nimport { FormControl } from '@angular/forms';\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AccountInfoAmountRequest, BillingClass, BillReference, ContributionAmount, ContributionDetails } from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport moment from 'moment';\nimport { DateTime } from 'luxon';\n\n@Component({\n selector: 'app-bill-reference',\n templateUrl: './bill-reference.component.html',\n styleUrls: ['./bill-reference.component.scss'],\n})\nexport class BillReferenceComponent implements OnInit, OnChanges {\n @Input() contributionTableDataSource: ContributionAmount[] = [];\n @Input() contributionDetails?: ContributionDetails;\n @Input() billingClass?: BillingClass;\n @Input() employerId?: string;\n @Input() payrollGroupId?: string;\n\n isLoading = false;\n\n data: BillReference[] = [];\n\n iconConfig: CdsIconConfig = {\n color: '#00A758',\n };\n\n public runDateFormControl: FormControl = new FormControl('');\n\n constructor(private route: ActivatedRoute, private router: Router, public service: EmployerService, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['contributionDetails'].currentValue !== undefined &&\n changes['contributionDetails'].currentValue.contributionPeriodStartDate !== changes['contributionDetails'].previousValue?.contributionPeriodStartDate\n ) {\n this.initFormControl();\n this.getData();\n }\n }\n\n initFormControl() {\n this.runDateFormControl = new FormControl('', [dateValidator('create.dateError')]);\n }\n\n toDetail(paymentSubmissionReferenceNo: string, paymentReferenceNo?: string) {\n this.router.navigate(['/employer/payment-record-detail'], {\n queryParams: {\n ...this.route.snapshot.queryParams,\n paymentSubmissionReferenceNo,\n paymentReferenceNo,\n },\n });\n }\n\n getData(date = '') {\n const params: AccountInfoAmountRequest = this.getRequestParams(date);\n this.isLoading = true;\n this.service\n .getAccountInfoBillReferenceList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.data = data.data;\n this.isLoading = false;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams(date = '') {\n const params: AccountInfoAmountRequest = {\n id: this.employerId,\n payrollGroupId: this.billingClass?.payrollGroupId,\n startDate: this.contributionDetails?.contributionPeriodStartDate,\n endDate: this.contributionDetails?.contributionPeriodEndDate,\n page: 0,\n size: 10000,\n };\n\n if (date) {\n params.runDate = this.dateTrans(date);\n // } else if (this.contributionDetails?.runDate) {\n } else {\n params.runDate = '';\n }\n return params;\n }\n\n onDateChange(date: string) {\n if (this.runDateFormControl.valid) {\n this.getData(date);\n }\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getContributionDetails(data: ContributionDetails) {\n const details: ContributionDetails = deepCopy(data);\n details.contributionPeriodStartDate = this.contributionDetails?.contributionPeriodStartDate;\n details.contributionPeriodEndDate = this.contributionDetails?.contributionPeriodEndDate;\n return details;\n }\n\n tranToJsDate(date?: string) {\n if (!date) {\n return new Date();\n }\n return DateTime.fromFormat(date, 'yyyy-MM-dd').toJSDate();\n }\n}\n","
    \n
    \n By Bill Reference No.\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n \n Run Date:\n {{ item.runDate | ssmsDate }}\n
    \n
    \n
    \n
    Billing Status Type
    \n
    {{ item.billingStatusCode }}
    \n
    \n
    \n
    Remittance Statement Received Date
    \n
    {{ item.remittanceStatementReceivedDate | ssmsDate }}
    \n
    \n
    \n
    Receipt Reference No.
    \n
    \n \n {{ number }}, \n \n
    \n
    \n
    \n
    Payment Submission Refeernce No.
    \n
    \n \n {{ number }}, \n \n
    \n
    \n
    \n
    Workflow Reference No.
    \n
    \n \n {{ number }}, \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ChargeInfoClass, ChargeInfoRequest, ChargeInfoSelected } from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { finalize } from 'rxjs';\nimport * as moment from 'moment';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-charge-info',\n templateUrl: './charge-info.component.html',\n styleUrls: ['./charge-info.component.scss'],\n})\nexport class ChargeInfoComponent implements OnInit, OnChanges {\n constructor(private service: EmployerService, private toastAlert: ToastAlertService) {}\n\n @Input() payrollGroupId?: string;\n @Input() employerId?: string;\n\n _typeList: ChargeInfoSelected[] = [\n {\n label: 'Future Service Charge',\n value: '0',\n dropName: 'Future Service Charge Effective Date (MMM YYY)',\n codeName: 'Future Service Charge Code',\n debuctTypeMap: new Map([\n [0, 'n/a'],\n [1, 'paid separately'],\n [2, 'deducted from each of ER required, EE required and EE optional premium'],\n [3, 'deducted from ER required and EE required premium only'],\n [4, 'deducted from ER required and EE optional premium only'],\n [5, 'deducted from ER required premium only'],\n ]),\n },\n {\n label: 'Past Service Charge',\n value: '1',\n dropName: 'Past Service Charge Effective Date (MMM YYY)',\n codeName: 'Past Service Charge Code',\n debuctTypeMap: new Map([\n [0, 'n/a'],\n [1, 'paid separately'],\n [3, 'deducted from EE required and ER required (PS) contributions'],\n [5, 'deducted from ER required (PS) contributions only'],\n ]),\n },\n {\n label: 'Anniversary Charge',\n value: '2',\n dropName: 'Anniversary Charge Effective Date (MMM YYY)',\n codeName: 'Anniversary Charge Code',\n debuctTypeMap: new Map([\n [0, 'n/a'],\n [1, 'paid separately'],\n [2, 'deducted from each of ER required, EE required and EE(FS) optional contribution'],\n [3, 'deducted from ER required and EE required (FS) contributions only'],\n [4, 'deducted from ER(FS) required and EE optional contributions only'],\n [5, 'deducted from ER (FS) required contributions only'],\n ]),\n },\n ];\n _typeSelected = 0;\n\n _deteList: string[] = [];\n _dateSelected = 0;\n _detailsShow = false;\n\n dataList: ChargeInfoClass[] = [];\n\n _loading = false;\n\n _chargeAppTypeMap = new Map([\n [1, 'APPLIED TO CASH PAYMENTS ONLY'],\n [2, 'APPLIED TO BILLED CONTS'],\n ]);\n\n _brakPointTypeMap = new Map([\n [0, 'NA'],\n [1, 'CURRENT POLICY YEAR CONT'],\n [2, 'ACCUM CONT'],\n ]);\n\n _policyFreeTypeMap = new Map([\n [' ', ' '],\n ['A', 'ANNUAL FEE'],\n ]);\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('>>>>>>>>>>>>> charg info');\n if (this.employerId && changes['employerId'].currentValue) {\n this.getDateList();\n }\n }\n\n _policyFreeType(key?: string) {\n if (key == undefined) {\n return 'FEE TYPE NA';\n }\n return this._policyFreeTypeMap.get(key) || 'FEE TYPE NA';\n }\n\n _brakPointType(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._brakPointTypeMap.get(key) || '';\n }\n\n _debuctType(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._typeList[this._typeSelected].debuctTypeMap.get(key) || '';\n }\n\n formatType(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._chargeAppTypeMap.get(key) || '';\n }\n\n formatDate(val?: string) {\n if (!val) {\n return '';\n }\n let _temp = val.substring(1);\n if (val.startsWith('1')) {\n _temp = '19' + _temp;\n }\n if (val.startsWith('2')) {\n _temp = '20' + _temp;\n 9;\n }\n return moment(_temp).format('DD/MM/YYYY');\n }\n\n getDateList() {\n const _param: ChargeInfoRequest = {\n // payrollGroupId: '615001-1',\n id: this.employerId,\n chargeApplicationType: this._typeList[this._typeSelected].value,\n };\n this._loading = true;\n this.service\n .getChargeInformationEffectiveDate(_param)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this._deteList = data.data ? data.data : [];\n this.getData();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getData() {\n this.dataList = [];\n if (this._deteList.length == 0) {\n return;\n }\n const _param: ChargeInfoRequest = {\n // payrollGroupId: '615001-1',\n id: this.employerId,\n chargeApplicationType: this._typeList[this._typeSelected].value,\n effectiveDate: this._deteList[this._dateSelected],\n };\n this._loading = true;\n this.service\n .getChargeInformation(_param)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dataList = data.data ? data.data : [];\n }\n });\n }\n\n _detailTrigger() {\n this._detailsShow = !this._detailsShow;\n }\n\n select(index: number) {\n this._dateSelected = index;\n this._detailTrigger();\n this.getDateList();\n }\n\n typeSelecte(index: number) {\n this._typeSelected = index;\n this.getDateList();\n }\n}\n","
    \n
    \n
    \n {{ 'er.charge-information' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n
    \n {{ 'er.choose-charge-type' | lang }}\n
    \n
    \n \n {{ item.label }}\n
    \n
    \n
    \n\n\n\n\n
    0\">\n
    \n
    \n
    \n
    \n
    \n {{ _typeList[_typeSelected].dropName }}\n
    \n
    \n {{ formatDate(_deteList[_dateSelected]) }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ formatDate(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
    Breakpoint%
    \n 1\">\n {{ no === 0 ? '1st' : no === item.breakpointList.length - 1 ? 'Over' : 'Next' }}\n \n Over \n {{ row.breakpoint | number }}{{ (row.percentage || 0) * 100 | number : '1.3-3' }}
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Breakpoint%
    \n 1\">\n {{ no === 0 ? '1st' : no === item.breakpointList.length - 1 ? 'Over' : 'Next' }}\n \n Over \n {{ row.breakpoint | number }}{{ (row.percentage || 0) * 100 | number : '1.3-3' }}
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { RelatedPersonTypeE, ContactPersonView, Phone, PhoneTypeE, PhoneType, ContactPersion } from '../../employer';\nimport { ContactStatusE } from '../../employer-profile-company-list/employer-profile-company-list';\nimport { EmployerService } from '../../employer.service';\n\n@Component({\n selector: 'app-contact-persion',\n templateUrl: './contact-persion.component.html',\n styleUrls: ['./contact-persion.component.scss'],\n})\nexport class ContactPersionComponent implements OnInit, OnChanges {\n @Input() topTitle?: string;\n @Input() contactPersonList?: ContactPersion[] = [];\n\n RelatedPersonTypeE = RelatedPersonTypeE;\n\n updateDate = new Date();\n\n ContactStatusE = ContactStatusE;\n\n emailDataSource = [\n {\n email: 'abc@abc.com',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n ];\n\n phoneDataSource = [\n {\n type: 'Mobile',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n {\n type: 'Secondary Mobile',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n {\n type: 'Claimant Overseas Telephone',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'INVALID',\n },\n ];\n\n faxDataSource = [\n {\n type: 'Fax No.',\n number: '(+852) 6123 4567',\n ext: '120',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n {\n type: 'Claimant Overseas Telephone',\n number: '(+852) 6123 4567',\n ext: '',\n updateDate: this.updateDate,\n status: 'ACTIVE',\n },\n ];\n\n emailDisplayedColumns = ['email', 'updateDateAndStatus'];\n phoneDisplayedColumns = ['type', 'number', 'ext', 'updateDateAndStatus'];\n\n constructor(public service: EmployerService) {}\n\n contactPersonListView: ContactPersonView[] = [];\n\n Object = Object;\n\n PhoneTypeE = PhoneTypeE;\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['contactPersonList'].currentValue) {\n this.dataTrans();\n }\n }\n\n getRelatedPersonType(type: RelatedPersonTypeE) {\n return RelatedPersonTypeE[type as unknown as keyof typeof RelatedPersonTypeE];\n }\n\n isLast(i: number, list: any[]) {\n const lastIndex = list.length - 1;\n return i === lastIndex;\n }\n\n phoneGenerate(phone: Phone) {\n return `(+${phone.countryCode}) ${phone.phoneNo} ${phone.phoneExt ? `; ext. ${phone.phoneExt}` : ''}`;\n }\n\n dataTrans() {\n const contactPersonListView: ContactPersonView[] = [];\n const relatedPersonTYpeSortList = this.Object.keys(RelatedPersonTypeE);\n this.contactPersonList?.sort((a, b) => {\n const indexA = relatedPersonTYpeSortList.indexOf(a.contactPersonType);\n const indexB = relatedPersonTYpeSortList.indexOf(b.contactPersonType);\n return indexA - indexB;\n });\n this.contactPersonList?.forEach(item => {\n const phoneList = item.phoneList;\n const telephone = phoneList?.filter(item => item.typeCode === 'PHONE');\n const telephone2 = phoneList?.filter(item => item.typeCode === 'PHONE2');\n const telephone3 = phoneList?.filter(item => item.typeCode === 'PHONE3');\n const telephone4 = phoneList?.filter(item => item.typeCode === 'PHONE4');\n const mobile = phoneList?.filter(item => item.typeCode === 'MOBILE');\n const mobile2 = phoneList?.filter(item => item.typeCode === 'MOBILE2');\n const claimantOverseasTelephone = phoneList?.filter(item => item.typeCode === 'TEL_OVERSEAS');\n const claimantOverseasFaxno = phoneList?.filter(item => item.typeCode === 'FAX_OVERSEAS');\n const faxNo = phoneList?.filter(item => item.typeCode === 'FAX');\n\n const contactPersonView: ContactPersonView = {\n email: item.emailList,\n PHONE: telephone,\n PHONE2: telephone2,\n PHONE3: telephone3,\n PHONE4: telephone4,\n MOBILE: mobile,\n MOBILE2: mobile2,\n TEL_OVERSEAS: claimantOverseasTelephone,\n FAX_OVERSEAS: claimantOverseasFaxno,\n FAX: faxNo,\n };\n\n contactPersonListView.push(contactPersonView);\n });\n this.contactPersonListView = contactPersonListView;\n }\n\n getContactTypeStr(key: string) {\n if (key === 'email') {\n return 'Email';\n } else {\n return PhoneTypeE[key as PhoneType] || '';\n }\n }\n\n getPhonelistView = (index: number, key: string) => {\n return this.contactPersonListView[index][key as PhoneType];\n };\n\n getPhoneOrFaxList(list: Phone[], phoneMode = true) {\n return list.filter(item => {\n const isFax = ['FAX_OVERSEAS', 'FAX'].indexOf(item.typeCode) > -1;\n return phoneMode ? !isFax : isFax;\n });\n }\n\n nameRender(item: ContactPersion) {\n return `${item.lastName || ''} ${item.firstName || ''}`;\n }\n\n phoneTypeRender(type: PhoneType) {\n return PhoneTypeE[type];\n }\n\n fullPhoneNoRender(contryCode: string, phoneNo: string) {\n return contryCode ? `(+${contryCode})${phoneNo}` : phoneNo;\n }\n\n chineseNameRender(item: ContactPersion) {\n return `${item.chineseLastName || ''}${item.chineseFirstName || ''}`;\n }\n}\n","
    \n
    \n {{ topTitle ? topTitle : ('payroll.contact-person' | lang) }}\n
    \n
    \n
    \n\n\n \n
    \n
    \n
    \n
    \n \n
    Email
    \n
    \n \n \n \n Email Address \n {{ element.emailAddress }}\n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus(element.status) }}
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    Phone
    \n
    \n \n \n \n \n {{ phoneTypeRender | fn : element.typeCode }}\n \n \n \n Phone No.\n {{ fullPhoneNoRender | fn : element.countryCode : element.phoneNo }}\n \n \n \n Ext.\n {{ element.phoneExt }}\n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus(element.status) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    Fax
    \n
    \n \n \n \n \n {{ phoneTypeRender | fn : element.typeCode }}\n \n \n \n Phone No.\n {{ fullPhoneNoRender | fn : element.countryCode : element.phoneNo }}\n \n \n \n Ext.\n {{ element.phoneExt }}\n \n \n \n Last Update Date \n \n
    \n
    {{ element.lastUpdate | ssmsDate }}
    \n
    \n
    \n
    {{ service.getStatus(element.status) }}
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ErBaseRequest, FormulaClass } from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-formula-class',\n templateUrl: './formula-class.component.html',\n styleUrls: ['./formula-class.component.scss'],\n})\nexport class FormulaClassComponent implements OnInit, OnChanges {\n constructor(private service: EmployerService, private toastAlert: ToastAlertService) {}\n\n @Input() payrollGroupId?: string;\n @Input() employerId?: string;\n\n dataList: FormulaClass[] = [];\n _loading = false;\n\n _contTableColumns = ['service', 'val', 'flatAmount'];\n\n _rounSignalMap = new Map([\n [0, 'n/a i.e. rounded to the nearest cent'],\n [1, 'rounded to the nearest dollar'],\n [2, 'rounded to the next highest dollar'],\n [3, 'rounded to the next lowest dollar'],\n ]);\n _noPayLeaveMap = new Map([\n [0, 'NA'],\n [1, 'no pay leave months are included'],\n [2, 'no pay leave months are excluded'],\n ]);\n\n _erContTypeMap = new Map([\n ['S', 'ER monthly contribution same as EE'],\n ['D', 'ER monthly contribution different from EE'],\n ['N', 'no ER contribution'],\n ]);\n\n _contCalcMap = new Map([\n [0, 'n/a'],\n [1, 'premium calculated by the system'],\n [2, 'premium specified - fixed'],\n [9, 'premium specified - variable'],\n ]);\n\n _contTableMap = new Map([\n [0, 'NA'],\n [1, 'Salary'],\n [4, 'Job Category'],\n [10, 'Service'],\n [11, 'Participation'],\n [12, 'Age'],\n [13, 'Sex'],\n ]);\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('>>>>>>>>>>>>> formula');\n if (this.employerId && changes['employerId'].currentValue) {\n this.getData();\n }\n }\n\n formatRoundSignal(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._rounSignalMap.get(key) || '';\n }\n\n formatNopayLeave(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._noPayLeaveMap.get(key) || '';\n }\n\n formatType(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._contCalcMap.get(key) || '';\n }\n\n formatTypeER(key?: string) {\n if (key == undefined) {\n return '';\n }\n return this._erContTypeMap.get(key) || '';\n }\n\n formatContTableMap(key?: number) {\n if (key == undefined) {\n return '';\n }\n return this._contTableMap.get(key) || '';\n }\n\n getData() {\n const _param: ErBaseRequest = {\n // payrollGroupId: '615001-1',\n id: this.employerId,\n };\n this._loading = true;\n this.service\n .getFurmulaClassList(_param)\n .pipe(\n finalize(() => {\n this._loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dataList = data.data ? data.data : [];\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n
    \n {{ 'er.formula-class' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n \n
    \n\n\n \n
    \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n EE Cont Table\n
    \n \n \n \n {{ formatContTableMap(item.employeeBreakpointType) }}\n {{ element.breakpoint | number : '1.2-2' }}\n \n\n \n %\n {{ element.percentage | percent : '1.3-3' }}\n \n\n \n Flat Amount\n {{ element.flatAmount | number : '1.2-2' }}\n \n\n \n \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    ER Cont Table
    \n \n \n \n {{ formatContTableMap(item.employerBreakpointType) }}\n {{ element.breakpoint | number : '1.2-2' }}\n \n\n \n %\n {{ element.percentage | percent : '1.3-3' }}\n \n\n \n Flat Amount\n {{ element.flatAmount | number : '1.2-2' }}\n \n\n \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AllocationMethodE, ForfeitureHandlingE, Fund, FundPercent, SchemeInfo } from '../../employer';\n\n@Component({\n selector: 'app-invested-funds-info',\n templateUrl: './invested-funds-info.component.html',\n styleUrls: ['./invested-funds-info.component.scss'],\n})\nexport class InvestedFundsInfoComponent implements OnInit {\n isStaff = false;\n\n constructor(private permissionService: PermissionService) {}\n\n @Input() schemeInfo?: SchemeInfo;\n\n noConfig: CdsCheckboxConfig = {\n disabled: true,\n };\n\n hasConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n\n config: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n ngOnInit(): void {\n this.permissionFilter();\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n });\n }\n\n expandAll() {\n this.schemeInfo?.fundList?.forEach(item => {\n item.show = !item.show;\n });\n }\n\n forfeitureHandlingRender(type: string) {\n return ForfeitureHandlingE[type as keyof typeof ForfeitureHandlingE] || '';\n }\n\n allocationMethodRender(type: string) {\n return AllocationMethodE[type as keyof typeof AllocationMethodE] || '';\n }\n\n keyListOfFundPercent(obj?: FundPercent) {\n if (!obj) return [];\n return Object.keys(obj).filter(key => obj[key] !== null);\n }\n\n fundPercentNumber(obj: FundPercent, key: string) {\n return obj[key];\n }\n\n fundPercentLabel(key: string) {\n switch (key) {\n case 'bonusFtr':\n return 'Bonus Ftr';\n case 'eemc':\n return 'FSEE/EEMC';\n case 'ermc':\n return 'FSER/ERMC';\n case 'eevc':\n return 'PSEE/EEVC';\n case 'ervc':\n return 'PSER/ERVC';\n }\n return key.toUpperCase();\n }\n\n showInvestedFundsInformation(activeLives: number, fundList: Fund[], isStaff: boolean) {\n if (!fundList?.length) {\n return false;\n }\n\n if (isStaff) {\n return true;\n }\n\n if (!isStaff && activeLives > 1) {\n return true;\n }\n\n return false;\n }\n\n gotoPrivilegeRatesDetails() {}\n}\n","\n
    \n
    \n {{ 'payroll.information-of-forfeiture-handling' | lang }}\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n\n\n
    \n
    \n {{ 'er.profile.invested-funds-information' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n
    \n {{ 'payroll.fund-currency' | lang }}\n
    \n
    \n {{ schemeInfo?.fundCurrency }}\n
    \n
    \n
    \n
    \n {{ 'payroll.er-new-bu' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n Effective Date: {{ schemeInfo?.effectiveDate | ssmsDate }}\n
    \n \n
    0\" class=\"row col-xs-offset-3\">\n Expand All\n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n Latest update: {{ item.latestUpdate | ssmsDateTime }} (+8T)\n
    \n\n
    \n \n
    \n {{ fundPercentLabel | fn : key }} %\n
    \n
    \n {{ fundPercentNumber | fn : item.fundPercent : key | number : '1.2-2' }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsSearchConfig } from '@cds/ng-core/search';\nimport { finalize } from 'rxjs';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { EeProfileListModel } from 'src/app/views/employee/ee-profile-list/ee-profile-list-model';\nimport { BillingClass, ContributionDetails, MemberLevel, RelevantIncome, Surcharge } from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\n@Component({\n selector: 'app-member-level',\n templateUrl: './member-level.component.html',\n styleUrls: ['./member-level.component.scss'],\n})\nexport class MemberLevelComponent implements OnInit, OnChanges {\n @Input() contributionDetails?: ContributionDetails;\n @Input() billingClass?: BillingClass;\n @Input() payrollGroupId?: string;\n @Input() employerId?: string;\n\n isStaff = false;\n\n constructor(private service: EmployerService, public router: Router, private permissionService: PermissionService) {}\n\n config: CdsSearchConfig = {\n options: [],\n placeholder: 'Search by member name or member account code',\n };\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n disabled: true,\n };\n\n RelevantIncomeList: RelevantIncome[] = [\n {\n id: 'RI - Relevant Income',\n frequencyTypeId: 'CM - Monthly (Calendar Month)',\n income: '30,000',\n contributionType: 'RGCTB - Contribution',\n effectiveDate: '01/09/2022 - 30/09/2022',\n },\n ];\n\n SurchargeList: Surcharge[] = [\n {\n surchargeEr: '500',\n surchargeEe: '500',\n paidDate: '04/10/2022',\n dudate: '06/10/2022',\n },\n ];\n\n dataSource: MemberLevel[] = [];\n\n memberList: any[] = [1, 2, 3];\n _number = 1;\n _inputNumber = 1;\n _totalPages = 0;\n _progress = false;\n\n searchDTO: any = {\n searchKey: '',\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'memberAccountCode',\n title: 'Member Account Code',\n },\n {\n key: 'memberName',\n title: 'Member Name',\n },\n {\n key: 'totalPaidContribution',\n title: 'Total Paid Contribution',\n },\n ];\n\n ngOnInit(): void {\n // this.getMemberPageList();\n this.permissionFilter();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['contributionDetails'].currentValue !== undefined &&\n changes['contributionDetails'].currentValue.contributionPeriodStartDate !== changes['contributionDetails'].previousValue?.contributionPeriodStartDate\n ) {\n this.searchDTO = {\n searchKey: '',\n };\n this.search();\n }\n }\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n });\n }\n\n memberSearchChange() {\n this.searchButtonConfig = {\n size: 'sm',\n disabled: !this.searchDTO.searchKey,\n };\n if (!this.searchDTO.searchKey) {\n this.search();\n }\n }\n\n search() {\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.getMemberPageList();\n }\n getMemberPageList() {\n this.searchDTO = {\n ...this.searchDTO,\n page: (this.pageConfig.current as number) - 1,\n size: this.pageConfig.pageSize,\n startDate: this.contributionDetails?.contributionPeriodStartDate,\n endDate: this.contributionDetails?.contributionPeriodEndDate,\n payrollGroupId: this.payrollGroupId,\n id: this.employerId,\n };\n this._progress = true;\n this.service\n .getAccountInfoMemberLevelList(this.searchDTO)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dataSource = data.data.empty ? [] : data.data.content;\n this._totalPages = data.data.totalPages;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n }\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n // totalCount: event.\n };\n this.getMemberPageList();\n }\n\n goToDetail(item: EeProfileListModel) {\n if (!this.isStaff) return;\n this.router.navigate(['/employee/profile', { legalId: item.legalId, legalIdType: item.legalIdType, id: item.id }]);\n }\n}\n","
    \n
    \n {{ (isStaff ? 'account.member-level' : 'account.member-level-for-agent') | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n \n \n \n {{ element.lastName }}\n {{ element.firstName }}\n (\n {{ element.chineseLastName }}\n {{ element.chineseFirstName }}\n )\n \n \n \n
    {{ element.totalPaidContribution | number }}
    \n
    \n \n
    {{ element.paymentReceivedDate | date : 'dd/MM/yyyy' }}
    \n
    \n \n
    \n","import { EmployerService } from './../../employer.service';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport {\n AccountInfoAmountRequest,\n BillingClass,\n ContributionAmount,\n ContributionAmountType,\n ContributionAmountTypeE,\n ContributionDetails,\n ContributionDetailsCategory,\n ContributionDetailsCategoryE,\n ContributionSortByE,\n contributionStatusOptions,\n MemberAmount,\n rectifiedTypeOptions,\n} from '../../employer';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-outstanding-amount-of-payment-popup',\n templateUrl: './outstanding-amount-of-payment-popup.component.html',\n styleUrls: ['./outstanding-amount-of-payment-popup.component.scss'],\n})\nexport class OutstandingAmountOfPaymentPopupComponent implements OnInit {\n dataSource: MemberAmount[] = [];\n\n isLoading = false;\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 5,\n totalCount: 1,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'memberCode',\n title: 'Member Account Code',\n // sticky: true,\n },\n {\n key: 'memberName',\n title: 'Member Name',\n sticky: true,\n },\n {\n key: 'amount',\n title: '',\n },\n {\n key: 'contributionStatus',\n title: 'Status of Default Contribution',\n },\n {\n key: 'rectifiedType',\n title: 'Rectified Type',\n },\n ];\n\n displayedColumns = [\n 'trusteeMember',\n 'amountOfPayment',\n // 'statusOfDefaultContribution',\n // 'rectifiedType'\n ];\n\n ContributionAmountTypeE = ContributionAmountTypeE;\n\n ContributionDetailsCategoryE = ContributionDetailsCategoryE;\n\n total = 0;\n\n contributionAmount: ContributionAmount = {};\n\n memberAmountList: MemberAmount[] = [];\n\n contributionStatusOptions = contributionStatusOptions;\n\n rectifiedTypeOptions = rectifiedTypeOptions;\n\n constructor(\n @Inject(CDS_POPUP_DATA)\n public data: {\n byBillReference: boolean;\n category: ContributionDetailsCategory;\n type: ContributionAmountType;\n amount: number;\n contributionDetails: ContributionDetails;\n billingClass: BillingClass;\n employerId: string;\n selectedContributionSortBy: ContributionSortByE;\n },\n public service: EmployerService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.total = this.data.amount || 0;\n this.loadTable();\n }\n\n loadTable() {\n const params: AccountInfoAmountRequest = this.getRequestParams();\n this.isLoading = true;\n this.service\n .getAccountInfoAmountList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams() {\n const params: AccountInfoAmountRequest = {\n amountType: this.getAmountType(this.data.category),\n subAcctType: this.data.type.toUpperCase(),\n erAcctCd: this.data.contributionDetails.employerAccountCode,\n id: this.data.employerId,\n filterType: this.data.selectedContributionSortBy || 'All',\n payrollGroupId: this.data.billingClass.payrollGroupId,\n startDate: this.data.contributionDetails.contributionPeriodStartDate,\n endDate: this.data.contributionDetails.contributionPeriodEndDate,\n page: (this.pageConfig.current as number) - 1,\n size: 5,\n };\n\n if (this.data.byBillReference) {\n params.runDate = this.data.contributionDetails.runDate;\n params.billRefNo = this.data.contributionDetails.billReferenceNumber;\n }\n return params;\n }\n\n getAmountType(category: string) {\n switch (category) {\n case 'memberContributionAmountForTheBill':\n return 'Bill_Contribution_Amount';\n case 'reportedMemberContributionAmount':\n return 'Reported_Contribution_Amount';\n case 'paidContributionAmount':\n return 'Paid_Amount';\n case 'outstandingAmountOfThePayment':\n return 'Outstanding_Payment_Amount';\n default:\n return '';\n }\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable();\n }\n}\n","\n \n
    \n {{ ContributionAmountTypeE[data.type] + ' - ' }} \n {{ ContributionDetailsCategoryE[data.category] | lang }}\n
    \n
    \n {{ 'account.contribution-period' | lang }}\n {{ data.contributionDetails.contributionPeriodStartDate | ssmsDate }}\n - \n {{ data.contributionDetails.contributionPeriodEndDate | ssmsDate }}\n
    \n
    \n\n \n
    \n Total {{ ContributionDetailsCategoryE[data.category] | lang }} (ER level)\n ${{ data.amount | number }}\n
    \n\n
    \n \n \n
    \n {{ ContributionAmountTypeE[data.type] + ' - ' }} \n {{ ContributionDetailsCategoryE[data.category] | lang }}\n
    \n
    \n \n \n {{ element.lastName }}\n {{ element.firstName }}\n \n ({{ element.chineseLastName }}{{ element.chineseFirstName }})\n \n \n \n \n
    \n {{ element.amount | number }}\n
    \n
    \n\n \n
    \n {{ service.optionLabelRender | fn : element.contributionStatus : contributionStatusOptions }}\n
    \n
    \n\n \n
    \n {{ service.optionLabelRender | fn : element.rectifiedType : rectifiedTypeOptions }}\n
    \n
    \n \n
    \n
    \n\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ErBaseRequest, PaymentDetail } from '../../employer';\nimport { EmployerService } from '../../employer.service';\n\n@Component({\n selector: 'app-payment-details',\n templateUrl: './payment-details.component.html',\n styleUrls: ['./payment-details.component.scss'],\n})\nexport class PaymentDetailsComponent implements OnInit, OnChanges {\n constructor(private service: EmployerService) {}\n\n @Input() payrollGroupId?: string;\n @Input() employerId?: string;\n @Input() isStaff = false;\n\n data?: PaymentDetail;\n\n _frequencyMap = new Map([\n ['DAILY', 'Daily'],\n ['WEEKLY', 'Weekly'],\n ['SEMI_MONTHLY', 'Semi-Monthly'],\n ['MONTHLY', 'Monthly'],\n ['BI_MONTHLY', 'Bi-Monthly'],\n ['QUARTERLY', 'Quarterly'],\n ['SEMI_ANNUALLY', 'Half-Yearly'],\n ['ANNUALLY', 'Annually'],\n ['FORTNIGHTLY', 'Fortnightly'],\n ]);\n\n _ddlCodeMap = new Map([\n ['RECEIVED', 'Received'],\n ['READY_TO_BANK', 'Ready to bank'],\n ['SUBMITTED_TO_BANK', 'Submitted to bank'],\n ['PENDING_AML', 'Pending AML'],\n ['ACTIVE', 'Active'],\n ['REJECTED', 'Rejected'],\n ['INACTIVE', 'Inactive'],\n ['PAYER_FAIL', 'Payer Fail'],\n ]);\n\n _debtorMap = new Map([\n ['BR', 'Business Registration'],\n ['EDU', 'Education Institution'],\n ['IRD', 'Inland Revenue Department (Charitable Organisations)'],\n ['TU', 'Registry of Trade Unions'],\n ['SO', 'Societies Office of Hong Kong Police'],\n ['OTHERS', 'Others'],\n ['PASSPORT', 'Passport'],\n ['CI', 'Certificate of Incorporation'],\n ['HKID', 'HKID'],\n ]);\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n this.employerId &&\n changes['payrollGroupId'].currentValue !== undefined &&\n changes['payrollGroupId'].currentValue !== changes['payrollGroupId'].previousValue\n ) {\n this.getBillingClassInfo();\n }\n }\n\n getType(key: any, map: Map) {\n if (key == undefined) {\n return '';\n }\n return map.get(key) || '';\n }\n\n _frequencyType(key?: string) {\n if (key == undefined) {\n return '';\n }\n return this._frequencyMap.get(key) || '';\n }\n\n getBillingClassInfo() {\n const _param: ErBaseRequest = {\n payrollGroupId: this.payrollGroupId,\n id: this.employerId,\n };\n this.service.getBillingClassInfo(_param).subscribe(data => {\n if (data.result === 0) {\n this.data = data.data;\n }\n });\n }\n}\n","
    \n
    \n {{ 'er.profile.payroll-details' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'payment.contribution-frequency' | lang }}\n
    \n
    \n {{ _frequencyType(data?.contributionFrequency) }}\n
    \n
    \n \n
    \n
    \n {{ 'payment.first-contribution-date' | lang }}\n
    \n
    \n {{ data?.firstContributionDate | ssmsDate }}\n
    \n
    \n
    \n
    \n {{ 'payment.second-contribution-date' | lang }}\n
    \n
    \n {{ data?.secondContributionDate | ssmsDate }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'payment.dda-bank-account-info' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'payment.default-payment-method' | lang }}\n
    \n
    \n {{ data?.ddaDefaultPaymentMethodFlag === 'Y' ? 'Yes' : 'No' }}\n
    \n
    \n
    \n
    \n {{ 'payment.status' | lang }}\n
    \n
    \n {{ getType(data?.status, _ddlCodeMap) }}\n
    \n
    \n \n
    \n\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'payment.bank-infomation' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'payment.bank-holder-name' | lang }}\n
    \n
    \n {{ data?.bankHolderName }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'payment.bank-code' | lang }}\n
    \n
    \n {{ data?.bankCode }}\n
    \n
    \n
    \n
    \n {{ 'payment.branch-number-bank' | lang }}\n
    \n
    \n {{ data?.branchCodeOfBank }}\n
    \n
    \n
    \n
    \n {{ 'payment.bank-account-no' | lang }}\n
    \n
    \n {{ data?.bankAccountNumber }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'payment.debtor-reference' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'payment.debtor-reference-type' | lang }}\n
    \n
    \n {{ getType(data?.debtorReferenceType, _debtorMap) }}\n
    \n
    \n
    \n
    \n {{ 'payment.debtor-reference-number' | lang }}\n
    \n
    \n {{ data?.debtorReferenceNumber }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'payment.dda-status' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'payment.last-update-date' | lang }}\n
    \n
    \n {{ data?.lastUpdateDateOfDdaStatus | ssmsDate }}\n
    \n
    \n
    \n
    \n {{ 'payment.debit-day' | lang }}\n
    \n
    \n {{ data?.debitDay }}\n
    \n
    \n
    \n
    \n {{ 'payment.maximum-limit' | lang }}\n
    \n
    \n {{ data?.paymentMaximumLimit | number }}\n
    \n
    \n
    \n
    \n {{ 'payment.dda-expiry-date' | lang }}\n
    \n
    \n {{ data?.ddaExpiryDate | ssmsDate }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { finalize } from 'rxjs';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { AdminHeaderConfig } from 'src/app/views/layout/admin-layout/admin-header/admin-header-config';\nimport {\n BankInformation,\n PaymentMemberLevel,\n PaymentMemberLevelRequest,\n PaymentRecordsDetailPaymentInfo,\n PaymentSubmission,\n ReiceiptRefNoStatusE,\n paymentMethodOptions,\n reiceiptRefNoStatusMapObj,\n} from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { DateTime } from 'luxon';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { Employee } from 'src/app/views/employee/employee';\n\n@Component({\n selector: 'app-payment-record-details',\n templateUrl: './payment-record-details.component.html',\n styleUrls: ['./payment-record-details.component.scss'],\n})\nexport class PaymentRecordDetailsComponent implements OnInit {\n employerId = '';\n payrollGroupId = '';\n paymentSubmissionReferenceNo = '';\n receiptReferenceNo = '';\n reiceiptRefNoStatus?: ReiceiptRefNoStatusE;\n\n headerButton: AdminHeaderConfig = {\n title: 'payment.record-details',\n backButton: {\n text: 'Employer Payroll Group Info',\n url: '#',\n method: this.goBack.bind(this),\n },\n };\n\n paymentSubmission: PaymentSubmission = {};\n\n bankInformation: BankInformation = {};\n\n tempSeardhParams: PaymentMemberLevelRequest = {\n page: 0,\n size: 10,\n };\n\n bankInformationTableData: BankInformation[] = [];\n\n receiptReferenceNoControlControl = new FormControl();\n\n receiptReferenceNoDropdownConfig: CdsDropdownConfig = {\n label: 'Receipt Reference Number',\n options: [],\n placeholder: 'Select an option',\n color: 'ml',\n };\n\n displayedColumns = ['paymentMethod', 'chequeDate', 'chequeBankInDate', 'clearedDate', 'receivedDate', 'receivedAmount', 'chequeDirectMailingToeMpfFlag'];\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n numberOfElements = 0;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n get isLoading() {\n return this.basicInfoLoading || this.paymentInformationLoading || this.searchListLoading;\n }\n\n dataSource: PaymentMemberLevel[] = [];\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'memberAccountCode',\n title: 'Member Account Code',\n },\n {\n key: 'memberName',\n title: 'Member Name',\n },\n {\n key: 'contributionPeriod',\n title: 'Contribution Period',\n },\n {\n key: 'receivedAmount',\n title: 'Received Amount',\n },\n ];\n\n contributionPeriodConfig: CdsDropdownConfig = {\n label: 'Contribution Period',\n placeholder: 'Select Contribution Period',\n options: [],\n };\n\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n showTable = true;\n\n basicInfoLoading = false;\n searchListLoading = false;\n paymentInformationLoading = false;\n contributionPeriodLoading = false;\n memberLoading = false;\n\n paymentMethodOptions = paymentMethodOptions;\n\n reiceiptRefNoStatusMapObj = reiceiptRefNoStatusMapObj;\n\n firstLoad = true;\n\n eceiptReferenceNoList: PaymentRecordsDetailPaymentInfo[] = [];\n\n get memberAccountCodeControl() {\n return this.form?.get('memberAccountCode');\n }\n\n get memberNameControl() {\n return this.form?.get('memberName');\n }\n\n constructor(private layoutHeaderService: LayoutHeaderService, public service: EmployerService, private route: ActivatedRoute, private router: Router) {}\n\n ngOnInit(): void {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTop = 0;\n\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n\n this.employerId = this.route.snapshot.queryParams['id'];\n this.payrollGroupId = this.route.snapshot.queryParams['payrollGroupId'];\n this.paymentSubmissionReferenceNo = this.route.snapshot.queryParams['paymentSubmissionReferenceNo'];\n this.receiptReferenceNo = this.route.snapshot.queryParams['receiptReferenceNo'];\n\n this.receiptReferenceNoControlControl.setValue(this.receiptReferenceNo ? this.receiptReferenceNo : '');\n\n this.initForm();\n this.getSearchList();\n this.getBaseInfo();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup({\n memberAccountCode: new FormControl('', [Validators.maxLength(15)]),\n memberName: new FormControl('', [Validators.maxLength(200)]),\n contributionPeriod: new FormControl(''),\n });\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n getTempSearchParams() {\n const params: PaymentMemberLevelRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n if (params.contributionPeriod) {\n const [contributionPeriodFrom, contributionPeriodTo] = params.contributionPeriod.split(',');\n params.contributionPeriodFrom = contributionPeriodFrom;\n params.contributionPeriodTo = contributionPeriodTo;\n delete params.contributionPeriod;\n } else {\n delete params.contributionPeriodFrom;\n delete params.contributionPeriodTo;\n }\n\n return params;\n }\n\n getRequestParams() {\n const params: PaymentMemberLevelRequest = {\n ...this.tempSeardhParams,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n payrollGroupId: this.payrollGroupId,\n id: this.employerId,\n subRefNo: this.paymentSubmissionReferenceNo,\n receiptReferenceNo: this.receiptReferenceNo,\n };\n\n return params;\n }\n\n getBaseInfo() {\n this.basicInfoLoading = true;\n this.service\n .getPaymentRecordsDetailBaseInfo(this.paymentSubmissionReferenceNo, this.employerId, this.payrollGroupId)\n .pipe(\n finalize(() => {\n this.basicInfoLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.paymentSubmission = this.baseInfoGenerator(res.data);\n }\n });\n }\n\n baseInfoGenerator(data?: PaymentSubmission[]) {\n if (!data) return {};\n const workflowReferenceNoList: string[] = [];\n const otherTransactionReferenceNoList: string[] = [];\n\n data.forEach(item => {\n if (item.workflowReferenceNo) {\n workflowReferenceNoList.push(item.workflowReferenceNo);\n }\n if (item.otherTransactionReferenceNo) {\n otherTransactionReferenceNoList.push(item.otherTransactionReferenceNo);\n }\n });\n return {\n ...data[0],\n workflowReferenceNoList,\n otherTransactionReferenceNoList,\n };\n }\n\n getSearchList() {\n this.searchListLoading = true;\n this.service\n .getPaymentRecordsDetailSearchList(this.paymentSubmissionReferenceNo, this.employerId, this.payrollGroupId)\n .pipe(\n finalize(() => {\n this.searchListLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.eceiptReferenceNoList = res.data;\n this.receiptReferenceNoDropdownConfig.options = res.data.map(item => {\n return {\n label: item.receiptReferenceNo as string,\n value: item.receiptReferenceNo as string,\n };\n });\n\n this.receiptReferenceNoDropdownConfig = { ...this.receiptReferenceNoDropdownConfig };\n\n if (!this.receiptReferenceNo && this.receiptReferenceNoDropdownConfig.options.length) {\n this.receiptReferenceNo = this.receiptReferenceNoDropdownConfig.options[0].value;\n this.receiptReferenceNoControlControl.setValue(this.receiptReferenceNo);\n }\n\n this.reiceiptRefNoStatus = this.getReiceiptRefNoStatus();\n this.getPaymentInformation();\n this.getContributionPeriod();\n }\n });\n }\n\n getReiceiptRefNoStatus() {\n return this.eceiptReferenceNoList.find(item => item.receiptReferenceNo === this.receiptReferenceNo)?.status;\n }\n\n getContributionPeriod() {\n this.contributionPeriodLoading = true;\n this.service\n .getPaymentRecordsDetailContribution(this.paymentSubmissionReferenceNo, this.employerId, this.payrollGroupId, this.receiptReferenceNo)\n .pipe(\n finalize(() => {\n this.contributionPeriodLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n // this.bankInformation = res.data;\n // this.bankInformationTableData = [this.bankInformation];\n const options: CdsOption[] = res.data.map(item => {\n return {\n label: `${this.dateTrans(item.contributionStart)}-${this.dateTrans(item.contributionEnd)}`,\n value: `${this.dateTransToRequest(item.contributionStart)},${this.dateTransToRequest(item.contributionEnd)}`,\n };\n });\n\n this.contributionPeriodConfig = {\n ...this.contributionPeriodConfig,\n options,\n };\n }\n });\n }\n\n dateTrans(value?: string) {\n if (!value) return '';\n return DateTime.fromISO(value).toFormat('dd/MM/yyyy');\n }\n\n dateTransToRequest(value?: string) {\n if (!value) return '';\n return DateTime.fromISO(value).toFormat('yyyy-MM-dd');\n }\n\n getPaymentInformation() {\n this.searchListLoading = true;\n this.service\n .getPaymentRecordsDetailPaymentInformation(this.paymentSubmissionReferenceNo, this.employerId, this.payrollGroupId, this.receiptReferenceNo)\n .pipe(\n finalize(() => {\n this.searchListLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.bankInformation = res.data;\n this.bankInformationTableData = [this.bankInformation];\n }\n });\n }\n\n getMemberPageList() {\n this.memberLoading = true;\n\n const params: PaymentMemberLevelRequest = this.getRequestParams();\n\n this.service\n .getPaymentRecordsDetailMemberLevelList(params)\n .pipe(\n finalize(() => {\n this.memberLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.numberOfElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n }\n });\n }\n\n goBack() {\n this.router.navigate(['/employer/payroll-group-info'], {\n queryParams: {\n id: this.route.snapshot.queryParams['id'],\n entityCode: this.route.snapshot.queryParams['entityCode'],\n payrollGroupId: this.payrollGroupId,\n tab: 'paymentRecord',\n },\n });\n }\n\n onSelectChange(val: string) {\n if (!val) return;\n // if (this.firstLoad) {\n // this.firstLoad = false;\n // return;\n // }\n this.receiptReferenceNo = val;\n this.reiceiptRefNoStatus = this.getReiceiptRefNoStatus();\n this.getMemberPageList();\n this.getPaymentInformation();\n this.getContributionPeriod();\n this.reset();\n }\n\n search() {\n if (this.searchButtonDisabled) return;\n this.resetButtonDisabled = false;\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.getMemberPageList();\n }\n\n reset() {\n if (this.resetButtonDisabled) return;\n this.resetButtonDisabled = true;\n this.initForm();\n // reloadTable to reset sort\n this.showTable = false;\n setTimeout(() => {\n this.showTable = true;\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.tempSeardhParams = { page: 1, size: 10 };\n this.getMemberPageList();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.getMemberPageList();\n }\n\n goToDetail(item: Employee) {\n this.router.navigate(['/employee/related-policy-detail'], {\n queryParams: {\n md5: item.md5,\n id: item.customerId,\n },\n });\n }\n}\n","\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Payment Submission Reference No.\n
    \n
    \n \n {{ paymentSubmission.paymentSubmissionReferenceNo }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n {{ paymentSubmission.employerAccountCode }}\n {{ paymentSubmission.companyEnName }}\n {{ paymentSubmission.companyZhName }}\n \n \n \n \n \n {{ number }}, \n \n \n \n \n \n \n {{ number }},\n \n \n \n \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n
    \n
    \n\n
    \n Payment Information\n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Payer’s Bank information\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n \n \n \n Payment Method \n {{ service.optionLabelRender | fn : element.paymentMethod : paymentMethodOptions }}\n \n\n \n \n Cheque Date \n {{ element.chequeDate | ssmsDate }}\n \n\n \n \n Cheque Bank-In Date \n {{ element.chequeBankInDate | ssmsDate }}\n \n\n \n \n Cleared Date \n {{ element.clearedDate | ssmsDate }}\n \n\n \n \n Received Date \n {{ element.receivedDate | ssmsDate }}\n \n\n \n \n Received Amount \n \n HKD \n {{ element.receivedAmount | number : '1.2-2' }}\n \n \n\n \n \n Cheque Direct Mailing to eMPF Flag \n \n \n \n \n\n \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Trustee’s Bank information\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n
    \n
    \n\n
    \n Member Level Records\n
    \n\n
    \n \n
    \n \n\n
    \n Max length is 15\n
    \n
    \n
    \n \n\n
    \n Max length is 200\n
    \n
    \n
    \n \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    Total {{ numberOfElements | number }} records
    \n
    \n
    \n\n
    \n \n \n \n
    \n {{ element.lastName }} \n {{ element.firstName }}\n
    \n
    \n {{ element.lastZhName }}\n {{ element.firstZhName }}\n
    \n
    \n
    \n\n \n {{ element['contributionStart'] | ssmsDate }}\n -\n {{ element['contributionEnd'] | ssmsDate }}\n \n\n \n HKD \n {{ element.receivedAmount | number : '1.2-2' }}\n \n \n
    \n
    \n","import { OnChanges, SimpleChanges } from '@angular/core';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { Sort } from 'src/app/components/table/table-expand';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { paymentMethodOptions, PaymentRecord, PaymentRecordSearchRequest } from '../../employer';\nimport { EmployerService } from '../../employer.service';\n\n@Component({\n selector: 'app-payment-record',\n templateUrl: './payment-record.component.html',\n styleUrls: ['./payment-record.component.scss'],\n})\nexport class PaymentRecordComponent implements OnChanges {\n @Input() payrollGroupId?: string;\n @Input() employerId?: string;\n\n searchDTO: PaymentRecordSearchRequest = {\n page: 0,\n size: 10,\n paymentSubmissionReferenceNo: '',\n receiptReferenceNo: '',\n contributionPeriodFrom: '',\n contributionPeriodTo: '',\n billReferenceNo: '',\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n numberOfElements = 0;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n showDatePicker = true;\n\n isLoading = false;\n\n paymentRecordList: PaymentRecord[] = [];\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'paymentSubmissionReferenceNo',\n title: 'Payment Submission Reference No.',\n sort: SortMode.DEFAULT,\n sticky: true,\n },\n { key: 'receiptReferenceNo', title: 'Receipt Reference No.' },\n { key: 'billReferenceNo', title: 'Bill Reference No.' },\n { key: 'contributionPeriod', title: 'Contribution Period' },\n { key: 'statusCode', title: 'Status Code' },\n { key: 'paymentMethod', title: 'Payment Method' },\n { key: 'receivedAmount', title: 'Received Amount' },\n { key: 'chequeDate', title: 'Cheque Date' },\n { key: 'chequeBankInDate', title: 'Cheque bank-in Date' },\n ];\n\n tempSeardhParams: PaymentRecordSearchRequest = {\n page: 1,\n size: 10,\n };\n\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n paymentMethodOptions = paymentMethodOptions;\n\n get paymentSubmissionReferenceNoControl() {\n return this.form?.get('paymentSubmissionReferenceNo');\n }\n get receiptReferenceNoControl() {\n return this.form?.get('receiptReferenceNo');\n }\n\n get billReferenceNoControl() {\n return this.form?.get('billReferenceNo');\n }\n\n get contributionPeriodFromControl() {\n return this.form?.get('contributionPeriodFrom');\n }\n\n get contributionPeriodToControl() {\n return this.form?.get('contributionPeriodTo');\n }\n\n get contributionPeriodFromValue() {\n return this.contributionPeriodFromControl?.value;\n }\n\n get contributionPeriodToValue() {\n return this.contributionPeriodToControl?.value;\n }\n\n get paymentSubmissionReferenceNoValue() {\n return this.paymentSubmissionReferenceNoControl?.value;\n }\n\n get receiptReferenceNoValue() {\n return this.receiptReferenceNoControl?.value;\n }\n\n get billReferenceNoValue() {\n return this.billReferenceNoControl?.value;\n }\n\n get contributionEndValue() {\n return this.contributionPeriodToControl?.value;\n }\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty || this.isLoading;\n }\n\n resetButtonDisabled = true;\n\n constructor(public service: EmployerService, private route: ActivatedRoute, private router: Router, private toastAlert: ToastAlertService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['payrollGroupId']?.currentValue && changes['payrollGroupId']?.currentValue !== changes['payrollGroupId']?.previousValue && this.employerId) {\n this.reset(true);\n }\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n paymentSubmissionReferenceNo: new FormControl('', [Validators.maxLength(50)]),\n receiptReferenceNo: new FormControl('', [Validators.maxLength(35)]),\n contributionPeriodFrom: new FormControl('', [dateValidator('create.dateError', '', '')]),\n contributionPeriodTo: new FormControl('', [dateValidator('create.dateError', '', '')]),\n billReferenceNo: new FormControl('', [Validators.maxLength(50)]),\n },\n { validators: startAndEndDateValidator('create.dateError', 'contributionPeriodFrom', 'contributionPeriodTo') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n getPageList() {\n this.isLoading = true;\n const params: PaymentRecordSearchRequest = this.getRequestParams();\n this.service\n .getPaymentRcordList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.paymentRecordList = data.data.empty ? [] : data.data.content;\n this.numberOfElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getRequestParams() {\n const params: PaymentRecordSearchRequest = {\n ...this.tempSeardhParams,\n id: this.employerId,\n payrollGroupId: this.payrollGroupId,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n params.contributionPeriodFrom = params.contributionPeriodFrom ? this.dateTrans(params.contributionPeriodFrom) : '';\n params.contributionPeriodTo = params.contributionPeriodTo ? this.dateTrans(params.contributionPeriodTo) : '';\n\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getTime(dateStr: string) {\n if (!dateStr) return undefined;\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.resetButtonDisabled = false;\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.tempSeardhParams = deepCopy(this.getTempSearchParams());\n this.getPageList();\n }\n\n getTempSearchParams() {\n const params: PaymentRecordSearchRequest = {\n ...this.tempSeardhParams,\n ...(this.form.valid ? this.form.value : {}),\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n if (!params.sort) {\n params.sort = 'paymentSubmissionReferenceNo,desc';\n }\n\n return params;\n }\n\n reset(ignoreResetButton = false) {\n if (this.resetButtonDisabled && !ignoreResetButton) {\n return;\n }\n\n this.resetButtonDisabled = true;\n\n this.initForm();\n\n // reload datepicker dom to clear the selected date\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.tempSeardhParams = { page: 1, size: 10 };\n this.getPageList();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n\n if (event.column && event.column.sort !== Sort.DEFAULT) {\n this.tempSeardhParams.sort = `${event.column.key === 'paymentSubmissionReferenceNo' ? 'paymentSubmissionReferenceNo' : event.column.key},${\n event.column.sort\n }`;\n } else {\n this.tempSeardhParams.sort = 'paymentSubmissionReferenceNo,desc';\n }\n\n this.getPageList();\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n toDetail(paymentSubmissionReferenceNo: string, receiptReferenceNo?: string) {\n this.router.navigate(['/employer/payment-record-detail'], {\n queryParams: {\n ...this.route.snapshot.queryParams,\n paymentSubmissionReferenceNo,\n receiptReferenceNo,\n payrollGroupId: this.payrollGroupId,\n },\n });\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n}\n","
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n
    \n \n\n \n Max length is 50\n
    \n
    \n
    \n \n\n
    \n Max length is 35\n
    \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    -
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    \n\n
    \n \n\n
    \n Max length is 50\n
    \n
    \n\n
    \n \n \n\n \n
    \n
    \n\n\n
    \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ numberOfElements }} records\n
    \n
    \n\n
    \n
    \n \n \n {{ element['paymentSubmissionReferenceNo'] }}\n \n\n \n
    \n {{ element['contributionStart'] | date : 'dd/MM/yyyy' }}\n - \n {{ element['contributionEnd'] | date : 'dd/MM/yyyy' }}\n
    \n
    \n\n \n {{\n element['receiptReferenceNo']\n }}\n \n\n \n {{ service.optionLabelRender | fn : element.paymentMethod : paymentMethodOptions }}\n \n\n \n {{ element['receivedAmount'] | number : '1.2-2' }}\n \n\n \n {{ element['chequeDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n {{ element['chequeBankInDate'] | date : 'dd/MM/yyyy' }}\n \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport {\n AddressDTO,\n BillingClass,\n ContributionFrequencyE,\n contributionFrequencyMapObj,\n EmployerProfileDetail,\n ErAddressTypeE,\n erAddressTypeMapObj,\n inValidStatusMapObj,\n isOrsoSchema,\n} from '../employer';\nimport { ContactStatusE } from '../employer-profile-company-list/employer-profile-company-list';\nimport { EmployerService } from '../employer.service';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-payroll-group-info',\n templateUrl: './payroll-group-info.component.html',\n styleUrls: ['./payroll-group-info.component.scss'],\n})\nexport class PayrollGroupInfoComponent implements OnInit {\n fakeDate = new Date();\n\n ContactStatusE = ContactStatusE;\n\n inValidStatusMapObj = inValidStatusMapObj;\n\n ErAddressTypeE = ErAddressTypeE;\n\n isHeaderSticky = false;\n\n permissionChecked = false;\n\n constructor(\n private layoutHeaderService: LayoutHeaderService,\n public service: EmployerService,\n private route: ActivatedRoute,\n private router: Router,\n private permissionService: PermissionService,\n private toastAlert: ToastAlertService\n ) {}\n\n headerButton: AdminHeaderConfig = {\n title: 'er.employer-payroll-group-info',\n backButton: {\n text: 'Employer Enquiry Information Page',\n url: '#',\n method: this.goBack.bind(this),\n },\n };\n\n goBack() {\n this.router.navigate(['/employer/list']);\n }\n dropdownConfig: CdsDropdownConfig = {\n label: 'Choose an employer payroll group',\n options: [],\n };\n\n billingClass?: BillingClass;\n\n _id?: string;\n\n _entityCode?: string;\n\n employerProfileDetail?: EmployerProfileDetail;\n\n billingClassList?: BillingClass[] = [];\n\n addressList: AddressDTO[] = [];\n\n payrollGroupId = '';\n\n isStaff = false;\n\n tabIndex = 0;\n\n activedTabList: string[] = [];\n\n tabList: string[] = [];\n\n _typeShow = false;\n\n ngOnInit(): void {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTop = 0;\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n\n const _id = this.route.snapshot.queryParams['id'];\n const _entityCode = this.route.snapshot.queryParams['entityCode'];\n\n this.payrollGroupId = this.route.snapshot.queryParams['payrollGroupId'];\n\n this.getProfileDetail(_id).then(id => {\n this.initType(id);\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(havePermission => {\n if (havePermission) {\n this.isStaff = true;\n }\n this.permissionChecked = true;\n this.tabList = this.getTablist();\n this.changeTab();\n });\n\n this._id = id;\n this._entityCode = _entityCode;\n this.getBillingClassList(id);\n });\n }\n\n initType(id: string) {\n this._typeShow = isOrsoSchema(id);\n }\n\n getTablist() {\n if (this.isStaff) {\n return ['schemeInfo', 'billingInfo', 'accountInfo', 'paymentRecord', 'accountBalance', 'vestingRule', 'empfWorkflow', 'chargeInfo', 'formulaClass'];\n } else {\n return ['schemeInfo', 'billingInfo', 'accountInfo', 'accountBalance', 'vestingRule'];\n }\n }\n\n // TODO\n changeTab() {\n const tab = this.route.snapshot.queryParams['tab'] || '';\n\n const index = this.tabList.indexOf(tab);\n\n if (index > -1) {\n this.selectedTabIndexChange(index);\n }\n }\n\n initSelect(billingClassList: BillingClass[] | undefined) {\n billingClassList?.forEach(billingClass => {\n if (billingClass.payrollGroupId) {\n this.dropdownConfig.options.push({\n label:\n (Number(billingClass.payrollGroupId) < 10 ? billingClass.payrollGroupId?.padStart(2, '0') : billingClass.payrollGroupId) +\n ' - ' +\n billingClass.payrollGroupName,\n value: billingClass,\n });\n }\n });\n const _billingClass = billingClassList?.find(x => this.payrollGroupId == x.payrollGroupId);\n if (_billingClass) {\n this.billingClass = _billingClass;\n }\n }\n\n getBillingClassList(id: string) {\n this.service.getBillingClassList(id).subscribe(data => {\n if (data.result === 0) {\n const _billingClassList = data.data;\n\n if (_billingClassList) {\n this.billingClassList = this.addressListSort(_billingClassList);\n\n this.initSelect(this.billingClassList);\n }\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n addressListSort(billingClassList?: BillingClass[]) {\n if (!billingClassList) return billingClassList;\n return billingClassList.map(item => {\n const data: BillingClass = deepCopy(item);\n let addressList: AddressDTO[] = deepCopy(data.addressList);\n addressList = addressList.filter(item => {\n return this.isStaff || item.addressType !== ErAddressTypeE.RESIDENTIAL;\n });\n\n addressList.sort((a, b) => erAddressTypeMapObj[a.addressType].order - erAddressTypeMapObj[b.addressType].order);\n data.addressList = addressList;\n return data;\n });\n }\n\n addressTypeRender(type: ErAddressTypeE) {\n return erAddressTypeMapObj[type].text || '';\n }\n\n getProfileDetail(id: string) {\n return new Promise(resolve => {\n this.service.getProfileDetail(id).subscribe(data => {\n if (data.result === 0) {\n this.employerProfileDetail = data.data;\n if (data.data?.id) {\n resolve(data.data.id);\n }\n } else {\n this.toastError(data.message);\n }\n });\n });\n }\n\n onRegisteredToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n onBusinessToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n showPlaceholderHeight(isSticky: boolean) {\n this.isHeaderSticky = isSticky;\n }\n\n contributionFrequencyRender(type: ContributionFrequencyE) {\n return contributionFrequencyMapObj[type] || '';\n }\n\n addressRender(adress: AddressDTO) {\n let list = [\n adress.room && adress.zhAddrFlg === 'Y' ? adress.room + '室' : adress.room,\n adress.floor && adress.zhAddrFlg === 'Y' ? adress.floor + '樓' : adress.floor,\n adress.block && adress.zhAddrFlg === 'Y' ? adress.block + '座' : adress.block,\n adress.building,\n adress.street,\n adress.district,\n adress.city,\n adress.country,\n ];\n\n list = list.filter(item => !!item);\n\n return list.join(', ');\n }\n\n selectedTabIndexChange(value: number) {\n this.tabIndex = value;\n const tab = this.tabList[value];\n this.activedTabList.push(tab);\n this.activedTabList = [...this.activedTabList];\n }\n\n ifLoadTab(activedTabList: string[], tab: string) {\n if (activedTabList.includes(tab)) return true;\n return false;\n }\n\n selectChange(value?: BillingClass) {\n if (value) {\n const tab = this.tabList[this.tabIndex];\n this.activedTabList = [tab];\n }\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","\n\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'payroll.basic-information' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'payment.address' | lang }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ addressTypeRender | fn : item.addressType }}\n
    \n \n
    \n
    \n
    \n {{ item.country }}\n {{ item.city }}\n {{ item.district }}\n {{ item.street }}\n {{ item.building }}\n {{ item.block }}座\n {{ item.floor }}樓\n {{ item.room }}室\n
    \n \n
    \n {{ addressRender | fn : item }}\n
    \n
    \n
    \n\n
    \n
    Remarks
    \n
    {{ item.remarks }}
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n \n \n\n \n\n \n \n \n \n \n \n
    \n
    \n
    \n\n
    \n
    \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, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { BillingClass, ErBaseRequest, SchemeInfo } from '../../employer';\nimport { EmployerService } from '../../employer.service';\n\n@Component({\n selector: 'app-scheme-info',\n templateUrl: './scheme-info.component.html',\n styleUrls: ['./scheme-info.component.scss'],\n})\nexport class SchemeInfoComponent implements OnInit, OnChanges {\n isStaff = false;\n\n constructor(private service: EmployerService, private permissionService: PermissionService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['billingClass'].currentValue !== undefined && changes['billingClass'].currentValue !== changes['billingClass'].previousValue) {\n this.getSchemeInfo();\n }\n }\n\n @Input() billingClass?: BillingClass;\n @Input() employerId? = '';\n\n schemeInfo?: SchemeInfo;\n\n getSchemeInfo() {\n const _param: ErBaseRequest = {\n payrollGroupId: this.billingClass?.payrollGroupId,\n id: this.employerId,\n };\n this.service.getSchemeInfo(_param).subscribe(data => {\n if (data.result === 0 && data.data) {\n this.schemeInfo = data.data;\n }\n });\n }\n\n ngOnInit(): void {}\n\n permissionFilter() {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.CUSTOMER_EMPLOYER).then(res => {\n this.isStaff = res;\n });\n }\n}\n","\n\n\n\n\n\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { finalize } from 'rxjs';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { AccountBalance, PaymentMethodE, SuspenseRecord, SuspenseRecordSearchRequest, paymentMethodOptions } from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { findOptionLabelByValue } from 'src/app/utils/utils';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-suspense-record',\n templateUrl: './suspense-record.component.html',\n styleUrls: ['./suspense-record.component.scss'],\n})\nexport class SuspenseRecordComponent implements OnInit, OnChanges {\n @Input() payrollGroupId?: string;\n @Input() id?: string;\n\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n data: AccountBalance = {};\n\n dataSource: SuspenseRecord[] = [];\n\n originColumnsConfig: ColumnConfig[] = [\n {\n key: 'receiptReferenceNo',\n title: 'Receipt Reference No.',\n sort: SortMode.DEFAULT,\n sticky: true,\n },\n {\n key: 'paymentSubmissionReferenceNo',\n title: 'Payment Submission Reference No.',\n },\n { key: 'paymentReceivedDate', title: 'Payment Received Date' },\n { key: 'receivedAmount', title: 'Received Amount' },\n { key: 'availableAmount', title: 'Available Amount' },\n { key: 'taggedAmount', title: 'Tagged Amount' },\n { key: 'overpaidAmount', title: 'Overpaid Amount' },\n { key: 'paymentMethod', title: 'Payment Method' },\n ];\n\n columnsConfig = deepCopy(this.originColumnsConfig);\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n numberOfElements = 0;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n resetButtonDisabled = true;\n\n showDatePicker = true;\n\n isLoading = false;\n\n dataLoading = false;\n\n _searched = false;\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n form: FormGroup = new FormGroup({\n receiptReferenceNo: new FormControl('', [Validators.maxLength(35)]),\n paymentSubmissionReferenceNo: new FormControl('', [Validators.maxLength(50)]),\n paymentReceivedDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n paymentMethod: new FormControl(''),\n });\n\n _valid = false;\n\n formReady = false;\n\n get receiptReferenceNoControl() {\n return this.form?.get('receiptReferenceNo');\n }\n\n get paymentSubmissionReferenceNoControl() {\n return this.form?.get('paymentSubmissionReferenceNo');\n }\n\n get paymentReceivedDateControl() {\n return this.form?.get('paymentReceivedDate');\n }\n\n get paymentMethodControl() {\n return this.form?.get('paymentMethod');\n }\n\n methodConfig: CdsDropdownConfig = {\n label: 'Payment Method',\n placeholder: 'Select Payment Method',\n options: paymentMethodOptions,\n };\n\n maxTime = this.getNowTime();\n\n searchDTO: SuspenseRecordSearchRequest = {\n page: 1,\n size: 10,\n };\n\n constructor(private service: EmployerService, private toastAlert: ToastAlertService, private router: Router, private route: ActivatedRoute) {}\n\n ngOnInit(): void {}\n\n inputChange(val: string, label: string) {\n if (val) {\n val = val.trim();\n }\n switch (label) {\n case 'receiptReferenceNo':\n this.searchDTO.receiptReferenceNo = val;\n break;\n case 'paymentSubmissionReferenceNo':\n this.searchDTO.paymentSubmissionReferenceNo = val;\n break;\n case 'paymentReceivedDate':\n this.searchDTO.paymentReceivedDate = val;\n break;\n case 'paymentMethod':\n this.searchDTO.paymentMethod = val;\n break;\n }\n this.validating();\n }\n\n validating() {\n if (\n !!this.searchDTO.receiptReferenceNo ||\n !!this.searchDTO.paymentSubmissionReferenceNo ||\n !!this.searchDTO.paymentReceivedDate ||\n !!this.searchDTO.paymentMethod\n ) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['payrollGroupId']?.currentValue && changes['payrollGroupId']?.currentValue !== changes['payrollGroupId']?.previousValue) {\n this.getData();\n }\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getRequestParams() {\n const params: SuspenseRecordSearchRequest = {\n ...this.searchDTO,\n id: this.id || '',\n payrollGroupId: this.payrollGroupId,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n\n if (params.paymentReceivedDate) {\n params.paymentReceivedDate = this.dateTrans(params.paymentReceivedDate);\n }\n\n if (!params.sort) {\n params.sort = 'rcv_ref_no,desc';\n }\n\n return params;\n }\n\n getData() {\n this.isLoading = true;\n this.service\n .getAccountBalance(this.getRequestParams())\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.data = res.data;\n this.numberOfElements = res.data.records?.totalElements || 0;\n this.dataSource = res.data.records?.content || [];\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.records?.totalElements,\n };\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n pageInit() {\n return { current: 1, count: 0 };\n }\n\n searchFn() {\n this.validFn().then(r => {\n if (r) {\n this._searched = true;\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.getData();\n }\n });\n }\n\n async validFn() {\n return this._valid && this.form.valid;\n }\n\n reset() {\n if (!this._valid || !this._searched) {\n return;\n }\n this.searchDTO = {\n size: 10,\n page: 0,\n };\n this._searched = false;\n this.validating();\n this.getData();\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n\n if (event.column) {\n this.searchDTO.sort = `${event.column.key === 'receiptReferenceNo' ? 'rcv_ref_no' : event.column.key},${event.column.sort}`;\n } else {\n delete this.searchDTO.sort;\n }\n\n this.getData();\n }\n\n totalCount(data: AccountBalance) {\n return Number(data.forfeitureAccount || 0) + Number(data.reservedAccount || 0) + Number(data.suspenseRecord || 0);\n }\n\n paymentMethodRender(type: PaymentMethodE) {\n if (!type) return '';\n return findOptionLabelByValue(type, paymentMethodOptions);\n }\n\n toDetail(paymentSubmissionReferenceNo: string, receiptReferenceNo?: string) {\n this.router.navigate(['/employer/payment-record-detail'], {\n queryParams: {\n ...this.route.snapshot.queryParams,\n paymentSubmissionReferenceNo,\n receiptReferenceNo,\n payrollGroupId: this.payrollGroupId,\n },\n });\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n const _table = this.tableBox.nativeElement.querySelector('.table-box');\n if (_table) {\n return _table.scrollWidth > _table.clientWidth;\n }\n }\n return false;\n }\n}\n","
    \n
    \n Account Balance\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Account Balance
    \n
    \n
    HKD
    \n
    \n {{ totalCount | fn : data | number : '1.2-2' }}\n
    \n
    \n
    \n
    =
    \n\n
    \n
    Forfeiture Account
    \n
    \n
    HKD
    \n
    \n {{ data.forfeitureAccount | number : '1.2-2' }}\n
    \n
    \n
    \n\n
    +
    \n\n
    \n
    Reserved Account
    \n
    \n
    HKD
    \n
    \n {{ data.reservedAccount | number : '1.2-2' }}\n
    \n
    \n
    \n\n
    +
    \n\n
    \n
    Available Amount
    \n
    \n
    HKD
    \n
    \n {{ data.suspenseRecord | number : '1.2-2' }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'er.search-record-for-suspense' | lang }}\n
    \n
    \n
    \n \n\n
    \n Max length is 35\n
    \n
    \n
    \n \n\n \n Max length is 50\n
    \n
    \n\n
    \n \n \n \n\n
    \n {{\n 'create.dateError' | lang\n }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n
    \n\n\n
    \n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ numberOfElements | number }} records
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n {{\n element['receiptReferenceNo']\n }}\n \n\n \n {{ element['paymentSubmissionReferenceNo'] }}\n \n\n \n {{ element['paymentReceivedDate'] | ssmsDate }}\n \n\n \n {{ element['receivedAmount'] | number }}\n \n\n \n {{ element['suspenseAmount'] | number }}\n \n\n \n {{ element['availableAmount'] | number }}\n \n\n \n {{ element['taggedAmount'] | number }}\n \n\n \n {{ element['overpaidAmount'] | number }}\n \n\n \n {{ paymentMethodRender | fn : element['paymentMethod'] }}\n \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CdsCheckboxConfig } from '@cds/ng-core/checkbox';\nimport {\n VestingRuleDetail,\n VoluntaryRule,\n CalMnthServiceTypE,\n calMnthServiceTypMapObj,\n CalBaseUntE,\n calBaseUntMapObj,\n SubacctTypE,\n subacctTypMapObj,\n VestTermReasonE,\n vestTermReasonMapObj,\n IncomeTypeE,\n incomeTypeMapObj,\n VestingRuleOrso,\n NoPayLeaveMap,\n NoPayLeaveE,\n OrsoVestingE,\n OrsoVestingMap,\n VestingClassMap,\n VestingClassE,\n MpfTermination,\n BillingClass,\n RequirementTypeE,\n VestingRuleMpfDTO,\n VoluntaryRuleMpfDTO,\n definitionOfServiceTypMapObj,\n isOrsoSchema,\n} from '../../employer';\nimport { EmployerService } from '../../employer.service';\nimport { finalize } from 'rxjs';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-vesting-scale',\n templateUrl: './vesting-scale.component.html',\n styleUrls: ['./vesting-scale.component.scss'],\n})\nexport class VestingScaleComponent implements OnInit, OnChanges {\n @Input() billingClass?: BillingClass;\n @Input() id?: string;\n\n CalMnthServiceTypE = CalMnthServiceTypE;\n\n vestingRuleDisplayedColumns = ['completedMonthOfServiceFrom', 'completedMonthOfServiceTo', 'vestingRate'];\n\n relevantIncomeDataSource: VestingRuleDetail[] = [];\n\n relevantIncomeDisplayedColumns = ['completedMonthOfServiceFrom', 'completedMonthOfServiceTo', 'contributionRate', 'contributionAmount', 'cappedAmount'];\n\n vestingSchemeDisplayedColumns = ['breakPoint', 'vestRt'];\n\n bestVestingData: VestingRuleDetail[] = [];\n\n hasConfig: CdsCheckboxConfig = {\n disabled: true,\n checked: true,\n };\n\n vestingRuleOrsoList: VestingRuleOrso[] = [];\n\n vestingRuleMpfList: VestingRuleMpfDTO[] = [];\n\n voluntaryRuleList: VoluntaryRuleMpfDTO[] = [];\n\n noPayLeaveTypeDataSource: VestingRuleOrso[] = [];\n\n noPayLeaveTypeDisplayedColumns = ['type', 'vesting'];\n\n noPayLeaveRangeDisplayedColumns = ['type', 'min', 'full'];\n\n isLoading = false;\n\n vestingLoading = false;\n\n voluntaryLoading = false;\n\n showOrso = false;\n\n constructor(\n public service: EmployerService,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['id'].currentValue) {\n this.showOrso = isOrsoSchema(this.id);\n if (this.showOrso) {\n this.getOrsoData();\n } else {\n this.getMpfData();\n this.getVoluntaryData();\n }\n }\n }\n\n getOrsoData() {\n this.vestingLoading = true;\n\n this.service\n .getVestingRules({\n id: this.id,\n // payrollGroupId: this.billingClass?.payrollGroupId,\n })\n .pipe(\n finalize(() => {\n this.vestingLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.vestingRuleOrsoList = res.data || [];\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n getMpfData() {\n this.vestingLoading = true;\n\n this.service\n .getVestingRules({\n id: this.id,\n // payrollGroupId: this.billingClass?.payrollGroupId,\n })\n .pipe(\n finalize(() => {\n this.vestingLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n try {\n this.vestingRuleMpfList = res.data;\n } catch (error) {\n this.vestingRuleMpfList = [];\n }\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n getVoluntaryData() {\n this.voluntaryLoading = true;\n\n this.service\n .getVoluntaryRules({\n id: this.id,\n // payrollGroupId: this.billingClass?.payrollGroupId,\n })\n .pipe(\n finalize(() => {\n this.voluntaryLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n try {\n this.voluntaryRuleList = res.data;\n } catch (error) {\n console.error(error);\n this.voluntaryRuleList = [];\n }\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n mpfDataHandler(data: any) {\n let list: any[] = [];\n Object.keys(data).forEach(key => {\n list = [...list, ...data[key]];\n });\n return list.map(item => {\n return {\n ...item,\n structuredTerminationList: this.mpfDataSourceHandler(item.terminationReasonList),\n };\n });\n }\n\n voluntaryDataHandler(data: VoluntaryRule[]) {\n const list: VoluntaryRule[] = [];\n // Object.keys(data).forEach(key => {\n // const rules: VestingRuleDetail[] = data[key].map((item: VoluntaryRule) => {\n // return {\n // mnthOfServiceFrm: item.mnthOfServiceFrm,\n // mnthOfServiceTo: item.mnthOfServiceTo,\n // conRt: item.conRt,\n // conAmt: item.conAmt,\n // vcCapdAmt: item.vcCapdAmt,\n // };\n // });\n // const item = deepCopy(data[key][0]);\n // item.rules = rules;\n // list = [...list, item];\n // });\n // return list;\n\n data.forEach(dataItem => {\n const rule: VestingRuleDetail = {\n mnthOfServiceFrm: dataItem.mnthOfServiceFrm,\n mnthOfServiceTo: dataItem.mnthOfServiceTo,\n conRt: dataItem.conRt,\n conAmt: dataItem.conAmt,\n vcCapdAmt: dataItem.vcCapdAmt,\n };\n const sameIndex = list.findIndex(listItem => listItem.erGrdMbClss === dataItem.erGrdMbClss);\n if (sameIndex === -1) {\n const newListItem = {\n ...dataItem,\n rules: [rule],\n };\n list.push(newListItem);\n } else {\n list[sameIndex].rules?.push(rule);\n }\n });\n\n return list;\n }\n\n calMnthServiceTypRender(type: CalMnthServiceTypE) {\n return calMnthServiceTypMapObj[type] || '';\n }\n\n definitionOfServiceTypRender(type: CalMnthServiceTypE) {\n return definitionOfServiceTypMapObj[type] || '';\n }\n\n calBaseUntRender(type: CalBaseUntE) {\n return calBaseUntMapObj[type] || '';\n }\n\n subacctTypRender(type: SubacctTypE) {\n return subacctTypMapObj[type] || '';\n }\n\n incomeTypRender(type: IncomeTypeE) {\n return incomeTypeMapObj[type] || '';\n }\n\n vestTermReasonsRedner(typeList: VestTermReasonE[]) {\n if (!typeList) return '';\n const name = typeList.map(item => vestTermReasonMapObj[item] || '').join(', ');\n return name;\n }\n\n noPayLeaveRender(type: NoPayLeaveE) {\n if (type === undefined) return '';\n return NoPayLeaveMap.get(type) || '';\n }\n\n OrsoVestingRender(type: OrsoVestingE) {\n if (type === undefined) return '';\n return OrsoVestingMap.get(type) || '';\n }\n\n getNoPayLeaveTypeDataSource(item: VestingRuleOrso) {\n if (!item) return [];\n return [\n {\n type: 'Death Benefit Vesting',\n vesting: item.deathBenefitVesting,\n },\n {\n type: 'Early Retirement Vesting',\n vesting: item.earlyRetirementVesting,\n },\n {\n type: 'Disability Vesting',\n vesting: item.disabilityVesting,\n },\n {\n type: 'Discontinued Vesting',\n vesting: item.discontinuedVesting,\n },\n ];\n }\n\n getRequiredType(type: RequirementTypeE | undefined) {\n if (type == undefined) {\n return 'NA';\n }\n if (type == RequirementTypeE.NA) {\n return 'NA';\n }\n if (type == RequirementTypeE.REQUEST_1_OF_3) {\n return 'REQUEST 1 OF 3';\n }\n if (type == RequirementTypeE.REQUEST_2_OF_3) {\n return 'REQUEST 2 OF 3';\n }\n if (type == RequirementTypeE.REQUEST_ALL_3) {\n return 'REQUEST ALL 3';\n }\n return 'NA';\n }\n\n getNoPayLeaveRangeDataSource(item: VestingRuleOrso) {\n if (!item) return [];\n return [\n {\n type: 'Age',\n min: item.minimumVestingAge,\n full: item.fullVestingAge,\n },\n {\n type: 'Service Year/ Month',\n min: item.serviceYearOrMonthMinimumVesting,\n full: item.serviceYearOrMonthFullVesting,\n },\n {\n type: 'Participation Year/ Month',\n min: item.participationYearOrMonthMinimumVesting,\n full: item.participationYearOrMonthFullVesting,\n },\n {\n type: 'Requirement Type',\n min: this.getRequiredType(item.requirementTypeMinimumVesting),\n full: this.getRequiredType(item.requirementTypeFullVesting),\n },\n ];\n }\n\n getVestingSchemeDataSource(item: any) {\n if (!item) return [];\n const list: any[] = [];\n Object.keys(item).forEach(key => {\n if (key.startsWith('vestingSchemeBreakpoint')) {\n const number = Number(key.slice(23)) - 1;\n if (list[number]) {\n list[number].breakPoint = item[key];\n } else {\n list[number] = {\n breakPoint: item[key] as string,\n vestRt: '',\n };\n }\n } else if (key.startsWith('vestingSchemePercentage')) {\n const number = Number(key.slice(23)) - 1;\n if (list[number]) {\n list[number].vestRt = item[key];\n }\n }\n });\n return list;\n }\n\n mpfRoleRender(type: VestingClassE) {\n if (!type) return '';\n return VestingClassMap.get(type) || '';\n }\n\n mpfDataSourceHandler = (list: MpfTermination[]) => {\n if (!list) return [];\n const categorizedData = this.category(list);\n const dataSource = this.deduplicat(categorizedData);\n return dataSource;\n };\n\n category = (list: MpfTermination[]) => {\n const data: any = {};\n list\n .sort((a, b) => {\n if (a.mnthOfServiceFrm !== undefined && b.mnthOfServiceFrm !== undefined) {\n return a.mnthOfServiceFrm - b.mnthOfServiceFrm;\n }\n return -1;\n })\n .forEach(item => {\n if (item.vestTermReason) {\n if (!data[item.vestTermReason]) {\n data[item.vestTermReason] = [];\n }\n const rowData = deepCopy(item);\n delete rowData.vestTermReason;\n data[item.vestTermReason].push(rowData);\n }\n });\n return data;\n };\n\n deduplicat = (data: any) => {\n //keysList = [['A', 'B'], ['C']]\n const keysList: string[][] = [];\n //valueStrList = ['[str]', '[str]']\n const valueStrList: string[] = [];\n\n Object.keys(data).forEach(key => {\n const valueStr = JSON.stringify(data[key]);\n\n const sameIndex = valueStrList.indexOf(valueStr) as number;\n\n if (sameIndex === -1) {\n keysList.push([key]);\n valueStrList.push(valueStr);\n } else {\n keysList[sameIndex].push(key);\n }\n });\n\n // [\n // {\n // reasons: ['A', 'B'],\n // dataSource: [...]\n // },\n // ]\n const list: any[] = [];\n\n keysList.forEach(item => {\n const reasons = deepCopy(item);\n const dataSource = deepCopy(data[item[0]]);\n list.push({\n reasons,\n dataSource,\n });\n });\n return list;\n };\n}\n","\n
    \n
    \n
    \n {{ 'payroll.vesting-rules' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n {{ 'payment.no-pay-leave' | lang }}\n
    \n
    \n {{ noPayLeaveRender | fn : item.noPayLeave }}\n
    \n
    \n\n
    \n
    \n \n Vesting Type\n \n Vesting Type\n {{ element.type }}\n \n\n Vesting %\n \n Vesting % \n {{ OrsoVestingRender | fn : element.vesting }}\n \n\n \n \n \n
    \n\n
    \n \n Type\n \n \n {{ element.type }}\n \n\n Minimum Vesting\n \n Minimum Vesting\n {{ element.min }}\n \n\n Full Vesting\n \n Full Vesting\n \n {{ element.full }}\n \n \n\n \n \n \n
    \n
    \n\n
    \n
    \n {{ 'employer.vesting-rule-to-be-applied-upon-termination-reason' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    {{ vestingItem.name }}
    \n \n Break Point\n \n YY/MM\n {{ element?.breakPoint }}\n \n\n vesting\n \n Vesting%\n {{ element?.vestRt | percent : '1.2-2' }}\n \n\n \n \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n\n\n
    \n
    \n
    \n {{ 'payroll.vesting-rules' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n\n \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n {{ 'employer.vesting-rule-to-be-applied-upon-termination-reason' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ vestTermReasonsRedner(reason.reasonHeader) }}\n
    \n \n \n \n Completed month of service from\n {{ element.completedMonthOfServiceFrom | number : '2.0-0' }}\n \n\n \n Completed month of service to\n {{ element.completedMonthOfServiceTo | number : '2.0-0' }}\n \n\n \n Vesting%\n {{ element.vestingRate | percent : '1.2-2' }}\n \n\n \n \n \n \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n {{ 'employer.voluntary-contribution-rules' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n\n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n
    For Relevant Income only
    \n \n \n \n {{item.relevantIncomeList?.[0]?.rangeOfTheRelevantIncomeAgeFrom !== undefined?\n 'From range of relevant income/ age':'Completed month of service from'}}\n \n \n {{(item.relevantIncomeList?.[0]?.rangeOfTheRelevantIncomeAgeFrom !== undefined?\n element.rangeOfTheRelevantIncomeAgeFrom:element.completedMonthOfServiceFrom) | number : '2.0-0' }}\n \n\n \n \n {{item.relevantIncomeList?.[0]?.rangeOfTheRelevantIncomeAgeTo !== undefined?\n 'To range of relevant income/ age':'Completed month of service to'}}\n {{ (item.relevantIncomeList?.[0]?.rangeOfTheRelevantIncomeAgeTo !== undefined?\n element.rangeOfTheRelevantIncomeAgeTo:element.completedMonthOfServiceTo) | number : '2.0-0' }}\n \n\n \n Contribution%\n \n {{ element.contributionRate | percent : '1.2-2' }}\n \n \n\n \n Contribution Amount\n {{ (element.contributionAmount | number) || '/' }} \n \n\n \n CappedAmount\n {{ (element.cappedAmount | number) || '/' }}\n \n\n \n \n \n
    \n
    \n \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport {\n EmployerProfileDetail,\n I18N_KEY,\n MemberOptionFrequencyE,\n MspArrangementE,\n MultiServiceProvidersE,\n SpecialManagement,\n} from 'src/app/views/employer/employer';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { EmployerService } from '../employer.service';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { CdsPopupService, CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { dateValidator, descriptionValidator, duplicatedValidator, nameValidator } from 'src/app/shared/validators/validators';\nimport { finalize } from 'rxjs';\nimport moment from 'moment';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { DateTime } from 'luxon';\n\n@Component({\n selector: 'app-special-management-popup',\n templateUrl: './special-management-popup.component.html',\n styleUrls: ['./special-management-popup.component.scss'],\n})\nexport class SpecialManagementPopupComponent implements OnInit {\n requestUrl = 'identity-service/user/search-all';\n\n requestUrl1 = 'customer-service/employer/list';\n\n requestParams = {\n userType: 'INTERNAL_STAFF',\n };\n\n form = new FormGroup({});\n\n get multiNationalClient() {\n return this.form.get('multiNationalClient') as FormGroup;\n }\n\n get multiRelationshipManager() {\n return this.form.get('multiRelationshipManager') as FormControl;\n }\n\n get multiRelationshipTeamManager() {\n return this.form.get('multiRelationshipTeamManager') as FormControl;\n }\n\n get relationshipManager() {\n return this.form.get('relationshipManager') as FormControl;\n }\n\n get relationshipTeamManager() {\n return this.form.get('relationshipTeamManager') as FormControl;\n }\n\n get cso() {\n return this.form.get('cso') as FormControl;\n }\n\n get csoTeamManager() {\n return this.form.get('csoTeamManager') as FormControl;\n }\n\n get mspArrangement() {\n return this.form.get('mspArrangement') as FormControl;\n }\n\n get arrangementDescription() {\n return this.form.get('arrangementDescription') as FormControl;\n }\n\n get memberOptionFrequency() {\n return this.form.get('memberOptionFrequency') as FormControl;\n }\n\n get optFrequencyDescription() {\n return this.form.get('optFrequencyDescription') as FormControl;\n }\n\n get lastOptDate() {\n return this.form.get('lastOptDate') as FormControl;\n }\n\n get providerNames() {\n return this.form.get('providerNames') as FormArray;\n }\n\n formReady = false;\n\n resetDisabled = false;\n saveDisabled = false;\n\n showArrangementDescription = true;\n showOptFrequencyDescription = true;\n\n PermissionAccess = PermissionAccess;\n PermissionItem = PermissionItem;\n\n MspArrangementE = MspArrangementE;\n\n MemberOptionFrequencyE = MemberOptionFrequencyE;\n\n originDataSource: SpecialManagement = {\n multiNationalClient: true,\n multiRelationshipManager: '',\n multiRelationshipTeamManager: '',\n\n providerNames: [],\n relationshipManager: '',\n relationshipTeamManager: '',\n cso: '',\n csoTeamManager: '',\n mspArrangement: '',\n arrangementDescription: '',\n memberOptionFrequency: '',\n optFrequencyDescription: '',\n lastOptDate: '',\n };\n\n dataSource: SpecialManagement = deepCopy(this.originDataSource);\n\n isLoading = false;\n\n id!: string;\n\n addIconConfig: CdsIconConfig = {\n size: 'sm',\n color: '#EC6453',\n };\n\n get currentDate() {\n return new Date();\n }\n\n get currentDateInStr() {\n return DateTime.now().toFormat('dd/MM/yyyy');\n }\n\n constructor(\n private fb: FormBuilder,\n public service: EmployerService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private toastAlert: ToastAlertService,\n private dialogRef: MatDialogRef,\n\n @Inject(CDS_POPUP_DATA)\n public data: {\n employerProfileDetail?: EmployerProfileDetail;\n }\n ) {}\n\n ngOnInit(): void {\n this.getData();\n }\n\n getData() {\n this.isLoading = true;\n this.service\n .getSpecialOffer(this.data.employerProfileDetail?.id as string)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data && data.data.content && data.data.content.length) {\n this.originDataSource = data.data.content[0];\n this.originDataSource.lastOptDate = moment(this.originDataSource.lastOptDate).format('DD/MM/YYYY');\n this.dataSource = deepCopy(this.originDataSource);\n this.desShowHandle();\n this.initForm();\n } else {\n this.initForm();\n }\n });\n }\n\n initForm() {\n this.formReady = false;\n\n this.form = this.fb.group({\n multiNationalClient: new FormControl(this.dataSource.multiNationalClient, {\n initialValueIsDefault: true,\n }),\n multiRelationshipManager: new FormControl(this.dataSource.multiRelationshipManager, {\n validators: [Validators.required, Validators.maxLength(200), Validators.minLength(2), nameValidator(I18N_KEY.INVALID_USERNAME, true)],\n initialValueIsDefault: true,\n }),\n multiRelationshipTeamManager: new FormControl(this.dataSource.multiRelationshipTeamManager, {\n validators: [Validators.required, Validators.maxLength(200), Validators.minLength(2), nameValidator(I18N_KEY.INVALID_USERNAME, true)],\n initialValueIsDefault: true,\n }),\n\n providerNames: this.fb.array(\n this.dataSource.providerNames\n ? this.dataSource.providerNames.map(item => {\n return this.fb.control(item.provider, {\n validators: [Validators.required, duplicatedValidator(I18N_KEY.PROVIDER_DULPLICATED)],\n initialValueIsDefault: true,\n });\n })\n : []\n ),\n\n relationshipManager: new FormControl(this.dataSource.relationshipManager, {\n validators: [Validators.required, Validators.maxLength(200), Validators.minLength(2), nameValidator(I18N_KEY.INVALID_USERNAME, true)],\n initialValueIsDefault: true,\n }),\n relationshipTeamManager: new FormControl(this.dataSource.relationshipTeamManager, {\n validators: [Validators.required, Validators.maxLength(200), Validators.minLength(2), nameValidator(I18N_KEY.INVALID_USERNAME, true)],\n initialValueIsDefault: true,\n }),\n cso: new FormControl(this.dataSource.cso, {\n validators: [Validators.required, Validators.maxLength(200), Validators.minLength(2), nameValidator(I18N_KEY.INVALID_USERNAME, true)],\n initialValueIsDefault: true,\n }),\n csoTeamManager: new FormControl(this.dataSource.csoTeamManager, {\n validators: [Validators.required, Validators.maxLength(200), Validators.minLength(2), nameValidator(I18N_KEY.INVALID_USERNAME, true)],\n initialValueIsDefault: true,\n }),\n mspArrangement: new FormControl(this.dataSource.mspArrangement, {\n validators: Validators.required,\n initialValueIsDefault: true,\n }),\n arrangementDescription: new FormControl(\n {\n value: this.dataSource.arrangementDescription,\n disabled: this.dataSource.mspArrangement !== MspArrangementE.OTHERS,\n },\n {\n validators: [Validators.required, Validators.maxLength(200), descriptionValidator(I18N_KEY.INVALID_DESCRIPTION)],\n initialValueIsDefault: true,\n }\n ),\n memberOptionFrequency: new FormControl(this.dataSource.memberOptionFrequency, {\n validators: Validators.required,\n initialValueIsDefault: true,\n }),\n optFrequencyDescription: new FormControl(\n {\n value: this.dataSource.optFrequencyDescription,\n disabled: this.dataSource.memberOptionFrequency !== MemberOptionFrequencyE.OTHERS_PLEASE_SPECIFY,\n },\n {\n validators: [Validators.required, Validators.maxLength(200), descriptionValidator(I18N_KEY.INVALID_DESCRIPTION)],\n initialValueIsDefault: true,\n }\n ),\n lastOptDate: new FormControl(this.dataSource.lastOptDate, {\n validators: [Validators.required, dateValidator(I18N_KEY.INVALID_DATE, '', this.currentDateInStr)],\n initialValueIsDefault: true,\n }),\n });\n\n this.multiNationalClient.disable();\n\n if (!this.multiNationalClient.value) {\n this.multiRelationshipManager.disable();\n this.multiRelationshipTeamManager.disable();\n } else {\n this.multiRelationshipManager.enable();\n this.multiRelationshipTeamManager.enable();\n }\n\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n _isEdit = false;\n\n mspArrangementConfig: CdsDropdownConfig = {\n // placeholder: 'Choose MSP Arrangement',\n options: [\n {\n label: '1. Both cont and assets at MIL',\n value: MspArrangementE.BOTH_CONT_AND_ASSETS_AT_MIL,\n },\n {\n label: '2. Cont at MIL but asset at other provider(s)',\n value: MspArrangementE.CONT_AT_MIL_BUT_ASSET_AT_OTHER_PROVIDER,\n },\n {\n label: '3. Both cont and asset to other provider(s)',\n value: MspArrangementE.BOTH_CONT_AND_ASSET_TO_OTHER_PROVIDER,\n },\n {\n label: '4. Cont to other provider(s) but asset at MIL',\n value: MspArrangementE.CONT_TO_OTHER_PROVIDER_BUT_ASSET_AT_MIL,\n },\n {\n label: '5. Others, please specify',\n value: MspArrangementE.OTHERS,\n },\n {\n label: '6. Information not available',\n value: MspArrangementE.INFORMATION_NOT_AVAILABLE,\n },\n ],\n };\n\n memberOptionFrequencyConfig: CdsDropdownConfig = {\n // placeholder: 'Choose Member Option Frequency',\n options: [\n {\n label: '1. One-off at inception',\n value: MemberOptionFrequencyE.ONE_OFF_AT_INCEPTION,\n },\n {\n label: '2. Annual',\n value: MemberOptionFrequencyE.ANNUAL,\n },\n {\n label: '3. Semi-annual',\n value: MemberOptionFrequencyE.SEMI_ANNUAL,\n },\n {\n label: '4. Others, please specify',\n value: MemberOptionFrequencyE.OTHERS_PLEASE_SPECIFY,\n },\n {\n label: '5. Information not available',\n value: MemberOptionFrequencyE.INFORMATION_NOT_AVAILABLE,\n },\n ],\n };\n\n arrangementDescriptionTextfieldConfig: CdsTextfieldConfig = {\n // placeholder: 'Input Arrangement Description',\n type: 'text',\n };\n\n optFrequencyDescriptionTextfieldConfig: CdsTextfieldConfig = {\n // placeholder: 'Input Opt Frequency Description',\n type: 'text',\n };\n\n providersConfig: CdsDropdownConfig = {\n placeholder: 'Choose Multi-Service Provider',\n options: [\n {\n label: 'AIA Company (Trustee) Limited',\n value: MultiServiceProvidersE.AIA_COMPANY_TRUSTEE_LIMITED,\n },\n {\n label: 'Bank of Communications Trustee Limited',\n value: MultiServiceProvidersE.BANK_OF_COMMUNICATIONS_TRUSTEE_LIMITED,\n },\n {\n label: 'Bank Consortium Trust Company Limited',\n value: MultiServiceProvidersE.BANK_CONSORTIUM_TRUST_COMPANY_LIMITED,\n },\n {\n label: 'Bank of East Asia (Trustees) Limited',\n value: MultiServiceProvidersE.BANK_OF_EAST_ASIA_TRUSTEES_LIMITED,\n },\n {\n label: 'BOCI-Prudential Trustee Limited',\n value: MultiServiceProvidersE.BOCI_PRUDENTIAL_TRUSTEE_LIMITED,\n },\n {\n label: 'China Life Trustees Limited',\n value: MultiServiceProvidersE.CHINA_LIFE_TRUSTEES_LIMITED,\n },\n {\n label: 'HSBC Provident Fund Trustee (Hong Kong) Limited',\n value: MultiServiceProvidersE.HSBC_PROVIDENT_FUND_TRUSTEE_HONG_KONG_LIMITED,\n },\n {\n label: 'Manulife Provident Funds Trust Company Limited',\n value: MultiServiceProvidersE.MANULIFE_PROVIDENT_FUNDS_TRUST_COMPANY_LIMITED,\n },\n {\n label: 'Principal Trust Company (Asia) Limited',\n value: MultiServiceProvidersE.PRINCIPAL_TRUST_COMPANY_ASIA_LIMITED,\n },\n {\n label: 'RBC Investor Services Trust Hong Kong Limited',\n value: MultiServiceProvidersE.RBC_INVESTOR_SERVICES_TRUST_HONG_KONG_LIMITED,\n },\n {\n label: 'Sun Life Pension Trust Limited',\n value: MultiServiceProvidersE.SUN_LIFE_PENSION_TRUST_LIMITED,\n },\n {\n label: 'Sun Life Trustee Company Limited',\n value: MultiServiceProvidersE.SUN_LIFE_TRUSTEE_COMPANY_LIMITED,\n },\n {\n label: 'YF Life Trustees Limited',\n value: MultiServiceProvidersE.YF_LIFE_TRUSTEES_LIMITED,\n },\n {\n label: 'Information not available',\n value: MultiServiceProvidersE.INFORMATION_NOT_AVAILABLE,\n },\n ],\n };\n\n addProviders(value = '') {\n this.providerNames?.push(this.fb.control(value, [Validators.required, duplicatedValidator(I18N_KEY.PROVIDER_DULPLICATED)]));\n }\n\n removeProvider(index: number) {\n this.providerNames?.removeAt(index);\n this.form.markAsDirty();\n }\n\n getControlValue = (groupName: string, controlName: string) => {\n this.form.get(groupName)?.get(controlName)?.value;\n };\n\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n\n showDatePicker = true;\n\n reset() {\n if (!this.form.dirty) {\n return;\n }\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n // reload datepicker dom to clear the selected date\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.doReset();\n });\n }\n });\n }\n\n doReset() {\n this.dataSource = deepCopy(this.originDataSource);\n this.form.reset();\n const providersFormArray = this.form.get('providerNames') as FormArray;\n providersFormArray.clear();\n this.dataSource.providerNames?.forEach(item => {\n this.addProviders(item.provider);\n }),\n this.form.markAsPristine();\n }\n\n submit() {\n if (!this.form.valid || !this.form.dirty) {\n return;\n }\n const params = deepCopy(this.form.value);\n params.providers = params.providerNames;\n params.lastOptDate = this.service.formateDate(params.lastOptDate);\n params.id = this.originDataSource.id;\n params.employerId = this.data.employerProfileDetail?.id;\n params.version = this.originDataSource.version;\n\n this.service\n .editSpecialOffer(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n editTrigger() {\n if (this._isEdit) {\n if (!this.form.dirty) {\n this._isEdit = false;\n this.multiNationalClient.disable();\n } else {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doReset();\n this._isEdit = false;\n this.multiNationalClient.disable();\n }\n });\n }\n } else {\n this._isEdit = true;\n this.multiNationalClient.enable();\n }\n\n // if (this._isEdit) {\n // this.multiNationalClient.enable();\n // } else {\n // this.multiNationalClient.disable();\n // }\n }\n\n multiNationalClientChange(value: boolean) {\n if (value) {\n this.multiRelationshipManager?.enable();\n this.multiRelationshipTeamManager?.enable();\n } else {\n this.multiRelationshipManager?.setValue('');\n this.multiRelationshipTeamManager?.setValue('');\n this.multiRelationshipManager?.disable();\n this.multiRelationshipTeamManager?.disable();\n }\n }\n\n mspArrangementChange(value: string) {\n const control = this.form.get('arrangementDescription');\n if (value === MspArrangementE.OTHERS) {\n control?.enable();\n this.showArrangementDescription = true;\n } else {\n control?.setValue('');\n control?.disable();\n this.showArrangementDescription = false;\n }\n }\n\n optionFrequencyChange(value: string) {\n const control = this.form.get('optFrequencyDescription');\n if (value === MemberOptionFrequencyE.OTHERS_PLEASE_SPECIFY) {\n control?.enable();\n this.showOptFrequencyDescription = true;\n } else {\n control?.setValue('');\n control?.disable();\n this.showOptFrequencyDescription = false;\n }\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.success'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this._isEdit = false;\n this.getData();\n });\n }\n providerChange() {\n this.providerNames?.controls.forEach(item => {\n item.updateValueAndValidity();\n });\n }\n\n desShowHandle() {\n this.mspArrangementChange(this.dataSource.mspArrangement);\n this.optionFrequencyChange(this.dataSource.memberOptionFrequency);\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n close() {\n if (this.form.dirty && this._isEdit) {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.dialogRef.close();\n }\n });\n } else {\n this.dialogRef.close();\n }\n }\n}\n","
    \n \n \n\n
    \n \n
    \n
    \n {{ 'offer.special-offer-arrangement' | lang }}\n
    \n\n \n
    \n
    \n \n
    \n
    \n {{ (_isEdit ? 'common.cancel.editing' : 'common.edit') | lang }}\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ data.employerProfileDetail?.companyName || ' ' }}\n
    \n
    \n {{ data.employerProfileDetail?.companyChineseName || ' ' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n
    \n Multi-National Client\n
    \n
    \n
    \n
    \n {{ 'offer.handled-by' | lang }}\n
    \n
    \n \n \n \n Missing Relationship Manager\n \n \n The maximum length is 200\n \n \n The minimum length is 2\n \n \n {{ multiRelationshipManager.errors?.['userNameInvalid'] | lang }}\n \n \n
    \n
    \n \n \n \n Missing Relationship Team Manager\n \n \n The maximum length is 200\n \n \n The minimum length is 2\n \n \n {{ multiRelationshipTeamManager.errors?.['userNameInvalid'] | lang }}\n \n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'offer.multi-service-provider' | lang }}\n
    \n \n
    \n
    \n
    #
    \n
    \n Provider Name\n
    \n
    \n \n
    {{ i + 1 }}
    \n \n
    \n \n \n Missing Provider name\n \n \n {{ providerNames.controls[i].errors?.['dulplicated'] | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ service.optionLabelRender | fn : item.value : providersConfig.options }}\n
    \n
    \n \n No Multi-Service Provider can be found.\n
    \n \n
    \n
    +
    \n Add New\n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'offer.handled-by' | lang }}\n
    \n
    \n \n \n \n Missing Relationship manager\n \n \n The maximum length is 200\n \n \n The minimum length is 2\n \n \n {{ relationshipManager.errors?.['userNameInvalid'] | lang }}\n \n \n
    \n
    \n \n \n \n Missing Relationship Team Manager\n \n \n The maximum length is 200\n \n \n The minimum length is 2\n \n \n {{ relationshipTeamManager.errors?.['userNameInvalid'] | lang }}\n \n \n
    \n
    \n \n \n Missing CSO \n The maximum length is 200 \n The minimum length is 2 \n \n {{ cso.errors?.['userNameInvalid'] | lang }}\n \n \n
    \n
    \n \n \n Missing CSO Team Manager \n The maximum length is 200 \n The minimum length is 2 \n \n {{ csoTeamManager.errors?.['userNameInvalid'] | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'offer.msp-arrangement' | lang }}\n
    \n
    \n \n \n \n Missing MSP arrangement \n \n \n
    \n {{ service.optionLabelRender | fn : mspArrangement?.value : mspArrangementConfig.options }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'offer.arrangement-description' | lang }}\n
    \n
    \n \n \n \n Missing Arrangement Description\n \n \n The maximum length is 200\n \n \n {{ arrangementDescription.errors?.['descriptionInvalid'] | lang }}\n \n \n \n
    {{ arrangementDescription?.value }}
    \n
    \n
    \n
    \n
    \n
    \n {{ 'offer.option-frequency' | lang }}\n
    \n
    \n \n \n \n \n Missing Member Option Frequency\n \n \n \n
    \n {{ service.optionLabelRender | fn : memberOptionFrequency?.value : memberOptionFrequencyConfig.options }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'offer.opt-frequency-description' | lang }}\n
    \n
    \n \n \n \n \n Missing Opt Frequency Description\n \n \n The maximum length is 200\n \n \n {{ optFrequencyDescription.errors?.['descriptionInvalid'] | lang }}\n \n \n \n
    {{ optFrequencyDescription?.value }}
    \n
    \n
    \n
    \n
    \n
    \n {{ 'offer.last-opt-date' | lang }}\n
    \n
    \n \n \n \n Missing Last Opt Date \n \n {{ lastOptDate.errors?.['dateInvalid'] | lang }}\n \n \n \n
    \n {{ lastOptDate?.value }}\n
    \n
    \n
    \n
    \n
    \n \n\n \n \n \n \n
    \n\n","import { deepCopy } from 'src/app/utils/copy';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ColumnItem, Sort } from 'src/app/components/table/table-expand';\nimport { PageConfig } from 'src/app/shared/data-table';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator, descriptionValidator, numberStringValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { FileType, jsonToSheet } from 'src/app/utils/xlsx';\nimport { SpecialQuote, SpecialQuoteRequest, SpecialQuoteStatusOptions, SpecialQuoteTypeOptions } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\n@Component({\n selector: 'app-sq-log-master-list',\n templateUrl: './sq-log-master-list.component.html',\n styleUrls: ['./sq-log-master-list.component.scss'],\n})\nexport class SqLogMasterListComponent implements OnInit {\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n showDatePicker = true;\n\n isLoading = false;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n exportButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n numberOfElements = 0;\n\n dataSource: SpecialQuote[] = [];\n\n Sort = Sort;\n\n get employerAccountCodeControl() {\n return this.form?.get('employerAccountCode');\n }\n\n get employerNameControl() {\n return this.form?.get('employerName');\n }\n\n get sqReferenceNoControl() {\n return this.form?.get('sqReferenceNo');\n }\n\n get sqSubmissionDateFromControl() {\n return this.form?.get('sqSubmissionDateFrom');\n }\n\n get sqSubmissionDateToControl() {\n return this.form?.get('sqSubmissionDateTo');\n }\n\n get sqSubmissionDateFromValue() {\n return this.sqSubmissionDateFromControl?.value;\n }\n\n get sqSubmissionDateToValue() {\n return this.sqSubmissionDateToControl?.value;\n }\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n resetButtonDisabled = true;\n\n statusConfig: CdsDropdownConfig = {\n label: 'Status',\n placeholder: 'Select Status',\n options: SpecialQuoteStatusOptions,\n };\n\n quoteTypeConfig: CdsDropdownConfig = {\n label: 'Quote Type',\n placeholder: 'Select Quote Type',\n options: SpecialQuoteTypeOptions,\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n // sortDto: SpecialQuote = {\n // sqReferenceNo: Sort.DOWN,\n // employerAccountCode: '',\n // employerName: '',\n // sqSubmissionDate: ''\n // };\n\n sortDto: ColumnItem = {\n // sqReferenceNo: Sort.DOWN,\n // employerAccountCode: '',\n // employerName: '',\n // sqSubmissionDate: '',\n label: '',\n prop: 'sqReferenceNo',\n sort: Sort.DEFAULT,\n };\n\n sheetHeader = {\n sqReferenceNo: 'SQ Reference No.',\n employerAccountCode: 'Employer Account Code',\n employerName: 'Company Name (English)',\n employerChineseName: 'Company Name (Chinese)',\n sqSubmissionDate: 'SQ Submission Date',\n lastStatusUpdatedDate: 'Last Status Update Date',\n quoteStatus: 'Status',\n quoteType: 'Quote Type',\n remarks: 'Remarks',\n };\n\n employerNameValidTip = 'Please input English, Chinese, numbers, or special characters';\n\n sqReferenceNoValidTip = 'Please input English, numbers, or special characters';\n\n tempParams: any = {};\n\n constructor(public service: EmployerService, private toastAlert: ToastAlertService, private router: Router) {}\n\n ngOnInit(): void {\n this.initForm();\n this.loadTable();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n employerAccountCode: new FormControl('', [Validators.maxLength(15), numberStringValidator()]),\n employerName: new FormControl('', [Validators.maxLength(200), descriptionValidator(this.employerNameValidTip, true)]),\n sqReferenceNo: new FormControl('', [Validators.maxLength(50), descriptionValidator(this.sqReferenceNoValidTip)]),\n quoteStatus: new FormControl(''),\n quoteType: new FormControl(''),\n sqSubmissionDateFrom: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n sqSubmissionDateTo: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n },\n { validators: startAndEndDateValidator('create.dateError', 'sqSubmissionDateFrom', 'sqSubmissionDateTo') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n loadTable() {\n const params: SpecialQuoteRequest = this.getRequestParams();\n this.isLoading = true;\n this.service\n .getSqLogMasterList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.tempParams = deepCopy(params);\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.numberOfElements = data.data.totalElements;\n this.pageCount.current = data.data.number + 1;\n this.pageCount.count = data.data.totalPages;\n this.pageCount = { ...this.pageCount };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n getRequestParams(pageSize = 10) {\n const params: SpecialQuoteRequest = {\n ...this.form.value,\n page: (this.pageCount.current as number) - 1,\n size: pageSize,\n };\n params.sort = `${this.sortDto.prop},${this.sortDto.sort}`;\n if (this.sortDto.sort === Sort.DEFAULT) {\n delete params.sort;\n }\n params.sqSubmissionDateFrom = params.sqSubmissionDateFrom ? this.dateTrans(params.sqSubmissionDateFrom) : '';\n params.sqSubmissionDateTo = params.sqSubmissionDateTo ? this.dateTrans(params.sqSubmissionDateTo) : '';\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageCount = { current: 1, count: 1 };\n this.loadTable();\n\n this.resetButtonDisabled = false;\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.resetButtonDisabled = true;\n this.pageCount = { current: 1, count: 1 };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n sortChange(columnItem: ColumnItem) {\n this.sortDto = columnItem;\n if (this.sortDto.prop == 'employerAccountCode') {\n this.sortDto.prop = 'erAcctCd';\n }\n if (this.sortDto.prop == 'employerName') {\n this.sortDto.prop = 'companyNm';\n }\n this.loadTable();\n }\n\n goToDetail(id: string | undefined) {\n this.router.navigate(['/employer/profile-detail'], {\n queryParams: { id: id },\n });\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.loadTable();\n }\n\n export() {\n const params = deepCopy(this.tempParams);\n params.size = 100000;\n delete params.page;\n this.isLoading = true;\n this.service\n .sqLogMasterExport(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n const exportData = data.data.empty ? [] : data.data.content;\n jsonToSheet(\n {\n fileName: `SQLogMasterList_${moment().format('DDMMYYYY')}`,\n fileType: FileType.XLSX,\n header: this.sheetHeader,\n },\n this.createData(exportData)\n );\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n createData(data: SpecialQuote[]) {\n return data.map(item => {\n return {\n sqReferenceNo: item.sqReferenceNo,\n employerAccountCode: item.employerAccountCode,\n employerName: item.employerName,\n employerChineseName: item.employerChineseName,\n sqSubmissionDate: this.formatDate(item.sqSubmissionDate),\n lastStatusUpdatedDate: this.formatDate(item.lastStatusUpdatedDate),\n quoteStatus: this.service.optionLabelRender(item.quoteStatus, SpecialQuoteStatusOptions),\n quoteType: this.service.optionLabelRender(item.quoteType, SpecialQuoteTypeOptions),\n remarks: item.remarks,\n };\n });\n }\n\n formatDate(date?: string) {\n if (!date) {\n return '';\n }\n return DateTime.fromISO(date).toFormat('dd/MM/yyyy');\n }\n}\n","
    \n \n \n\n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n
    \n \n\n
    \n Max length is 15\n\n {{ employerAccountCodeControl?.errors?.['invalidNumberString'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 200\n\n {{ employerNameControl?.errors?.['descriptionInvalid'] }}\n
    \n
    \n\n
    \n \n\n
    \n Max length is 50\n\n {{ sqReferenceNoControl?.errors?.['descriptionInvalid'] }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    -
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n {{ 'common.recordList' | lang }}\n
    \n
    \n Total {{ numberOfElements | number }} records\n
    \n
    \n
    \n \n \n \n
    \n
    \n\n \n
    \n
    \n \n {{ element['employerName'] }}\n \n
    \n
    \n \n {{ element['employerChineseName'] }}\n \n
    \n
    \n
    \n\n \n {{ element.sqSubmissionDate | ssmsDate }}\n \n\n \n {{ service.optionLabelRender | fn : element.quoteStatus : statusConfig.options }}\n \n\n \n
    \n \n \n \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n
    \n\n
    0\" class=\"col-xs-12\">\n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { BTN_CONFIG_PRIMARY, BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ColumnConfig, PageConfig, SortMode } from 'src/app/shared/data-table';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator } from 'src/app/core/validators';\nimport { AgentSep, ColumnSort, EnrolmentStatusE, enrolmentStatusMapObj } from '../employer';\nimport { EmployerService } from '../employer.service';\nimport { UploadUnitPriceListFileComponent } from '../upload-unit-price-list-file/upload-unit-price-list-file.component';\n\n@Component({\n selector: 'app-unit-price',\n templateUrl: './unit-price.component.html',\n styleUrls: ['./unit-price.component.scss'],\n})\nexport class UnitPriceComponent implements OnInit {\n uploadBtnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n addBtnCfg: CdsButtonConfig = BTN_CONFIG_PRIMARY;\n\n totalElements = 0;\n\n canEdit = true;\n\n isLoading = false;\n\n dataSource: AgentSep[] = [];\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n EnrolmentStatusE = EnrolmentStatusE;\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'fundCode',\n title: 'Fund Code',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'date',\n title: 'Date',\n sort: SortMode.DEFAULT,\n },\n {\n key: 'unitPrice',\n title: 'Unit Price',\n sort: SortMode.DEFAULT,\n },\n ];\n\n columnSort: ColumnSort = {\n key: 'fundCode',\n value: SortMode.DOWN,\n };\n\n fundCOdeConfig: CdsDropdownConfig = {\n label: 'Fund Code',\n placeholder: 'Select Fund Code',\n options: [],\n };\n\n showDatePicker = true;\n\n enrolmentStatusMapObj = enrolmentStatusMapObj;\n\n form: FormGroup = new FormGroup({});\n\n get dateControl() {\n return this.form?.get('date');\n }\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n constructor(\n private service: EmployerService,\n private cdsPopup: CdsPopupService,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService,\n private langService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n this.loadTable();\n\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_EMPLOYER).then(hasPermission => {\n this.canEdit = hasPermission;\n });\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup({\n fundCode: new FormControl(''),\n date: new FormControl('', [dateValidator({ error: 'create.dateError' })]),\n });\n }\n\n getRequestParams() {\n const params: IPageableRequest = {\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n params.sort = `${this.columnSort.key},${this.columnSort.value}`;\n return params;\n }\n\n loadTable() {\n return;\n const params: IPageableRequest = this.getRequestParams();\n this.isLoading = true;\n\n this.service\n .getAgentSepList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.totalElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n upload() {\n this.cdsPopup\n .open(UploadUnitPriceListFileComponent, {\n size: 'md',\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.popupWithReload();\n } else {\n this.isLoading = false;\n }\n });\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.uploadSuccess'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.columnSort =\n event.column && event.column.sort !== SortMode.DEFAULT\n ? {\n key: event.column?.key,\n value: event.column?.sort,\n }\n : {\n key: 'sepCommDate',\n value: SortMode.DOWN,\n };\n this.loadTable();\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n\n
    \n \n
    \n\n
    \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n\n
    \n \n \n
    \n\n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ totalElements }} records
    \n
    \n
    \n Upload Unit Price List \n
    \n
    \n\n
    \n
    \n \n \n
    {{ element['fundCode'] }}
    \n
    \n {{ element['name'] }}\n {{ element['chineseName'] }}\n
    \n
    \n\n \n {{ element['date'] | ssmsDate }}\n \n\n \n {{ element['unitPrice'] | number }}\n \n \n
    \n
    \n
    \n","import { EmployerService } from './../employer.service';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { CommontsPopupComponent } from '../commonts-popup/commonts-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AgentSepCheckResult, AgentSepCheckResultTypeE } from '../employer';\n\n@Component({\n selector: 'app-upload-agent-sep-list-file',\n templateUrl: './upload-agent-sep-list-file.component.html',\n styleUrls: ['./upload-agent-sep-list-file.component.scss'],\n})\nexport class UploadAgentSepListFileComponent implements OnInit {\n show = true;\n\n inEdit = true;\n\n cancelButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n uploadFormControl = new FormControl();\n\n warnIconConfig: CdsIconConfig = {\n color: '#D77D28',\n };\n\n errorIconConfig: CdsIconConfig = {\n color: '#C14A36',\n };\n\n file!: File;\n\n noFileSelect = true;\n\n fileAvailable = true;\n\n showFileErrorMessage = false;\n\n isLoading = false;\n\n errorMessageIconConfig: CdsIconConfig = {\n color: '#830A10',\n size: 'xs',\n };\n\n checked = false;\n\n checkOk = true;\n\n showButton = true;\n\n checkResultInfoList: AgentSepCheckResult[] = [];\n\n AgentSepCheckResultTypeE = AgentSepCheckResultTypeE;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: EmployerService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.showFileErrorMessage = false;\n this.noFileSelect = true;\n } else {\n this.noFileSelect = false;\n }\n });\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n this.showFileErrorMessage = !this.ifFileAvailable(this.file);\n this.checked = false;\n this.checkOk = true;\n this.checkResultInfoList = [];\n }\n\n ifFileAvailable(file: any) {\n if (!file || !file.size || !file.type || !file.name) {\n return false;\n }\n\n // file size limit is 8MB, file name (with suffix) max length is 64\n if (file.size <= 8388608 && file.type === 'text/csv' && file.name.length <= 64) {\n return true;\n }\n\n return false;\n }\n\n confirm() {\n if (this.noFileSelect || this.showFileErrorMessage) {\n return;\n }\n if (this.checked && this.checkOk) {\n this.upload();\n } else {\n this.checkFile();\n }\n\n this.reloadButton();\n }\n\n reloadButton = () => {\n this.showButton = false;\n setTimeout(() => {\n this.showButton = true;\n });\n };\n\n checkFile() {\n this.isLoading = true;\n this.service\n .uploadAgentSepList(this.file, true)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.result === false) {\n this.checked = true;\n this.checkResultInfoList = res.data.tips || [];\n\n if (this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.ERR)) {\n this.checkOk = false;\n } else {\n this.checkOk = true;\n }\n } else {\n this.dialogRef.close({\n agree: true,\n });\n }\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n cancel() {\n if (this.noFileSelect) {\n this.dialogRef.close({\n agree: false,\n });\n return;\n }\n this.show = false;\n const popupRef: MatDialogRef = this.cdsPopup.open(CommontsPopupComponent, {\n size: 'md',\n data: {\n message: this.langService.translate('common.action.cancel'),\n noCloseIcon: true,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n this.show = true;\n if (data.agree) {\n this.dialogRef.close({\n agree: false,\n });\n }\n });\n }\n\n upload() {\n this.isLoading = true;\n this.service\n .uploadAgentSepList(this.file)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: data => {\n if (data.result === 0) {\n this.dialogRef.close({\n agree: true,\n });\n } else {\n this.toastError(data.message);\n }\n },\n });\n }\n}\n","\n {{ 'employer.upload-agent-sep' | lang }}\n Summary\n\n \n
    \n {{ 'notification.fileRequirements' | lang }}\n
    \n
    \n {{ 'notification.fileSizeRequirements' | lang }}\n
    \n
    \n {{ 'notification.fileSuffixRequirement' | lang }}\n
    \n\n
    \n \n \n
    \n \n
    Invalid file selected.
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n Row {{ item.row + 1 }} - {{ item.message }}\n
    \n
    \n\n \n
    \n\n \n \n {{ 'common.cancel' | lang }}\n\n {{\n 'common.confirm' | lang\n }}\n \n \n
    \n","import { EmployerService } from '../employer.service';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { CommontsPopupComponent } from '../commonts-popup/commonts-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { AgentSepCheckResult, AgentSepCheckResultTypeE } from '../employer';\n\n@Component({\n selector: 'app-upload-unit-price-list-file',\n templateUrl: './upload-unit-price-list-file.component.html',\n styleUrls: ['./upload-unit-price-list-file.component.scss'],\n})\nexport class UploadUnitPriceListFileComponent implements OnInit {\n show = true;\n\n inEdit = true;\n\n cancelButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n uploadFormControl = new FormControl();\n\n warnIconConfig: CdsIconConfig = {\n color: '#D77D28',\n };\n\n errorIconConfig: CdsIconConfig = {\n color: '#C14A36',\n };\n\n file!: File;\n\n noFileSelect = true;\n\n fileAvailable = true;\n\n showFileErrorMessage = false;\n\n isLoading = false;\n\n errorMessageIconConfig: CdsIconConfig = {\n color: '#830A10',\n size: 'xs',\n };\n\n checked = false;\n\n checkOk = true;\n\n checkResultInfoList: AgentSepCheckResult[] = [];\n\n AgentSepCheckResultTypeE = AgentSepCheckResultTypeE;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private service: EmployerService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.showFileErrorMessage = false;\n this.noFileSelect = true;\n } else {\n this.noFileSelect = false;\n }\n });\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n this.showFileErrorMessage = !this.ifFileAvailable(this.file);\n this.checked = false;\n this.checkOk = true;\n this.checkResultInfoList = [];\n }\n\n ifFileAvailable(file: any) {\n if (!file || !file.size || !file.type || !file.name) {\n return false;\n }\n\n // file size limit is 8MB, file name (with suffix) max length is 64\n if (file.size <= 8388608 && file.type === 'text/csv' && file.name.length <= 64) {\n return true;\n }\n\n return false;\n }\n\n confirm() {\n if (this.noFileSelect || this.showFileErrorMessage) {\n return;\n }\n if (this.checked && this.checkOk) {\n this.upload();\n } else {\n this.checkFile();\n }\n }\n\n checkFile() {\n this.isLoading = true;\n this.service\n .uploadAgentSepList(this.file, true)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.result === false) {\n this.checked = true;\n this.checkResultInfoList = res.data.tips || [];\n\n if (this.checkResultInfoList.some(item => item.type === AgentSepCheckResultTypeE.ERR)) {\n this.checkOk = false;\n } else {\n this.checkOk = true;\n }\n } else {\n this.dialogRef.close({\n agree: true,\n });\n }\n } else {\n this.toastError(res.message);\n }\n },\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n cancel() {\n if (this.noFileSelect) {\n this.dialogRef.close({\n agree: false,\n });\n return;\n }\n this.show = false;\n const popupRef: MatDialogRef = this.cdsPopup.open(CommontsPopupComponent, {\n size: 'md',\n data: {\n message: this.langService.translate('common.action.cancel'),\n noCloseIcon: true,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n this.show = true;\n if (data.agree) {\n this.dialogRef.close({\n agree: false,\n });\n }\n });\n }\n\n upload() {\n this.isLoading = true;\n this.service\n .uploadAgentSepList(this.file)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: data => {\n if (data.result === 0) {\n this.dialogRef.close({\n agree: true,\n });\n } else {\n this.toastError(data.message);\n }\n },\n });\n }\n}\n","\n {{ 'notification.uploadDocument' | lang }}\n Summary\n\n \n
    \n {{ 'notification.fileRequirements' | lang }}\n
    \n
    \n {{ 'notification.fileSizeRequirements' | lang }}\n
    \n
    \n {{ 'notification.fileSuffixRequirement' | lang }}\n
    \n\n
    \n \n \n
    \n \n
    Invalid file selected.
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n {{ item.message }}\n
    \n
    \n\n \n
    \n\n \n \n {{ 'common.cancel' | lang }}\n\n {{\n 'common.confirm' | lang\n }}\n \n \n
    \n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { Sort, SortDirection } from '@cds/ng-data-table/sort';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { SortIconE, EnrolmentRecord } from '../enrolment';\nimport { EnrolmentService } from '../enrolment.service';\n\n@Component({\n selector: 'app-enrolment-list',\n templateUrl: './enrolment-list.component.html',\n styleUrls: ['./enrolment-list.component.scss'],\n})\nexport class EnrolmentListComponent implements OnInit {\n inProgress = false;\n\n inPutProgress = false;\n\n recordList: EnrolmentRecord[] = [];\n\n totalCount = 0;\n\n inputPageNum = 0;\n\n pageSize = 10;\n\n isMobile = false;\n\n sortIcon: SortIconE = SortIconE.SORT;\n\n txtfieldConfig: CdsTextfieldConfig = {\n type: 'number',\n };\n\n columList: string[] = ['Date of assignment', 'Date of employment', 'Company Name', 'Employee Name', 'No. of Contact', 'Ask Client', 'Agent Follow Up Status'];\n\n sort: Sort = {\n active: 'createdAt',\n direction: '',\n };\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n askClientTip = 'Ask client any other Manulife agent assigned before?';\n\n constructor(private service: EnrolmentService, private toast: CdsToastService, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {\n this.onResize();\n this.getList();\n }\n\n getList() {\n this.inProgress = true;\n this.service\n .getPageList(this.pageCount.current, this.pageSize, this.sort)\n .pipe(\n finalize(() => {\n this.inProgress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.inProgress = false;\n this.recordList = data.data.empty ? [] : this.service.recordListContentTrans(data.data.content);\n this.pageCount.current = data.data.number + 1;\n this.pageCount.count = data.data.totalPages;\n this.pageCount = { ...this.pageCount };\n this.totalCount = data.data.totalElements;\n console.log('33', this.recordList);\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getSortIcon(name: string) {\n if (name === this.sort.active) {\n switch (this.sort.direction) {\n case 'asc':\n return SortIconE.UP;\n case 'desc':\n return SortIconE.DOWN;\n case '':\n return SortIconE.SORT;\n }\n }\n return SortIconE.SORT;\n }\n\n sortChange(active: string) {\n if (active === this.sort.active) {\n let direction: SortDirection = '';\n switch (this.sort.direction) {\n case 'asc':\n direction = 'desc';\n break;\n case 'desc':\n direction = '';\n break;\n case '':\n direction = 'asc';\n break;\n }\n\n this.sort.direction = direction;\n this.sort = { ...this.sort };\n } else {\n this.sort = {\n active,\n direction: 'asc',\n };\n }\n\n this.getList();\n }\n\n statusChange(data: EnrolmentRecord) {\n this.inPutProgress = true;\n const params: EnrolmentRecord = {\n id: data.id,\n agentFollowUpStatus: data.agentFollowUpStatus,\n numberOfContact: data.numberOfContact,\n askClient: data.askClient,\n };\n this.service\n .putTerminatedMember(params)\n .pipe(\n finalize(() => {\n this.inPutProgress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.getList();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getList();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","
    \n \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ totalCount }} records\n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n {{ columList[0] }}\n \n
    \n \n
    \n {{ columList[1] }}\n \n
    \n
    \n {{ columList[2] }}\n \n
    \n
    \n {{ columList[3] }}\n \n
    \n \n
    \n {{ columList[4] }}\n
    \n
    \n {{ columList[5] }}\n \n
    \n
    \n {{ columList[6] }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n {{ 'agent.noResultFound' | lang }}\n
    \n\n
    \n \n
    \n\n
    \n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { agentFollowUpStatusDropdownOptions, AgentFollowUpStatusE, noOfContactOptions, EnrolmentRecord } from '../../enrolment';\nimport { EnrolmentService } from '../../enrolment.service';\n\n@Component({\n selector: 'app-expand-item-mobile',\n templateUrl: './expand-item-mobile.component.html',\n styleUrls: ['./expand-item-mobile.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '-90deg',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class ExpandItemMobileComponent implements OnInit {\n noOfContactConfig: CdsDropdownConfig = {\n label: '',\n options: noOfContactOptions,\n };\n\n clearIconConfig: CdsIconConfig = {\n size: 'sm',\n color: '#8e90a2',\n };\n constructor(public service: EnrolmentService) {}\n\n @Input() expand = false;\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data: EnrolmentRecord = {};\n\n @Output() statusChange = new EventEmitter();\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detailClass = 'detail-collapsed';\n\n dropdownConfig: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions,\n };\n\n dropdownConfig2: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions.filter(item => item.value !== AgentFollowUpStatusE.COMPLETED),\n };\n\n ngOnInit(): void {}\n\n askedLientChange(value: boolean, data: EnrolmentRecord) {\n if (value !== data.askClient) {\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.askClient = value;\n if (!value && dataTmp.agentFollowUpStatus === AgentFollowUpStatusE.COMPLETED) {\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n }\n this.statusChange.emit(dataTmp);\n }\n }\n\n noOfContactChange(value: string, data: EnrolmentRecord) {\n if (!!value && value !== data.numberOfContact) {\n const dataTmp = deepCopy(data);\n dataTmp.numberOfContact = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n agentFollowUpStatusChange(value: AgentFollowUpStatusE, data: EnrolmentRecord) {\n if (!!value && value !== data.agentFollowUpStatus) {\n const dataTmp = deepCopy(data);\n dataTmp.agentFollowUpStatus = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n trigger() {\n this.expand = !this.expand;\n this._detailClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }\n\n clearDropdown(data: EnrolmentRecord) {\n if (!data.numberOfContact) return;\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.numberOfContact = '0';\n dataTmp.askClient = false;\n if (dataTmp.agentFollowUpStatus === AgentFollowUpStatusE.COMPLETED) {\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n }\n this.statusChange.emit(dataTmp);\n }\n clearDropdown2(data: EnrolmentRecord) {\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n this.statusChange.emit(dataTmp);\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    {{ 'termination.list.eMpfAcount' | lang }}:
    \n
    {{ data.empfMemberAccountNumber }}
    \n
    \n
    \n\n
    \n
    \n {{ 'termination.list.dateOfAssignment' | lang }}:\n {{ data.dateOfAssignment | date : 'dd/MM/yyyy' }}\n
    \n
    \n\n
    \n
    \n {{ 'enrolment.list.dateOfEmploy' | lang }}:\n {{ data.dateOfEmploy | date : 'dd/MM/yyyy' }}\n
    \n
    \n\n \n \n\n \n\n \n\n
    No. of Contact
    \n \n
    \n \n \n
    \n\n
    Asked Client?
    \n \n \n\n
    Agent Follow Up Status
    \n \n
    \n \n \n
    \n
    \n\n
    \n
    \n {{ 'termination.list.detailTitle' | lang }}\n
    \n\n \n\n \n\n \n \n
    \n {{ data.emailAddress }}\n \n Chinese\n \n English\n
    \n
    \n
    \n
    \n
    \n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { agentFollowUpStatusDropdownOptions, AgentFollowUpStatusE, noOfContactOptions, EnrolmentRecord } from '../../enrolment';\nimport { EnrolmentService } from '../../enrolment.service';\n\n@Component({\n selector: 'app-expand-item',\n templateUrl: './expand-item.component.html',\n styleUrls: ['./expand-item.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n paddingBottom: 'var(--cds-spacing-07)',\n borderBottom: '1px solid var(--cds-color-grey)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '0deg',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class ExpandItemComponent implements OnInit {\n constructor(public service: EnrolmentService) {}\n\n @Input() expand = false;\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data: EnrolmentRecord = {};\n\n @Output() statusChange = new EventEmitter();\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detailClass = 'detail-collapsed';\n\n dropdownConfig: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions,\n };\n\n dropdownConfig2: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions.filter(item => item.value !== AgentFollowUpStatusE.COMPLETED),\n };\n\n noOfContactConfig: CdsDropdownConfig = {\n label: '',\n options: noOfContactOptions,\n };\n\n clearIconConfig: CdsIconConfig = {\n size: 'sm',\n color: '#8e90a2',\n };\n\n ngOnInit(): void {}\n\n askedLientChange(value: boolean, data: EnrolmentRecord) {\n if (value !== data.askClient) {\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.askClient = value;\n if (!value && dataTmp.agentFollowUpStatus === AgentFollowUpStatusE.COMPLETED) {\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n }\n this.statusChange.emit(dataTmp);\n }\n }\n\n noOfContactChange(value: string, data: EnrolmentRecord) {\n if (!!value && value !== data.numberOfContact) {\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.numberOfContact = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n agentFollowUpStatusChange(value: AgentFollowUpStatusE, data: EnrolmentRecord) {\n if (!!value && value !== data.agentFollowUpStatus) {\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.agentFollowUpStatus = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n mouseenterFun() {\n this._config = {\n color: this.mouseColor,\n };\n }\n mouseleaveFun() {\n this._config = {\n color: this.color,\n };\n }\n trigger() {\n this.expand = !this.expand;\n this._detailClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }\n //clear drop down\n clearDropdown(data: EnrolmentRecord) {\n if (!data.numberOfContact) return;\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.numberOfContact = '0';\n dataTmp.askClient = false;\n this.statusChange.emit(dataTmp);\n }\n\n clearDropdown2(data: EnrolmentRecord) {\n const dataTmp: EnrolmentRecord = deepCopy(data);\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n this.statusChange.emit(dataTmp);\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n {{ data.dateOfAssignment | date : 'dd/MM/yyyy' }}\n
    \n \n
    \n {{ data.dateOfEmploy | date : 'dd/MM/yyyy' }}\n
    \n
    \n {{ data.companyName }}{{ data.chineseCompanyName }}\n
    \n
    \n {{ data.empolyeeName }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n {{ 'termination.list.detailTitle' | lang }}\n
    \n \n \n \n \n \n
    \n {{ data.employeeMobileNo }}\n
    \n \n \n
    \n {{ data.emailAddress }}\n \n Chinese\n \n English\n
    \n
    \n
    \n\n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { EnrolmentListComponent } from './enrolment-list/enrolment-list.component';\n\nconst routes: Routes = [\n {\n path: 'enrolment',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: EnrolmentListComponent,\n data: {\n title: 'enrolment.title',\n roles: {\n SHK_AGENT_ASSIGNMENT_AGENT: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class EnrolmentRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EnrolmentListComponent } from './enrolment-list/enrolment-list.component';\nimport { EnrolmentRoutingModule } from './enrolment-routing.module';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdAccordionModule } from 'src/app/components/accordion/cd-accordion.module';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\nimport { ExpandItemComponent } from './enrolment-list/expand-item/expand-item.component';\nimport { ExpandItemMobileComponent } from './enrolment-list/expand-item-mobile/expand-item-mobile.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [EnrolmentListComponent, ExpandItemComponent, ExpandItemMobileComponent],\n imports: [\n CommonModule,\n EnrolmentRoutingModule,\n CdsTextfieldModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsButtonModule,\n CdsPaginationModule,\n FormsModule,\n CdsPopupModule,\n HttpClientModule,\n CdsProgressModule,\n CdsTableModule,\n CdsSortModule,\n CdsCheckboxModule,\n CdsTabsModule,\n CdsTableModule,\n CdsDropdownModule,\n CdsTooltipModule,\n CdsIconModule,\n ReactiveFormsModule,\n CdsTextareaModule,\n ExpandTableModule,\n CdAccordionModule,\n RowItemModule,\n SharedModule,\n ],\n})\nexport class EnrolmentModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport { Observable } from 'rxjs';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { EnrolmentRecord } from './enrolment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnrolmentService {\n private getPageListUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/shkp/enrolment-members`;\n //private getPageListUrl = `http://localhost:8082/shkp/enrolment-members`;\n //private getPageListUrl = `http://localhost:8082/shkp/terminated-members`;\n constructor(private http: HttpClient) {}\n\n getPageList(page: number, size: number, sort: Sort): Observable> {\n let sortParam = '';\n\n const params: {\n page: number;\n size: number;\n sort?: string;\n } = {\n page: page - 1,\n size,\n };\n\n if (sort.active) {\n if (sort.direction) {\n sortParam = `${sort.active},${sort.direction}`;\n } else {\n sortParam = 'createdAt,desc';\n }\n params.sort = sortParam;\n }\n\n return this.http.get>(this.getPageListUrl, {\n params,\n });\n }\n\n putTerminatedMember(data: EnrolmentRecord): Observable> {\n return this.http.put>(this.getPageListUrl, data);\n }\n\n recordListContentTrans(content: EnrolmentRecord[]) {\n return content.map(item => {\n const firstName = item.firstName || '';\n const lastName = item.lastName || '';\n const chineseFirstName = item.chineseFirstName || '';\n const chineseLastName = item.chineseLastName || '';\n const empolyeeName = `${firstName || ''} ${lastName || ''} ${chineseLastName || ''}${chineseFirstName || ''}`;\n const dateOfEmploy = item.dateOfEmploy || '';\n let employeeMobileNo = '';\n if (!item.primaryMobileNumberCountryCode) {\n employeeMobileNo = `${item.primaryMobileNumber || ''}`;\n } else {\n employeeMobileNo = `(+${item.primaryMobileNumberCountryCode})${item.primaryMobileNumber || ''}`;\n }\n\n return {\n ...item,\n empolyeeName,\n employeeMobileNo,\n dateOfEmploy,\n };\n });\n }\n\n getUrlContent(data: EnrolmentRecord, type: string) {\n if (type === 'en' && data.emailEngContent) {\n const content = (data as any)['emailEngContent'];\n return encodeURIComponent(content);\n //return encodeURIComponent(\"Mr/Ms. xxx, My name is [Name of agent] (Agent code: [Agent code]) and I am from Manulife. I am notified by SHKP MPF about your termination. Manulife is appointed by SHKP MPF to assist you to handle your accrued benefits arrangement. I am your servicing representative.I have tried to connect with you but fail. You may visit our website to understand Manulife Global Select MPF Scheme. Welcome to contact me anytime if there is any question. I will contact you again later.For details please visit: https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html xxx先生/女士,我是您的宏利服務代表[代理人姓名] (代理人編號: [Agent code])。 新地強積金通知我有關您的終止事宜。宏利獲新地強積金委任,協助你處理累算權益安排。 我曾嘗試與您聯繫,可惜未能成功。您可以按以下連結了解宏利環球精選強積金計劃。 如有任何問題,歡迎隨時與我聯繫。\\n我稍後會再次與您聯繫。\\n詳情請查看:https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html\");\n }\n if (type === 'zh' && data.emailChiContent) {\n const content = (data as any)['emailChiContent'];\n return encodeURIComponent(content);\n //return encodeURIComponent(\"Mr/Ms. xxx, My name is [Name of agent] (Agent code: [Agent code]) and I am from Manulife. I am notified by SHKP MPF about your termination. Manulife is appointed by SHKP MPF to assist you to handle your accrued benefits arrangement. I am your servicing representative.I have tried to connect with you but fail. You may visit our website to understand Manulife Global Select MPF Scheme. Welcome to contact me anytime if there is any question. I will contact you again later.For details please visit: https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html xxx先生/女士,我是您的宏利服務代表[代理人姓名] (代理人編號: [Agent code])。 新地強積金通知我有關您的終止事宜。宏利獲新地強積金委任,協助你處理累算權益安排。 我曾嘗試與您聯繫,可惜未能成功。您可以按以下連結了解宏利環球精選強積金計劃。 如有任何問題,歡迎隨時與我聯繫。\\n我稍後會再次與您聯繫。\\n詳情請查看:https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html\");\n }\n return '';\n }\n\n redirectToWhatsapp(data: EnrolmentRecord) {\n // data.emailContent = `感謝您表達對宏利強積金個人帳戶的興趣。\n\n // 我們誠邀您整合個人帳戶至宏利,宏利提供全面的基金平台作強積金投資。只需簡單幾步,您便可開立宏利個人帳戶及/或轉移強積金資產,以便管理。\n\n // https://www.manulife-campaign.com.hk/redirect/tc/pa_consolidation/1047/email?data=b5ztG8zZlWUGBit2Jn25QeYfYPD%2BhN97IWJl6t9C3Eua1V8TfS6Qjux26adBIxkWWLQMv%2FDkyBFIJNoAMTZANw%3D%3D;\n\n // Thank you for your interest in the Manulife Personal Account.\n\n // We cordially invite you to consolidate personal accounts with Manulife. Manulife provides a comprehensive fund platform for MPF investment. With just a few steps, you can open a Manulife Personal Account and/or transfer MPF assets for easy management.\n\n // https://www.manulife-campaign.com.hk/redirect/en/pa_consolidation/1048/email?data=MdgePgh7afB9mokk%2BxaTmMggBYFf2SdLdJCcGClzrnk5fPu%2BANuuL0gFCzVD%2FGAo1gDsDU%2FYBX%2FudlvalvMRLA%3D%3D`;\n const content = (data as any)['whatAppContent'];\n const text = encodeURIComponent(content);\n\n const url = `https://wa.me/${data.primaryMobileNumberCountryCode}${data.primaryMobileNumber}?text=${text}`;\n console.log('url:', url);\n window.open(url, '_blank');\n }\n\n redirectToEmail(data: EnrolmentRecord, type: string) {\n let subject = '';\n if (type === 'en') {\n subject = 'eMPF enrolment for SHKP MPF ESS contribution account';\n }\n if (type === 'zh') {\n subject = '積金易平台登記 新地強積金僱主營辦計劃強積金供款帳戶';\n }\n const body = this.getUrlContent(data, type);\n const url = `mailto:${data.emailAddress}?subject=${subject}&body=${body}`;\n console.log('url:->>>>>' + url);\n\n window.open(url, '_blank');\n }\n}\n","import { CdsOption } from '@cds/ng-core/configuration';\nimport { IPageableRequest } from 'src/app/core/models/request';\n\nexport interface EnrolmentRecord {\n id?: string;\n dateOfAssignment?: string;\n dateOfEmploy?: string;\n employDateStart?: string;\n employDateEnd?: string;\n companyName?: string;\n chineseCompanyName?: string;\n empolyeeName?: string;\n empfMemberAccountNumber?: string;\n age?: number;\n gender?: string;\n employeeMobileNo?: string;\n emailAddress?: string;\n chineseFirstName?: string;\n chineseLastName?: string;\n firstName?: string;\n lastName?: string;\n primaryMobileNumber?: string;\n primaryMobileNumberCountryCode?: string;\n agent?: string;\n passportNumber?: string;\n dateOfBirth?: string;\n transferAmount?: string;\n autoRolloverDate?: string;\n agentName?: string;\n trusteeEmployerAccountNumber?: string;\n servicingAgentName?: string;\n servicingAgentCode?: string;\n preassignedAgentName?: string;\n preassignedAgentCode?: string;\n agentFollowUpStatus?: AgentFollowUpStatusE;\n accountStatus?: string;\n emailChiContent?: string;\n emailEngContent?: string;\n whatAppContent?: string;\n numberOfContact?: string;\n askClient?: boolean;\n}\n\nexport interface EnrolmentSearchRequest extends IPageableRequest {\n trusteeEmployerAccountNumber?: string;\n companyName?: string;\n employDateStart?: string;\n totalLives?: string;\n employDateEnd?: string;\n agentCode?: string;\n agentFollowUpStatus?: AgentFollowUpStatusE;\n accountStatus?: string;\n sort?: string;\n}\n\nexport enum SortE {\n ASC = 'asc',\n DESC = 'desc',\n DEFAULT = '',\n}\n\nexport enum SortIconE {\n UP = 'arrow:up',\n DOWN = 'arrow:down',\n SORT = 'arrow:sort',\n}\n\nexport enum AgentFollowUpStatusE {\n OUTSTANDING = 'OUTSTANDING',\n INITIAL_CONTACT = 'INITIAL_CONTACT',\n SCHEDULE_MEET_UP = 'SCHEDULE_MEET_UP',\n CANNOT_REACH_CLIENT = 'CANNOT_REACH_CLIENT',\n REJECTED_BY_CLIENT = 'REJECTED_BY_CLIENT',\n COMPLETED = 'COMPLETED',\n}\n\nexport const agentFollowUpStatusDropdownOptions: CdsOption[] = [\n // {\n // label: 'Outstanding',\n // value: AgentFollowUpStatusE.OUTSTANDING,\n // },\n {\n label: 'Initial Contact',\n value: AgentFollowUpStatusE.INITIAL_CONTACT,\n },\n {\n label: 'Schedule Meet Up',\n value: AgentFollowUpStatusE.SCHEDULE_MEET_UP,\n },\n {\n label: 'Cannot Reach Client',\n value: AgentFollowUpStatusE.CANNOT_REACH_CLIENT,\n },\n {\n label: 'Reject By Client',\n value: AgentFollowUpStatusE.REJECTED_BY_CLIENT,\n },\n {\n label: 'Completed',\n value: AgentFollowUpStatusE.COMPLETED,\n },\n];\n\nexport enum AccountStatusE {\n PENDING = 'PENDING',\n GS = 'GS',\n TRANSFERRED_TO_OTHER_TRUSTEES_WITH_DRAWL = 'TRANSFERRED_TO_OTHER_TRUSTEES_WITH_DRAWL',\n}\n\nexport const accountStatusDropdownOptions: CdsOption[] = [\n {\n label: 'Pending',\n value: AccountStatusE.PENDING,\n },\n {\n label: 'Transferred to GS',\n value: AccountStatusE.GS,\n },\n {\n label: 'Transferred to other Trustee / Withdrawal ',\n value: AccountStatusE.TRANSFERRED_TO_OTHER_TRUSTEES_WITH_DRAWL,\n },\n];\n\nexport const noOfContactOptions: CdsOption[] = [\n { label: '1', value: '1' },\n { label: '2', value: '2' },\n { label: '3', value: '3' },\n { label: '4', value: '4' },\n { label: '5', value: '5' },\n];\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthLayoutComponent } from '../layout/auth-layout/auth-layout.component';\nimport { SplitAgentNotificationInfoErrorComponent } from '../salesjourney/agent-confirmation/split-agent-notification-info-error/split-agent-notification-info-error.component';\nimport { PermissionErrorComponent } from './permission-error/permission-error.component';\nimport { ResponseErrorComponent } from './response-error/response-error.component';\nimport { TimeoutComponent } from './timeout/timeout.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: AuthLayoutComponent,\n // canDeactivate: [],\n children: [\n { path: 'timeout', component: TimeoutComponent },\n { path: 'permission-error', component: PermissionErrorComponent },\n { path: 'response-error', component: ResponseErrorComponent },\n {\n path: 'split-agent-notification-info-error',\n component: SplitAgentNotificationInfoErrorComponent,\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ErrorRoutingModule {}\n","import { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\n\nimport { ErrorRoutingModule } from './error-routing.module';\nimport { TimeoutComponent } from './timeout/timeout.component';\nimport { PermissionErrorComponent } from './permission-error/permission-error.component';\nimport { ResponseErrorComponent } from './response-error/response-error.component';\n\n@NgModule({\n declarations: [TimeoutComponent, PermissionErrorComponent, ResponseErrorComponent],\n imports: [CommonModule, CdsButtonModule, ErrorRoutingModule, CdsLanguageModule],\n})\nexport class ErrorModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-permission-error',\n templateUrl: './permission-error.component.html',\n styleUrls: ['./permission-error.component.scss'],\n})\nexport class PermissionErrorComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n
    {{ 'common.permissionErrorWorks' | lang }}
    \n
    \n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n@Component({\n selector: 'app-response-error',\n templateUrl: './response-error.component.html',\n styleUrls: ['./response-error.component.scss'],\n})\nexport class ResponseErrorComponent implements OnInit {\n constructor(private route: ActivatedRoute) {}\n status = '404';\n message = 'Resource not found';\n ngOnInit(): void {\n const status = this.route.snapshot.queryParams['status'];\n if (status) {\n this.status = status;\n }\n const message = this.route.snapshot.queryParams['message'];\n if (message) {\n this.message = message;\n }\n }\n}\n","
    \n
    \n Response {{ status }}\n ,{{ message }}.\n
    \n
    \n\n\n","import { Component, OnInit } from '@angular/core';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\n\n@Component({\n selector: 'app-timeout',\n templateUrl: './timeout.component.html',\n styleUrls: ['./timeout.component.scss'],\n})\nexport class TimeoutComponent implements OnInit {\n constructor(private authenticationService: AuthenticationService) {}\n\n ngOnInit(): void {}\n\n loginWithSSO() {\n this.authenticationService.loginWithSSO();\n }\n}\n","
    \n

    Session time out

    \n

    Please login and come back again

    \n Login\n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { HighRiskFileUploadCenterComponent } from './high-risk-file-upload-center/high-risk-file-upload-center.component';\n\nconst routes: Routes = [\n {\n path: 'high-risk-file-upload-center',\n component: AdminLayoutComponent,\n children: [\n {\n path: '',\n component: HighRiskFileUploadCenterComponent,\n // data: {\n // roles: {\n // [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n // },\n // },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HighRiskFileUploadCenterRoutingModule {}\n","import { CdDropdownTopping } from 'src/app/shared/cd-dropdown/cd-dropdown.component';\n\nexport enum HighRiskFileType {\n High_Risk_Nationality = '1',\n High_Risk_Country = '2',\n High_Risk_Business_Nature = '3',\n High_Risk_Occupation = '4',\n High_Risk_Nationality_ORSO = '5',\n High_Risk_Country_ORSO = '6',\n High_Risk_Business_Nature_Keyword = '7',\n High_Risk_Occupation_Keyword = '8',\n}\n\nexport const highRiskFileTypeOptions: CdDropdownTopping[] = [\n {\n label: 'High_Risk_Nationality',\n value: '1',\n },\n {\n label: 'High_Risk_Country',\n value: '2',\n },\n {\n label: 'High_Risk_Business_Nature',\n value: '3',\n },\n {\n label: 'High_Risk_Occupation',\n value: '4',\n },\n {\n label: 'High_Risk_Nationality_ORSO',\n value: '5',\n },\n {\n label: 'High_Risk_Country_ORSO',\n value: '6',\n },\n {\n label: 'High_Risk_Business_Nature_Keyword',\n value: '7',\n },\n {\n label: 'High_Risk_Occupation_Keyword',\n value: '8',\n },\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { HighRiskFileUploadCenterComponent } from './high-risk-file-upload-center/high-risk-file-upload-center.component';\nimport { HighRiskFileUploadCenterRoutingModule } from './high-risk-file-upload-center-routing.module';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { UploadDocumentComponent } from './upload-document/upload-document.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\n\n@NgModule({\n declarations: [HighRiskFileUploadCenterComponent, UploadDocumentComponent],\n imports: [\n CommonModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsTableModule,\n CdsFileUploadModule,\n SharedModule,\n HighRiskFileUploadCenterRoutingModule,\n CdsProgressModule,\n CdsPaginationModule,\n CdsButtonModule,\n ],\n})\nexport class HighRiskFileUploadCenterModule {}\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { CdsProgressType } from '@cds/ng-core/progress';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { DownloadFileService } from 'src/app/shared/download-file/download-file.service';\nimport { HighRiskFileType, highRiskFileTypeOptions } from '../high-risk-file-upload-center.model';\nimport { UploadDocumentComponent } from '../upload-document/upload-document.component';\n\ninterface AmlHighRiskItem {\n id: number;\n fileType: number;\n fileName: string;\n filePath: string;\n createdAt: string;\n createdBy: string;\n isLatest: string;\n uploaderName: string;\n}\n\n@Component({\n selector: 'app-high-risk-file-upload-center',\n templateUrl: './high-risk-file-upload-center.component.html',\n styleUrls: ['./high-risk-file-upload-center.component.scss'],\n})\nexport class HighRiskFileUploadCenterComponent implements OnInit, AfterViewInit {\n highRiskFileTypeOptions = highRiskFileTypeOptions;\n fileTypeControl: FormControl = new FormControl();\n isShowProgress = false;\n resultTableIsFitContent = false;\n resultTableFooterMaxWidth = 1280;\n dataSource: AmlHighRiskItem[] = [];\n isDownloading = false;\n displayedColumns: string[] = ['fileName', 'uploadDate', 'uploadBy', 'download'];\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'Loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n pageCount = 0;\n currentPage = 1;\n percentComplete = { value: 0 };\n closeDownloadEvent: { event: (() => void) | null } = {\n event: null,\n };\n\n constructor(\n private cdsPopup: CdsPopupService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private permissionService: PermissionService,\n private route: ActivatedRoute,\n private downloadFileService: DownloadFileService\n ) {}\n\n ngOnInit(): void {\n this.getAmlHighRiskList(HighRiskFileType.High_Risk_Nationality);\n this.fileTypeControl.setValue(HighRiskFileType.High_Risk_Nationality);\n }\n\n ngAfterViewInit(): void {\n this.resultTableIsFitContent = document.documentElement.clientWidth >= this.resultTableFooterMaxWidth + 130;\n window.onresize = () => {\n this.resultTableIsFitContent = document.documentElement.clientWidth >= this.resultTableFooterMaxWidth + 130;\n };\n }\n\n fileTypeChange(fileTypeValue: string) {\n this.fileTypeControl.setValue(fileTypeValue);\n this.getAmlHighRiskList(fileTypeValue);\n }\n\n private getAmlHighRiskList(fileTypeValue: string) {\n this.isShowProgress = true;\n this.cdHttpServeService.get(`/ext/eb-ssms/reporting-service/aml-high-risk-list/${fileTypeValue}`, undefined).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.dataSource = res.data;\n }\n this.isShowProgress = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isShowProgress = false;\n },\n });\n }\n\n downloadFile(file: AmlHighRiskItem) {\n this.isDownloading = true;\n this.percentComplete = { value: 0 };\n this.downloadFileService.downloadFile(file.filePath, file.fileName, this.percentComplete, this.closeDownloadEvent).then(() => {\n this.isDownloading = false;\n });\n }\n\n pageChange(num: number) {\n if (this.currentPage === num) {\n return;\n }\n this.currentPage = num;\n this.getReportFiles();\n }\n\n getReportFiles() {}\n\n searchByInputPageNo($event: { preventDefault: () => void }, pageNo: string) {\n $event.preventDefault();\n this.currentPage = +pageNo;\n if (this.currentPage < 1) {\n this.currentPage = 1;\n } else if (this.currentPage > this.pageCount) {\n this.currentPage = this.pageCount;\n }\n this.getReportFiles();\n }\n\n uploadFile() {\n this.cdsPopup\n .open(UploadDocumentComponent, {\n size: 'lg',\n data: {\n fileType: this.fileTypeControl.value,\n },\n })\n .afterClosed()\n .subscribe(({ agree }) => {\n if (agree) {\n this.getAmlHighRiskList(this.fileTypeControl.value);\n }\n });\n }\n\n closeDownload() {\n if (this.closeDownloadEvent.event) {\n this.closeDownloadEvent.event();\n }\n this.isDownloading = false;\n }\n}\n","
    \n
    \n High Risk File Upload Center\n
    \n\n
    \n
    \n \n
    \n Upload\n
    \n
    \n\n
    \n File list\n
    \n\n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n
    \n
    \n \n \n File Name\n \n
    \n
    \n {{ element.fileName }}\n
    \n
    \n LATEST\n
    \n
    \n
    \n
    \n\n \n Upload Date\n \n {{ element.createdAt | date : 'dd/MM/yyyy' }}\n \n \n\n \n Upload By\n \n {{ element.uploaderName }}\n \n \n\n \n Download\n \n
    \n
    \n \n
    \n
    \n Download\n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n\n
    \n
    \n \n
    \n
    File Downloading...
    \n \n
    \n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { WillBeLostComponent } from 'src/app/shared/will-be-lost/will-be-lost.component';\nimport { HighRiskFileType } from '../high-risk-file-upload-center.model';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { HighRiskFileUploadCenterService } from 'src/app/core/services/high-risk-file-upload-center/high-risk-file-upload-center.service';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CdPopupService } from 'src/app/shared/cd-popup';\n\n@Component({\n selector: 'app-upload-document',\n templateUrl: './upload-document.component.html',\n styleUrls: ['./upload-document.component.scss'],\n})\nexport class UploadDocumentComponent implements OnInit {\n formGroup!: FormGroup;\n HighRiskFileType = HighRiskFileType;\n constructor(\n public dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n fileType: HighRiskFileType;\n },\n private notifyService: NotifyService,\n private highRiskFileUploadCenterService: HighRiskFileUploadCenterService,\n private cdPopupService: CdPopupService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n fileUploadInfoList: new FormArray([]),\n },\n [\n (control: AbstractControl): ValidationErrors | null => {\n const fileUploadInfoList = control.get('fileUploadInfoList') as FormArray;\n const atLeastOneFile = fileUploadInfoList.controls.some(item => item.get('file')?.value);\n const noError = fileUploadInfoList.controls.every(item => !item.get('errorMessage')?.value);\n if (atLeastOneFile && noError) {\n return null;\n } else {\n return { invalid: true };\n }\n },\n ]\n );\n this.addItem();\n }\n\n get fileUploadInfoList() {\n return this.formGroup.get('fileUploadInfoList') as FormArray;\n }\n\n tranToFormGroup(uploadinfo: AbstractControl) {\n return uploadinfo as FormGroup;\n }\n\n getFileControl(uploadinfo: AbstractControl) {\n return this.tranToFormGroup(uploadinfo).get('fileControl') as FormControl;\n }\n\n getErrorMessage(uploadinfo: AbstractControl) {\n return this.tranToFormGroup(uploadinfo).get('errorMessage')?.value;\n }\n\n addItem() {\n const fileControl = new FormControl();\n const errorMessage = new FormControl('');\n const file = new FormControl();\n this.fileUploadInfoList.push(\n new FormGroup({\n fileControl: fileControl,\n errorMessage: errorMessage,\n file: file,\n })\n );\n fileControl.valueChanges.subscribe((value: string) => {\n if (value === null) {\n errorMessage.setValue('');\n file.reset();\n }\n });\n }\n\n removeItem(index: number) {\n this.fileUploadInfoList.removeAt(index);\n }\n\n cancel() {\n if (this.formGroup.invalid) {\n this.dialogRef.close({ agree: false });\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.dialogRef.close({ agree: false });\n }\n });\n }\n\n fileChange(event: any, uploadinfo: AbstractControl) {\n const info = this.tranToFormGroup(uploadinfo);\n const file = info.get('file');\n const errorMessage = info.get('errorMessage');\n if (file && errorMessage) {\n file.setValue(event?.target?.files[0]);\n if (file.value.size > 8 * 1024 * 1024) {\n errorMessage.setValue('Your file is exceeding the file size limit of 8 MB.');\n } else if (!this.fileNameVerify(file)) {\n errorMessage.setValue('Invalid file name');\n } else {\n errorMessage.setValue('');\n if (this.fileUploadInfoList.length < 1) {\n this.addItem();\n }\n }\n }\n }\n\n private fileNameVerify(file: AbstractControl) {\n if (file.value.name) {\n if ([HighRiskFileType.High_Risk_Country_ORSO].includes(this.data.fileType)) {\n return /^AML_High_Risk_Country_ORSO_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Country].includes(this.data.fileType)) {\n return /^AML_High_Risk_Country_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Business_Nature].includes(this.data.fileType)) {\n return /^AML_High_Risk_Business_Nature_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Nationality_ORSO].includes(this.data.fileType)) {\n return /^AML_High_Risk_Nationality_ORSO_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Nationality].includes(this.data.fileType)) {\n return /^AML_High_Risk_Nationality_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Occupation].includes(this.data.fileType)) {\n return /^AML_High_Risk_Occupation_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Occupation_Keyword].includes(this.data.fileType)) {\n return /^High_Risk_Occupation_Keyword_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if ([HighRiskFileType.High_Risk_Business_Nature_Keyword].includes(this.data.fileType)) {\n return /^High_Risk_Business_Nature_Keyword_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n }\n }\n return true;\n }\n\n upload() {\n if (this.formGroup.valid) {\n this.notifyService.screenLoadingSubject.next(true);\n const file = this.fileUploadInfoList.controls[0].value.file;\n this.highRiskFileUploadCenterService\n .uploadFile(file, this.data.fileType)\n .pipe(\n finalize(() => {\n this.notifyService.screenLoadingSubject.next(false);\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.dialogRef.close({ agree: true });\n this.cdPopupService.openCommon({ data: { message: 'common.action.uploadSuccess' } });\n } else {\n this.tranToFormGroup(this.fileUploadInfoList.controls[0]).get('errorMessage')?.setValue(res.data);\n }\n });\n }\n }\n}\n","
    \n
    \n Upload document\n
    \n File requirements\n
    \n
    \n
    \n
    \n • A maximum of 1 file with file size limit of 8MB can be uploaded\n
    \n
    \n • File name: AML_High_Risk_Country_ORSO_YYYYMMDD\n
    \n
    \n • File name: AML_High_Risk_Country_YYYYMMDD\n
    \n
    \n • File name: AML_High_Risk_Business_Nature_YYYYMMDD\n
    \n
    \n • File name: AML_High_Risk_Nationality_ORSO_YYYYMMDD\n
    \n
    \n • File name: AML_High_Risk_Nationality_YYYYMMDD\n
    \n
    \n • File name: AML_High_Risk_Occupation_YYYYMMDD\n
    \n
    \n • File name: High_Risk_Occupation_Keyword_YYYYMMDD\n
    \n
    \n • File name: High_Risk_Business_Nature_Keyword_YYYYMMDD\n
    \n
    \n
    \n
    \n
    \n \n
    0\">\n \n
    {{ getErrorMessage(uploadinfo) }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.cancel' | lang }}\n {{ 'common.upload' | lang }}\n
    \n \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\n@Component({\n selector: 'app-admin-header',\n templateUrl: './admin-header.component.html',\n styleUrls: ['./admin-header.component.scss'],\n})\nexport class AdminHeaderComponent implements OnInit {\n permissionAccess = PermissionAccess.W;\n permissionItem = PermissionItem.COMMISSION_SCHEME_MASTER_RECORD;\n title = '';\n backIconType = 'action:button_left_filled';\n isShowButton = false;\n isShowBackButton = false;\n backButtonText = 'backButtonText';\n method = new BehaviorSubject(Event);\n buttonText = '';\n iconType = 'action:edit';\n detailDes = '';\n isShowDetail = false;\n\n constructor(private layoutHeaderService: LayoutHeaderService) {}\n\n ngOnInit(): void {\n if (this.detailDes === '') {\n this.isShowDetail = false;\n }\n this.layoutHeaderService.getTitle().subscribe(t => {\n this.title = t;\n });\n this.layoutHeaderService.buttonText.subscribe(t => {\n this.buttonText = t;\n });\n this.layoutHeaderService.isShowButton.subscribe(t => {\n this.isShowButton = t;\n });\n this.layoutHeaderService.iconType.subscribe(t => {\n this.iconType = t;\n });\n this.layoutHeaderService.isShowBackButton.subscribe(t => {\n this.isShowBackButton = t;\n });\n this.layoutHeaderService.backButtonText.subscribe(t => {\n this.backButtonText = t;\n });\n this.layoutHeaderService.detailText.subscribe(t => {\n this.detailDes = t;\n if (this.detailDes != '') {\n this.isShowDetail = true;\n } else {\n this.isShowDetail = false;\n }\n });\n }\n doMethod(): void {\n this.layoutHeaderService.doButtonMethod();\n }\n\n doBackMethod(): void {\n this.layoutHeaderService.doBackButtonMethod();\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ title | lang }}\n
    \n\n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ detailDes | lang }}\n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, QueryList } from '@angular/core';\nimport { Component, OnInit, ViewChildren } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsFooterConfig, CdsMenuItemComponent } from '@cds/ng-web-components/navigation';\nimport { Subject } from 'rxjs';\nimport { Menu } from 'src/app/core/models/menu';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { environment } from 'src/environments/environment';\nimport { LoginType } from '../../user/login/login.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { loadGoHomeFunc } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-admin-layout',\n templateUrl: './admin-layout.component.html',\n styleUrls: ['./admin-layout.component.scss'],\n})\nexport class AdminLayoutComponent implements OnInit, AfterViewInit {\n @ViewChildren('menuItem') menuItemList!: QueryList;\n menus: Menu[] = [];\n currentUser: any;\n copyright = `© Manulife (International) Limited (Incorporated in Bermuda with limited liability) ${environment.organizationDay}-${new Date().getFullYear()}`;\n version = `V ${environment.appVersion}`;\n langList: CdsOption[] = environment.languageList;\n selectedLang = 'en';\n isHideNavigationLang = false;\n private sharData: Subject = new Subject();\n\n btnCfg: CdsButtonConfig = {\n style: 'tertiary',\n size: 'sm',\n };\n\n go(link?: string) {\n if (link) {\n if (link.indexOf('?') !== -1) {\n const linkP = link.split('?');\n const url = linkP[0];\n const parmasList = linkP[1].split('&');\n const parmas: any = [];\n parmasList.forEach(x => {\n const temp = x.split('=');\n parmas[temp[0]] = temp[1];\n });\n this.router.navigateByUrl('/error', { skipLocationChange: true }).then(() => this.router.navigate([url], { queryParams: { ...parmas } }));\n return;\n }\n this.router.navigate([link]);\n }\n }\n\n footerConfig: CdsFooterConfig = {\n menu: {\n items: [\n {\n header: 'Profile enquiry',\n list: ['Client static data', 'Daily transaction history', 'Account balance', 'Bonus rebate data', 'Investment portfolio'],\n },\n {\n header: 'Bonus rebate',\n list: ['Calculation frequency & method', 'BU calculation automation', 'Data interface to eMPF'],\n },\n {\n header: 'Agent maintenance',\n list: ['Agent Profile', 'Commision split', 'Online agent / commision scale update', 'Alert setting'],\n },\n {\n header: 'Commision',\n list: ['Commision calculation', 'Campaign results calculation', 'Data interface to DCS', 'Account Entries'],\n },\n {\n header: 'Customer',\n list: ['Member authorization', 'Daily activities tracker'],\n },\n ],\n },\n connect: {\n items: ['Privacy', 'Legal', 'Terms and Conditions'],\n socialMedia: {\n facebook: true,\n //Fixme: add youtube icon here\n // 'social_media:youtube':true,\n linkedin: true,\n weChat: true,\n },\n },\n legal: {\n country: 'Philippines',\n logo: 'logo:Manulife_rgb_w',\n htmlContent: this.copyright + '
    ' + this.version,\n },\n };\n\n constructor(\n private authenticationService: AuthenticationService,\n private permissionService: PermissionService,\n private languageChangeService: LanguageChangeService,\n private router: Router,\n private notifyService: NotifyService\n ) {}\n\n ngOnInit(): void {\n this.permissionService.initMenu().then(menus => {\n this.menus = menus;\n });\n\n this.notifyService.getHideNavigationLang().subscribe(boo => {\n setTimeout(() => {\n this.isHideNavigationLang = boo;\n const mobileNavigation = document.querySelector('div.cds-mobile-menu-util.order-1 cds-navigation-dropdown-utility');\n if (mobileNavigation && mobileNavigation.parentElement) {\n (mobileNavigation.parentElement as HTMLElement).style.display = boo ? 'none' : 'unset';\n }\n }, 100);\n });\n\n this.languageChangeService.initLanNotice.subscribe(lang => {\n this.selectedLang = lang;\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n for (const menu of this.menuItemList) {\n menu.subMenuOpened.subscribe(() => {\n setTimeout(() => {\n const subMenu = document.querySelector('.cds-sub-menu');\n (subMenu as HTMLElement).click();\n }, 0);\n });\n }\n }, 100);\n\n loadGoHomeFunc(() => {\n this.router.navigate(['/home']);\n });\n }\n\n logout() {\n let loginType = localStorage.getItem('loginType') as LoginType;\n if (!loginType) {\n loginType = 'sso';\n }\n this.authenticationService.logout(loginType, this.router);\n }\n\n changeLang(lang: string) {\n this.selectedLang = lang;\n this.languageChangeService.setLang(lang);\n this.sendData(lang);\n }\n\n sendData(value: string) {\n this.sharData.next(value);\n }\n\n getLanguage() {\n return this.sharData;\n }\n}\n","\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n {{ 'common.footerText' | lang }}\n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { DateTime } from 'luxon';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-auth-layout',\n templateUrl: './auth-layout.component.html',\n styleUrls: ['./auth-layout.component.scss'],\n})\nexport class AuthLayoutComponent implements OnInit {\n languages: CdsOption[] = environment.languageList;\n copyright = `© ${environment.organizationDay}-${DateTime.now().year} `;\n cdsIconConfig = { color: '#FFFFFF', size: 'sm' };\n constructor(private languageChangeService: LanguageChangeService) {}\n isOpen = false;\n ngOnInit(): void {}\n selectedValue = '';\n\n changeLang(lang: string) {\n this.languageChangeService.setLang(lang);\n this.selectedValue = lang;\n this.isOpen = false;\n }\n}\n","
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Manulife\n 宏利\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n {{ 'login.footer.privacy' | lang }}\n
    \n
    \n {{ 'login.footer.leagal' | lang }}\n
    \n
    \n {{ 'login.footer.terms' | lang }}\n
    \n
    \n {{ 'login.footer.internet' | lang }}\n
    \n
    \n
    {{ copyright }} {{ 'login.footer.company' | lang }}
    \n
    \n
    \n
    \n
    \n
    \n\n\n \n {{ item.label | lang }}\n \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CDS_CONFIG_SERVICE, CdsConfigService } from '@cds/ng-core/configuration';\nimport { CdsBaseComponent } from '@cds/ng-core/base';\nimport { CdsLogoIcons } from '@cds/ng-themes';\nimport { CdsFooterConfig, CdsFooterLegal, CdsFooterMenu } from '@cds/ng-web-components/navigation';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { CdsNavigationService } from '@cds/ng-web-components/navigation';\n\n@Component({\n selector: 'app-cds-navigation-footer-local',\n templateUrl: './cds-navigation-footer.component.html',\n styleUrls: ['./cds-navigation-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CdsNavigationFooterLocalComponent extends CdsBaseComponent implements OnInit, OnDestroy {\n @HostBinding('class') class = 'cds-navigation-footer';\n menu: CdsFooterMenu = { hidden: false, items: [] };\n connect = {\n hidden: false,\n items: ['Privacy', 'Legal', 'Terms and Conditions'],\n socialMedia: {\n facebook: true,\n youtube: true,\n linkedin: true,\n weChat: true,\n },\n };\n legal: CdsFooterLegal = {\n hidden: false,\n country: '',\n logo: '',\n htmlContent: ``,\n };\n isMdView$: Observable = this.navService.isMdView$;\n selectedIndex = -1;\n selectedIndex$ = new BehaviorSubject(-1);\n showMenuItems = (index: number): Observable => {\n return combineLatest([this.selectedIndex$, this.isMdView$]).pipe(\n takeUntil(this.onDestroy$),\n map(([selectedIndex, isMdView]) => {\n return isMdView ? selectedIndex === index : true;\n })\n );\n };\n\n @Output() menuClick = new EventEmitter();\n @Output() connectClick = new EventEmitter();\n @Output() socialMediaClick = new EventEmitter();\n\n constructor(\n @Optional()\n @Inject(CDS_CONFIG_SERVICE)\n configService: CdsConfigService,\n cdr: ChangeDetectorRef,\n private navService: CdsNavigationService,\n private domSanitizer: DomSanitizer\n ) {\n super(configService, cdr);\n }\n\n setSelectedIndex(index: number) {\n let temp = index;\n if (index === this.selectedIndex) {\n temp = -1;\n }\n\n this.selectedIndex = temp;\n this.selectedIndex$.next(temp);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n override ngOnDestroy(): void {\n this.selectedIndex$.complete();\n super.ngOnDestroy();\n }\n\n getLegalLogo(): string {\n return this.legal ? this.legal.logo : CdsLogoIcons.Manulife_rgb_w;\n }\n\n sanitize(str: string) {\n return this.domSanitizer.bypassSecurityTrustHtml(str);\n }\n\n setProperties(config: any) {\n this.hidden = !!config.hidden;\n this.menu = config.menu;\n //this.connect = config.connect;\n this.legal = config.legal;\n }\n}\n","\n\n\n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-cd-form-assistive',\n templateUrl: './cd-form-assistive.component.html',\n styleUrls: ['./cd-form-assistive.component.scss'],\n})\nexport class CdFormAssistiveComponent implements OnInit {\n @Input() form?: FormGroup;\n @Input() msg?: string;\n @Input() key?: string;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n \n \n \n {{ msg }}\n \n Exceeds character limit \n \n \n {{ (form.get(key)?.errors)!['msg'] }}\n \n \n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class ConfirmDialogComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef, @Inject(CDS_POPUP_DATA) public data: { name: string }, private router: Router) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: false });\n }\n}\n","\n {{ 'confirm.popup.title1' | lang }}\n {{ 'confirm.popup.title2' | lang }}\n \n \n \n \n \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize, Subscription } from 'rxjs';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { NotificationDataService } from '../notificationlist/notification-data.service';\nimport { AudienceList } from '../notificationlist/notificationmodel';\nimport { UploadAudienceListFileComponent } from '../upload-audience-list-file/upload-audience-list-file.component';\n\n@Component({\n selector: 'app-manage-audience-list',\n templateUrl: './manage-audience-list.component.html',\n styleUrls: ['./manage-audience-list.component.scss'],\n})\nexport class ManageAudienceListComponent implements OnInit, OnDestroy {\n totalElements = 0;\n\n isLoading = false;\n\n showProcessingMessage = false;\n\n audienceFormControl = new FormControl('List 1');\n\n dataSource: AudienceList[] = [];\n\n displayedColumns: string[] = ['clientId'];\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n fileName = '';\n\n headerButton: AdminHeaderConfig = {\n title: 'notification.audience.manage',\n backButton: {\n text: 'notification.list',\n url: '/mobile-subscription/list',\n },\n };\n\n errorMessageIconConfig: CdsIconConfig = {\n color: '#a75900',\n size: 'xs',\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n timmer?: any;\n\n getFileNameSubscription?: Subscription;\n\n getAudienceListSubscription?: Subscription;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private route: ActivatedRoute,\n public notificationServer: NotificationDataService,\n private langService: CdsLangService,\n private alert: CdsAlertService,\n private toast: CdsToastService,\n private layoutHeaderService: LayoutHeaderService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n const queryParamsValue = this.route.snapshot.queryParams['value'];\n if (queryParamsValue) {\n this.audienceFormControl.setValue(queryParamsValue);\n window.history.replaceState(null, '', window.location.pathname);\n }\n this.loadTable();\n }\n\n loadTable() {\n if (!this.isLoading) {\n const params: IPageableRequest = toPageableRequest(this.pageCount, 10);\n this.isLoading = true;\n this.getFileName();\n this.getAudienceListSubscription = this.notificationServer\n .getAudienceList({\n ...params,\n listName: this.audienceFormControl.value,\n sort: 'orderIndex',\n })\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.showProcessingMessage = false;\n this.totalElements = res.data.totalElements || 0;\n this.dataSource = res.data.content || [];\n if (this.pageCount.current != res.data.number + 1) {\n this.pageCount.current = res.data.number + 1;\n }\n if (this.pageCount.count !== res.data.totalPages) {\n this.pageCount.count = res.data.totalPages;\n }\n this.pageCount = { ...this.pageCount };\n } else if (res.result === ResponseResult.PROCESSING) {\n this.showProcessingMessage = true;\n this.totalElements = 0;\n this.timmer = setTimeout(() => {\n this.initLoad();\n }, 60000);\n }\n },\n error: () => {\n this.dataSource = [];\n },\n });\n }\n }\n\n getFileName() {\n this.fileName = '';\n this.getFileNameSubscription = this.notificationServer.getFileName(this.audienceFormControl.value).subscribe({\n next: res => {\n if (res.result === 0) {\n this.fileName = res.data;\n } else {\n this.toast.error(res.message);\n }\n },\n error: err => {\n console.error('Call audience-list API error: ', err);\n },\n });\n }\n\n upload() {\n this.cdsPopup\n .open(UploadAudienceListFileComponent, {\n size: 'md',\n data: {\n audienceList: this.audienceFormControl.value,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.popupWithReload();\n } else {\n this.isLoading = false;\n }\n });\n }\n\n initLoad() {\n this.clearTimer();\n this.clearSubscriptions();\n this.isLoading = false;\n this.pageCount = { current: 1, count: 1 };\n this.dataSource = [];\n this.loadTable();\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.uploadSuccess'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.initLoad();\n });\n }\n\n requestAlert(message: string) {\n this.alert.error('Got Error', message);\n }\n\n clearTimer() {\n if (this.timmer) {\n clearTimeout(this.timmer);\n }\n }\n\n clearSubscriptions() {\n if (this.getFileNameSubscription) {\n this.getFileNameSubscription.unsubscribe();\n this.getFileNameSubscription = undefined;\n }\n if (this.getAudienceListSubscription) {\n this.getAudienceListSubscription.unsubscribe();\n this.getAudienceListSubscription = undefined;\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n this.clearSubscriptions();\n }\n}\n","
    \n
    \n
    \n\n
    \n
    Upload file to manage audience list
    \n\n
    Choose Target Audience List
    \n\n
    \n \n \n \n {{ 'notification.audience.upload' | lang }}\n \n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n {{ 'notification.record.list' | lang }}\n
    \n
    \n {{ 'notification.record.total' | lang }} {{ totalElements }}\n {{ 'notification.record.total.des' | lang }}\n
    \n
    \n
    latest csv file name: “{{ fileName }}”
    \n
    \n
    \n
    \n \n
    The uploaded audience list is being processed, please wait.
    \n
    \n \n \n\n \n
    \n \n \n \n Client ID \n \n
    \n {{ element.clientId }}\n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NotificationlistComponent } from './notificationlist/notificationlist.component';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { SummaryCreateComponent } from './summary-create/summary-create.component';\nimport { SummaryConfirmComponent } from './summary-confirm/summary-confirm.component';\nimport { ManageAudienceListComponent } from './manage-audience-list/manage-audience-list.component';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nconst routes: Routes = [\n {\n path: 'mobile-subscription',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: NotificationlistComponent,\n data: {\n title: 'notification.create.title',\n roles: {\n CUSTOMER_MOBILE_SUBSCRIPTION: PermissionAccess.R,\n },\n },\n },\n {\n path: 'create',\n component: SummaryCreateComponent,\n data: {\n title: 'summary.create.title',\n roles: {\n CUSTOMER_MOBILE_SUBSCRIPTION: PermissionAccess.W,\n },\n },\n },\n {\n path: 'confirm',\n component: SummaryConfirmComponent,\n data: {\n title: 'summary.create.title',\n roles: {\n CUSTOMER_MOBILE_SUBSCRIPTION: PermissionAccess.W,\n },\n },\n },\n {\n path: 'manage-audience-list',\n component: ManageAudienceListComponent,\n data: {\n title: 'notification.audience.manage',\n roles: {\n CUSTOMER_MOBILE_SUBSCRIPTION: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class MobileSubscriptionRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NotificationlistComponent } from './notificationlist/notificationlist.component';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { NotififacionpopupComponent } from './notififacionpopup/notififacionpopup.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { MobileSubscriptionRoutingModule } from './mobile-subscription.module';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { SummaryConfirmComponent } from './summary-confirm/summary-confirm.component';\nimport { SummaryCreateComponent } from './summary-create/summary-create.component';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsDatepickerModule, CDS_DATE_FORMATS, DateAdapter } from '@cds/ng-web-components/datepicker';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MY_FORMATS } from 'src/app/config/datePicker';\nimport { ManageAudienceListComponent } from './manage-audience-list/manage-audience-list.component';\nimport { UploadAudienceListFileComponent } from './upload-audience-list-file/upload-audience-list-file.component';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { LoadingModule } from 'src/app/shared/loading/loading.modules';\nimport { NoResultFoundModule } from 'src/app/shared/no-result-found/no-result-found.module';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { AppPaginationModule } from 'src/app/shared/pagination/pagination.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdFormAssistiveComponent } from 'src/app/views/mobile-subscription/cd-form-assistive/cd-form-assistive.component';\nimport { PreviewAudienceListPopupComponent } from './preview-audience-list-popup/preview-audience-list-popup.component';\n@NgModule({\n declarations: [\n NotificationlistComponent,\n NotififacionpopupComponent,\n SummaryCreateComponent,\n SummaryConfirmComponent,\n ConfirmDialogComponent,\n ManageAudienceListComponent,\n UploadAudienceListFileComponent,\n CdFormAssistiveComponent,\n PreviewAudienceListPopupComponent,\n ],\n imports: [\n CommonModule,\n MobileSubscriptionRoutingModule,\n CdsIconModule,\n CdsPaginationModule,\n CdsPopupModule,\n HttpClientModule,\n CdsProgressModule,\n CommonModule,\n CdsDropdownModule,\n CdsTextfieldModule,\n FormsModule,\n CdsLanguageModule,\n CdsButtonModule,\n ReactiveFormsModule,\n CdsAssistiveTextModule,\n CdsFormFieldModule,\n CdsDatepickerModule,\n CdsTextareaModule,\n CdsFileUploadModule,\n LoadingModule,\n NoResultFoundModule,\n CdsTableModule,\n AppPaginationModule,\n SharedModule,\n ],\n providers: [\n { provide: CDS_DATE_FORMATS, useValue: MY_FORMATS },\n { provide: DateAdapter, useClass: MomentDateAdapter },\n ],\n})\nexport class NotificationModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { AudienceList } from './notificationmodel';\n\nclass R {\n result!: number;\n data?: any;\n message!: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationDataService {\n private common_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/notification`;\n private get_summaryList_api = this.common_url + '/list'; //查询所有通知\n private cancel_api = this.common_url + '/cancel/';\n private uploadApi = this.common_url + '/audience/upload';\n private audienceListApi = this.common_url + '/audience/list';\n private audienceListSendHistoryApi = this.common_url + '/audience/sendHistory';\n private fileNameApi = this.common_url + '/audience/latestFileName';\n private pushNotificationFileName = this.common_url + '/audience/fileName';\n private getSubscribedUrl = this.common_url + '/subscribed';\n readonly mobileSubscriptionList = 'Mobile Subscription List';\n\n constructor(private http: HttpClient) {}\n\n audienceDropdownConfig: CdsDropdownConfig = {\n color: 'ml',\n type: 'default',\n options: [\n {\n label: this.mobileSubscriptionList,\n value: this.mobileSubscriptionList,\n },\n { label: 'Exclusive Offer (List 1)', value: 'List 1' },\n { label: 'Exclusive Offer (List 2)', value: 'List 2' },\n { label: 'Exclusive Offer (List 3)', value: 'List 3' },\n { label: 'Exclusive Offer (List 4)', value: 'List 4' },\n { label: 'Exclusive Offer (List 5)', value: 'List 5' },\n ],\n };\n\n audienceCustomDropdownConfig: CdsDropdownConfig = {\n color: 'ml',\n type: 'default',\n options: [\n { label: 'Exclusive Offer (List 1)', value: 'List 1' },\n { label: 'Exclusive Offer (List 2)', value: 'List 2' },\n { label: 'Exclusive Offer (List 3)', value: 'List 3' },\n { label: 'Exclusive Offer (List 4)', value: 'List 4' },\n { label: 'Exclusive Offer (List 5)', value: 'List 5' },\n ],\n };\n\n getAudienceLabel = (value?: string) => {\n if (!value) {\n return '';\n }\n const option = this.audienceDropdownConfig.options.find(item => value === item.value);\n if (option) {\n return option.label;\n }\n return '';\n };\n\n getSummaryList(pageIndex: number, pageSize: number, audienceList: string) {\n // const headers = new HttpHeaders().set(\n // 'Content-type',\n // 'application/json; charset=UTF-8'\n // );\n pageIndex = pageIndex - 1;\n return this.http.get(\n this.get_summaryList_api + '?&size=' + pageSize + '&page=' + pageIndex + '&audienceListName=' + audienceList + '&sort=targetBroadcastDate,desc'\n );\n }\n\n getSubscribed(): Observable> {\n return this.http.get>(this.getSubscribedUrl);\n }\n\n cancelStatus(id: string) {\n return new Observable(observable => {\n this.http.post(this.cancel_api + id, {}).subscribe(data => observable.next(data));\n });\n }\n\n getAudienceList(params: any): Observable> {\n return this.http.get>(this.audienceListApi, {\n params: filterParams(params),\n });\n }\n\n getAudienceListSendHistory(params: any): Observable> {\n return this.http.get>(this.audienceListSendHistoryApi, {\n params: filterParams(params),\n });\n }\n\n getFileName(audienceListName: string): Observable {\n return this.http.get(this.fileNameApi, {\n params: {\n listName: audienceListName,\n },\n });\n }\n\n getPushNotificationFileName(id: string): Observable {\n return this.http.get(this.pushNotificationFileName, {\n params: {\n pushNotificationSummaryId: id,\n },\n });\n }\n\n upload(filePath: File, selectedAudience: string) {\n const formData = new FormData();\n formData.append('file', filePath);\n return new Observable(observable => {\n this.http\n .post(this.uploadApi, formData, {\n params: {\n listName: selectedAudience,\n },\n })\n .subscribe(data => observable.next(data));\n });\n }\n\n testFunction() {\n return 2;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsColorTheme } from '@cds/ng-core/configuration';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { NotificationModel } from './notificationmodel';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { NotififacionpopupComponent } from '../notififacionpopup/notififacionpopup.component';\nimport { NotificationDataService } from './notification-data.service';\nimport { Router } from '@angular/router';\nimport { DateTime } from 'luxon';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { FormControl } from '@angular/forms';\nimport { PreviewAudienceListPopupComponent } from '../preview-audience-list-popup/preview-audience-list-popup.component';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-notificationlist',\n templateUrl: './notificationlist.component.html',\n styleUrls: ['./notificationlist.component.scss'],\n})\nexport class NotificationlistComponent implements OnInit {\n config: CdsButtonConfig = {\n label: 'Create Message',\n size: 'md',\n style: 'secondary',\n };\n pageindex = 1;\n color: CdsColorTheme = 'ml';\n pageCount = 15;\n pageSize = 5;\n txtfieldConfig: CdsTextfieldConfig = {\n type: 'number',\n };\n\n subscribedInfoLoading = false;\n listLoading = false;\n\n get showProgress() {\n return this.subscribedInfoLoading || this.listLoading;\n }\n pageindexChange = 1;\n totalCount = 0;\n pageindexInput = 1;\n summaryList: NotificationModel[] = [];\n headerButton: AdminHeaderConfig = {\n title: 'notification.list',\n //titleDetail: 'this is a detail text',\n // rightButton: {\n // text: 'LayneButton',\n // icon: {\n // type: 'action:edit',\n // },\n // method: this.doMethodTest.bind(this),\n // },\n // backButton: {\n // text: 'back to list',\n // url: '#',\n // method: this.doMethodTest.bind(this),\n // },\n };\n\n audienceFormControl!: FormControl;\n\n previewButtonCfg: CdsIconConfig = { color: '#EC6453' };\n\n categoryMap = {\n HCM_002: 'OFFER_AND_PROMOTIONS',\n HCM_004: 'MARKET_INSIGHTS',\n };\n ca = new Map();\n\n PermissionAccess = PermissionAccess;\n\n PermissionItem = PermissionItem;\n\n targetAudienceNo?: number;\n\n targetAudienceNoUpdateTime = '';\n\n constructor(\n private cdsPopup: CdsPopupService,\n public notificationService: NotificationDataService,\n private router: Router,\n private layoutHeaderService: LayoutHeaderService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.doHidenBackButton();\n this.totalCount = this.summaryList.length;\n this.audienceFormControl = new FormControl(this.notificationService.mobileSubscriptionList);\n this.ca = new Map(Object.entries(this.categoryMap));\n this.getNotificationList(1, this.pageSize);\n this.dosetHeaderTitle();\n }\n\n loadTable() {\n this.pageindex = 1;\n this.getNotificationList(this.pageindex, this.pageSize);\n if (this.audienceFormControl.value === this.notificationService.mobileSubscriptionList) {\n this.getSubscribedInfo();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doClickDetail(e: any, model: NotificationModel) {\n const obj = e.target.getElementsByClassName('icon')[0];\n if (obj.classList.contains('backrotate')) {\n obj.classList.add('gorotate');\n obj.classList.remove('backrotate');\n e.target.classList.add('short-des');\n model.isShowDetail = true;\n } else {\n obj.classList.add('backrotate');\n obj.classList.remove('gorotate');\n e.target.classList.remove('short-des');\n model.isShowDetail = false;\n }\n }\n pageChange(pageNo: number) {\n this.pageindex = pageNo;\n this.pageindexInput = pageNo;\n this.getNotificationList(this.pageindex, this.pageSize);\n }\n\n searchByInputPageNo(num: number) {\n if (num < 1) {\n num = 1;\n }\n if (num > this.pageCount) {\n num = this.pageCount;\n }\n this.pageindex = num;\n this.pageindexInput = num;\n }\n\n recallMessage(model: NotificationModel) {\n const popupRef: MatDialogRef = this.cdsPopup.open(NotififacionpopupComponent, {\n size: 'md',\n data: {\n name: '',\n },\n });\n\n popupRef.afterClosed().subscribe(data => {\n if (data.agree == true) {\n this.cancelNotification(model.id.toString());\n }\n });\n }\n\n cancelNotification(id: string) {\n const cancelStatus = this.notificationService.cancelStatus(id);\n cancelStatus.subscribe((data: any) => {\n if (data.result == 0 && data.message == 'SUCCESS') {\n this.getNotificationList(this.pageindex, this.pageSize);\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getSubscribedInfo() {\n this.subscribedInfoLoading = true;\n this.notificationService\n .getSubscribed()\n .pipe(\n finalize(() => {\n this.subscribedInfoLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.targetAudienceNo = res.data.subscribedSum;\n this.targetAudienceNoUpdateTime = DateTime.fromISO(res.data.updatedAt).setZone('Asia/Hong_Kong').toFormat('h:mma dd/MM/yyyy');\n }\n });\n }\n\n getNotificationList(pageIndex: number, pageSize: number) {\n this.listLoading = true;\n window.scrollTo(0, 0);\n const list = this.notificationService.getSummaryList(pageIndex, pageSize, this.audienceFormControl.value);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n list\n .pipe(\n finalize(() => {\n this.listLoading = false;\n })\n )\n .subscribe((data: any) => {\n if (data.result == 0 && data.message == 'SUCCESS') {\n const currentTime = DateTime.now();\n if (data.data.content && data.data.content.length > 0) {\n this.summaryList = data.data.content;\n this.summaryList.forEach(item => {\n item.showRecall = true;\n // Target Broadcast Datetime at least 4 minutes later than current datetime to show recall\n if (\n DateTime.fromISO(item.targetBroadcastDate).minus({\n minutes: 4,\n }) < currentTime\n ) {\n item.showRecall = false;\n }\n });\n }\n this.totalCount = data.data.totalElements;\n this.pageindex = data.data.pageable.pageNumber + 1;\n\n this.pageCount = Math.floor((this.totalCount + this.pageSize - 1) / this.pageSize);\n }\n });\n }\n\n formateDate(date: string) {\n return DateTime.fromISO(date).toFormat('dd/MM/yyyy');\n }\n\n formateDateToTime(date: string) {\n return DateTime.fromISO(date).toFormat('HH:mm');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n doClickDetailMobile(e: any, model: NotificationModel) {\n const obj = e.target.getElementsByClassName('m-area-icon')[0];\n\n if (obj.classList.contains('backrotate')) {\n obj.classList.add('gorotate');\n obj.classList.remove('backrotate');\n model.isShowDetail = true;\n } else {\n obj.classList.add('backrotate');\n obj.classList.remove('gorotate');\n model.isShowDetail = false;\n }\n }\n\n createMessage() {\n this.router.navigate(['/mobile-subscription/create']);\n }\n\n doMethodTest() {}\n\n dosetHeaderTitle() {\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n }\n\n manageAudience() {\n this.router.navigate([`/mobile-subscription/manage-audience-list`], {\n queryParams: { value: this.audienceFormControl.value },\n });\n }\n\n audienceDropdownChange() {\n this.loadTable();\n }\n\n previewAudienceList(id: string, listName: string) {\n this.cdsPopup\n .open(PreviewAudienceListPopupComponent, {\n size: 'lg',\n data: {\n id,\n listName,\n },\n })\n .afterClosed()\n .subscribe(() => {});\n }\n\n showTargetAudienceNo = (category: string, status: string) => {\n if (category === 'HCM_004' && status !== 'Issued') {\n return false;\n }\n return true;\n };\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n
    \n\n
    \n
    \n {{ 'notification.audience.choose' | lang }}\n
    \n\n
    \n \n \n \n \n {{ 'notification.audience.manage' | lang }}\n \n \n
    \n\n
    \n
    \n Subscribed Members: {{ targetAudienceNo | number }}\n
    \n
    \n Latest update:\n {{ targetAudienceNoUpdateTime ? targetAudienceNoUpdateTime + '(HKT)' : '' }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'notification.record.list' | lang }}\n
    \n
    \n {{ 'notification.record.total' | lang }} {{ totalCount }}\n {{ 'notification.record.total.des' | lang }}\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n\n \n\n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    {{ item.subjectEn }}
    \n
    {{ item.subjectCn }}
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'notification.create.date' | lang }} :\n {{ formateDate(item.createDate) }}\n
    \n
    \n {{ 'confirm.targetBroadcastDate&Time' | lang }} : {{ formateDate(item.targetBroadcastDate) }},\n {{ formateDateToTime(item.targetBroadcastDate) }}\n
    \n
    \n
    {{ 'confirm.category' | lang }} : {{ ca.get(item.category) }}
    \n
    {{ 'confirm.priority' | lang }} : {{ item.priority }}
    \n
    {{ 'notification.Status' | lang }} : {{ item.recordStatus }}
    \n
    \n\n
    \n
    \n\n
    \n {{ 'create.messageDetails' | lang }}\n
    \n
    \n {{ item.messageBodyEn }}\n
    \n
    \n {{ item.messageBodyCn }}\n
    \n
    \n {{ 'notification.url' | lang }}\n
    \n
    \n {{ item.deepLinkUrl }}\n
    \n\n
    \n {{ 'confirm.pushCampaignId' | lang }}\n
    \n
    \n {{ item.pushCampaignId }}\n
    \n\n \n
    \n {{ 'notification.targetAudienceNo' | lang }}\n
    \n
    \n {{ item.targetAudienceNo | number }}\n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n {{ 'notification.recall.message' | lang }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n {{ 'notification.create.date' | lang }}\n
    \n
    \n {{ 'confirm.targetBroadcastDateAndTime' | lang }}\n
    \n
    \n {{ 'notification.push.subject' | lang }}\n
    \n
    {{ 'confirm.category' | lang }}
    \n
    {{ 'confirm.priority' | lang }}
    \n
    {{ 'notification.Status' | lang }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ formateDate(item.createDate) }}\n
    \n
    \n
    {{ formateDate(item.targetBroadcastDate) }},
    \n
    {{ formateDateToTime(item.targetBroadcastDate) }}
    \n
    \n
    \n
    {{ item.subjectEn }}
    \n
    {{ item.subjectCn }}
    \n
    \n
    {{ ca.get(item.category) }}
    \n
    {{ item.priority }}
    \n
    {{ item.recordStatus }}
    \n
    \n
    \n
    \n
    \n \n \n Preview Audience List\n
    \n\n
    \n {{ 'create.messageDetails' | lang }}\n
    \n
    \n {{ item.messageBodyEn }}\n
    \n
    \n {{ item.messageBodyCn }}\n
    \n
    \n {{ 'notification.url' | lang }}\n
    \n\n
    \n {{ item.deepLinkUrl }}\n
    \n\n
    \n
    \n
    \n {{ 'confirm.pushCampaignId' | lang }}\n
    \n
    \n {{ item.pushCampaignId }}\n
    \n
    \n\n
    \n
    \n {{ 'notification.targetAudienceNo' | lang }}\n
    \n
    \n {{ item.targetAudienceNo | number }}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n {{ 'notification.recall.message' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'notification.page' | lang }}\n
    \n\n \n\n
    of {{ pageCount }}
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-notififacionpopup',\n templateUrl: './notififacionpopup.component.html',\n styleUrls: ['./notififacionpopup.component.scss'],\n})\nexport class NotififacionpopupComponent implements OnInit {\n agreeButtonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n disagreeButtonConfig: CdsButtonConfig = {\n style: 'primary',\n };\n constructor(private dialogRef: MatDialogRef, @Inject(CDS_POPUP_DATA) public data: { name: string }) {}\n\n ngOnInit(): void {}\n\n agree() {\n this.dialogRef.close({ agree: false });\n }\n disagree() {\n this.dialogRef.close({ agree: true });\n }\n}\n","\n
    \n {{ 'notification.popup.title1' | lang }}\n
     {{ 'notification.popup.title2' | lang }}  
    \n {{ 'notification.popup.title3' | lang }} {{ data.name }}?\n
    \n *{{ 'notification.popup.content' | lang }} \n \n \n \n \n
    \n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { finalize, Subscription } from 'rxjs';\nimport { IPageableRequest } from 'src/app/core/models/request';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { toPageableRequest } from 'src/app/utils/pagination.utils';\nimport { NotificationDataService } from '../notificationlist/notification-data.service';\nimport { AudienceList } from '../notificationlist/notificationmodel';\n\n@Component({\n selector: 'app-preview-audience-list-popup',\n templateUrl: './preview-audience-list-popup.component.html',\n styleUrls: ['./preview-audience-list-popup.component.scss'],\n})\nexport class PreviewAudienceListPopupComponent implements OnInit, OnDestroy {\n fileNameLoading = false;\n\n audienceListLoading = false;\n\n fileName = '';\n\n audienListName = '';\n\n totalElements = 0;\n\n dataSource?: AudienceList[];\n\n displayedColumns: string[] = ['clientId'];\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n navigationStartSubscription?: Subscription;\n\n constructor(\n private dialogRef: MatDialogRef,\n private notificationService: NotificationDataService,\n private router: Router,\n @Inject(CDS_POPUP_DATA)\n public data: {\n id: string;\n listName: string;\n }\n ) {}\n\n ngOnInit(): void {\n this.getAudienListName();\n this.getFileName();\n this.audienceListLoading = true;\n this.loadTable();\n this.listenNavigationStart();\n }\n\n ngOnDestroy(): void {\n if (this.navigationStartSubscription) {\n this.navigationStartSubscription.unsubscribe();\n }\n }\n\n listenNavigationStart() {\n this.navigationStartSubscription = this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.dialogRef.close();\n }\n });\n }\n\n getAudienListName() {\n const option = this.notificationService.audienceCustomDropdownConfig.options.find(item => item.value === this.data.listName);\n if (option) {\n this.audienListName = option.label;\n }\n }\n\n getFileName() {\n this.fileNameLoading = true;\n this.notificationService\n .getPushNotificationFileName(this.data.id)\n .pipe(\n finalize(() => {\n this.fileNameLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.fileName = res.data;\n }\n },\n });\n }\n\n loadTable() {\n const params: IPageableRequest = toPageableRequest(this.pageCount, 10);\n this.notificationService\n .getAudienceListSendHistory({\n ...params,\n pushNotificationSummaryId: this.data.id,\n sort: 'orderIndex',\n })\n .pipe(\n finalize(() => {\n this.audienceListLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n this.totalElements = res.data.totalElements || 0;\n this.dataSource = res.data.content || [];\n if (this.pageCount.current != res.data.number + 1) {\n this.pageCount.current = res.data.number + 1;\n }\n if (this.pageCount.count !== res.data.totalPages) {\n this.pageCount.count = res.data.totalPages;\n }\n }\n },\n error: () => {\n this.dataSource = [];\n },\n });\n }\n}\n","\n \n
    Audience List:
    \n
    {{ audienListName }}
    \n
    \n latest csv file name: “{{ fileName }}”\n
    \n \n
    \n \n
    \n \n\n \n
    \n \n \n \n Client ID \n \n
    \n {{ element.clientId }}\n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { Summary } from '../summary';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { Router } from '@angular/router';\nimport { MatDialogRef, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { SummaryService } from '../summary.service';\nimport { NotificationDataService } from '../notificationlist/notification-data.service';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { DateTime } from 'luxon';\n\n@Component({\n selector: 'app-summary-confirm',\n templateUrl: './summary-confirm.component.html',\n styleUrls: ['./summary-confirm.component.scss'],\n})\nexport class SummaryConfirmComponent implements OnInit {\n summaryDTO: Summary = {};\n\n categoryMap = {\n HCM_002: 'OFFER_AND_PROMOTIONS',\n HCM_004: 'MARKET_INSIGHTS',\n };\n ca = new Map();\n backConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n confirmConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n isLoading = false;\n constructor(\n private router: Router,\n private cdsPopup: CdsPopupService,\n private service: SummaryService,\n private toast: CdsToastService,\n public notificationService: NotificationDataService,\n private toastAlert: ToastAlertService,\n private langService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n // fix scroll bar not scroll top\n document.documentElement.scrollTop = 0;\n if (!localStorage['summaryDTO']) {\n this.router.navigate(['/mobile-subscription/list']);\n }\n this.summaryDTO = JSON.parse(localStorage['summaryDTO'] || '{}');\n this.ca = new Map(Object.entries(this.categoryMap));\n }\n back = () => {\n this.router.navigate(['/mobile-subscription/create']);\n };\n\n timeValid() {\n const target = DateTime.fromFormat(this.summaryDTO.targetBroadcastDate + ' ' + this.summaryDTO.targetBroadcastTime, 'd/M/yyyy hh:mm');\n const now = DateTime.now();\n return now.plus({ minutes: 59 }) < target;\n }\n\n confirm() {\n if (this.timeValid()) {\n this.create();\n } else {\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'md',\n data: {\n message: this.langService.translate('notification.popup.timeInvalid'),\n cancelButtonName: this.langService.translate('confirm.backBotton'),\n closeFn: this.back,\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.create();\n }\n });\n }\n }\n\n create() {\n this.isLoading = true;\n this.service\n .create(this.summaryDTO)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result == 0) {\n this.isLoading = false;\n localStorage.removeItem('summaryDTO');\n const popupRef: MatDialogRef = this.cdsPopup.open(ConfirmDialogComponent, {\n size: 'md',\n data: {},\n });\n popupRef.afterClosed().subscribe(() => {\n this.router.navigate(['/mobile-subscription/list']);\n });\n } else {\n this.toastError(res.message);\n }\n },\n error: err => {\n this.toastError(err);\n },\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n}\n","
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n

    {{ 'confirm.message-summary' | lang }}

    \n
    \n
    \n
    {{ 'confirm.targetBroadcast' | lang }}
    \n
    {{ summaryDTO.targetBroadcastDate }}
    \n
    \n
    \n
    {{ 'confirm.targetBroadcastTime' | lang }}
    \n
    {{ summaryDTO.targetBroadcastTime }}
    \n
    \n
    \n
    {{ 'confirm.category' | lang }}
    \n
    {{ ca.get(summaryDTO.category) }}
    \n
    \n
    \n
    {{ 'confirm.priority' | lang }}
    \n
    {{ summaryDTO.priority }}
    \n
    \n
    \n
    {{ 'confirm.audienceList' | lang }}
    \n
    {{ notificationService.getAudienceLabel | fn : summaryDTO.audienceListName }}
    \n
    \n
    \n
    {{ 'confirm.pushCampaignId' | lang }}
    \n
    {{ summaryDTO.pushCampaignId }}
    \n
    \n
    \n
    {{ 'confirm.pushCampaignId' | lang }}
    \n
    {{ summaryDTO.pushCampaignId }}
    \n
    \n
    \n
    \n
    \n

    {{ 'create.versionTitle.en' | lang }}

    \n
    \n
    \n
    {{ 'create.subject.en' | lang }}
    \n
    {{ summaryDTO.subjectEn }}
    \n
    \n
    \n
    {{ 'confirm.message.body.en' | lang }}
    \n
    {{ summaryDTO.messageBodyEn }}
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n

    {{ 'create.versionTitle.zh' | lang }}

    \n
    \n
    \n
    {{ 'create.subject.label.zh' | lang }}
    \n
    {{ summaryDTO.subjectCn }}
    \n
    \n
    \n
    {{ 'confirm.message.body.zh' | lang }}
    \n
    {{ summaryDTO.messageBodyCn }}
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n

    {{ 'notification.deepLink' | lang }}

    \n
    \n
    \n
    {{ 'create.link.en' | lang }}
    \n
    {{ summaryDTO.deepLinkUrl }}
    \n
    \n
    \n
    \n \n \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { FormControl, Validators, FormGroup, AbstractControl } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { DateTime } from 'luxon';\nimport { Summary } from '../summary';\nimport { SummaryService } from '../summary.service';\nimport { finalize } from 'rxjs';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { NotificationDataService } from '../notificationlist/notification-data.service';\nimport { AdminHeaderConfig } from '../../layout/admin-layout/admin-header/admin-header-config';\nimport { LayoutHeaderService } from 'src/app/core/services/layout-header.service';\n\n@Component({\n selector: 'app-summary-create',\n templateUrl: './summary-create.component.html',\n styleUrls: ['./summary-create.component.scss'],\n})\nexport class SummaryCreateComponent implements OnInit {\n form: FormGroup = new FormGroup({\n subjectEn: new FormControl('', [Validators.maxLength(100), this.englishValidator]),\n subjectZh: new FormControl('', [Validators.maxLength(50)]),\n bodyEn: new FormControl('', [Validators.maxLength(300), this.englishValidator]),\n bodyZh: new FormControl('', [Validators.maxLength(150)]),\n urlLimitEn: new FormControl('', [Validators.maxLength(1000), this.urlValidator]),\n urlLimitZh: new FormControl('', [Validators.maxLength(1000), this.urlValidator]),\n dateLimit: new FormControl('', [this.dateValidator]),\n pushCampaignId: new FormControl('', [Validators.maxLength(20)]),\n });\n\n urlValidator(option: AbstractControl): object {\n if (option.value == undefined) {\n return {};\n }\n const re = new RegExp('[\\u4E00-\\u9FA5]+', 'g');\n if (re.test(option.value)) {\n return { msg: 'Invalid deep link URL.' };\n } else {\n return {};\n }\n }\n\n englishValidator(option: AbstractControl): object {\n if (option.value == undefined) {\n return {};\n }\n const re = new RegExp('[\\u4E00-\\u9FA5]+', 'g');\n if (re.test(option.value)) {\n return { msg: 'Please input English' };\n } else {\n return {};\n }\n }\n\n chineseValidator(option: AbstractControl): object {\n if (option.value == undefined) {\n return {};\n }\n const re = new RegExp('[A-Za-z]+', 'g');\n if (re.test(option.value)) {\n return { msg: 'Please input chinese' };\n } else {\n return {};\n }\n }\n\n dateValidator(option: AbstractControl): object {\n if (option.value == undefined) {\n return {};\n }\n const selectTime = DateTime.fromFormat(option.value, 'd/M/yyyy');\n // when 22:00, can still chose today\n const currentTime = DateTime.now().plus({ minutes: -1 });\n if (!selectTime.isValid) {\n return { msg: 'date error' };\n }\n if (selectTime < currentTime.startOf('day') || (selectTime.equals(currentTime.startOf('day')) && currentTime.hour >= 21)) {\n return { msg: 'date error' };\n }\n return {};\n }\n\n summaryDTO: Summary = {};\n\n resetConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n disabled: true,\n };\n confirmConfig: CdsButtonConfig = {\n size: 'sm',\n disabled: true,\n };\n targetBroadcastTimeConfig: CdsDropdownConfig = {\n label: 'Target Broadcast Time',\n placeholder: 'HH:MM',\n options: [],\n };\n categoryConfig: CdsDropdownConfig = {\n label: 'Category',\n placeholder: 'Select Category',\n options: [\n // { label: 'UPDATES', value: 'HCM_001' },\n { label: 'OFFER_AND_PROMOTIONS', value: 'HCM_002' },\n // { label: 'FUND_PRICE_ALERT', value: 'HCM_003' },\n { label: 'MARKET_INSIGHTS', value: 'HCM_004' },\n ],\n };\n priorityConfig: CdsDropdownConfig = {\n label: 'Priority',\n placeholder: 'Select Priority',\n options: [\n { label: 'Low', value: 'Low' },\n { label: 'Medium', value: 'Medium' },\n { label: 'High', value: 'High' },\n ],\n };\n\n audienceListOptions: CdsOption[] = [];\n\n audienceListConfig: CdsDropdownConfig = {\n label: 'Audience List',\n placeholder: 'Select Audience List',\n options: [],\n };\n\n isLoading = false;\n\n headerButton: AdminHeaderConfig = {\n title: 'summary.create.title',\n backButton: {\n text: 'notification.list',\n url: '/mobile-subscription/list',\n },\n };\n\n showDatePicker = true;\n\n date = DateTime.now();\n\n jsDate = new Date();\n\n constructor(\n private router: Router,\n private service: SummaryService,\n private notificationService: NotificationDataService,\n private layoutHeaderService: LayoutHeaderService\n ) {}\n\n ngOnInit(): void {\n this.layoutHeaderService.setHeaderButton(this.headerButton);\n this.summaryDTO = JSON.parse(localStorage['summaryDTO'] || '{}');\n this.setDateAndTime();\n this.getAudienceOptions();\n this.validating();\n }\n\n getAudienceOptions() {\n this.isLoading = true;\n this.service\n .getAudiences()\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data && res.data.length) {\n this.audienceListOptions = this.optiosnGen(res.data);\n if (this.summaryDTO.category && this.summaryDTO.audienceListName) {\n this.categoryChange(this.summaryDTO.category, false);\n }\n }\n },\n error: err => {\n console.error('Call audience API error: ', err);\n },\n });\n }\n\n optiosnGen(data: string[]): CdsOption[] {\n return data.map(value => {\n return {\n label: this.notificationService.getAudienceLabel(value),\n value,\n };\n });\n }\n\n setDateAndTime() {\n let date = this.date;\n // 21:00 can select today\n if (date > date.startOf('day').plus({ hours: 21, minutes: 1 })) {\n date = date.plus({ days: 1 });\n }\n\n this.jsDate = date.toJSDate();\n if (this.summaryDTO.targetBroadcastDate) {\n setTimeout(() => {\n this.setTimeConfig(this.summaryDTO.targetBroadcastDate as string);\n this.validating();\n });\n }\n }\n\n setTimeConfig(value: string) {\n let options: CdsOption[] = [];\n if (this.form.get('dateLimit')?.valid) {\n // 3:00 can select 4:00, so limit is 59 minutes\n const currentTime = DateTime.now().plus({ minutes: -1 });\n const selectTime = DateTime.fromFormat(value, 'dd/MM/yyyy')?.startOf('day');\n\n let startHour = 0;\n\n if (selectTime.equals(this.date.startOf('day'))) {\n startHour = currentTime.hour + 2;\n }\n\n options = this.getTimeOptions(startHour);\n }\n\n this.targetBroadcastTimeConfig = {\n ...this.targetBroadcastTimeConfig,\n options,\n };\n }\n\n getTimeOptions(currentHour = 8) {\n const options: CdsOption[] = [];\n const min = currentHour > 8 ? currentHour : 8;\n const max = 22;\n for (let index = min; index <= max; index++) {\n const time = `${index < 10 ? '0' : ''}${index}:00`;\n options.push({\n label: time,\n value: time,\n });\n }\n return options;\n }\n\n reset() {\n this.summaryDTO = {};\n this.resetConfig = {\n size: 'sm',\n disabled: true,\n };\n this.confirmConfig = {\n size: 'sm',\n disabled: true,\n };\n this.audienceListConfig = {\n label: 'Audience List',\n placeholder: 'Select Audience List',\n options: [],\n };\n this.targetBroadcastTimeConfig = {\n ...this.targetBroadcastTimeConfig,\n options: [],\n };\n localStorage.removeItem('summaryDTO');\n\n // reload datepicker dom to clear the selected date\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n });\n }\n submit() {\n if (this.confirmConfig.disabled) {\n return;\n }\n console.log(this.summaryDTO);\n localStorage.setItem('summaryDTO', JSON.stringify(this.summaryDTO));\n this.router.navigate(['/mobile-subscription/confirm']);\n }\n\n validating() {\n const timeAvailable = this.selectTimeAvailable();\n\n if (this.summaryDTO.targetBroadcastDate == '') {\n this.summaryDTO.targetBroadcastDate = undefined;\n }\n if (\n !!this.summaryDTO.targetBroadcastDate ||\n !!this.summaryDTO.targetBroadcastTime ||\n !!this.summaryDTO.category ||\n !!this.summaryDTO.priority ||\n !!this.summaryDTO.pushCampaignId ||\n !!this.summaryDTO.subjectEn ||\n !!this.summaryDTO.messageBodyEn ||\n !!this.summaryDTO.subjectCn ||\n !!this.summaryDTO.messageBodyCn ||\n !!this.summaryDTO.deepLinkUrl ||\n !!this.summaryDTO.audienceListName\n ) {\n this.resetConfig = {\n size: 'sm',\n disabled: false,\n style: 'secondary',\n };\n }\n if (\n !!this.summaryDTO.targetBroadcastDate &&\n !!this.summaryDTO.targetBroadcastTime &&\n !!this.summaryDTO.category &&\n !!this.summaryDTO.priority &&\n !!this.summaryDTO.audienceListName &&\n !!this.summaryDTO.pushCampaignId &&\n !!this.summaryDTO.subjectEn &&\n !!this.summaryDTO.messageBodyEn &&\n !!this.summaryDTO.subjectCn &&\n !!this.summaryDTO.messageBodyCn &&\n !!this.summaryDTO.deepLinkUrl &&\n this.form.valid &&\n timeAvailable\n ) {\n this.confirmConfig = {\n size: 'sm',\n disabled: false,\n };\n } else {\n this.confirmConfig = {\n size: 'sm',\n disabled: true,\n };\n }\n if (!this.form.valid) {\n this.confirmConfig = {\n size: 'sm',\n disabled: true,\n };\n }\n }\n\n categoryChange(value: string, clearSelect = true) {\n if (!value) {\n return;\n }\n if (clearSelect) {\n this.summaryDTO.audienceListName = '';\n }\n if (value === 'HCM_002') {\n this.audienceListConfig = {\n ...this.audienceListConfig,\n options: this.audienceListOptions,\n };\n } else if (value === 'HCM_004') {\n this.audienceListConfig = {\n ...this.audienceListConfig,\n options: [\n {\n label: this.notificationService.mobileSubscriptionList,\n value: this.notificationService.mobileSubscriptionList,\n },\n ],\n };\n }\n }\n\n campaignIdChange(value: string) {\n if (value === undefined) {\n return;\n }\n this.form.get('pushCampaignId')?.setValue(value.trim());\n }\n\n selectTimeAvailable() {\n return this.targetBroadcastTimeConfig.options.some(item => item.value === this.summaryDTO.targetBroadcastTime);\n }\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    {{ 'create.boradcast' | lang }}

    \n
    \n
    \n \n \n \n {{ 'create.dateError' | lang }} \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n Exceeds character limit \n
    \n
    \n
    \n\n
    \n
    \n

    {{ 'create.messageDetails' | lang }}

    \n
    \n
    \n

    {{ 'create.versionTitle.en' | lang }}

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

    {{ 'create.versionTitle.zh' | lang }}

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

    {{ 'notification.deepLink' | lang }}

    \n
    \n\n
    \n \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, Observable, of } from 'rxjs';\nimport { Summary } from 'src/app/views/mobile-subscription/summary';\nimport { DateTime } from 'luxon';\nimport { environment } from 'src/environments/environment';\n\nclass R {\n result!: number;\n data?: any;\n message!: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SummaryService {\n private host = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n\n create(dto: Summary): Observable {\n const targetBroadcastDate = this.fomateDate(`${dto.targetBroadcastDate} ${dto.targetBroadcastTime}`);\n return this.httpClient.post(this.host + 'notification', { ...dto, targetBroadcastDate }).pipe(catchError(this.handleError('create')));\n }\n\n getAudiences(): Observable {\n return this.httpClient.get(this.host + 'notification/audiences');\n }\n\n fomateDate(date: string) {\n return DateTime.fromFormat(date, 'd/M/yyyy H:m').toFormat('yyyy-MM-dd HH:mm:ss');\n }\n\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n console.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { finalize } from 'rxjs';\nimport { CommontsPopupComponent } from '../../employer/commonts-popup/commonts-popup.component';\nimport { NotificationDataService } from '../notificationlist/notification-data.service';\n\n@Component({\n selector: 'app-upload-audience-list-file',\n templateUrl: './upload-audience-list-file.component.html',\n styleUrls: ['./upload-audience-list-file.component.scss'],\n})\nexport class UploadAudienceListFileComponent implements OnInit {\n show = true;\n\n inEdit = true;\n\n cancelButtonConfig: CdsButtonConfig = { size: 'sm', style: 'secondary' };\n\n confirmButtonConfig: CdsButtonConfig = { size: 'sm' };\n\n uploadFormControl = new FormControl();\n\n file!: File;\n\n noFileSelect = true;\n\n fileAvailable = true;\n\n showFileErrorMessage = false;\n\n isLoading = false;\n\n errorMessageIconConfig: CdsIconConfig = {\n color: '#830A10',\n size: 'xs',\n };\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private notificationServer: NotificationDataService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n audienceList: string;\n }\n ) {}\n\n ngOnInit(): void {\n this.uploadFormControl.valueChanges.subscribe(value => {\n if (value === null) {\n this.showFileErrorMessage = false;\n this.noFileSelect = true;\n } else {\n this.noFileSelect = false;\n }\n });\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n this.showFileErrorMessage = !this.ifFileAvailable(this.file);\n }\n\n ifFileAvailable(file: any) {\n if (!file || !file.size || !file.type || !file.name) {\n return false;\n }\n\n // file size limit is 8MB, file name (with suffix) max length is 64\n if (file.size <= 8388608 && file.type === 'text/csv' && file.name.length <= 64) {\n return true;\n }\n\n return false;\n }\n\n confirm() {\n if (this.noFileSelect || this.showFileErrorMessage) {\n return;\n }\n\n this.upload();\n }\n\n upload() {\n this.isLoading = true;\n this.notificationServer\n .upload(this.file, this.data.audienceList)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res) {\n this.dialogRef.close({\n agree: true,\n });\n }\n },\n });\n }\n\n cancel() {\n if (this.noFileSelect) {\n this.dialogRef.close({\n agree: false,\n });\n return;\n }\n this.show = false;\n const popupRef: MatDialogRef = this.cdsPopup.open(CommontsPopupComponent, {\n size: 'md',\n data: {\n message: this.langService.translate('common.action.cancel'),\n noCloseIcon: true,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n this.show = true;\n if (data.agree) {\n this.dialogRef.close({\n agree: false,\n });\n }\n });\n }\n}\n","\n {{ 'notification.uploadDocument' | lang }}\n Summary\n\n \n
    \n {{ 'notification.fileRequirements' | lang }}\n
    \n
    \n {{ 'notification.fileSizeRequirements' | lang }}\n
    \n
    \n {{ 'notification.fileSuffixRequirement' | lang }}\n
    \n\n
    \n \n \n
    \n Invalid file selected.\n
    \n
    \n \n
    \n\n \n \n {{ 'common.cancel' | lang }}\n\n {{\n 'common.confirm' | lang\n }}\n \n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { PaymentDetailsService } from '../shared/payment-details.service';\nimport { dateValidator, demicalValidator, numberValidator } from 'src/app/core/validators';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport {\n I18N_KEY,\n PAGE_SIZE,\n SchemeCodeConfig,\n StatusCodeConfig,\n PayMthdConfig,\n PAYMENT_DETAILS_COLUMNS,\n EXCEL_COLUMNS,\n TrBnkAcctNoConfig,\n} from './details.config';\n\n@Component({\n selector: 'app-details',\n templateUrl: './details.component.html',\n styleUrls: ['./details.component.scss'],\n})\nexport class DetailsComponent implements OnInit, AfterViewInit {\n isShowSearchDatePicker = true; // Fix DatePicker Bug\n\n previousSearchParams: any;\n\n schemeCdConfig = SchemeCodeConfig;\n statusCodeConfig = StatusCodeConfig;\n payMthdConfig = PayMthdConfig;\n trBnkAcctNoConfig = TrBnkAcctNoConfig;\n\n formGroup = new FormGroup(\n {\n schemeCode: new FormControl('', {\n initialValueIsDefault: true,\n }),\n erAccountCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.INPUT_NUMBER,\n }),\n ],\n initialValueIsDefault: true,\n }),\n payrollGroupId: new FormControl('', {\n initialValueIsDefault: true,\n }),\n memberAccountCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.INPUT_NUMBER,\n }),\n ],\n initialValueIsDefault: true,\n }),\n receiptReferenceNo: new FormControl('', {\n initialValueIsDefault: true,\n }),\n statusCode: new FormControl('', {\n initialValueIsDefault: true,\n }),\n paymentSubmissionReferenceNo: new FormControl('', {\n initialValueIsDefault: true,\n }),\n paymentMethod: new FormControl('', {\n initialValueIsDefault: true,\n }),\n receivedAmount: new FormControl('', {\n validators: [\n demicalValidator({\n error: I18N_KEY.RECEIVED_AMOUNT_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n clearedDate: new FormControl('', {\n initialValueIsDefault: true,\n validators: [dateValidator({ error: I18N_KEY.INVALID_CLEARED_DATE })],\n }),\n trusteeBankAccountNo: new FormControl('', {\n initialValueIsDefault: true,\n }),\n reportNo: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.INPUT_NUMBER,\n }),\n ],\n initialValueIsDefault: true,\n }),\n },\n []\n );\n\n isDataLoading = false;\n isDataDownLoading = false;\n isIndeterminate = false;\n isAllItemSelected = false;\n pageConfig: PageConfig = {};\n dataDisplayed: any[] = [];\n dataSelected: any[] = [];\n columnsConfig: Array = PAYMENT_DETAILS_COLUMNS;\n\n get schemeCd() {\n return this.formGroup.get('schemeCode') as FormControl;\n }\n\n get payrollGroupId() {\n return this.formGroup.get('payrollGroupId') as FormControl;\n }\n\n get employerAccountCode() {\n return this.formGroup.get('erAccountCode') as FormControl;\n }\n\n get memberAccountCode() {\n return this.formGroup.get('memberAccountCode') as FormControl;\n }\n\n get rcvRefNo() {\n return this.formGroup.get('receiptReferenceNo') as FormControl;\n }\n\n get statusCode() {\n return this.formGroup.get('statusCode') as FormControl;\n }\n\n get paySubmitRefNo() {\n return this.formGroup.get('paymentSubmissionReferenceNo') as FormControl;\n }\n\n get payMthd() {\n return this.formGroup.get('paymentMethod') as FormControl;\n }\n\n get rcvdAmt() {\n return this.formGroup.get('receivedAmount') as FormControl;\n }\n\n get clearDate() {\n return this.formGroup.get('clearedDate') as FormControl;\n }\n\n get trBnkAcctNo() {\n return this.formGroup.get('trusteeBankAccountNo') as FormControl;\n }\n\n get reportNo() {\n return this.formGroup.get('reportNo') as FormControl;\n }\n\n get searchDisabled() {\n let tag = true;\n const controls = this.formGroup.controls;\n const keys = Object.keys(controls);\n keys.forEach((key: string) => {\n const defaultValue = (controls[key] as FormControl).defaultValue;\n const controlValue = (controls[key] as FormControl).value;\n if (defaultValue !== controlValue) {\n tag = false;\n }\n });\n return this.formGroup.invalid || tag || this.isDataLoading;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n get exportSeltDisable() {\n return this.dataSelected.length === 0;\n }\n\n constructor(private paymentDetailsService: PaymentDetailsService, private elemRef: ElementRef, private ref: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.search();\n }\n\n ngAfterViewInit(): void {\n this.setExportBar();\n }\n\n search() {\n this.previousSearchParams = null;\n this.dataSelected = [];\n this.isIndeterminate = false;\n this.isAllItemSelected = false;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getData();\n }\n\n getData() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.paymentDetailsService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.totalElements,\n };\n const tempData = res.data.content || [];\n this.dataDisplayed = this.createDisplayData(tempData);\n this.updateAllItemSelected();\n this.updateIndeterminate();\n }\n });\n }\n\n createDisplayData(data: any[]) {\n return data.map((item: any) => {\n item.erAccountCode = item.erAccountCode ? item.erAccountCode.toString() : '';\n item.memberAccountCode = item.memberAccountCode ? item.memberAccountCode.toString() : '';\n item.checked = this.isItemSelected(item) > -1;\n item.chequeDate = item.chequeDate ? moment(new Date(item.chequeDate)).format('DD/MM/YYYY') : '';\n item.chequeBankInDate = item.chequeBankInDate ? moment(new Date(item.chequeBankInDate)).format('DD/MM/YYYY') : '';\n item.clearedDate = item.clearedDate ? moment(new Date(item.clearedDate)).format('DD/MM/YYYY') : '';\n item.receivedDate = item.receivedDate ? moment(new Date(item.receivedDate)).format('DD/MM/YYYY') : '';\n return item;\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n if (formValue.clearedDate) {\n formValue.clearedDate = moment(formValue.clearedDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const valueTemp: any = {};\n const value = this.formGroup.value;\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (value[key]) {\n valueTemp[key] = value[key];\n }\n });\n return valueTemp;\n }\n\n reset() {\n this.formGroup.reset();\n this.isShowSearchDatePicker = false;\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n this.search();\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n isItemSelected(item: any) {\n return this.dataSelected.findIndex(list => item.id === list.id);\n }\n\n updateIndeterminate(): void {\n this.isIndeterminate = this.dataDisplayed.filter(choice => choice.checked).length > 0 && !this.isAllItemSelected;\n }\n\n updateAllItemSelected(): void {\n this.isAllItemSelected = this.dataDisplayed.every(choice => choice.checked);\n }\n\n updateSlectedArray(): void {\n this.dataDisplayed.forEach(choice => {\n const index = this.isItemSelected(choice);\n if (index === -1 && choice.checked) {\n this.dataSelected.push(choice);\n }\n if (index > -1 && !choice.checked) {\n this.dataSelected.splice(index, 1);\n }\n });\n }\n\n handleAllChange(event: boolean) {\n if (this.isAllItemSelected !== event) {\n this.dataDisplayed.forEach(choice => (choice.checked = event));\n this.isAllItemSelected = event;\n this.updateIndeterminate();\n this.updateSlectedArray();\n }\n }\n\n updateChecked(item: any, event: boolean) {\n item.checked = event;\n this.updateAllItemSelected();\n this.updateIndeterminate();\n this.updateSlectedArray();\n this.ref.detectChanges();\n }\n\n exportSelectedData() {\n if (this.exportSeltDisable) {\n return;\n }\n this.exportExcel(this.dataSelected);\n }\n\n exportAllData() {\n if (this.isDataDownLoading) {\n return;\n }\n this.isDataDownLoading = true;\n const params = this.createParams();\n this.paymentDetailsService\n .downLoad({\n ...params,\n })\n .pipe(\n finalize(() => {\n this.isDataDownLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n const tempData = res.data || [];\n const dataDownload = this.createDisplayData(tempData);\n this.exportExcel(dataDownload);\n }\n });\n }\n\n exportExcel(data: any[]) {\n const excelData: any[] = [];\n excelData.push(EXCEL_COLUMNS);\n data.forEach(item => {\n const temp = [];\n temp.push(item.schemeCode);\n temp.push(item.erAccountCode);\n temp.push(item.payrollGroupId);\n temp.push(item.memberAccountCode);\n temp.push(item.receiptReferenceNo);\n temp.push(item.statusCode);\n temp.push(item.paymentSubmissionReferenceNo);\n temp.push(item.paymentMethod);\n temp.push(item.receivedAmount);\n temp.push(item.bankCode);\n temp.push(item.branchCode);\n temp.push(item.bankAccountNo);\n temp.push(item.payerName);\n temp.push(item.chequeDate);\n temp.push(item.chequeBankInDate);\n temp.push(item.otherTransactionReferenceNo);\n temp.push(item.clearedDate);\n temp.push(item.receivedDate);\n temp.push(item.chequeDirectMailToEmpfFlag);\n temp.push(item.oriRefNo);\n temp.push(item.invalidFlg);\n temp.push(item.splitFundingId);\n temp.push(item.splitFundingFlag);\n temp.push(item.trusteeBankCode);\n temp.push(item.trusteeBankBranchCode);\n temp.push(item.trusteeBankAccountNo);\n temp.push(item.workflowReferenceNo);\n temp.push(item.reportNo);\n temp.push(item.currency);\n temp.push(item.auditFee);\n excelData.push(temp);\n });\n aoaToSheet(\n {\n fileName: `PaymentDetails${moment().format('YYYYMMDDHHmmss')}`,\n fileType: FileType.XLSX,\n },\n excelData\n );\n }\n\n setExportBar() {\n const ele: HTMLElement = document.getElementsByClassName('cds-navigation-content')[0] as HTMLElement;\n let barWidth = 0;\n if (ele) {\n barWidth = ele.offsetWidth - ele.clientWidth;\n }\n this.elemRef.nativeElement.getElementsByClassName('export-bar')[0].style.right = `${barWidth}px`;\n }\n}\n"," \n
    \n
    \n
    \n {{ 'common.searchRecord' | lang }}\n
    \n
    \n \n \n \n\n \n \n \n \n {{ employerAccountCode.errors['error'] | lang }}\n \n\n \n \n \n \n\n \n \n \n {{ memberAccountCode.errors['error'] | lang }}\n \n\n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n {{ rcvdAmt.errors['error'] | lang }}\n \n\n \n
    \n \n \n \n \n
    \n {{ clearDate.errors['error'] | lang }}\n
    \n\n \n \n \n\n \n \n \n {{ reportNo.errors['error'] | lang }}\n \n\n
    \n
    \n \n {{ 'common.search' | lang }}\n \n \n {{ 'common.reset' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n \n {{ element['title'] | lang }}\n
    \n
    \n \n
    \n \n {{ element['schemeCode'] | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    {{ 'common.selected.tips' | lang }}
    \n
    \n {{ 'common.selected.item' | lang : { p1: dataSelected.length + '' } }}\n \n {{ 'common.export.selected' | lang }}\n \n \n {{ 'common.export.all' | lang }}\n \n
    \n
    \n\n","import { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const PAGE_SIZE = 10;\n\nexport const I18N_KEY = {\n ACCOUNT_NO_INVALID: 'commission.common.accountNo.invalid',\n MEMBER_NO_INVALID: 'commission.common.memberNo.invalid',\n REPORT_NO_INVALID: 'common.business.reportNo.invalid',\n RECEIVED_AMOUNT_INVALID: 'common.business.receivedAmount.invalid',\n INVALID_CLEARED_DATE: 'Invalid Cleard Date',\n INPUT_NUMBER: 'common.number.input',\n};\n\nexport enum SchemeCode {\n ORSO = 'ORSO',\n MACAUPPS = 'MACAUPPS',\n MACAUCPF = 'MACAUCPF',\n GS = 'GS',\n HT = 'HT',\n SK = 'SK',\n}\nexport const SchemeCodeOpts = [\n { label: 'ORSO', value: SchemeCode.ORSO },\n { label: 'MACAUPPS', value: SchemeCode.MACAUPPS },\n { label: 'MACAUCPF', value: SchemeCode.MACAUCPF },\n { label: 'MPF', value: SchemeCode.GS },\n // { label: 'HT', value: SchemeCode.HT },\n // { label: 'SK', value: SchemeCode.SK },\n];\n\nexport const SchemeCodeConfig = {\n label: 'common.business.schemeCode',\n placeholder: 'common.business.schemeCodePlaceholderSelect',\n options: SchemeCodeOpts,\n};\n\nexport enum StatusCode {\n CLEARED = 'CLEARED',\n REJECT = 'REJECT',\n RECEIVE = 'RECEIVE',\n PENDING = 'PENDING',\n UNIDENTIFIED = 'UNIDENTIFIED',\n TAGGED = 'TAGGED',\n CANCEL = 'CANCEL',\n REJECT_DISHONOR = 'REJECT_DISHONOR',\n REJECT_REFUND = 'REJECT_REFUND',\n}\n\nexport const StatusCodeOpts = [\n { label: 'Cleared', value: StatusCode.CLEARED },\n { label: 'Reject', value: StatusCode.REJECT },\n { label: 'Receive', value: StatusCode.RECEIVE },\n { label: 'Pending', value: StatusCode.PENDING },\n { label: 'Unidentified', value: StatusCode.UNIDENTIFIED },\n { label: 'Tagged', value: StatusCode.TAGGED },\n { label: 'Cancel', value: StatusCode.CANCEL },\n { label: 'Reject Dishonor', value: StatusCode.REJECT_DISHONOR },\n { label: 'Reject Refund', value: StatusCode.REJECT_REFUND },\n];\n\nexport const TrBnkAcctNoOpts = [\n { label: '006-391-08842671', value: '006-391-08842671' },\n { label: '004-500-539291001', value: '004-500-539291001' },\n { label: '004-500-539291002', value: '004-500-539291002' },\n { label: '004-500-539291006', value: '004-500-539291006' },\n { label: '003-447-00918828', value: '003-447-00918828' },\n { label: '003-447-08153405', value: '003-447-08153405' },\n];\nexport const StatusCodeConfig = {\n label: 'common.business.statusCode',\n placeholder: 'common.business.statusCode.placeholder',\n options: StatusCodeOpts,\n};\nexport const TrBnkAcctNoConfig = {\n label: 'common.business.trusteeBankAccountNumber',\n placeholder: 'common.business.trusteeBankAccountNumber.placeholder',\n options: TrBnkAcctNoOpts,\n};\n\nexport enum PayMthd {\n APP_TO_APP = 'APP_TO_APP',\n BANK_TRANSFER = 'BANK_TRANSFER',\n BILL_PYM = 'BILL_PYM',\n CASH = 'CASH',\n CASHIER_ORDER = 'CASHIER_ORDER',\n CMU = 'CMU',\n CREDIT_TRANSFER = 'CREDIT_TRANSFER',\n DDA = 'DDA',\n DIRECT_DEBIT = 'DIRECT_DEBIT',\n E_CHEQUE = 'E_CHEQUE',\n FORFEIT_ACCT_OFFSET = 'FORFEIT_ACCT_OFFSET',\n FPS = 'FPS',\n MPFA_TRANSFER = 'MPFA_TRANSFER',\n OTHERS = 'OTHERS',\n PHYSICAL_CHEQUE = 'PHYSICAL_CHEQUE',\n PPS = 'PPS',\n QR_CODE = 'QR_CODE',\n RESERVE_ACCT_OFFSET = 'RESERVE_ACCT_OFFSET',\n}\n\nexport const PayMthdOpts = [\n { label: 'App to App', value: PayMthd.APP_TO_APP },\n { label: 'Bank Transfer', value: PayMthd.BANK_TRANSFER },\n { label: 'Bill Payment', value: PayMthd.BILL_PYM },\n { label: 'Cash Deposit', value: PayMthd.CASH },\n { label: 'Cashier Order', value: PayMthd.CASHIER_ORDER },\n { label: 'CMU', value: PayMthd.CMU },\n { label: 'Credit Transfer', value: PayMthd.CREDIT_TRANSFER },\n { label: 'DDA Direct Debit', value: PayMthd.DDA },\n { label: 'Direct Debit', value: PayMthd.DIRECT_DEBIT },\n { label: 'e-Cheque', value: PayMthd.E_CHEQUE },\n { label: 'Offset From Forfeiture Account', value: PayMthd.FORFEIT_ACCT_OFFSET },\n { label: 'FPS', value: PayMthd.FPS },\n { label: 'MPFA Transfer', value: PayMthd.MPFA_TRANSFER },\n { label: 'Others', value: PayMthd.OTHERS },\n { label: 'Physical Cheque', value: PayMthd.PHYSICAL_CHEQUE },\n { label: 'PPS', value: PayMthd.PPS },\n { label: 'FPS QR Code', value: PayMthd.QR_CODE },\n { label: 'Offset From Reserve Account', value: PayMthd.RESERVE_ACCT_OFFSET },\n];\n\nexport const PayMthdConfig = {\n label: 'common.business.paymentMethod',\n placeholder: 'common.business.paymentMethod.placeholder',\n options: PayMthdOpts,\n};\n\nexport const PAYMENT_DETAILS_COLUMNS: Array = [\n { key: 'schemeCode', sticky: true, title: 'common.business.schemeCode' },\n { key: 'erAccountCode', stickyEnd: true, title: 'common.business.employerAcconutCode' },\n { key: 'payrollGroupId', title: 'common.business.payrollGroupID' },\n { key: 'memberAccountCode', title: 'common.business.memberAcconutCode' },\n { key: 'receiptReferenceNo', title: 'common.business.receiptReferenceNumber' },\n { key: 'statusCode', title: 'common.business.statusCode' },\n { key: 'paymentSubmissionReferenceNo', title: 'common.business.paymentSubmissionReferenceNumber' },\n { key: 'paymentMethod', title: 'common.business.paymentMethod' },\n { key: 'receivedAmount', title: 'common.business.receivedAmount' },\n { key: 'bankCode', title: 'common.business.bankCode' },\n { key: 'branchCode', title: 'common.business.branchCode' },\n { key: 'bankAccountNo', title: 'common.business.bankAccountNumber' },\n { key: 'payerName', title: 'common.business.payerName' },\n { key: 'chequeDate', title: 'common.business.chequeDate' },\n { key: 'chequeBankInDate', title: 'common.business.chequeBankInDate' },\n { key: 'otherTransactionReferenceNo', title: 'common.business.otherTransactionReferenceNumber' },\n { key: 'clearedDate', title: 'common.business.clearedDate' },\n { key: 'receivedDate', title: 'common.business.receivedDate' },\n { key: 'chequeDirectMailToEmpfFlag', title: 'paymentJournal.clkChqFlg' },\n { key: 'oriRefNo', title: 'paymentJournal.oriRefNo' },\n { key: 'invalidFlg', title: 'paymentJournal.invalidFlg' },\n { key: 'splitFundingId', title: 'paymentJournal.splitfundingID' },\n { key: 'splitFundingFlag', title: 'paymentJournal.splitfundingFlag' },\n { key: 'trusteeBankCode', title: 'common.business.trusteeBankCode' },\n { key: 'trusteeBankBranchCode', title: 'common.business.trusteeBranchBankCode' },\n { key: 'trusteeBankAccountNo', title: 'common.business.trusteeBankAccountNumber' },\n { key: 'workflowReferenceNo', title: 'common.business.workflowReferenceNumber' },\n { key: 'reportNo', title: 'common.business.reportNo' },\n { key: 'currency', title: 'common.business.currency' },\n { key: 'auditFee', title: 'common.business.auditFee' },\n];\n\nexport const EXCEL_COLUMNS = [\n 'SCHEME CODE',\n 'EMPLOYER ACCOUNT CODE',\n 'PAYROLL GRPOUP ID',\n 'MEMBER ACCOUNT CODE',\n 'RECEIPT REFERENCE NO',\n 'STATUS CODE',\n 'PAYMENT SUBMISSSION REFERENCE NUMBER',\n 'PAYMENT METHOD',\n 'RECEIVED AMOUT',\n 'BANK CODE',\n 'BRANCH CODE',\n 'BANK ACCOUNT NUMBER',\n 'PAYER NAME',\n 'CHEQUE DATE',\n 'CHEQUE BANK-IN DATE',\n 'OTHER TRANSACTION REFERENCE NUMBER',\n 'CLEARED DATE',\n 'RECEIVED DATE',\n 'CHEQUE DIRECT MAILING TO EMPF FLAG',\n 'ORIGINAL INPUT REFERENCE NUMBER',\n 'INVALID FLAG',\n 'SPLIT FUNDING ID',\n 'SPLIT FUNDING (FLAG)',\n 'TRUSTEE BANK CODE',\n 'TRUSTEE BANK BRANCH CODE',\n 'TRUSTEE BANK ACCOUNT NUMBER',\n 'WORKFLOW REFERENCE NUMBER',\n 'REPORT NO',\n 'CURRENCY',\n 'AUDIT FEE',\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\n\nimport { DetailsComponent } from './details.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsDropdownModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n CdsCheckboxModule,\n ],\n declarations: [DetailsComponent],\n})\nexport class DetailsModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { finalize } from 'rxjs';\n\nimport moment from 'moment';\n\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { PageConfig, ColumnConfig } from 'src/app/shared/data-table';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\n\nimport { FinancialJournalService } from '../shared/financial-journal.service';\nimport { requiredValidator, dateRangeInCompleteValidator, dateRangeInvalidValidator, dateValidator, numberValidator } from 'src/app/core/validators';\n\nimport { I18N_KEY, FINANICAL_JOURNAL_COLUMNS, PAGE_SIZE, FILE_NAME, EXCEL_COLUMNS } from './financial-journal.config';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport Big from 'big.js';\n\n@Component({\n selector: 'app-financial-journal',\n templateUrl: './financial-journal.component.html',\n styleUrls: ['./financial-journal.component.scss'],\n})\nexport class FinancialJournalComponent implements OnInit {\n isDownLoading = false;\n previousSearchParams: any;\n isShowSearchDatePicker = true; // Fix DatePicker Bug\n\n isDataLoading = false;\n pageConfig: PageConfig = {};\n dataDisplayed: any[] = [];\n columnsConfig: Array = FINANICAL_JOURNAL_COLUMNS;\n\n formGroup = new FormGroup(\n {\n fromRunDate: new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_From_NULL }), dateValidator({ error: I18N_KEY.INVALID_RUN_DATE })],\n }),\n toRunDate: new FormControl('', {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_TO_NULL }), dateValidator({ error: I18N_KEY.INVALID_RUN_DATE })],\n }),\n employerCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.ACCOUNT_NO_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n memberCode: new FormControl('', {\n validators: [\n numberValidator({\n error: I18N_KEY.MEMBER_NO_INVALID,\n }),\n ],\n initialValueIsDefault: true,\n }),\n payrollGroupId: new FormControl('', { initialValueIsDefault: true }),\n transaction: new FormControl('', { initialValueIsDefault: true }),\n },\n [\n dateRangeInCompleteValidator('fromRunDate', 'toRunDate', { error: I18N_KEY.DATE_RANGE_INCOMPLETE }),\n dateRangeInvalidValidator('fromRunDate', 'toRunDate', { error: I18N_KEY.INVALID_DATE_RANGE }),\n ]\n );\n\n get fromRunDate() {\n return this.formGroup.get('fromRunDate') as FormControl;\n }\n\n get toRunDate() {\n return this.formGroup.get('toRunDate') as FormControl;\n }\n\n get employerCode() {\n return this.formGroup.get('employerCode') as FormControl;\n }\n\n get memberCode() {\n return this.formGroup.get('memberCode') as FormControl;\n }\n\n get payrollGroupId() {\n return this.formGroup.get('payrollGroupId') as FormControl;\n }\n\n get transaction() {\n return this.formGroup.get('transaction') as FormControl;\n }\n\n get searchDisabled() {\n return this.formGroup.invalid || !this.fromRunDate.value || !this.toRunDate.value;\n }\n\n get downloadDisabled() {\n return !this.previousSearchParams || this.isDownLoading || !this.getTotalCount;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(private toast: CdsToastService, private financialJournalService: FinancialJournalService) {}\n\n ngOnInit() {}\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getData();\n }\n\n getData() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.financialJournalService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data ? res.data.totalElements : 0,\n };\n const tempData = res.data?.content || [];\n this.dataDisplayed = this.createDisplayData(tempData);\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createDisplayData(data: any[]) {\n return data.map((item: any) => {\n item.runDate = item.runDate ? moment(item.runDate, 'YYYYMMDD').format('DD/MM/YYYY') : '';\n item.fundPriceDate = item.fundPriceDate ? moment(item.fundPriceDate, 'YYYYMMDD').format('DD/MM/YYYY') : '';\n item.payPeriodStartDate = item.payPeriodStartDate ? moment(item.payPeriodStartDate, 'YYYYMMDD').format('DD/MM/YYYY') : '';\n item.clearDate = item.clearDate ? moment(item.clearDate, 'YYYYMMDD').format('DD/MM/YYYY') : '';\n item.amountCredited = item.amountCredited === undefined ? '' : Big(item.amountCredited).toFixed(2);\n item.amountDebited = item.amountDebited === undefined ? '' : Big(item.amountDebited).toFixed(2);\n return item;\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n if (formValue.fromRunDate) {\n formValue.fromRunDate = moment(formValue.fromRunDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (formValue.toRunDate) {\n formValue.toRunDate = moment(formValue.toRunDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const valueTemp: any = {};\n const value = this.formGroup.value;\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (value[key]) {\n valueTemp[key] = value[key];\n }\n });\n return valueTemp;\n }\n\n reset() {\n this.previousSearchParams = null;\n this.formGroup.reset();\n this.isShowSearchDatePicker = false;\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n download() {\n if (this.downloadDisabled) {\n return;\n }\n this.isDownLoading = true;\n this.financialJournalService\n .getAllData(this.previousSearchParams)\n .pipe(\n finalize(() => {\n this.isDownLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n const tempData = res.data || [];\n const data = this.createDisplayData(tempData);\n const excelData = this.createExcelData(data);\n aoaToSheet(\n {\n fileName: `${FILE_NAME} ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.XLSX,\n },\n excelData\n );\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push(EXCEL_COLUMNS);\n data.forEach(item => {\n const temp = [];\n temp.push(item.employerCode);\n temp.push(item.payrollGroupId);\n temp.push(item.runDate);\n temp.push(item.memberCode);\n temp.push(item.fundPriceDate);\n temp.push(item.payPeriodStartDate);\n temp.push(item.clearDate);\n temp.push(item.transactionCode);\n temp.push(item.transactionName);\n temp.push(item.amountDebited);\n temp.push(item.accountNumber);\n temp.push(item.fundCode);\n temp.push(item.amountCredited);\n temp.push(item.schemeType);\n temp.push(item.reportNumber);\n excelData.push(temp);\n });\n return excelData;\n }\n}\n"," \n
    \n
    \n
    \n {{ 'common.searchRecord' | lang }}\n
    \n

    \n {{ 'common.fillIn' | lang }}\n

    \n
    \n
    \n {{ 'common.dateRange' | lang }}\n *\n
    \n
    \n \n \n \n \n \n {{ fromRunDate.errors['error'] | lang }}\n {{ formGroup.errors['error'] | lang }}\n \n\n
    -
    \n\n \n \n \n \n \n {{ toRunDate.errors['error'] | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'commission.common.specificNo' | lang }}\n
    \n\n \n \n \n {{ employerCode.errors['error'] | lang }}\n \n\n \n \n \n {{ memberCode.errors['error'] | lang }}\n \n\n \n \n \n \n\n \n \n \n \n
    \n\n
    \n
    \n {{ 'common.search' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n
    \n \n \n \n {{ 'common.download' | lang }}\n \n \n \n
    \n \n \n
    \n
    \n
    \n\n","import { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const PAGE_SIZE = 10;\nexport const FILE_NAME = 'Finanical Journal';\nexport const EXCEL_COLUMNS = [\n 'Employer Account Code',\n 'Payroll Group ID',\n 'Run Date',\n 'Member Account Code',\n 'Fund price Date',\n 'Payperiod start date',\n 'Clear date',\n 'Txn Code',\n 'Transaction Name',\n 'Amount Debited',\n 'Account Number',\n 'Fund Code',\n 'Amount Credited',\n 'Scheme type',\n 'Report No.',\n];\n\nexport const I18N_KEY = {\n DATE_From_NULL: 'commission.journal.dateFromNull',\n DATE_TO_NULL: 'commission.journal.dateToNull',\n INVALID_RUN_DATE: 'commission.common.runDate.invalid',\n DATE_RANGE_INCOMPLETE: 'commission.common.dateRangeError',\n INVALID_DATE_RANGE: 'commission.common.dateRangeInvalid',\n ACCOUNT_NO_INVALID: 'commission.common.accountNo.invalid',\n MEMBER_NO_INVALID: 'commission.common.memberNo.invalid',\n DOWN_LOAD_MAX_LIMMIT: 'commission.journal.download.limmit',\n DOWN_LOAD_MAX_FAIL: 'commission.journal.download.fail',\n COMMON_GOT: 'common.gotItWithExclamation',\n};\n\nexport const FINANICAL_JOURNAL_COLUMNS: Array = [\n { key: 'employerCode', sticky: true, title: 'common.business.employerAcconutCode' },\n { key: 'payrollGroupId', sticky: true, title: 'common.business.payrollGroupID' },\n { key: 'runDate', stickyEnd: true, title: 'common.business.runDate' },\n { key: 'memberCode', title: 'common.business.memberAcconutCode' },\n { key: 'fundPriceDate', title: 'common.business.fundPriceDate' },\n { key: 'payPeriodStartDate', title: 'common.business.payperiodStartDate' },\n { key: 'clearDate', title: 'common.business.clearDate' },\n { key: 'transactionCode', title: 'common.business.txnCode' },\n { key: 'transactionName', title: 'common.business.transactionName' },\n { key: 'amountDebited', title: 'common.business.amountDebited' },\n { key: 'accountNumber', title: 'common.business.accountNumber' },\n { key: 'fundCode', title: 'common.business.fundCode' },\n { key: 'amountCredited', title: 'common.business.amountCredited' },\n { key: 'schemeType', title: 'common.business.schemeType' },\n { key: 'reportNumber', title: 'common.business.reportNo' },\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\n\nimport { FinancialJournalComponent } from './financial-journal.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n ],\n declarations: [FinancialJournalComponent],\n})\nexport class FinancialJournalModule {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PaymentRoutingModule } from './payment.routing';\nimport { DetailsModule } from './details/details.module';\nimport { FinancialJournalModule } from './financial-journal/financial-journal.module';\n\n@NgModule({\n imports: [CommonModule, PaymentRoutingModule, DetailsModule, FinancialJournalModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class PaymentModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\n\nimport { PermissionAccess, PermissionItem } from '../../core/models/enum/permission.enum';\n\nimport { DetailsComponent } from './details/details.component';\nimport { FinancialJournalComponent } from './financial-journal/financial-journal.component';\n\nconst routes: Routes = [\n {\n path: 'payment',\n component: AdminLayoutComponent,\n children: [\n {\n path: 'details',\n component: DetailsComponent,\n data: {\n roles: {\n [PermissionItem.PAYMENT_DETAIL_ENQUIRY_EXPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'financial',\n component: FinancialJournalComponent,\n data: {\n roles: {\n [PermissionItem.FINANCIAL_JOURNAL_ENQUIRY_EXPORT]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PaymentRoutingModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { map, Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\nimport { str2Obj } from 'src/app/utils/utils';\n@Injectable({\n providedIn: 'root',\n})\nexport class FinancialJournalService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable {\n return this.http.post(`${environment.apiPrefix}${environment.accountingServiceExt}${'/financial-journal/list'}`, params, { responseType: 'text' }).pipe(\n map(res => {\n return str2Obj(res, ['amountDebited', 'amountCredited']);\n })\n );\n }\n\n getAllData(params: any): Observable {\n return this.http\n .post(`${environment.apiPrefix}${environment.accountingServiceExt}${'/financial-journal/listForDownload'}`, params, { responseType: 'text' })\n .pipe(\n map(res => {\n return str2Obj(res, ['amountDebited', 'amountCredited']);\n })\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map, Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\nimport { str2Obj } from 'src/app/utils/utils';\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentDetailsService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable {\n return this.http.post(`${environment.apiPrefix}${'/ext/eb-ssms/payment-service/ptw/payment-details/list'}`, params, { responseType: 'text' }).pipe(\n map(res => {\n return str2Obj(res, ['receivedAmount']);\n })\n );\n }\n\n downLoad(params: any): Observable {\n return this.http\n .post(`${environment.apiPrefix}${'/ext/eb-ssms/payment-service/ptw/payment-details/listForDownload'}`, params, { responseType: 'text' })\n .pipe(\n map(res => {\n return str2Obj(res, ['receivedAmount']);\n })\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, ElementRef, ViewChild, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { filter, finalize, Subscription } from 'rxjs';\nimport { AgentProfileListService } from './agent-profile-list.service';\nimport { AgentProfileResponseData } from './agent-profile-response.model';\nimport { PageConfig } from 'src/app/shared/data-table';\nimport { AgentProfileRequest } from './agent-profile-request.model';\nimport { AGENT_CONTRACT_STATUS_OPTIONS, MPF_LICENSE_STATUS_OPTIONS } from './agent-profile.config';\nimport { NarrowSearchPopupComponent } from './narrow-search-popup/narrow-search-popup.component';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\ninterface RequestParams {\n agentPersonCode: string;\n englishName: string;\n agentCode: string;\n branchCode: string;\n joinDateFrom: string;\n joinDateTo: string;\n contractTerminationDateFrom: string;\n contractTerminationDateTo: string;\n agentContractStatus: string;\n brnachHeadAgentCode: string;\n unitCode: string;\n directManagerCode: string;\n mPFLicenseStatus: string;\n}\n\n@Component({\n selector: 'app-agent-profile-list',\n templateUrl: './agent-profile-list.component.html',\n styleUrls: ['./agent-profile-list.component.scss'],\n})\nexport class AgentProfileListComponent implements OnInit, OnDestroy {\n private agentProfileSubscription?: Subscription;\n\n agentContractStatusOptionList = AGENT_CONTRACT_STATUS_OPTIONS;\n mpfLicenseStatusOptionList = MPF_LICENSE_STATUS_OPTIONS;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n requestParams!: RequestParams;\n resetDatePicker = false;\n agentProfileForm!: FormGroup;\n isAdvancedSearch = false;\n totalPages = 0;\n totalRecords = 0;\n pageData: AgentProfileResponseData[] = [];\n isLoading = false;\n isFirstLoad = true;\n recordsMoreThan30thousand = false;\n displayedColumns: string[] = [\n 'agentPersonCode',\n 'agentCode',\n 'agentContractStatus',\n 'englishName',\n 'chineseName',\n 'gender',\n 'dob',\n 'mobileTel',\n 'officeTel',\n 'email',\n 'joiningDate',\n 'contractEffectiveDate',\n 'contractTerminationDate',\n 'branchCode',\n 'branchName',\n 'location',\n 'rankCode',\n 'rankDescShort',\n 'rankDesc',\n ];\n\n exportColumns: string[] = [\n 'Agent Person Code',\n 'Agent Code',\n 'Agent Status',\n 'English Name',\n 'Chinese Name',\n 'Gender',\n 'DoB',\n 'Mobile Tel.',\n 'Office Tel.',\n 'Email',\n 'Joining Date',\n 'Contract Effective Date',\n 'Contract Termination Date',\n 'Branch Code',\n 'Branch Name',\n 'Location',\n 'Rank Code',\n 'Rank Desc (Short)',\n 'Rank Desc',\n ];\n\n agentContractStatusOrigin: CdMultidropdownTopping[] = [];\n mpfLicenseStatusOrigin: CdMultidropdownTopping[] = [];\n\n constructor(public agentProfileListService: AgentProfileListService, private cdsPopup: CdsPopupService) {}\n\n ngOnInit(): void {\n this.agentProfileForm = new FormGroup(\n {\n agentPersonCode: new FormControl(null),\n agentCode: new FormControl(null),\n englishName: new FormControl(null),\n agentContractStatus: new FormControl(null),\n joiningDateFrom: new FormControl(null, dateValidator),\n joiningDateTo: new FormControl(null, dateValidator),\n contractTerminationDateFrom: new FormControl(null, dateValidator),\n contractTerminationDateTo: new FormControl(null, dateValidator),\n branchCode: new FormControl(null),\n branchHeadAgentCode: new FormControl(null),\n unitCode: new FormControl(null),\n directManagerCode: new FormControl(null),\n mpfLicenseStatus: new FormControl(null),\n },\n g => {\n const joiningDateFromVal = g.get('joiningDateFrom')?.value;\n const joiningDateToVal = g.get('joiningDateTo')?.value;\n const contractTerminationDateFromVal = g.get('contractTerminationDateFrom')?.value;\n const contractTerminationDateToVal = g.get('contractTerminationDateTo')?.value;\n if (\n joiningDateFromVal != null &&\n joiningDateToVal != null &&\n moment(joiningDateToVal, 'DD/MM/YYYY', true).isValid() &&\n moment(joiningDateFromVal, 'DD/MM/YYYY', true).isValid() &&\n moment(joiningDateToVal, 'DD/MM/YYYY', true) < moment(joiningDateFromVal, 'DD/MM/YYYY', true)\n ) {\n return { invalidJoiningDateInput: true };\n }\n if (\n contractTerminationDateToVal != null &&\n contractTerminationDateFromVal != null &&\n moment(contractTerminationDateToVal, 'DD/MM/YYYY', true).isValid() &&\n moment(contractTerminationDateFromVal, 'DD/MM/YYYY', true).isValid() &&\n moment(contractTerminationDateToVal, 'DD/MM/YYYY', true) < moment(contractTerminationDateFromVal, 'DD/MM/YYYY', true)\n ) {\n return { contractTerminationDateInput: true };\n }\n return null;\n }\n );\n this.agentProfileSubscription = this.agentProfileListService.agentProfileSubject.subscribe(response => {\n if (this.isFirstLoad) {\n this.pageData = [];\n this.totalPages = 0;\n this.totalRecords = 0;\n } else {\n if (response.result != 0) {\n this.pageData = [];\n this.totalPages = 0;\n this.totalRecords = 0;\n } else if (response.data?.content) {\n const pageDataTmp = response.data.content;\n const totalPagesTmp = response.data ? response.data.totalPages : 0;\n const totalRecordsTmp = response.data ? response.data.totalElements : 0;\n if (totalRecordsTmp > 30000) {\n this.recordsMoreThan30thousand = true;\n this.cdsPopup.open(NarrowSearchPopupComponent, {\n size: 'md',\n });\n } else {\n this.pageData = pageDataTmp;\n this.totalPages = totalPagesTmp;\n this.totalRecords = totalRecordsTmp;\n }\n } else {\n this.pageData = [];\n this.totalPages = response.data ? response.data.totalPages : 0;\n this.totalRecords = response.data ? response.data.totalElements : 0;\n }\n }\n this.isLoading = false;\n });\n }\n\n onAgentProfileSearchSubmit() {\n this.isLoading = true;\n this.isFirstLoad = false;\n const params: AgentProfileRequest = this.createParams();\n this.agentProfileListService.queryAgentProfiles(params);\n }\n\n get currentPageData() {\n if (this.pageData.length === 0) {\n return [];\n }\n return this.pageData;\n }\n\n get isSearchDisable() {\n let tag = true; // search button default is disabled\n const controls = this.agentProfileForm.controls;\n const keys = Object.keys(controls);\n keys.forEach((key: string) => {\n const defaultValue = (controls[key] as FormControl).defaultValue;\n const controlValue = (controls[key] as FormControl).value || null;\n if (key === 'agentContractStatus' || key === 'mpfLicenseStatus') {\n if (defaultValue !== controlValue && controlValue.length != 0) {\n tag = false;\n }\n } else {\n if (defaultValue !== controlValue) {\n tag = false;\n }\n }\n });\n return tag || this.agentProfileForm.invalid;\n }\n\n onClickReset() {\n this.agentProfileForm.reset();\n this.agentContractStatusOrigin = [];\n this.mpfLicenseStatusOrigin = [];\n\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n\n // reset all data to [], including the total pages and total records\n this.pageData = [];\n this.totalRecords = 0;\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n pageChange(num: number): void {\n this.pageConfig = { current: num };\n this.onAgentProfileSearchSubmit();\n }\n\n onAdvancedSearch() {\n this.isAdvancedSearch = !this.isAdvancedSearch;\n if (!this.isAdvancedSearch) {\n this.agentProfileForm.get('agentContractStatus')?.reset();\n this.agentContractStatusOrigin = [];\n this.agentProfileForm.get('mpfLicenseStatus')?.reset();\n this.mpfLicenseStatusOrigin = [];\n }\n }\n\n ngOnDestroy(): void {\n this.agentProfileSubscription?.unsubscribe();\n }\n pageConfig: PageConfig = {};\n createParams() {\n const formValue = this.getFormValue();\n const params: AgentProfileRequest = {\n page: (this.pageConfig.current || 1) - 1,\n size: 50,\n sort: 'agentPersonCode asc',\n ...formValue,\n };\n return params;\n }\n\n getFormValue() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const value: any = {};\n const tempValue = this.agentProfileForm.value;\n const keys: string[] = Object.keys(tempValue);\n keys.forEach(key => {\n if (key == 'agentContractStatus' || key == 'mpfLicenseStatus') {\n const selected = tempValue[key];\n if (selected != null) {\n const valueTmp: string[] = [];\n for (let i = 0; i < selected.length; i++) {\n valueTmp.push(selected[i].value);\n }\n value[key] = valueTmp;\n }\n } else if (key == 'joiningDateFrom' || key == 'joiningDateTo' || key == 'contractTerminationDateFrom' || key == 'contractTerminationDateTo') {\n const dateStr = tempValue[key];\n if (dateStr != null && dateStr !== '' && dateStr.trim().length == 10 && dateStr.substr(2, 1) == '/' && dateStr.substr(5, 1) == '/') {\n const day = dateStr.substr(0, 2);\n const month = dateStr.substr(3, 2);\n const year = dateStr.substr(6, 4);\n value[key] = year + month + day;\n }\n } else {\n const controlValue = tempValue[key];\n if (controlValue != '' && controlValue != null) {\n value[key] = controlValue.trim();\n }\n }\n });\n return value;\n }\n\n get isExportBtnDisabled() {\n let flag = false;\n if (this.pageData.length == 0) {\n flag = true;\n }\n return flag;\n }\n\n isDownLoading = false;\n exportResult() {\n if (this.isExportBtnDisabled) {\n return;\n }\n this.isDownLoading = true;\n const params: AgentProfileRequest = this.createParams();\n this.agentProfileListService\n .download(params)\n .pipe(\n finalize(() => {\n this.isDownLoading = false;\n }),\n filter(res => res.result === 0)\n )\n .subscribe(res => {\n if (this.isClickX) {\n this.isClickX = false;\n return;\n }\n\n const excelData = this.createExcelData(res.data?.agentProfiles || []);\n aoaToSheet(\n {\n fileName: `agent profile list ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.XLSX,\n },\n excelData\n );\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push(this.exportColumns);\n data.forEach(item => {\n const temp: any = [];\n this.displayedColumns.forEach(col => {\n temp.push(item[col]);\n });\n\n excelData.push(temp);\n });\n return excelData;\n }\n\n isClickX = false;\n onClickX() {\n this.isClickX = true;\n this.isDownLoading = false;\n }\n}\n\nfunction dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.value) {\n return null;\n }\n const isDate = moment(control.value, 'DD/MM/YYYY', true).isValid();\n return isDate ? null : { error: 'invalid date' };\n}\n","
    \n
    \n Agent Profile List\n
    \n
    \n
    \n Search record\n
    \n
    \n
    \n
    \n Agent Person Code\n \n
    \n
    \n English Name\n \n
    \n
    \n Agent Code\n \n
    \n
    \n Branch Code\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n {{\n 'common.invalidDate' | lang\n }}\n
    \n \n
    \n Agent Contract Status\n \n
    \n
    \n Branch Head Agent Code\n \n
    \n
    \n Unit Code\n \n
    \n
    \n Direct Manager Code\n \n
    \n
    \n MPF License Status\n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.search1' | lang }}\n {{ 'common.reset1' | lang }}\n
    \n
    \n
    \n \n \n
    \n Advanced Search\n
    \n
    \n
    \n {{ 'agent-profile.joiningDateFromGreaterThanTo' | lang }} \n
    \n
    \n {{ 'agent-profile.contractTerminationDateFromGreaterThanTo' | lang }} \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalRecords }} records\n
    \n
    \n
    \n Export Result\n
    \n
    \n\n
    \n \n
    0 ? 'flex' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n Agent Person Code\n
    \n
    \n \n {{ element.agentPersonCode }}\n \n
    \n \n Agent Code\n \n {{ element.agentCode }}\n \n \n\n \n Agent Status\n \n {{ element.agentContractStatus }}\n \n \n\n \n \n
    \n English Name\n
    \n
    \n \n
    \n {{ element.englishName }}\n
    \n
    \n
    \n\n \n Chinese Name\n \n {{ element.chineseName }}\n \n \n \n Gender\n \n {{ element.gender }}\n \n \n \n DoB\n \n {{ element.dob }}\n \n \n \n Mobile Tel.\n \n {{ element.mobileTel }}\n \n \n \n Office Tel.\n \n {{ element.officeTel }}\n \n \n \n \n
    \n Email \n
    \n
    \n \n
    \n \n {{ element.email }}\n \n
    \n
    \n
    \n \n Joining Date\n \n {{ element.joiningDate | ssmsDate }}\n \n \n \n Contract Effective Date\n \n {{ element.contractEffectiveDate | ssmsDate }}\n \n \n \n Contract Termination Date\n \n {{ element.contractTerminationDate | ssmsDate }}\n \n \n \n Branch Code\n \n {{ element.branchCode }}\n \n \n \n \n
    \n Branch Name \n
    \n
    \n \n
    \n \n {{ element.branchName }}\n \n
    \n
    \n
    \n \n Location\n \n {{ element.location }}\n \n \n \n Rank Code\n \n {{ element.rankCode }}\n \n \n \n Rank Desc (Short)\n \n {{ element.rankDescShort }}\n \n \n \n Rank Desc\n \n {{ element.rankDesc }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AgentProfileRequest } from './agent-profile-request.model';\nimport { AgentProfileDownloadResponse, AgentProfileResponse } from './agent-profile-response.model';\nimport { catchError, tap, timeout } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { Observable, of, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentProfileListService {\n agentProfileSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorSubject = new Subject();\n constructor(private httpClient: HttpClient) {}\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n //private searchAgentProfileUrl = `http://localhost:8093/api/v1/agent-master/query`;\n //private downloadAgentProfileUrl = `http://localhost:8093/api/v1/agent-master/download`;\n private searchAgentProfileUrl = `${environment.apiPrefix}/ext/eb-ssms/reporting-service/api/v1/agent-master/query`;\n private downloadAgentProfileUrl = `${environment.apiPrefix}/ext/eb-ssms/reporting-service/api/v1/agent-master/download`;\n\n queryAgentProfiles(agentProfileRequest: AgentProfileRequest) {\n const errorAgentProfileResponse = new AgentProfileResponse();\n this.httpClient\n .post(this.searchAgentProfileUrl, agentProfileRequest, this.httpOptions)\n .pipe(\n tap(() => console.info('fetched agent profiles')),\n timeout(environment.httpTimeout),\n catchError(this.handleError('queryAgentProfiles', errorAgentProfileResponse))\n )\n .subscribe((resp: AgentProfileResponse) => {\n this.agentProfileSubject.next(resp);\n });\n }\n\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.error(error);\n console.info(`${operation} failed :${error.message}`);\n this.errorSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n\n download(agentProfileRequest: AgentProfileRequest): Observable {\n return this.httpClient.post(this.downloadAgentProfileUrl, agentProfileRequest, this.httpOptions);\n }\n}\n","export class AgentProfileResponse {\n result?: number;\n data?: AgentProfileResponseBody;\n message?: string;\n}\n\nexport interface AgentProfileResponseBody {\n content: AgentProfileResponseData[];\n pageIndex: number;\n pageSize: number;\n pageable: Pageable;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n numberOfElements: number;\n size: number;\n number: number;\n empty: boolean;\n}\n\nexport interface Pageable {\n pageNumber: number;\n pageSize: number;\n offset?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n\nexport class AgentProfileResponseData {\n agentPersonCode?: string;\n agentCode?: string;\n englishName?: string;\n chineseName?: string;\n gender?: string;\n dob?: string;\n mobileTel?: string;\n officeTel?: string;\n email?: string;\n agentContractStatus?: string;\n joiningDate?: string;\n contractEffectiveDate?: string;\n contractTerminationDate?: string;\n rankCode?: string;\n rankDescShort?: string;\n rankDesc?: string;\n location?: string;\n branchCode?: string;\n branchName?: string;\n branchHeadAgentCode?: string;\n branchHeadAgentPersonCode?: string;\n branchHeadAgentName?: string;\n branchHeadAgentRankCode?: string;\n unitCode?: string;\n unitName?: string;\n directManagerCode?: string;\n directManagerName?: string;\n mpfLicenseStatus?: string;\n mpfLicenseNumber?: string;\n mpfLicenseEffectiveDate?: string;\n latestAgentRecord?: string;\n}\n\nexport class AgentProfileDownloadResponse {\n result?: number;\n data?: AgentProfileDownloadResponseBody;\n message?: string;\n}\n\nexport class AgentProfileDownloadResponseBody {\n count?: number;\n agentProfiles?: AgentProfileResponseBody[];\n}\n","import { CdsOption } from '@cds/ng-core/configuration';\n\nexport const AGENT_CONTRACT_STATUS_OPTIONS: CdsOption[] = [\n { label: 'ACTIVE', value: '01' },\n { label: 'TERMINATE', value: '02' },\n { label: 'TRANSFER', value: '03' },\n {\n label: 'RETIRED',\n value: '04',\n },\n {\n label: 'DECEASED',\n value: '05',\n },\n {\n label: 'DISABLE',\n value: '06',\n },\n {\n label: 'LOSS',\n value: '07',\n },\n {\n label: 'DUMMY',\n value: '08',\n },\n];\n\nexport const MPF_LICENSE_STATUS_OPTIONS: CdsOption[] = [\n { label: 'Registered', value: 'Registered' },\n { label: 'Transition', value: 'Transition' },\n { label: 'Pass the exam', value: 'Pass the exam' },\n {\n label: 'NA',\n value: 'NA',\n },\n];\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-narrow-search-popup',\n templateUrl: './narrow-search-popup.component.html',\n})\nexport class NarrowSearchPopupComponent implements OnInit {\n gotItButtonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n disabled: false,\n };\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n returnToEdit() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n
    {{ 'agent-profile.narrow_search' | lang }}
    \n
    \n
    \n \n
    \n
    \n","import { PaymentReportType } from './../../benefit-payment/benefit-payment';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport {\n configPrimary,\n configSecondary,\n formatDate,\n formatDate3,\n formatDate4,\n maxDate,\n minDate,\n pageInit,\n PaymentHistorySearch,\n PaymentMethodE,\n PaymentReportHistory,\n PaymentReportLog,\n PaymentReportSearch,\n PaymentReportSubType,\n PaymentStatusE,\n} from '../../benefit-payment/benefit-payment';\nimport { PaymentServiceSHKP } from '../../benefit-payment/paymentSHKP.service';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { finalize } from 'rxjs';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { jsonToSheet } from 'src/app/utils/xlsx';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-payment-report-shkp',\n templateUrl: './payment-report-shkp.component.html',\n styleUrls: ['./payment-report-shkp.component.scss'],\n})\nexport class PaymentReportShkpComponent implements OnInit {\n _tabIndex = PaymentReportSubType.CHQ;\n _type = PaymentReportType.STATUS_REPORT;\n PaymentReportType = PaymentReportType;\n transferTypeConfig: CdsDropdownConfig = {\n label: 'Select Report Type',\n placeholder: '',\n options: [\n { label: 'Payment Record Report', value: PaymentReportType.RECORD_REPORT },\n { label: 'Payment Status Report', value: PaymentReportType.STATUS_REPORT },\n ],\n };\n\n _editPaymentCHQMap = new Map([\n [\n PaymentStatusE.NEW,\n {\n options: [\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.PRINTED,\n {\n options: [\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.UN_PRESENTED,\n {\n options: [\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.PRESENTED,\n {\n options: [\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.HOLD_PAYMENT,\n {\n options: [\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n ],\n },\n ],\n [\n PaymentStatusE.STOP_PAYMENT,\n {\n options: [\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n ],\n },\n ],\n [\n PaymentStatusE.REISSUE,\n {\n options: [\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.READY_TO_REISSUE,\n {\n options: [\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.PENDING,\n {\n options: [\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n ],\n },\n ],\n [\n PaymentStatusE.PENDING_ON_SCT_OR_EMPF,\n {\n options: [{ label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE }],\n },\n ],\n ]);\n\n _editPaymentBANKMap = new Map([\n [\n PaymentStatusE.NEW,\n {\n options: [\n { label: 'Passed to Bank', value: PaymentStatusE.PASSED_TO_BANK },\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ],\n },\n ],\n [\n PaymentStatusE.PASSED_TO_BANK,\n {\n options: [\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ],\n },\n ],\n [\n PaymentStatusE.REISSUE,\n {\n options: [\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Reissue Complete', value: PaymentStatusE.REISSUE_COMPLETE },\n ],\n },\n ],\n [\n PaymentStatusE.PENDING,\n {\n options: [\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Reissue Complete', value: PaymentStatusE.REISSUE_COMPLETE },\n ],\n },\n ],\n [\n PaymentStatusE.READY_TO_REISSUE,\n {\n options: [\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Reissue Complete', value: PaymentStatusE.REISSUE_COMPLETE },\n ],\n },\n ],\n ]);\n\n _valid = false;\n\n _resetValid = false;\n\n _progress = false;\n\n form = new FormGroup({\n payRefNo: new FormControl('', []),\n });\n\n maxDate = maxDate;\n minDate = minDate;\n formatDate = formatDate;\n formatDate3 = formatDate3;\n formatDate4 = formatDate4;\n\n form1 = new FormGroup({\n dateFrom: new FormControl('', []),\n dateEnd: new FormControl('', []),\n statusFrom: new FormControl('', []),\n statusTo: new FormControl('', []),\n });\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n searchDTO: PaymentReportSearch = {\n payMethod: [PaymentMethodE.CHQ],\n };\n\n dataSource: PaymentReportHistory[] = [];\n\n searchButtonConfig = configPrimary();\n\n resetButtonConfig = configSecondary();\n\n _paymentStatusListCHQ: any[] = [\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'New', value: PaymentStatusE.NEW },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n ];\n\n _paymentStatusListBANK: any[] = [\n { label: 'New', value: PaymentStatusE.NEW },\n { label: 'Passed to Bank', value: PaymentStatusE.PASSED_TO_BANK },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Ready to reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n ];\n\n _allStatus = [\n { label: 'Expired', value: PaymentStatusE.EXPIRED },\n { label: 'Hold Payment', value: PaymentStatusE.HOLD_PAYMENT },\n { label: 'New', value: PaymentStatusE.NEW },\n { label: 'Pending', value: PaymentStatusE.PENDING },\n { label: 'Pending on SCT/eMPF', value: PaymentStatusE.PENDING_ON_SCT_OR_EMPF },\n { label: 'Presented', value: PaymentStatusE.PRESENTED },\n { label: 'Printed', value: PaymentStatusE.PRINTED },\n { label: 'Ready to Reissue', value: PaymentStatusE.READY_TO_REISSUE },\n { label: 'Reissue', value: PaymentStatusE.REISSUE },\n { label: 'Reissue Completed', value: PaymentStatusE.REISSUE_COMPLETE },\n { label: 'Reissue Presented', value: PaymentStatusE.REISSUE_PRESENTED },\n { label: 'Reissue Reject', value: PaymentStatusE.REISSUE_REJECT },\n { label: 'Returned from EE', value: PaymentStatusE.RETURNED_FROM_EE },\n { label: 'Returned from ER', value: PaymentStatusE.RETURNED_FROM_ER },\n { label: 'Stop Payment', value: PaymentStatusE.STOP_PAYMENT },\n { label: 'Unpresented', value: PaymentStatusE.UN_PRESENTED },\n\n { label: 'Completed', value: PaymentStatusE.COMPLETED },\n { label: 'Passed to Bank', value: PaymentStatusE.PASSED_TO_BANK },\n { label: 'Rejected', value: PaymentStatusE.REJECTED },\n ];\n\n sheetHeaderRecord = {\n payRefNo: 'Payment Reference No.',\n payMethod: 'Payment Method',\n chqNo: 'Cheque Number',\n payeeName: 'Payee Name',\n amt: 'Amount',\n curr: 'Currency',\n genDate: 'Payment Instruction File Date',\n recordStatus: 'Payment Status',\n createdAt: 'Status Update Date',\n empfId: 'EMPF ID',\n mpfAcctNo: 'MPF Account No.',\n erempfId: 'EMPF ID of ER',\n erName: 'Name of ER',\n payrollGroupID: 'Payroll Group ID',\n remarks: 'Remarks',\n };\n\n sheetHeaderStatus = {\n payRefNo: 'Payment Reference No.',\n payMethod: 'Payment Method',\n chqNo: 'Cheque Number',\n payeeName: 'Payee Name',\n amt: 'Amount',\n curr: 'Currency',\n genDate: 'Payment Instruction File Date',\n fromPaymentStatus: 'From Payment Status',\n fromStatusUpdateDate: 'Status Update Date',\n toPaymentStatus: 'To Payment Status',\n toStatusUpdateDate: 'Status Update Date',\n turnaroundDays: 'Turnaround Days',\n empfId: 'EMPF ID',\n mpfAcctNo: 'MPF Account No.',\n erempfId: 'EMPF ID of ER',\n erName: 'Name of ER',\n payrollGroupID: 'Payroll Group ID',\n remarks: 'Remarks',\n };\n\n statusFromConfig: CdsDropdownConfig = {\n label: 'From Payment Status',\n placeholder: 'Select From Payment Status',\n options: [...this._paymentStatusListCHQ],\n };\n\n statusToConfig: CdsDropdownConfig = {\n label: 'To Payment Status',\n placeholder: 'Select To Payment Status',\n options: [],\n };\n\n _showError = false;\n _downloading = false;\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'createdAt',\n title: 'Generate Date',\n },\n {\n key: 'reportName',\n title: 'Report Name',\n },\n {\n key: 'createdByName',\n title: 'Generated By',\n },\n ];\n\n constructor(private service: PaymentServiceSHKP, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {}\n\n getMinDate() {\n return moment(new Date()).subtract(36, 'months').format('YYYY-MM-DD');\n }\n\n inputChange(val: string, label: string) {\n switch (label) {\n case 'payRefNo':\n this.searchDTO.payRefNo = val;\n break;\n }\n this.validating();\n }\n\n pageInit() {\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n }\n\n searchFn() {\n this.validFn().then(r => {\n if (r) {\n pageInit();\n this.getLogList();\n }\n });\n }\n\n async validFn() {\n return this._valid && this.form.valid;\n }\n\n validating() {\n if (!!this.searchDTO.payRefNo || (this.searchDTO.dateFrom && this.searchDTO.dateEnd && this.searchDTO.statusFrom && this.searchDTO.statusTo)) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n\n if (!!this.searchDTO.payRefNo || !!this.searchDTO.dateFrom || !!this.searchDTO.dateEnd || !!this.searchDTO.statusFrom || !!this.searchDTO.statusTo) {\n this._resetValid = true;\n } else {\n this._resetValid = false;\n }\n }\n\n reset() {\n this.searchDTO = {\n payMethod: [PaymentMethodE.CHQ],\n };\n this.searchDTO.payMethod = this._tabIndex == PaymentReportSubType.CHQ ? [PaymentMethodE.CHQ] : [PaymentMethodE.BTL, PaymentMethodE.BTO];\n this.statusFromConfig = {\n label: 'From Payment Status',\n placeholder: 'Select From Payment Status',\n options: [...(this._tabIndex == PaymentReportSubType.CHQ ? this._paymentStatusListCHQ : this._paymentStatusListBANK)],\n };\n this.statusToConfig = {\n label: 'To Payment Status',\n placeholder: 'Select To Payment Status',\n options: [],\n };\n this._showError = false;\n pageInit();\n this.validating();\n this.loadTable();\n }\n\n typeChange(val: PaymentReportType) {\n this._type = val;\n this.reset();\n }\n\n statusChange(status: PaymentStatusE, name: string) {\n switch (name) {\n case 'statusFrom':\n this.searchDTO.statusFrom = status;\n if (this._tabIndex == PaymentReportSubType.CHQ) {\n this.statusToConfig.options = this._editPaymentCHQMap.get(status)?.options || [];\n }\n if (this._tabIndex == PaymentReportSubType.BANK) {\n this.statusToConfig.options = this._editPaymentBANKMap.get(status)?.options || [];\n }\n this.statusToConfig = { ...this.statusToConfig };\n break;\n case 'statusTo':\n this.searchDTO.statusTo = status;\n break;\n }\n this.validating();\n }\n\n getRequestParams() {\n const params: PaymentReportHistory = deepCopy(this.searchDTO);\n return params;\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable();\n }\n\n loadTable() {\n const listParms: PaymentHistorySearch = {\n size: this.pageConfig.pageSize as number,\n page: (this.pageConfig.current as number) - 1,\n reportType: this._type,\n subType: this._tabIndex,\n };\n this.getList(listParms);\n }\n\n getList(params: PaymentHistorySearch) {\n this._progress = true;\n this.service\n .getHistory(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data?.totalElements,\n };\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getLogList() {\n const params: PaymentReportSearch = {\n ...this.searchDTO,\n dateFrom: this.formatDate(this.searchDTO.dateFrom),\n dateEnd: this.formatDate(this.searchDTO.dateEnd),\n };\n // const _statsList = [];\n // if (params.statusFrom) {\n // _statsList.push(params.statusFrom);\n // }\n // if (params.statusTo) {\n // _statsList.push(params.statusTo);\n // }\n // params.statusFrom = undefined;\n // params.statusTo = undefined;\n // params.statusList = _statsList;\n if (this._type == PaymentReportType.RECORD_REPORT) {\n params.payMethod = undefined;\n }\n this._progress = true;\n this.service\n .getPaymentLog(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._showError = data.data.length == 0;\n if (data.data.length > 0) {\n const _name = this.getName(params);\n this.exportCsvStatus(_name, data.data);\n this.saveHistory(_name);\n }\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n exportCsvStatus(name: string, data: PaymentReportLog[]) {\n this._downloading = true;\n jsonToSheet(\n {\n fileName: name,\n fileType: 'csv',\n header: this._type == PaymentReportType.RECORD_REPORT ? this.sheetHeaderRecord : this.sheetHeaderStatus,\n },\n this._type == PaymentReportType.RECORD_REPORT ? this.createDataRecord(data) : this.createDataStaus(data)\n );\n setTimeout(() => {\n this._downloading = false;\n }, 1000);\n }\n\n isoFormat(o?: string) {\n if (!o) {\n return '';\n }\n return moment(o).format('DD-MM-YYYY');\n }\n\n formatType(type?: PaymentMethodE) {\n let _type = '';\n switch (type) {\n case PaymentMethodE.CHQ:\n _type = 'Cheuqe';\n break;\n case PaymentMethodE.BTO:\n _type = 'Oversea Bank Transfer';\n break;\n case PaymentMethodE.BTL:\n _type = 'Local Bank Transfer';\n break;\n }\n return _type;\n }\n\n formatStatus(status?: PaymentStatusE) {\n return this._allStatus.find(x => x.value == status)?.label;\n }\n\n createDataRecord(data: PaymentReportLog[]) {\n return data.map(item => {\n return {\n payRefNo: item.payRefNo,\n payMethod: this.formatType(item.payMethod),\n chqNo: item.outChequeNo || 'NA',\n payeeName: item.payeeName,\n amt: item.amt,\n curr: item.curr,\n genDate: this.formatDate4(item.genDate),\n recordStatus: this.formatStatus(item.recordStatus),\n createdAt: this.isoFormat(item.createdAt),\n empfId: item.empfid,\n mpfAcctNo: item.mpfAcctNo,\n erempfId: item.erempfId,\n erName: item.erName,\n payrollGroupID: item.payrollGroupID,\n remarks: item.remarks,\n };\n });\n }\n\n createDataStaus(data: PaymentReportLog[]) {\n return data.map(item => {\n return {\n payRefNo: item.payRefNo,\n payMethod: this.formatType(item.payMethod),\n chqNo: item.outChequeNo || 'NA',\n payeeName: item.payeeName,\n amt: item.amt,\n curr: item.curr,\n genDate: this.formatDate4(item.genDate),\n fromPaymentStatus: this.formatStatus(item.fromPaymentStatus),\n statusUpdateDateFrom: this.isoFormat(item.fromStatusUpdateDate),\n toPaymentStatus: this.formatStatus(item.toPaymentStatus),\n statusUpdateDateTo: this.isoFormat(item.toStatusUpdateDate),\n turnaroundDays: item.turnaroundDays,\n empfId: item.empfid,\n mpfAcctNo: item.mpfAcctNo,\n erempfId: item.erempfId,\n erName: item.erName,\n payrollGroupID: item.payrollGroupID,\n remarks: item.remarks,\n };\n });\n }\n\n getName(params: PaymentReportSearch) {\n let _name = 'SHKP_Payment Status Report_';\n if (this._type == PaymentReportType.RECORD_REPORT) {\n _name = 'SHKP_Payment Record Report_' + params.payRefNo + '_';\n }\n if (this._type == PaymentReportType.STATUS_REPORT) {\n if (params.dateFrom) {\n _name = _name + this.formatDate3(params.dateFrom) + '_';\n }\n if (params.dateEnd) {\n _name = _name + this.formatDate3(params.dateEnd) + '_';\n }\n if (params.statusFrom) {\n _name = _name + params.statusFrom + '_';\n }\n if (params.statusTo) {\n _name = _name + params.statusTo + '_';\n }\n }\n _name = _name + new Date().getTime();\n return _name;\n }\n\n saveHistory(name: string) {\n const _param = {\n reportName: name,\n reportType: this._type,\n subType: this._tabIndex,\n };\n this.service\n .saveHistory(_param)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.loadTable();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n selectedTabIndexChange(index: number) {\n this._tabIndex = index === 0 ? PaymentReportSubType.CHQ : PaymentReportSubType.BANK;\n this.reset();\n }\n}\n","
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n\n
    \n
    \n {{ 'list.search-record' | lang }}\n
    \n
    \n\n\n
    \n
    \n \n {{ 'common.noResultFound' | lang }} \n
    \n \n \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n \n \n \n\n {{ 'create.dateError' | lang }} \n
    \n
    -
    \n
    \n \n \n \n {{ 'create.dateError' | lang }} \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n {{ 'common.noResultFound' | lang }} \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'list.history-log' | lang }}\n
    \n
    \n {{ 'page.total' | lang }} {{ pageConfig.totalCount }} {{ 'page.records' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n \n \n {{ element['createdAt'] | ssmsDate }}\n \n \n
    \n
    \n\n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ReportCenterComponent } from './report-center/report-center.component';\nimport { AgentProfileListComponent } from './agent-profile-list/agent-profile-list.component';\nimport { ReportExtractionComponent } from './report-extraction/report-extraction.component';\nimport { ReportCommissionComponent } from './report-commission/report-commission.component';\nimport { PaymentReportShkpComponent } from './payment-report-shkp/payment-report-shkp.component';\nimport { ReportMflubComponent } from './report-mflub/report-mflub.component';\n\nconst routes: Routes = [\n {\n path: 'report-center',\n component: AdminLayoutComponent,\n children: [\n {\n path: '',\n component: ReportCenterComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'agent-profile-list',\n component: AgentProfileListComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'report-extraction',\n component: ReportExtractionComponent,\n data: {\n title: 'commission.report.title',\n roles: {\n [PermissionItem.CUSTOMER_EMPLOYER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'report-commission',\n component: ReportCommissionComponent,\n data: {\n title: 'reportCenter.commission.title',\n },\n },\n {\n path: 'report-mlfub',\n component: ReportMflubComponent,\n data: {\n title: 'reportCenter.mflub.title',\n },\n },\n {\n path: 'payment-report-shkp',\n component: PaymentReportShkpComponent,\n data: {\n title: 'report.shkp.title',\n roles: {\n SHK_PAYMENT_ISSUANCE_PAYMENT_ADMIN: PermissionAccess.R,\n SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF: PermissionAccess.R,\n SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ReportCenterRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\n\nimport { ReportCenterComponent } from './report-center/report-center.component';\nimport { ReportCenterRoutingModule } from './report-center-routing.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { AgentProfileListComponent } from './agent-profile-list/agent-profile-list.component';\nimport { CdInputModule } from 'src/app/components/cd-input/cd-input.module';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { NarrowSearchPopupComponent } from './agent-profile-list/narrow-search-popup/narrow-search-popup.component';\nimport { ReportFilterComponent } from './report-center/report-filter/report-filter.component';\nimport { ReportExtractionComponent } from './report-extraction/report-extraction.component';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { ReportCommissionComponent } from './report-commission/report-commission.component';\nimport { PaymentReportShkpComponent } from './payment-report-shkp/payment-report-shkp.component';\nimport { ReportMflubComponent } from './report-mflub/report-mflub.component';\n\n@NgModule({\n declarations: [\n ReportCenterComponent,\n AgentProfileListComponent,\n NarrowSearchPopupComponent,\n ReportFilterComponent,\n ReportExtractionComponent,\n ReportCommissionComponent,\n ReportMflubComponent,\n PaymentReportShkpComponent,\n ],\n imports: [\n CommonModule,\n ReportCenterRoutingModule,\n FormsModule,\n SharedModule,\n ReactiveFormsModule,\n CdsIconModule,\n CdsSearchModule,\n CdsTableModule,\n CdsPaginationModule,\n CdsProgressModule,\n CdInputModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsDropdownModule,\n ],\n})\nexport class ReportCenterModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { CdsColorTheme, CdsOption } from '@cds/ng-core/configuration';\nimport { CdsProgressType } from '@cds/ng-core/progress';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdPopupService, CdPopupSize, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { DownloadFileService } from 'src/app/shared/download-file/download-file.service';\nimport { ReportFilterComponent } from './report-filter/report-filter.component';\nimport { environment } from 'src/environments/environment';\ninterface FileInfo {\n reportDate: string;\n fileName: string;\n action: string;\n id: string;\n}\n\n@Component({\n selector: 'app-report-center',\n templateUrl: './report-center.component.html',\n styleUrls: ['./report-center.component.scss'],\n})\nexport class ReportCenterComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('filesTable', { static: false }) filesTable?: any;\n formControl: FormControl = new FormControl();\n options: CdsOption[] = [];\n dataSource: FileInfo[] = [];\n displayedColumns: string[] = ['reportDate', 'fileName', 'action'];\n pageCount = 0;\n currentPage = 1;\n cdsProgressType: CdsProgressType = 'ring';\n cdsProgressTxt = 'Loading';\n cdsProgressColor: CdsColorTheme = 'ml';\n isShowProgress = false;\n resultTableIsFitContent = false;\n percentComplete = { value: 0 };\n isDownloading = false;\n searchValue?: string;\n resultTableFooterMaxWidth = 895;\n closeDownloadEvent: { event: (() => void) | null } = {\n event: null,\n };\n filters: string[] = [];\n isDev = environment.profile === 'dev'; // delete after filter fun complete\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private downloadFileService: DownloadFileService,\n private alert: CdsAlertService,\n private cdPopup: CdPopupService\n ) {}\n\n ngOnInit(): void {\n this.getReportConfigs();\n }\n\n ngAfterViewInit(): void {\n this.resultTableIsFitContent = document.documentElement.clientWidth >= this.resultTableFooterMaxWidth;\n window.onresize = () => {\n this.resultTableIsFitContent = document.documentElement.clientWidth >= this.resultTableFooterMaxWidth;\n };\n }\n\n openFilter() {\n const popupRef: MatDialogRef = this.cdPopup.open(ReportFilterComponent, {\n data: {\n filters: this.filters,\n },\n size: CdPopupSize.FULL,\n });\n popupRef.afterClosed().subscribe(filters => {\n this.filters = filters;\n });\n }\n\n downloadFile(file: FileInfo) {\n this.cdHttpServeService.get(`/ext/eb-ssms/reporting-service/api/v1/report-file/download/${file.id}`, {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.downloadFileService.downLoadNew(atob(res.data), file.fileName);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n downloadFileFs(file: FileInfo) {\n this.isDownloading = true;\n this.percentComplete = { value: 0 };\n this.downloadFileService.downloadFile(file.action, file.fileName, this.percentComplete, this.closeDownloadEvent).then(() => {\n this.isDownloading = false;\n });\n }\n\n closeDownload() {\n if (this.closeDownloadEvent.event) {\n this.closeDownloadEvent.event();\n }\n this.isDownloading = false;\n }\n\n ngOnDestroy(): void {\n window.onresize = null;\n }\n\n get currentPageIndex() {\n return this.currentPage - 1;\n }\n\n search(option: CdsOption) {\n this.searchValue = option.value;\n this.currentPage = 1;\n this.getReportFiles();\n }\n\n pageChange(num: number) {\n if (this.currentPage === num) {\n return;\n }\n this.currentPage = num;\n this.getReportFiles();\n }\n\n searchByInputPageNo($event: any, pageNo: string) {\n $event.preventDefault();\n this.currentPage = +pageNo;\n if (this.currentPage < 1) {\n this.currentPage = 1;\n } else if (this.currentPage > this.pageCount) {\n this.currentPage = this.pageCount;\n }\n this.getReportFiles();\n }\n\n getReportConfigs() {\n this.cdHttpServeService\n .post<\n {\n id: string;\n reportId: string;\n reportName: string;\n allowedRoles: string[];\n }[]\n >('/ext/eb-ssms/reporting-service/api/v1/report-configs/query', {\n userRoles: ['INTERNAL_STAFF', 'MANAGER'],\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n console.warn('Waring!', `${res.message} ${res.data}`);\n this.alert.warning('Warning!', `${res.message} ${res.data}`);\n } else {\n this.options = res.data.map(item => {\n return { label: item.reportName, value: item.reportId };\n });\n }\n },\n error: error => {\n console.error('error---', error);\n this.alert.error('Error!', error);\n },\n });\n }\n\n getReportFiles() {\n this.isShowProgress = true;\n this.cdHttpServeService\n .post<{\n content: {\n downloadUrl: string;\n fileName: string;\n id: string;\n reportDate: string;\n reportId: string;\n }[];\n totalPages: number;\n }>('/ext/eb-ssms/reporting-service/api/v1/report-files/query', {\n page: this.currentPageIndex,\n size: 10,\n sort: 'reportDate desc',\n reportId: this.searchValue,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n console.warn('Waring!', `${res.message} ${res.data}`);\n this.alert.warning('Warning!', `${res.message} ${res.data}`);\n } else {\n this.dataSource =\n res.data.content?.map(item => {\n const dList = item.reportDate.split('-');\n return {\n reportDate: `${dList[2]}/${dList[1]}/${dList[0]}`,\n fileName: item.fileName,\n action: item.downloadUrl,\n id: item.id,\n };\n }) || [];\n this.pageCount = res.data.totalPages;\n }\n this.isShowProgress = false;\n\n setTimeout(() => {\n this.resultTableFooterMaxWidth = this.filesTable._elementRef.nativeElement.clientWidth;\n this.resultTableIsFitContent = document.documentElement.clientWidth - 177 >= this.resultTableFooterMaxWidth;\n window.onresize = null;\n window.onresize = () => {\n this.resultTableIsFitContent = document.documentElement.clientWidth - 177 >= this.resultTableFooterMaxWidth;\n };\n }, 0);\n },\n error: error => {\n this.isShowProgress = false;\n console.error('error---', error);\n this.alert.error('Error!', error);\n },\n });\n }\n}\n","
    \n
    \n Report Center\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n Search and Download Report\n
    \n
    \n You may search the report by keywords, like report categories, report type, report code, in report name.\n
    \n
    \n
    \n \n
    \n
    \n \n Filter({{ filters.length }})\n
    \n
    \n
    \n
    \n\n 0\">\n
    \n File list\n
    \n\n
    \n
    \n
    \n \n \n Report Date (DD/MM/YYYY) \n \n {{ element.reportDate }}\n \n \n\n \n File Name\n \n {{ element.fileName }}\n \n \n\n \n Action\n \n
    \n
    \n \n
    \n
    \n Download\n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n Page \n \n of {{ pageCount }} \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    File Downloading...
    \n \n
    \n
    \n \n
    \n
    \n","export const FILTER = [\n {\n type: 'Agent',\n open: true,\n list: [\n {\n label: 'Agent Assignment',\n value: 'agent-assignment',\n },\n {\n label: 'Agent Details',\n value: 'agent-details',\n },\n ],\n },\n {\n type: 'Product',\n open: false,\n list: [],\n },\n {\n type: 'MLFUB Report',\n open: false,\n list: [\n {\n label: 'Report',\n value: 'report',\n },\n {\n label: 'Summary',\n value: 'summary',\n },\n {\n label: 'Cash Transfer',\n value: 'cash-transfer',\n },\n {\n label: 'Financial Journal',\n value: 'financial-journal',\n },\n {\n label: 'GPMM/HKGA Transaction',\n value: 'GPMM/HKGA Transaction',\n },\n {\n label: 'Redemption Report',\n value: 'Redemption Report',\n },\n {\n label: 'Subscription Report',\n value: 'Subscription Report',\n },\n {\n label: 'Fund Switching',\n value: 'Fund Switching',\n },\n {\n label: 'Fund Order',\n value: 'Fund Order',\n },\n {\n label: 'Fund Movement',\n value: 'Fund Movement',\n },\n {\n label: 'Dividend',\n value: 'Dividend',\n },\n {\n label: 'Dividend Rates',\n value: 'Dividend Rates',\n },\n {\n label: 'Contract Note',\n value: 'Contract Note',\n },\n {\n label: 'Fund Price Upload',\n value: 'Fund Price Upload',\n },\n {\n label: 'Fund Order Details',\n value: 'Fund Order Details',\n },\n ],\n },\n {\n type: 'Member Authorization',\n open: false,\n list: [],\n },\n {\n type: 'DBS',\n open: false,\n list: [],\n },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { CDS_POPUP_DATA, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { FILTER } from './report-filter.component.config';\n\n@Component({\n selector: 'app-report-filter',\n templateUrl: './report-filter.component.html',\n styleUrls: ['./report-filter.component.scss'],\n})\nexport class ReportFilterComponent implements OnInit {\n filters: any[] = FILTER;\n selectFilters: string[] = [];\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n filters: string[];\n }\n ) {\n this.selectFilters = [...this.data.filters];\n }\n\n ngOnInit() {}\n\n get resetDisbaled() {\n return !this.selectFilters.length;\n }\n\n isFilterSelected(value: string) {\n return this.selectFilters.includes(value);\n }\n\n close() {\n this.dialogRef.close(this.data.filters);\n }\n\n toggleShow(index: number) {\n this.filters[index].open = !this.filters[index].open;\n }\n\n toggleSelected(index: number, listIndex: number) {\n const value = this.filters[index].list[listIndex].value;\n const isSelected = this.isFilterSelected(value);\n if (isSelected) {\n this.selectFilters.splice(this.selectFilters.indexOf(value), 1);\n return;\n }\n this.selectFilters.push(value);\n }\n\n reset() {\n this.data.filters = [];\n this.selectFilters = [];\n }\n\n apply() {\n this.dialogRef.close(this.selectFilters);\n }\n}\n","
    \n \n
    \n
    \n
    Filter({{ selectFilters.length }})
    \n \n
    \n
    \n {{ item.type | lang }}\n \n \n
    \n
    \n \n {{ list.label | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'common.reset' | lang }}\n \n \n {{ 'common.apply' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nimport { dateRangeInCompleteValidator, dateRangeInvalidValidator, dateValidator } from 'src/app/core/validators';\nimport { COMMISSION_REPORT_COLUMNS, I18N_KEY, PAGE_SIZE, SubCategoryOptions } from './report-commission.config';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { ReportCommissionService } from './report-commission.service';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { DownloadFileService } from 'src/app/shared/download-file/download-file.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\n\n@Component({\n selector: 'app-report-commission',\n templateUrl: './report-commission.component.html',\n styleUrls: ['./report-commission.component.scss'],\n})\nexport class ReportCommissionComponent implements OnInit {\n isShowSearchDatePicker = true;\n isDownLoading = false;\n isDataLoading = false;\n pageConfig: PageConfig = {};\n dataDisplayed: any[] = [];\n columnsConfig: Array = COMMISSION_REPORT_COLUMNS;\n subCategoryOptions = SubCategoryOptions;\n\n previousSearchParams: any;\n\n reportForm = new FormGroup(\n {\n reportDateFrom: new FormControl(null, [dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })]),\n reportDateTo: new FormControl(null, [dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })]),\n subCategory: new FormControl([], {\n initialValueIsDefault: true,\n }),\n reportName: new FormControl(null),\n },\n [\n dateRangeInCompleteValidator('reportDateFrom', 'reportDateTo', { error: I18N_KEY.ERROR_DATE_REANGE }),\n dateRangeInvalidValidator('reportDateFrom', 'reportDateTo', { error: I18N_KEY.INVALID_DATE_REANGE }),\n ]\n );\n\n get reportDateFrom() {\n return this.reportForm.get('reportDateFrom') as FormControl;\n }\n\n get reportDateTo() {\n return this.reportForm.get('reportDateTo') as FormControl;\n }\n\n get subCategory() {\n return this.reportForm.get('subCategory') as FormControl;\n }\n\n get reportName() {\n return this.reportForm.get('reportName') as FormControl;\n }\n\n get searchDisabled() {\n let tag = true;\n const controlValues = this.reportForm.value;\n const keys = Object.keys(controlValues);\n keys.forEach((key: string) => {\n if (controlValues[key]) {\n tag = false;\n }\n });\n\n return tag || this.reportForm.invalid || this.isDataLoading;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private downloadFileService: DownloadFileService,\n private toast: CdsToastService,\n private reportCommissionService: ReportCommissionService\n ) {}\n\n ngOnInit(): void {\n this.search();\n }\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getData();\n }\n\n getData() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.reportCommissionService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data ? res.data.totalElements : 0,\n };\n const tempData = res.data?.content || [];\n this.dataDisplayed = tempData;\n // this.dataDisplayed = this.createDisplayData(tempData);\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n if (formValue.reportDateFrom) {\n formValue.reportDateFrom = moment(formValue.reportDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (formValue.reportDateTo) {\n formValue.reportDateTo = moment(formValue.reportDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const valueTemp: any = {};\n const value = this.reportForm.value;\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (key === 'subCategory' && value[key].length) {\n valueTemp[key] = value[key].map((i: any) => i.value);\n }\n if (key !== 'subCategory' && value[key]) {\n valueTemp[key] = value[key];\n }\n });\n return valueTemp;\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n reset() {\n this.reportForm.reset();\n }\n\n download(file: any) {\n this.isDownLoading = true;\n this.cdHttpServeService.get(`/ext/eb-ssms/reporting-service/api/v1/report-file/download/${file.id}`, {}).subscribe({\n next: res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.downloadFileService.downLoadNew(atob(res.data), file.fileName);\n } else {\n this.toast.error(res.message);\n }\n this.isDownLoading = false;\n },\n error: err => {\n this.toast.error(err);\n },\n });\n }\n}\n","
    \n
    \n
    \n {{ 'common.filterSearch' | lang }}\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n {{ reportDateFrom.errors['error'] | lang }}\n {{ reportForm.errors['error'] | lang }}\n \n
    -
    \n
    \n\n \n \n \n \n {{ reportDateTo.errors['error'] | lang }}\n \n\n \n \n \n\n \n \n \n \n\n
    \n
    \n \n {{ 'common.search' | lang }}\n \n \n {{ 'common.reset' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    \n \n Download\n
    \n
    \n \n
    \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const PAGE_SIZE = 10;\n\nexport const I18N_KEY = {\n COMMON_GOT: 'common.gotItWithExclamation',\n INVALID_DATE_FORMAT: 'commission.errorLog.occurDateInvalid',\n INVALID_DATE_REANGE: 'commission.common.dateRangeInvalid',\n ERROR_DATE_REANGE: 'commission.common.dateRangeError',\n};\n\nexport const COMMISSION_REPORT_COLUMNS: Array = [\n { key: 'reportDate', title: 'reportCenter.reportDate' },\n { key: 'reportSubCategory', title: 'reportCenter.subCategory' },\n { key: 'fileName', title: 'reportCenter.fileName' },\n { key: 'action', title: 'reportCenter.action' },\n];\n\nexport const SubCategoryOptions: any[] = [\n { label: 'COMM_COMMON', value: 'COMM_COMMON' },\n { label: 'COMM_SCB_RELATED', value: 'COMM_SCB_RELATED' },\n { label: 'COMM_DBS_RELATED', value: 'COMM_DBS_RELATED' },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\n@Injectable({\n providedIn: 'root',\n})\nexport class ReportCommissionService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.reportingServiceExt}${'/api/v1/report-files/query/Commission'}`, params);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ReportExtractionService } from 'src/app/core/services/report-extraction.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { PageConfig } from 'src/app/shared/data-table';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator, numberStringValidator, rangeValidator } from 'src/app/shared/validators/validators';\nimport { jsonToSheet } from 'src/app/utils/xlsx';\nimport { ReportExtraction } from './report-extraction';\n\n@Component({\n selector: 'app-report-extraction',\n templateUrl: './report-extraction.component.html',\n styleUrls: ['./report-extraction.component.scss'],\n})\nexport class ReportExtractionComponent implements OnInit {\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n iconConfig: CdsIconConfig = {\n color: '#00A758',\n };\n\n downloadButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n showDatePicker = true;\n\n isLoading = false;\n\n numberOfElements = 0;\n\n dataSource: ReportExtraction[] = [];\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n selectAll = false;\n\n isIndeterminate = false;\n\n isMobile = false;\n\n scrollBarWidth = '15px';\n\n // selectStatus?: AutoRolloverStatsE;\n\n // AutoRolloverStatsE = AutoRolloverStatsE;\n\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n extractionTypeConfig: CdsDropdownConfig = {\n label: 'Choose extraction type',\n placeholder: '',\n options: [\n { label: 'Fund Balance', value: 'FUND_BALANCE' },\n { label: 'Contribution History', value: 'CONTRIBUTION_HISTORY' },\n { label: 'Cert List', value: 'CERT_LIST' },\n // { label: 'Hold', value: 'Hold' },\n // { label: \"Estimated Employee's Accrued Benefit\", value: 'ESTIMATED_EMPLOYEE' },\n ],\n };\n\n get employerAccountCodeControl() {\n return this.form?.get('employerAccountCode');\n }\n\n get payrollGroupIdFromControl() {\n return this.form?.get('payrollGroupIdFrom');\n }\n\n get payrollGroupIdInControl() {\n return this.form?.get('payrollGroupIdIn');\n }\n\n get contributionPeriodStartDateControl() {\n return this.form?.get('contributionPeriodStartDate');\n }\n\n get effectiveDateControl() {\n return this.form?.get('effectiveDate');\n }\n\n get downloadButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n get extractionType() {\n return this.form?.get('extractionType')?.value;\n }\n\n get contributionPeriodStartDateDisabled() {\n return this.extractionType !== 'CONTRIBUTION_HISTORY';\n }\n\n get effectiveDateDisabled() {\n return this.extractionType === 'CERT_LIST';\n }\n\n fundBalanceSheetHeader = {\n extractionDate: 'EXTRACTION DATE',\n employerAccountCode: 'EMPLOYER ACCOUNT CODE',\n payrollGroupId: 'PAYROLL GROUP ID',\n fundCd: 'FUND CODE',\n enNm: 'FUND NAME (ENGLISH)',\n untCnt: 'UNIT BALANCE OF INVESTED FUND',\n fundBalance: 'FUND BALANCE',\n bigPrice: 'BID PRICE',\n effDate: 'EFFECTIVE DATE',\n };\n contributionHistorySheetHeader = {\n extractionDate: 'EXTRACTION DATE',\n erAcctCd: 'EMPLOYER ACCOUNT CODE',\n payrollGroupId: 'PAYROLL GROUP ID',\n mbAcctCd: 'MEMBER ACCOUNT CODE',\n lastNm: 'LAST NAME',\n firstNm: 'FIRST NAME',\n conPrdStartDate: 'CONTRIBUTION PERIOD START DATE',\n conPrdEndDate: 'CONTRIBUTION PERIOD END DATE',\n dateJoinScheme: 'SCHEME JOINED DATE',\n mpfaDcRetdDate: 'DEFAULT CONTRIBUTION REPORTED DATE (TO MPFA)',\n mcOntimePayDate: 'MC - ON-TIME PAID DATE',\n vcOntimePayDate: 'VC - ON-TIME PAID DATE',\n riSlryAmt: 'RI',\n bsSlryAmt: 'BASIC SALARY',\n billConAmtEemc: 'BILL CONTRIBUTION AMOUNT (EEMC)',\n billConAmtErmc: 'BILL CONTRIBUTION AMOUNT (ERMC)',\n billConAmtSC: 'BILL CONTRIBUTION AMOUNT (SC)',\n billConAmtEevc: 'BILL CONTRIBUTION AMOUNT (EEVC)',\n billConAmtEevc2: 'BILL CONTRIBUTION AMOUNT (EEVC2) ',\n billConAmtErvc: 'BILL CONTRIBUTION AMOUNT (ERVC)',\n billConAmtErvc2: 'BILL CONTRIBUTION AMOUNT (ERVC2)',\n billConAmtErvc3: 'BILL CONTRIBUTION AMOUNT (ERVC3)',\n billConAmtErvc4: 'BILL CONTRIBUTION AMOUNT (ERVC4)',\n billConAmtErvc5: 'BILL CONTRIBUTION AMOUNT (ERVC5)',\n billConAmtErvc6: 'BILL CONTRIBUTION AMOUNT (ERVC6)',\n billConAmtErvc7: 'BILL CONTRIBUTION AMOUNT (ERVC7)',\n paidAmtEmmc: 'PAID AMOUNT (EEMC)',\n paidAmtErmc: 'PAID AMOUNT (ERMC)',\n paidAmtSC: 'PAID AMOUNT (SC)',\n paidAmtEevc: 'PAID AMOUNT (EEVC)',\n paidAmtEevc2: 'PAID AMOUNT (EEVC2)',\n paidAmtErvc: 'PAID AMOUNT (ERVC)',\n paidAmtErvc2: 'PAID AMOUNT (ERVC2)',\n paidAmtErvc3: 'PAID AMOUNT (ERVC3)',\n paidAmtErvc4: 'PAID AMOUNT (ERVC4)',\n paidAmtErvc5: 'PAID AMOUNT (ERVC5)',\n paidAmtErvc6: 'PAID AMOUNT (ERVC6)',\n paidAmtErvc7: 'PAID AMOUNT (ERVC7)',\n mbmcOntimePayAmt: 'MBMC – ON-TIME PAID AMOUNT',\n ermcOntimePayAmt: 'ERMC – ON-TIME PAID AMOUNT',\n statusCd: 'APPEAL RESULT STATUS',\n surPayDate: 'SURCHARGE PAID DATE',\n cdr: 'CDR',\n vcCdr: 'VC CDR',\n };\n\n certListSheetHeader = {\n extractionDate: 'EXTRACTION DATE',\n erAcctCd: 'EMPLOYER ACCOUNT CODE',\n companyNm: 'COMPANY NAME',\n lastNm: 'LAST NAME',\n firstNm: 'FIRST NAME',\n statusCd: 'MEMBER STATUS',\n mbAcctCd: 'MEMBER ACCOUNT CODE',\n payrollGroupId: 'PAYROLL GROUP ID',\n // todo\n idNumber: 'HK ID/ PASSPORT',\n dob: 'DATE OF BIRTH',\n dateOfEmploy: 'DATE OF EMPLOYMENT',\n vestEntitleDate: 'VESTING ENTITLEMENT START DATE',\n termDate: 'TERMINATION COMPLETION DATE',\n extraField2: 'EXM EE 1ST CONT DATE',\n eeTyp: 'EMPLOYEE TYPE',\n jobPosition: 'JOB POSITION',\n erGrdMbClss: 'EMPLOYER GRADE',\n eeLspSpEntitleAmt: 'EE - LSP/SP Amount Entitled',\n erPayAmt: 'TO ER PAYMENT AMOUNT',\n // erLspSpPaidAmt: 'ER - LSP/SP Amount Paid',\n // untCnt: 'UNVEST ER AMOUNT',\n // estimatedMonth: 'ESTIMATED MONTH OF SERVICES',\n };\n\n EstimatedEmployeeHeader = {\n extractionDate: 'EXTRACTION DATE',\n companyNm: 'COMPANY NAME',\n erAcctCd: 'EMPLOYER ACCOUNT CODE',\n payrollGroupId: 'MEMBER ACCOUNT CODE',\n memberNm: 'MEMBER NAME',\n idNumber: 'HKID/ PASSPORT',\n // need confirm\n ermc: 'EMPLOYER MANDATORY (ESTIMATE ACCRUED BENEFITS)',\n ervc: 'ERVC – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n ervc2: 'ERVC2 – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n ervc3: 'ERVC3 – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n ervc4: 'ERVC4 – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n ervc5: 'ERVC5 – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n ervc6: 'ERVC6 – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n ervc7: 'ERVC7 – EMPLOYER VOLUNTARY (ESTIMATE ACCURED BENEFIT)',\n vestRt: 'VESTING % AS OF DD/MM/YYYY',\n // todo\n vestAmount: 'ESTIMATE VESTED BENEFIT BASED ON VESTING %',\n };\n\n constructor(\n private service: ReportExtractionService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private toastAlert: ToastAlertService,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.permissionCheck();\n this.initForm();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n extractionType: new FormControl('FUND_BALANCE'),\n employerAccountCode: new FormControl('', [Validators.required]),\n payrollGroupIdFrom: new FormControl('', [numberStringValidator()]),\n payrollGroupIdIn: new FormControl('', [numberStringValidator()]),\n contributionPeriodStartDate: new FormControl('', [dateValidator('create.dateError')]),\n effectiveDate: new FormControl('', [Validators.required, dateValidator('create.dateError')]),\n },\n { validators: rangeValidator('commission.report-extraction.invalid-range', 'payrollGroupIdFrom', 'payrollGroupIdIn') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n getRequestParams() {\n const params: ReportExtraction = {\n ...this.form.value,\n };\n params.contributionPeriodStartDate = this.dateTrans(params.contributionPeriodStartDate);\n params.effectiveDate = this.dateTrans(params.effectiveDate);\n return this.removeEmptyItems(params);\n }\n\n removeEmptyItems(obj: any): any {\n return Object.entries(obj).reduce((acc: any, [key, value]) => {\n if (value !== '' && value !== undefined && value !== null) {\n acc[key] = value;\n }\n return acc;\n }, {});\n }\n\n dateTrans(date?: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return '';\n }\n\n getData() {\n const params: ReportExtraction = this.getRequestParams();\n this.isLoading = true;\n this.isIndeterminate = false;\n this.selectAll = false;\n this.service\n .getReport(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n // const list = data.data.filter(item => {\n // return ![1312735, 1312743, 1312750, 1312750, 1318716, 2978633, 3576030, 3472628].some(code => code === item.employerAccountCode);\n // });\n if (data.data.length === 0) {\n this.toastAlert.show('info', 'common.info', 'No data found', 5000);\n return;\n }\n jsonToSheet(\n {\n fileName: this.getFileName(),\n fileType: 'csv',\n header: this.getHeader(),\n },\n this.convertToString(this.createData(data.data))\n );\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n convertToString(arr: Record[]): Record[] {\n return arr.map(obj => {\n const convertedObj: Record = {};\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (obj[key] !== undefined && obj[key] !== null) {\n convertedObj[key] = String(obj[key]);\n } else {\n convertedObj[key] = '';\n }\n }\n }\n\n return convertedObj;\n });\n }\n\n createData(data: any[]) {\n const type = this.form.value.extractionType;\n switch (type) {\n case 'FUND_BALANCE':\n return this.createFundBalanceData(data);\n case 'CONTRIBUTION_HISTORY':\n return this.createContributionHistoryData(data);\n case 'CERT_LIST':\n return this.createCertListData(data);\n case 'ESTIMATED_EMPLOYEE':\n return this.createEstimatedEmployeeData(data);\n default:\n return [];\n }\n }\n\n formatDate(date: string, format: string) {\n if (!date) {\n return '';\n }\n return DateTime.fromFormat(date, format).toFormat('yyyyMMdd');\n }\n\n formatIsoDate(date: string) {\n if (!date) {\n return '';\n }\n return DateTime.fromISO(date).toFormat('yyyyMMdd');\n }\n\n createFundBalanceData(data: any[]) {\n return data.map(item => {\n return {\n extractionDate: this.formatDate(item.extractionDate, 'yyyy-MM-dd'),\n employerAccountCode: item.employerAccountCode,\n payrollGroupId: item.payrollGroupId,\n fundCd: item.fundCd,\n enNm: item.enNm,\n untCnt: item.untCnt,\n fundBalance: item.fundBalance,\n bigPrice: item.bigPrice,\n effDate: this.formatIsoDate(item.effDate),\n };\n });\n }\n\n createContributionHistoryData(data: any[]) {\n return data.map(item => {\n return {\n extractionDate: this.formatDate(item.extractionDate, 'yyyy-MM-dd'),\n erAcctCd: item.erAcctCd,\n payrollGroupId: item.payrollGroupId,\n mbAcctCd: item.mbAcctCd,\n lastNm: item.lastNm,\n firstNm: item.firstNm,\n conPrdStartDate: this.formatDate(item.conPrdStartDate, 'yyyy-MM-dd'),\n conPrdEndDate: this.formatDate(item.conPrdEndDate, 'yyyy-MM-dd'),\n dateJoinScheme: this.formatDate(item.dateJoinScheme, 'yyyy-MM-dd'),\n mpfaDcRetdDate: this.formatDate(item.mpfaDcRetdDate, 'yyyy-MM-dd'),\n mcOntimePayDate: this.formatDate(item.mcOntimePayDate, 'yyyy-MM-dd'),\n vcOntimePayDate: this.formatDate(item.vcOntimePayDate, 'yyyy-MM-dd'),\n riSlryAmt: item.riSlryAmt,\n bsSlryAmt: item.bsSlryAmt,\n billConAmtEemc: item.billConAmtEemc,\n billConAmtErmc: item.billConAmtErmc,\n billConAmtSC: item.billConAmtSC,\n billConAmtEevc: item.billConAmtEevc,\n billConAmtEevc2: item.billConAmtEevc2,\n billConAmtErvc: item.billConAmtErvc,\n billConAmtErvc2: item.billConAmtErvc2,\n billConAmtErvc3: item.billConAmtErvc3,\n billConAmtErvc4: item.billConAmtErvc4,\n billConAmtErvc5: item.billConAmtErvc5,\n billConAmtErvc6: item.billConAmtErvc6,\n billConAmtErvc7: item.billConAmtErvc7,\n paidAmtEmmc: item.paidAmtEmmc,\n paidAmtErmc: item.paidAmtErmc,\n paidAmtSC: item.paidAmtSC,\n paidAmtEevc: item.paidAmtEevc,\n paidAmtEevc2: item.paidAmtEevc2,\n paidAmtErvc: item.paidAmtErvc,\n paidAmtErvc2: item.paidAmtErvc2,\n paidAmtErvc3: item.paidAmtErvc3,\n paidAmtErvc4: item.paidAmtErvc4,\n paidAmtErvc5: item.paidAmtErvc5,\n paidAmtErvc6: item.paidAmtErvc6,\n paidAmtErvc7: item.paidAmtErvc7,\n mbmcOntimePayAmt: item.mbmcOntimePayAmt,\n ermcOntimePayAmt: item.ermcOntimePayAmt,\n statusCd: item.statusCd,\n surPayDate: this.formatDate(item.surPayDate, 'yyyy-MM-dd'),\n cdr: item.cdr,\n vcCdr: item.vcCdr,\n };\n });\n }\n\n createCertListData(data: any[]) {\n return data.map(item => {\n return {\n extractionDate: this.formatDate(item.extractionDate, 'yyyy-MM-dd'),\n erAcctCd: item.erAcctCd,\n companyNm: item.companyNm,\n lastNm: item.lastNm,\n firstNm: item.firstNm,\n statusCd: item.statusCd,\n mbAcctCd: item.mbAcctCd,\n payrollGroupId: item.payrollGroupId,\n idNumber: item.idNumber,\n dob: this.formatDate(item.dob, 'yyyy-MM-dd'),\n dateOfEmploy: this.formatDate(item.dateOfEmploy, 'yyyy-MM-dd'),\n vestEntitleDate: this.formatDate(item.vestEntitleDate, 'yyyy-MM-dd'),\n termDate: this.formatDate(item.termDate, 'yyyy-MM-dd'),\n extraField2: this.formatDate(item.extraField2, 'yyyy-MM-dd'),\n eeTyp: item.eeTyp,\n jobPosition: item.jobPosition,\n erGrdMbClss: item.erGrdMbClss,\n eeLspSpEntitleAmt: item.eeLspSpEntitleAmt,\n erPayAmt: item.erPayAmt,\n // erLspSpPaidAmt: item.erLspSpPaidAmt,\n // untCnt: item.untCnt,\n // estimatedMonth: item.estimatedMonth,\n };\n });\n }\n\n createEstimatedEmployeeData(data: any[]) {\n return data.map(item => {\n return {\n extractionDate: this.formatDate(item.extractionDate, 'yyyy-MM-dd'),\n companyNm: item.companyNm,\n erAcctCd: item.erAcctCd,\n payrollGroupId: item.payrollGroupId,\n memberNm: item.memberNm,\n idNumber: item.idNumber,\n ermc: item.ermc,\n ervc: item.ervc,\n ervc2: item.ervc2,\n ervc3: item.ervc3,\n ervc4: item.ervc4,\n ervc5: item.ervc5,\n ervc6: item.ervc6,\n ervc7: item.ervc7,\n vestRt: item.vestRt,\n vestAmount: item.vestAmount,\n };\n });\n }\n\n getFileName() {\n const type = this.form.value.extractionType;\n switch (type) {\n case 'FUND_BALANCE':\n return 'Fund Balance';\n case 'CONTRIBUTION_HISTORY':\n return 'Contribution History Report';\n case 'CERT_LIST':\n return 'Cert List';\n case 'ESTIMATED_EMPLOYEE':\n return \"Estimated Employee's Accrued Benefit Report\";\n default:\n return '';\n }\n }\n\n getHeader() {\n const type = this.form.value.extractionType;\n switch (type) {\n case 'FUND_BALANCE':\n return this.fundBalanceSheetHeader;\n case 'CONTRIBUTION_HISTORY':\n return this.contributionHistorySheetHeader;\n case 'CERT_LIST':\n return this.certListSheetHeader;\n case 'ESTIMATED_EMPLOYEE':\n return this.EstimatedEmployeeHeader;\n default:\n return {};\n }\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n download() {\n if (this.downloadButtonDisabled) {\n this.employerAccountCodeControl?.markAsTouched();\n this.effectiveDateControl?.markAsTouched();\n return;\n }\n\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.getData();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n });\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.message.update.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.getData();\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n permissionCheck() {\n // this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SHK_AUTO_ROLLOVER_OPS_STAFF).then(hasPermission => {\n // if (hasPermission) {\n // this.columnsConfig = [\n // {\n // key: 'select',\n // title: '',\n // sticky: true,\n // },\n // ...this.columnsConfig,\n // ];\n // }\n // });\n }\n\n onTypeChange(type: string) {\n if (type === 'FUND_BALANCE' || type === 'ESTIMATED_EMPLOYEE') {\n this.effectiveDateControl?.setValidators([Validators.required, dateValidator('create.dateError')]);\n } else {\n this.effectiveDateControl?.setValidators([dateValidator('create.dateError')]);\n }\n\n if (type === 'CONTRIBUTION_HISTORY') {\n this.contributionPeriodStartDateControl?.enable();\n this.contributionPeriodStartDateControl?.setValidators([Validators.required, dateValidator('create.dateError')]);\n } else {\n this.contributionPeriodStartDateControl?.setValidators([dateValidator('create.dateError')]);\n this.contributionPeriodStartDateControl?.setValue(undefined);\n this.contributionPeriodStartDateControl?.disable();\n this.contributionPeriodStartDateControl?.markAsPristine();\n this.contributionPeriodStartDateControl?.markAsUntouched();\n }\n this.effectiveDateControl?.updateValueAndValidity();\n this.contributionPeriodStartDateControl?.updateValueAndValidity();\n\n if (type === 'CERT_LIST' || type === 'CONTRIBUTION_HISTORY') {\n this.effectiveDateControl?.setValue(undefined);\n this.effectiveDateControl?.disable();\n this.effectiveDateControl?.markAsPristine();\n this.effectiveDateControl?.markAsUntouched();\n } else {\n this.effectiveDateControl?.enable();\n }\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n });\n }\n\n employerAccountCodeChange(value: string) {\n if (!value) return;\n this.employerAccountCodeControl?.setValue(value.trim());\n }\n}\n","\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n {{ 'commission.report-extraction.search' | lang }}\n
    \n
    \n
    \n \n\n
    \n Please input Employer Account Code\n
    \n
    \n\n
    \n
    \n \n\n
    \n {{ payrollGroupIdFromControl?.errors?.['invalidRange'] | lang }}\n\n {{ payrollGroupIdFromControl?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    -
    \n
    \n \n\n
    \n {{ payrollGroupIdInControl?.errors?.['invalidRange'] | lang }}\n\n {{ payrollGroupIdInControl?.errors?.['invalidNumberString'] }}\n
    \n
    \n
    \n
    \n \n \n \n\n \n {{\n 'create.dateError' | lang\n }}\n Please input Contribution Period Start Date\n
    \n
    \n
    \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n\n Please input Effective Date\n
    \n
    \n
    \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nimport { dateRangeInCompleteValidator, dateRangeInvalidValidator, dateValidator } from 'src/app/core/validators';\nimport { COMMISSION_REPORT_COLUMNS, I18N_KEY, PAGE_SIZE, SubCategoryOptions } from './report-mflub.config';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { DownloadFileService } from 'src/app/shared/download-file/download-file.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { ReportMflubService } from './report-mflub.service';\n\n@Component({\n selector: 'app-report-mflub',\n templateUrl: './report-mflub.component.html',\n styleUrls: ['./report-mflub.component.scss'],\n})\nexport class ReportMflubComponent implements OnInit {\n isShowSearchDatePicker = true;\n isDownLoading = false;\n isDataLoading = false;\n pageConfig: PageConfig = {};\n dataDisplayed: any[] = [];\n columnsConfig: Array = COMMISSION_REPORT_COLUMNS;\n subCategoryOptions = SubCategoryOptions;\n\n previousSearchParams: any;\n\n reportForm = new FormGroup(\n {\n reportDateFrom: new FormControl(null, [dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })]),\n reportDateTo: new FormControl(null, [dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })]),\n subCategory: new FormControl([], {\n initialValueIsDefault: true,\n }),\n reportName: new FormControl(null),\n },\n [\n dateRangeInCompleteValidator('reportDateFrom', 'reportDateTo', { error: I18N_KEY.ERROR_DATE_REANGE }),\n dateRangeInvalidValidator('reportDateFrom', 'reportDateTo', { error: I18N_KEY.INVALID_DATE_REANGE }),\n ]\n );\n\n get reportDateFrom() {\n return this.reportForm.get('reportDateFrom') as FormControl;\n }\n\n get reportDateTo() {\n return this.reportForm.get('reportDateTo') as FormControl;\n }\n\n get subCategory() {\n return this.reportForm.get('subCategory') as FormControl;\n }\n\n get reportName() {\n return this.reportForm.get('reportName') as FormControl;\n }\n\n get searchDisabled() {\n let tag = true;\n const controlValues = this.reportForm.value;\n const keys = Object.keys(controlValues);\n keys.forEach((key: string) => {\n if (controlValues[key]) {\n tag = false;\n }\n });\n\n return tag || this.reportForm.invalid || this.isDataLoading;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private downloadFileService: DownloadFileService,\n private toast: CdsToastService,\n private reportMflubService: ReportMflubService\n ) {}\n\n ngOnInit(): void {\n this.search();\n }\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getData();\n }\n\n getData() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.reportMflubService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data ? res.data.totalElements : 0,\n };\n const tempData = res.data?.content || [];\n this.dataDisplayed = tempData;\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n if (formValue.reportDateFrom) {\n formValue.reportDateFrom = moment(formValue.reportDateFrom, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (formValue.reportDateTo) {\n formValue.reportDateTo = moment(formValue.reportDateTo, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const valueTemp: any = {};\n const value = this.reportForm.value;\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (key === 'subCategory' && value[key].length) {\n valueTemp[key] = value[key].map((i: any) => i.value);\n }\n if (key !== 'subCategory' && value[key]) {\n valueTemp[key] = value[key];\n }\n });\n return valueTemp;\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n reset() {\n this.reportForm.reset();\n }\n\n download(file: any) {\n this.isDownLoading = true;\n this.cdHttpServeService.get(`/ext/eb-ssms/reporting-service/api/v1/report-file/download/${file.id}`, {}).subscribe({\n next: res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.downloadFileService.downLoadNew(atob(res.data), file.fileName);\n } else {\n this.toast.error(res.message);\n }\n this.isDownLoading = false;\n },\n error: err => {\n this.toast.error(err);\n },\n });\n }\n}\n","
    \n
    \n
    \n {{ 'common.filterSearch' | lang }}\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n {{ reportDateFrom.errors['error'] | lang }}\n {{ reportForm.errors['error'] | lang }}\n \n
    -
    \n
    \n\n \n \n \n \n {{ reportDateTo.errors['error'] | lang }}\n \n\n \n \n \n\n \n \n \n \n\n
    \n
    \n \n {{ 'common.search' | lang }}\n \n \n {{ 'common.reset' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    \n \n Download\n
    \n
    \n \n
    \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const PAGE_SIZE = 10;\n\nexport const I18N_KEY = {\n COMMON_GOT: 'common.gotItWithExclamation',\n INVALID_DATE_FORMAT: 'commission.errorLog.occurDateInvalid',\n INVALID_DATE_REANGE: 'commission.common.dateRangeInvalid',\n ERROR_DATE_REANGE: 'commission.common.dateRangeError',\n};\n\nexport const COMMISSION_REPORT_COLUMNS: Array = [\n { key: 'reportDate', title: 'reportCenter.reportDate' },\n { key: 'reportSubCategory', title: 'reportCenter.subCategory' },\n { key: 'fileName', title: 'reportCenter.fileName' },\n { key: 'action', title: 'reportCenter.action' },\n];\n\nexport const SubCategoryOptions: any[] = [\n // { label: 'MPF', value: 'MPF' },\n { label: 'ORSO/Macau', value: 'ORSO/Macau' },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\n@Injectable({\n providedIn: 'root',\n})\nexport class ReportMflubService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.reportingServiceExt}${'/api/v1/report-files/query/MLFUB'}`, params);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { EEEmpfDetailSimple, EEMdIffDetailSimple, EREmpfDetailSimple, ERMdIffDetailSimple } from './add-md-reference-number-popup.model';\nimport { AddMdService } from 'src/app/core/services/add-md/add-md.service';\nimport { catchError, map, Observable, of } from 'rxjs';\n\n@Component({\n selector: 'app-add-md-reference-number-popup',\n templateUrl: './add-md-reference-number-popup.component.html',\n styleUrls: ['./add-md-reference-number-popup.component.scss'],\n})\nexport class AddMdReferenceNumberPopupComponent implements OnInit {\n step = 1;\n mdIffControl: FormControl = new FormControl('', {\n initialValueIsDefault: true,\n });\n eeEmpfDetailSimple?: EEEmpfDetailSimple;\n erEmpfDetailSimple?: EREmpfDetailSimple;\n mdIffDetail?: any;\n eeMdIffDetailSimple?: EEMdIffDetailSimple;\n erMdIffDetailSimple?: ERMdIffDetailSimple;\n\n get isNoChange() {\n return this.mdIffControl.value === '';\n }\n\n get eMPFPhoneNumber() {\n if (this.data.prodType === 'EE') {\n if (!this.eeEmpfDetailSimple) {\n return 'N/A';\n }\n return `(+${this.eeEmpfDetailSimple?.phoneCountry}) ${this.eeEmpfDetailSimple?.phone}`;\n } else {\n if (!this.erEmpfDetailSimple) {\n return 'N/A';\n }\n return `(+${this.erEmpfDetailSimple?.phoneCountry}) ${this.erEmpfDetailSimple?.phone}`;\n }\n }\n\n get declarationDate() {\n if (this.data.prodType === 'EE') {\n if (!this.eeMdIffDetailSimple) {\n return null;\n }\n return this.eeMdIffDetailSimple?.declarationDate;\n } else {\n if (!this.erMdIffDetailSimple) {\n return null;\n }\n return this.erMdIffDetailSimple?.declarationDate;\n }\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n empfNo: string;\n prodType: 'EE' | 'ER';\n },\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private notifyService: NotifyService,\n private addMdService: AddMdService\n ) {}\n\n ngOnInit(): void {\n this.cdHttpServeService\n .get('/ext/eb-ssms-sales-journey-service/empf/detailSimpleByEmpfNo', { empfNo: this.data.empfNo })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (this.data.prodType === 'EE') {\n this.eeEmpfDetailSimple = res.data as EEEmpfDetailSimple;\n } else if (this.data.prodType === 'ER') {\n this.erEmpfDetailSimple = res.data as EREmpfDetailSimple;\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n\n this.cdHttpServeService\n .get('/ext/eb-ssms-sales-journey-service/md/detailSimpleByMdNo', { mdNo: this.mdIffControl.value })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (this.data.prodType === 'EE') {\n this.eeMdIffDetailSimple = res.data as EEMdIffDetailSimple;\n } else if (this.data.prodType === 'ER') {\n this.erMdIffDetailSimple = res.data as ERMdIffDetailSimple;\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n closeCurrentPopup() {\n this.dialogRef.close();\n }\n\n onReset() {\n this.step = 1;\n this.mdIffControl.reset();\n }\n\n onSubmit() {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{ rejectReasonCode: number }>('/ext/eb-ssms-sales-journey-service/empf/addMdNo', {\n mdNo: this.mdIffControl.value,\n empfNo: this.data.empfNo,\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.dialogRef.close();\n this.cdsPopup.open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.change.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n });\n } else if (res.result === 4) {\n let msg = this.langService.translate('common.error');\n if (res.data.rejectReasonCode === -1) {\n msg = this.langService.translate('empf-ref-no-to-md-case-error-1');\n } else if (res.data.rejectReasonCode > -5 && res.data.rejectReasonCode < -1) {\n msg = this.langService.translate('empf-ref-no-to-md-case-error-2');\n } else if (res.data.rejectReasonCode === -5) {\n msg = this.langService.translate('empf-ref-no-to-md-case-error-1');\n }\n this.dialogRef.close();\n this.cdsPopup.open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: msg,\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n });\n } else {\n this.alert.warning('Warning!', `${res.message}`);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n search = (query: string, page: number, size: number): Observable<{ label: string; value: string }[]> => {\n return this.addMdService.mdNoLike(query, page, size).pipe(\n map(res => {\n if (res.result !== 0 || !res.data) {\n return [];\n } else {\n return res.data.map(item => ({\n value: item.mdNo,\n label: `${item.mdNo};${item.code};${item.productType}`,\n }));\n }\n }),\n catchError(() => {\n return of([]);\n })\n );\n };\n\n onResultSelected(mdNo: string) {\n this.cdHttpServeService.get('/ext/eb-ssms-sales-journey-service/md/detailByMdNo', { mdNo: mdNo }).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.mdIffDetail = res.data;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n get isDisabledAdd() {\n return this.mdIffControl.value === '';\n }\n\n onBackToEdit() {\n this.step = 1;\n }\n\n onAdd() {\n if (this.isDisabledAdd) {\n return;\n }\n\n this.step = 2;\n }\n}\n","
    \n
    \n \n
    \n
    \n
    \n Add IFF Reference Number\n
    \n
    \n IFF Reference Number\n
    \n
    \n \n
    \n
    \n *請確保資料與客戶在eMPF上提供的資料一致\n
    \n
    \n
    \n
    \n Confirmation\n
    \n
    \n MD_IFF information\n
    \n
    \n
    \n
    \n
    \n IFF Reference Number\n
    \n
    \n {{ mdIffControl.value || 'N/A' }}\n
    \n
    \n
    \n
    \n Client Name\n
    \n
    \n {{ eeMdIffDetailSimple?.clientName || 'N/A' }}\n
    \n
    \n \n
    \n
    \n Employer Name\n
    \n
    \n {{ erMdIffDetailSimple?.employerName || 'N/A' }}\n
    \n
    \n
    \n
    \n BR Number\n
    \n
    \n {{ erMdIffDetailSimple?.brNo || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Declaration date\n
    \n
    \n {{ declarationDate | date : 'dd/MM/yyyy' }}\n
    \n
    \n N/A\n
    \n
    \n
    \n\n
    \n eMPF Information\n
    \n
    \n
    \n
    \n
    \n eMPF Reference Number\n
    \n
    \n {{ data.empfNo || 'N/A' }}\n
    \n
    \n
    \n
    \n Client Name\n
    \n
    \n {{ eeEmpfDetailSimple?.clientName || 'N/A' }}\n
    \n
    \n
    \n
    \n Employer Name\n
    \n
    \n {{ erEmpfDetailSimple?.companyName || 'N/A' }}\n
    \n
    \n
    \n
    \n BR Number\n
    \n
    \n {{ erEmpfDetailSimple?.brNo || 'N/A' }}\n
    \n
    \n
    \n
    \n Phone Number from eMPF\n
    \n
    \n {{ eMPFPhoneNumber || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Reset\n Add\n Back to Edit\n
    \n Confirm and Submit\n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { EEMdDetailSimple, ERMdDetailSimple } from './add-mpf-reference-number-popup.model';\n\n@Component({\n selector: 'app-add-mpf-reference-number-popup',\n templateUrl: './add-mpf-reference-number-popup.component.html',\n styleUrls: ['./add-mpf-reference-number-popup.component.scss'],\n})\nexport class AddMpfReferenceNumberPopupComponent implements OnInit {\n step = 1;\n mpfControl: FormControl = new FormControl('', {\n initialValueIsDefault: true,\n });\n eeMdDetailSimple?: EEMdDetailSimple;\n erMdDetailSimple?: ERMdDetailSimple;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n mdNo: string;\n prodType: 'EE' | 'ER';\n },\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private notifyService: NotifyService\n ) {}\n\n ngOnInit(): void {\n this.queryDetailSimpleByMdNo();\n }\n\n private queryDetailSimpleByMdNo() {\n this.cdHttpServeService.get('/ext/eb-ssms-sales-journey-service/md/detailSimpleByMdNo', { mdNo: this.data.mdNo }).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (this.data.prodType === 'EE') {\n this.eeMdDetailSimple = res.data;\n } else if (this.data.prodType === 'ER') {\n this.erMdDetailSimple = res.data;\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n closeCurrentPopup() {\n this.dialogRef.close();\n }\n\n onReset() {\n if (this.isNoChange) {\n return;\n }\n this.step = 1;\n this.mpfControl.reset();\n }\n\n onBackToEdit() {\n this.step = 1;\n }\n\n onSubmit() {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{ rejectReasonCode: number }>('/ext/eb-ssms-sales-journey-service/md/addEmpfNo', {\n mdNo: this.data.mdNo,\n empfNo: this.mpfControl.value,\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.dialogRef.close();\n this.cdsPopup.open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.change.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n });\n } else if (res.result === 4) {\n let msg = this.langService.translate('common.error');\n if (res.data.rejectReasonCode === -1) {\n msg = this.langService.translate('empf-ref-no-to-md-case-error-1');\n } else if (res.data.rejectReasonCode > -5 && res.data.rejectReasonCode < -1) {\n msg = this.langService.translate('empf-ref-no-to-md-case-error-2');\n } else if (res.data.rejectReasonCode === -5) {\n msg = this.langService.translate('empf-ref-no-to-md-case-error-1');\n }\n this.dialogRef.close();\n this.cdsPopup.open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: msg,\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n });\n } else {\n this.alert.warning('Warning!', `${res.message}`);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n get isNoChange() {\n return this.mpfControl.value === '';\n }\n\n onAdd() {\n if (this.isNoChange) {\n return;\n }\n this.step = 2;\n }\n}\n","
    \n
    \n \n
    \n
    \n
    \n Add MPF Reference Number\n
    \n
    \n MPF Reference Number\n
    \n
    \n \n
    \n
    \n *請確保資料與客戶在eMPF上提供的資料一致\n
    \n
    \n
    \n
    \n Confirmation\n
    \n
    \n MD_IFF information\n
    \n
    \n
    \n
    \n IFF Reference Number\n
    \n
    \n {{ data.mdNo }}\n
    \n
    \n
    \n
    \n
    \n Client Name\n
    \n
    \n {{ eeMdDetailSimple?.clientName || 'N/A' }}\n
    \n
    \n
    \n
    \n HKID/Passport No.\n
    \n
    \n (HKID) {{ eeMdDetailSimple?.hkId }}\n
    \n
    \n (PassportNo) {{ eeMdDetailSimple?.passportNo }}\n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n
    \n
    \n Employer Name\n
    \n
    \n {{ erMdDetailSimple?.employerName || 'N/A' }}\n
    \n
    \n
    \n
    \n BR Number\n
    \n
    \n {{ erMdDetailSimple?.brNo || 'N/A' }}\n
    \n
    \n
    \n
    \n eMPF Information\n
    \n
    \n
    \n
    \n eMPF Reference Number\n
    \n
    \n {{ mpfControl.value || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Reset\n Add\n Back to Edit\n
    \n Confirm and Submit\n
    \n
    \n
    \n","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { SplitAgentInfo, SplitAgentNotificationInfoBody } from './split-agent-notification-info-resolve/split-agent-notification-info-resolve.model';\n\n@Component({\n selector: 'app-agent-confirmation',\n templateUrl: './agent-confirmation.component.html',\n styleUrls: ['./agent-confirmation.component.scss'],\n})\nexport class AgentConfirmationComponent implements OnInit, AfterViewInit {\n id = '';\n isUnderstood = false;\n splitAgentNotificationInfoBody?: SplitAgentNotificationInfoBody;\n primaryAgent?: SplitAgentInfo;\n\n private readonly submissionUrl = '/ext/eb-ssms-sales-journey-service/splitAgentNotification/submission';\n\n constructor(\n private route: ActivatedRoute,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private router: Router // private cdsPopup: CdsPopupService\n ) {}\n\n ngOnInit() {\n const language = this.route.snapshot.queryParams['language'];\n this.cdsLangService.setCurrentLang(language === 'en' ? 'en' : 'zh');\n\n this.route.data.subscribe(({ splitAgentNotificationInfo }) => {\n this.splitAgentNotificationInfoBody = splitAgentNotificationInfo.body;\n if (this.splitAgentNotificationInfoBody) {\n const index = this.splitAgentNotificationInfoBody.agentInfos.findIndex(agent => agent.primaryAgent);\n this.primaryAgent = this.splitAgentNotificationInfoBody.agentInfos[index];\n this.splitAgentNotificationInfoBody.agentInfos = this.splitAgentNotificationInfoBody.agentInfos.filter(agent => !agent.primaryAgent);\n }\n\n this.id = splitAgentNotificationInfo.id;\n });\n }\n\n ngAfterViewInit(): void {\n Promise.resolve().then(() => {\n (document.getElementsByClassName('cds-navigation-toolbar')[0] as HTMLElement).style.display = 'none';\n (document.getElementsByClassName('cds-menu-container')[0] as HTMLElement).style.display = 'none';\n });\n }\n\n get agentInfos(): SplitAgentInfo[] {\n if (this.primaryAgent && this.splitAgentNotificationInfoBody) {\n return [this.primaryAgent, ...this.splitAgentNotificationInfoBody.agentInfos];\n }\n return [];\n }\n\n get isEr() {\n return this.splitAgentNotificationInfoBody?.summaryType === 'ER';\n }\n\n getNumOfServicingAgent(index: number) {\n let val = '';\n\n switch (index) {\n case 1:\n val = `${this.cdsLangService.translate('agentConfirmation.second')}${this.cdsLangService.currentLang === 'en' ? ' ' : ''}`;\n break;\n\n case 2:\n val = `${this.cdsLangService.translate('agentConfirmation.third')}${this.cdsLangService.currentLang === 'en' ? ' ' : ''}`;\n break;\n\n default:\n break;\n }\n\n return val;\n }\n\n onSubmission() {\n this.cdHttpServeService\n .post(this.submissionUrl, {\n pageId: this.id,\n acknowledged: this.isUnderstood,\n })\n .subscribe(res => {\n if (res.result === 0) {\n this.router.navigate(['/success/split-agent-notification-info-success']).then(() => {\n setTimeout(() => {\n this.router.navigate(['/home']);\n }, 5000);\n });\n } else {\n this.alert.error('Error', res.message);\n }\n });\n }\n\n getAgentName(agent: SplitAgentInfo) {\n return this.cdsLangService.currentLang === 'en' ? agent.agentName || agent.agentNameTc : agent.agentNameTc || agent.agentName;\n }\n\n getCompanyName(splitAgentNotificationInfoBody?: SplitAgentNotificationInfoBody) {\n if (!splitAgentNotificationInfoBody) {\n return '';\n }\n\n return this.cdsLangService.currentLang === 'en'\n ? splitAgentNotificationInfoBody.companyName || splitAgentNotificationInfoBody.companyNameZh\n : splitAgentNotificationInfoBody.companyNameZh || splitAgentNotificationInfoBody.companyName;\n }\n}\n","
    \n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n {{ 'agentConfirmation.formTitle' | lang }}\n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n {{ 'agentConfirmation.clientHKIDPassportNo' | lang }}\n
    \n
    \n {{ splitAgentNotificationInfoBody?.hkidOrPassportNo }}\n
    \n \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n\n
    \n \n
    \n {{ 'erAgentConfirmation.employerName' | lang }}\n
    \n
    \n {{ getCompanyName(splitAgentNotificationInfoBody) }}\n
    \n
    \n
    \n {{ 'erAgentConfirmation.bRNumber' | lang }} :\n
    \n
    \n {{ splitAgentNotificationInfoBody?.brNo }}\n
    \n
    \n
    \n \n
    \n {{ 'erAgentConfirmation.bRNumber' | lang }}\n
    \n
    \n {{ splitAgentNotificationInfoBody?.brNo }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'agentConfirmation.applicationInformation' | lang }}\n
    \n
    \n
    \n {{ 'agentConfirmation.eMPFRef' | lang }}\n {{ 'erAgentConfirmation.eMPFReferenceNo' | lang }}\n
    \n
    \n {{ splitAgentNotificationInfoBody?.mdNo }}\n
    \n
    \n
    \n
    \n {{ getNumOfServicingAgent(i) }}{{ 'agentConfirmation.servicingAgentInfo' | lang }}\n
    \n
    \n
    \n {{ agent.agentCd }}\n
    \n
    \n {{ getAgentName(agent) }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'agentConfirmation.MPFIntermediaryStatement' | lang }}\n
    \n
    \n
    \n {{ 'agentConfirmation.declarationContents1' | lang }}\n
    \n
    \n {{ 'agentConfirmation.declarationContents2' | lang }}\n
    \n
    \n {{ 'agentConfirmation.iHave1' | lang }}\n
    \n
    \n
    \n a) \n
    \n
    \n {{ 'agentConfirmation.declarationContents3' | lang }}\n
    \n
    \n
    \n
    \n b) \n
    \n
    \n {{ 'agentConfirmation.declarationContents4' | lang }}\n
    \n
    \n
    \n
    \n c) \n
    \n
    \n {{ 'agentConfirmation.declarationContents5' | lang }}\n
    \n
    \n
    \n
    \n d) \n
    \n
    \n {{ 'agentConfirmation.declarationContents6' | lang }}\n
    \n
    \n
    \n {{ 'agentConfirmation.declarationContents7' | lang }}\n
    \n
    \n {{ 'agentConfirmation.iHave1' | lang }}\n
    \n
    \n
    \n e) \n
    \n
    \n {{ 'agentConfirmation.declarationContents8' | lang }}\n
    \n
    \n
    \n
    \n f) \n
    \n
    \n {{ 'agentConfirmation.declarationContents9' | lang }}\n
    \n
    \n
    \n {{ 'agentConfirmation.declarationContents10' | lang }}\n
    \n
    \n {{ 'agentConfirmation.iHave2' | lang }}\n
    \n
    \n
    \n g) \n
    \n
    \n {{ 'agentConfirmation.declarationContents11' | lang }}\n
    \n
    \n
    \n
    \n h) \n
    \n
    \n {{ 'agentConfirmation.declarationContents12' | lang }}\n
    \n
    \n
    \n
    \n i) \n
    \n
    \n {{ 'agentConfirmation.declarationContents13' | lang }}\n
    \n
    \n
    \n {{ 'agentConfirmation.declarationContents14' | lang }}\n
    \n
    \n {{ 'agentConfirmation.declarationContents15' | lang }}\n
    \n
    \n
    \n a) \n
    \n
    \n {{ 'agentConfirmation.declarationContents16' | lang }}\n
    \n
    \n
    \n
    \n b) \n
    \n
    \n {{ 'agentConfirmation.declarationContents17' | lang }}\n
    \n
    \n
    \n
    \n c) \n
    \n
    \n {{ 'agentConfirmation.declarationContents18' | lang }}\n
    \n
    \n
    \n
    \n d) \n
    \n
    \n {{ 'agentConfirmation.declarationContents19' | lang }}\n
    \n
    \n
    \n {{ 'agentConfirmation.declarationContents20' | lang }}\n
    \n
    \n {{ 'agentConfirmation.declarationContents21' | lang }}\n
    \n
    \n {{ 'agentConfirmation.declarationContents22' | lang }}\n
    \n
    \n \n {{ 'agentConfirmation.readAndUnderstood' | lang }}\n {{ 'erAgentConfirmation.readAndUnderstood' | lang }}\n
    \n
    \n
    \n\n
    \n {{ 'confirmation.submit' | lang }}\n
    \n
    \n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-split-agent-notification-info-error',\n templateUrl: './split-agent-notification-info-error.component.html',\n styleUrls: ['./split-agent-notification-info-error.component.scss'],\n})\nexport class SplitAgentNotificationInfoErrorComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n
    \n \n
    \n
    \n \n {{ 'common.splitAgentNotificationInfoError' | lang }}\n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\n\nimport { Observable, map, throwError, catchError } from 'rxjs';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { SplitAgentNotificationInfoBody } from './split-agent-notification-info-resolve.model';\n\ninterface ResolveResult {\n body: SplitAgentNotificationInfoBody;\n id: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SplitAgentNotificationInfoResolveService implements Resolve {\n private readonly splitAgentNotificationInfoUrl = '/ext/eb-ssms-sales-journey-service/splitAgentNotification/info';\n\n constructor(private router: Router, private cdHttpServeService: CdHttpServeService, private cdsLangService: CdsLangService, private alert: CdsAlertService) {}\n\n resolve(route: ActivatedRouteSnapshot): Observable | Promise | ResolveResult {\n const id = route.paramMap.get('id') || '';\n const language = route.queryParams['language'];\n\n return this.cdHttpServeService\n .get(this.splitAgentNotificationInfoUrl, {\n pageId: id,\n })\n .pipe(\n map(res => {\n if (res.result === 15) {\n this.router.navigate(['/success/split-agent-notification-info-success']).then(() => {\n this.cdsLangService.setCurrentLang(language === 'en' ? 'en' : 'zh');\n setTimeout(() => {\n this.router.navigate(['/home']);\n }, 5000);\n });\n } else if (res.result !== 0) {\n this.router.navigate(['/error/split-agent-notification-info-error']).then(() => {\n this.cdsLangService.setCurrentLang(language === 'en' ? 'en' : 'zh');\n });\n }\n return { body: res.data, id: id };\n }),\n catchError(msg => {\n const s = window.location.href.indexOf('/salesjourney/split-agent-notification');\n const path = window.location.href.substring(s);\n sessionStorage.setItem('targetUrl', path);\n this.router.navigate(['/error/split-agent-notification-info-error']).then(() => {\n this.cdsLangService.setCurrentLang(language === 'en' ? 'en' : 'zh');\n this.alert.error('Error', String(msg));\n });\n return throwError(() => msg);\n })\n );\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-split-agent-notification-info-success',\n templateUrl: './split-agent-notification-info-success.component.html',\n styleUrls: ['./split-agent-notification-info-success.component.scss'],\n})\nexport class SplitAgentNotificationInfoSuccessComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n
    \n \n
    \n
    \n
    \n \n {{ 'common.splitAgentNotificationInfoSuccess' | lang }}\n \n
    \n \n
    \n
    \n","import { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { Subscription } from 'rxjs';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ScreenType } from 'src/app/core/models/enum/screen.enum';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault, numRanking, pageToTop } from 'src/app/utils/utils';\nimport { VoidInfo } from '../case-details/case-details.component';\nimport { AdviseIffstatusComponent } from '../case-summary/advise-iffstatus/advise-iffstatus.component';\nimport { AdviseTransferStatusComponent } from '../case-summary/advise-transfer-status/advise-transfer-status.component';\nimport { CasesummaryService } from '../case-summary/casesummary.service';\nimport { ResendEiffComponent } from '../resend-eiff/resend-eiff.component';\nimport { ResendEiffResendType } from '../resend-eiff/resend-eiff.model';\nimport { IffService } from '../service/iff.service';\nimport { EmpfDetail } from '../service/model/empf-details.model';\nimport { DifferentAgentStatusComponent } from './../different-agent-status/different-agent-status.component';\nimport { ErCaseDetailsRsp } from './case-details-er.model';\nimport { VoidEiffPopupComponent } from '../sales-support-summary/void-eiff-popup/void-eiff-popup.component';\nimport { FormControl } from '@angular/forms';\n\ninterface ErTransferDetailsItemRsp {\n newMILScheme: {\n newTrusteeName: string;\n schemeMemberAccNum: string;\n schemeName: string;\n };\n originalScheme: {\n originalTrusteeName: string;\n schemeMemberAccNum: string;\n schemeName: string;\n };\n transferStatus: string;\n transferStatusEnum: number;\n}\n\n@Component({\n selector: 'app-case-details-er',\n templateUrl: './case-details-er.component.html',\n styleUrls: ['./case-details-er.component.scss'],\n})\nexport class CaseDetailsErComponent implements OnInit, AfterViewInit, OnDestroy {\n numRanking = numRanking;\n PermissionItem = PermissionItem;\n PermissionAccess = PermissionAccess;\n ScreenType = ScreenType;\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n public languageChangeService: LanguageChangeService,\n public cdsLangService: CdsLangService,\n public caseSummaryService: CasesummaryService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private cdsPopup: CdsPopupService,\n private notifyService: NotifyService,\n private permissionService: PermissionService,\n private authenticationService: AuthenticationService,\n private iffService: IffService\n ) {}\n backErIcon = ActionIcons.button_left_filled;\n lanChangeSubscription?: Subscription;\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n language = this.cdsLangService.currentLang === 'en' ? 'EN' : 'TC';\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n transferDetails: ErTransferDetailsItemRsp[] = [];\n empfDetailsSubscription?: Subscription;\n erCaseDetails?: ErCaseDetailsRsp;\n isIntragroupTransfer = new FormControl({ value: false, disabled: true });\n empfRefNo?: string;\n salesJourneySummariesId?: string;\n from?: string;\n isSendS2 = false;\n isShowSend = false;\n isServicingAgent = false;\n salesSupportSummaryTab?: string;\n servicingAgentChannel?: AgentChannel;\n disableEditAgentByChannel = false;\n screenType: ScreenType = ScreenType.PC;\n disableVoidEIFF = false;\n\n ngOnInit(): void {\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n this.salesJourneySummariesId = this.route.snapshot.paramMap.get('salesJourneySummariesId') || '';\n this.empfRefNo = this.route.snapshot.paramMap.get('empfRefNo') || '';\n this.from = this.route.snapshot.paramMap.get('from') || '';\n this.salesSupportSummaryTab = this.route.snapshot.paramMap.get('salesSupportSummaryTab') || '';\n\n if (this.salesJourneySummariesId) {\n const params = { salesJourneySummaryId: this.salesJourneySummariesId };\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/employerSalesJourneySummaries/caseDetails', params).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.erCaseDetails = res.data;\n this.isIntragroupTransfer.setValue(this.erCaseDetails?.intraGroup || false);\n this.getServicingAgentChannel();\n this.authenticationService.currentUserValue().then(res => {\n const servicingAgentId = res.id + '';\n this.iffService.getAgentCode(servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const agentList = this.erCaseDetails?.agentsInfos?.filter(agent => agent.agentCd === res.data.agentCode);\n this.isServicingAgent = Boolean(agentList && agentList[0]?.servicingAgent);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n if (this.empfRefNo) {\n const empfRefNo = this.empfRefNo;\n const params = { empfRefNo: empfRefNo };\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/employerSalesJourneySummaries/transferDetails', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.transferDetails = res.data;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n this.checkSendS2();\n }\n\n private resizeListener = () => {\n const isPad = window.matchMedia('only screen and (max-width: 1023px)').matches || window.screen.width < 1023;\n if (isPad) {\n this.screenType = ScreenType.PAD;\n this.notifyService.notifyHideNavigationLang();\n } else {\n this.screenType = ScreenType.PC;\n }\n };\n\n ngAfterViewInit(): void {\n Promise.all([\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SALES_JOURNEY_AGENT),\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_MEMBER),\n ]).then(hasPermission => {\n this.isShowSend = hasPermission[0] || hasPermission[1];\n });\n pageToTop();\n if (this.from === 'superAdmin') {\n this.resizeListener();\n this.notifyService.notifyHideNavigationLang();\n window.addEventListener('resize', this.resizeListener);\n this.languageChangeService.setLang('en');\n }\n }\n\n ngOnDestroy(): void {\n if (this.from === 'superAdmin') {\n this.notifyService.notifyDisplayNavigationLang();\n window.removeEventListener('resize', this.resizeListener);\n }\n }\n\n onBackToCaseSummaryClick() {\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n\n onBackToSalesSupportSummaryClick() {\n const queryParams = { productType: 'ER', salesSupportSummaryTab: this.salesSupportSummaryTab };\n this.router.navigate(['/salesjourney/sales-support-summary', queryParams]);\n }\n\n onBackTBranchLebvelClick() {\n const queryParams = { productType: 'ER' };\n this.router.navigate(['/salesjourney/app-paper-summary', queryParams]);\n }\n\n onBackIffDeclinedDashboard() {\n this.router.navigate(['/salesjourney/iff-declined-dashboard']);\n }\n\n onBackSuperAdmin() {\n const queryParams = { productType: 'ER' };\n this.router.navigate(['/salesjourney/super-admin', queryParams]);\n }\n\n backToTop() {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTo(0, 0);\n }\n\n getAgentName(agent?: { agentName: string; agentNameChn: string }) {\n if (!agent) {\n return '';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return agent.agentName || agent.agentNameChn;\n } else {\n return agent.agentNameChn || agent.agentName;\n }\n }\n\n get primaryAgentInfo() {\n const a = this.erCaseDetails?.agentsInfos?.filter(item => item.primaryAgent);\n if (a && a.length > 0) {\n return a[0];\n }\n return undefined;\n }\n\n get splitAgentInfos() {\n const a = this.erCaseDetails?.agentsInfos?.filter(item => !item.primaryAgent);\n if (a && a.length > 0) {\n return a;\n }\n return [];\n }\n\n get getEmployerName() {\n if (!this.erCaseDetails) {\n return '';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return this.erCaseDetails?.companyNameEng || this.erCaseDetails?.companyNameChn;\n } else {\n return this.erCaseDetails?.companyNameChn || this.erCaseDetails?.companyNameEng;\n }\n }\n\n get getAuthPersonOne() {\n if (this.erCaseDetails && this.erCaseDetails.empfAuthPersonsInfos?.length > 0) {\n return this.erCaseDetails.empfAuthPersonsInfos[0];\n }\n return undefined;\n }\n\n get getAuthPersonTwo() {\n if (this.erCaseDetails && this.erCaseDetails.empfAuthPersonsInfos?.length > 1) {\n return this.erCaseDetails.empfAuthPersonsInfos[1];\n }\n return undefined;\n }\n\n get getEiffStatusRemarks() {\n if (this.empfRefNo !== this.erCaseDetails?.empfRefNo) {\n return 'No case matched with eMPF data';\n } else if (this.empfRefNo === this.erCaseDetails?.empfRefNo) {\n return 'Wrong agent mapped';\n }\n // 'Client Name mismatched'\n return '';\n }\n\n openTransferStatusStatus() {\n this.cdsPopup.open(AdviseTransferStatusComponent, {\n size: 'sm',\n });\n }\n\n get isShowSendeIFFBtn() {\n if (this.erCaseDetails && this.erCaseDetails.iffStatusEnum === 0 && ![50, 40, 99].includes(this.erCaseDetails.empfStatusEnum)) {\n return true;\n }\n return false;\n }\n\n get isShowResendeIFFBtn() {\n if (this.erCaseDetails && ![0, 40, 99].includes(this.erCaseDetails.iffStatusEnum) && ![50, 40, 99].includes(this.erCaseDetails.empfStatusEnum)) {\n return true;\n }\n return false;\n }\n\n getAuthPersonName(item?: { apName: string; apNameChi: string }) {\n if (!item) {\n return '';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return item.apName || item.apNameChi;\n } else {\n return item.apNameChi || item.apName;\n }\n }\n\n openDifferentAgentStatus() {\n this.cdsPopup.open(DifferentAgentStatusComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(AdviseIffstatusComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n }\n\n iffStatus(item: EmpfDetail) {\n const result = { color: '', text: '' };\n\n switch (item.iffStatus) {\n case '0':\n result.color = 'var(--cds-color-gold)';\n result.text = 'Pending to send';\n break;\n\n case '10':\n result.color = 'var(--cds-color-turquoise)';\n result.text = 'Pending 2nd Agent Submission (for split case)';\n break;\n\n case '20':\n result.color = 'var(--cds-color-jh-blue)';\n result.text = 'Pending customer submission';\n break;\n\n case '30':\n result.color = 'var(--cds-color-dark-1-green)';\n result.text = 'Completed';\n break;\n\n case '99':\n result.color = 'var(--cds-color-light-4-dark-navy)';\n result.text = 'Declined';\n break;\n }\n\n return result;\n }\n\n openResendEIFF() {\n const ref = this.cdsPopup.open(ResendEiffComponent, {\n size: 'md',\n data: {\n salesJourneySummariesId: this.salesJourneySummariesId,\n resendType: ResendEiffResendType.ER,\n iffStatus: this.erCaseDetails?.iffStatusEnum,\n empfStatus: this.erCaseDetails?.empfStatusEnum,\n },\n });\n\n ref.afterClosed().subscribe((a?: { isRefresh: boolean }) => {\n if (a?.isRefresh) {\n location.reload();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n openSendEIFF() {\n this.router.navigate(['/salesjourney/er-send-iff-in-batch-summary', { empfRefNo: this.erCaseDetails?.empfRefNo }]);\n }\n\n get tipText() {\n if (this.erCaseDetails?.iffStatusEnum === 10 || this.erCaseDetails?.iffDeclineExpireReasons?.some(item => item.code === 92)) {\n let a = 'Pending the following split agent submission : ';\n const tempList = this.splitAgentInfos.filter(item => [1, 20].includes(item.iffAgentStatusEnum));\n tempList.forEach((agent, index) => {\n a += `${agent.agentCd} ${this.getAgentName(agent)}`;\n if (index < tempList.length - 1) {\n a += ', ';\n }\n });\n\n return a;\n }\n return undefined;\n }\n\n isOfDeclined(code: number) {\n return [1, 2, 3, 4, 5, 6, 8].includes(code);\n }\n\n isOfExpired(code: number) {\n return [91, 92, 93].includes(code);\n }\n\n get isShowVoidIFFBtn() {\n if (this.erCaseDetails && [0, 10, 20, 97].includes(this.erCaseDetails.iffStatusEnum) && this.erCaseDetails.empfStatusEnum !== undefined) {\n return true;\n }\n return false;\n }\n\n onDisplayVoidEiffRef() {\n if (this.erCaseDetails?.voidIffVo?.voided || this.disableVoidEIFF) {\n return;\n }\n\n const ref = this.cdsPopup.open(VoidEiffPopupComponent, {\n size: 'sm',\n });\n\n ref.afterClosed().subscribe(data => {\n if (data.agree) {\n this.voidCase();\n }\n });\n }\n\n voidCase() {\n if (this.salesJourneySummariesId && this.empfRefNo) {\n const params = {\n salesJourneySummaryId: this.salesJourneySummariesId,\n empfRefNo: this.empfRefNo,\n };\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/voidCase', params).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (res.data && this.erCaseDetails) {\n this.erCaseDetails.voidIffVo = res.data;\n\n if (this.erCaseDetails.voidIffVo && this.erCaseDetails.voidIffVo.voided) {\n this.erCaseDetails.iffStatusEnum = 97;\n }\n }\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n\n checkSendS2() {\n if (this.salesJourneySummariesId) {\n const params = { summaryId: this.salesJourneySummariesId };\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .get<{\n send: boolean;\n }>('/ext/eb-ssms-sales-journey-service/salesJourney/info', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.isSendS2 = res.data.send;\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n\n goEditAgentDetails() {\n if (this.disableEditAgentByChannel) {\n return;\n }\n\n const queryParams = { type: 'ER' };\n this.router.navigate(['/salesjourney/edit-agent-details', this.salesJourneySummariesId, queryParams]);\n }\n\n getServicingAgentChannel() {\n if (this.primaryAgentInfo && this.primaryAgentInfo.agentCd) {\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n inputAgentType: string;\n channel: string;\n servicingAgentCode: string;\n commissionAgentCode: string;\n }[]\n >(`/ext/eb-ssms/agent-service/api/v1/agent-code-conversion`, [this.primaryAgentInfo.agentCd])\n .subscribe(res => {\n this.servicingAgentChannel = res.data[0].channel as AgentChannel;\n this.disableEditAgentByChannel = [AgentChannel.BROKER, AgentChannel.CORPORATE].includes(this.servicingAgentChannel);\n\n if (this.primaryAgentInfo && this.primaryAgentInfo.agentCd) {\n this.disableVoidEIFF =\n this.servicingAgentChannel === AgentChannel.DBS ||\n this.servicingAgentChannel === AgentChannel.SCB ||\n (this.servicingAgentChannel === AgentChannel.CORPORATE &&\n this.primaryAgentInfo.agentCd.startsWith('400') &&\n this.primaryAgentInfo.agentCd !== '400003');\n }\n });\n }\n }\n}\n","
    \n
    \n \n
    \n \n {{ 'case-details.backToSalesJourneySummaryPage' | lang }}\n \n
    \n
    \n\n
    \n \n
    \n Sales Support Summary Page \n
    \n
    \n\n
    \n \n
    \n branch level Summary Page \n
    \n
    \n\n
    \n \n
    \n Super Admin Page \n
    \n
    \n\n
    \n \n
    \n IFF Declined Dashboard Page\n
    \n
    \n\n
    \n
    \n \n {{ 'case-details.caseDetailsHeader' | lang }}\n \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details.eMPFTransactionReferenceNumberLabel' | lang }}\n
    \n
    \n {{ erCaseDetails?.empfRefNo }}\n
    \n
    \n
    \n {{ 'case-details-er.EMPstatus' | lang }}\n
    \n \n
    \n \n
    \n
    \n eMPF ID:\n
    \n
    \n {{ erCaseDetails?.empfId || 'N/A' }}\n
    \n
    \n
    \n
    \n Employer Account Code:\n
    \n
    \n {{ erCaseDetails?.employerAcctCd || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.submissionDateTimeLabel' | lang }} \n
    \n
    \n {{ erCaseDetails?.empfSubDt | date : 'dd/MM/yyyy' }}(HKT)\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details-er.eMPFReturnedData' | lang }}\n
    \n
    \n
    \n {{ 'case-details-er.EmployerName' | lang }}\n
    \n
    \n {{ getEmployerName || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ 'case-details-er.BRnumber' | lang }}\n
    \n
    \n {{ erCaseDetails?.brNo || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n Authorized Person(s)\n
    \n
    \n \n \n \n
    \n
    \n {{ numRanking(i + 1) }} Authorized Person\n
    \n
    \n {{ getAuthPersonName(item) || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Phone Number\n
    \n
    \n Email\n
    \n
    \n
    \n
    \n {{ item?.phoneNumber || 'N/A' }}\n
    \n
    \n {{ item?.emailAddress || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n {{ numRanking(1) }} Authorized Person\n
    \n
    \n {{ 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Phone Number\n
    \n
    \n Email\n
    \n
    \n
    \n
    \n {{ 'N/A' }}\n
    \n
    \n {{ 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'case-details.eIFFSubmittedDetails' | lang }}\n
    \n
    \n
    \n {{ 'case-details-er.employer-name' | lang }}\n
    \n
    \n {{ erCaseDetails?.iffCompanyName || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ 'case-details-er.br-number' | lang }}\n
    \n
    \n {{ erCaseDetails?.iffBrNo || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n RM Referral Code\n
    \n
    \n {{ erCaseDetails?.dbs?.dbsRmReferralCd || 'N/A' }}\n
    \n
    \n
    \n
    \n Customer ID\n
    \n
    \n {{ erCaseDetails?.dbs?.dbsCustomerId || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Campaign Code\n
    \n
    \n {{ erCaseDetails?.dbs?.dbsCampaignCd || 'N/A' }}\n
    \n
    \n
    \n
    \n Source Code\n
    \n
    \n {{ erCaseDetails?.dbs?.dbsSourceCd || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.eIFFStatusLabel' | lang }}\n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'case-details.eIFFSubmissionDateTimeLabel' | lang }}\n
    \n
    \n
    \n {{ erCaseDetails?.firstIffSubDt | date : 'hh:mm a, dd/MM/yyyy' }}(HKT)\n
    \n
    \n N/A \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n {{\n (erCaseDetails?.iffDeclineExpireReasons)![0].errorMsg\n }}\n
    \n
    \n {{\n (erCaseDetails?.iffDeclineExpireReasons)![0].hintMsg\n }}\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Declined\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n After 45 days Expired\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'case-details.deliveryChannelLabel' | lang }}\n
    \n
    \n {{ erCaseDetails?.iffDeliveryChannel || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ 'case-details-er.lastEiff' | lang }}\n
    \n
    \n
    \n {{ erCaseDetails?.resendIffSubDt | date : 'hh:mm a, dd/MM/yyyy' }}(HKT)\n
    \n
    \n N/A \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n\n \n \n
    \n
    \n Void Handling\n
    \n
    \n
    \n Void eIFF\n
    \n
    \n Voided by: {{ erCaseDetails?.voidIffVo?.voidTime | date : 'h:mma dd/MM/yyyy (+8T)' }}, by\n {{ erCaseDetails?.voidIffVo?.voidAgentName || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Send eIFF\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Resend eIFF\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n Paper IFF\n
    \n
    \n
    \n Handler Name\n
    \n
    \n {{ erCaseDetails?.paperIffHandlerName || 'N/A' }}\n
    \n
    \n
    \n
    \n Submission Date and Time\n
    \n
    \n {{\n erCaseDetails?.latestIffSubDt ? (erCaseDetails?.latestIffSubDt | date : 'hh:mm a, dd/MM/yyyy') + '(HKT)' : 'N/A'\n }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'case-details.agentDetailsLabel' | lang }}\n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'case-details.servicingAgentLabel' | lang }}\n
    \n
    \n \n
    \n {{ getAgentName(primaryAgentInfo) }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{\n primaryAgentInfo?.hkpcPercentage ? primaryAgentInfo?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{\n primaryAgentInfo?.commissionPercentage ? primaryAgentInfo?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details.servicingAgentLabel' | lang }}\n
    \n
    \n
    \n \n \n \n \n
    \n
    \n {{ getAgentName(primaryAgentInfo) || 'N/A' }}\n
    \n
    \n
    \n
    Share HKPC
    \n
    Share Commission
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{\n primaryAgentInfo?.hkpcPercentage ? primaryAgentInfo?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n {{\n primaryAgentInfo?.commissionPercentage ? primaryAgentInfo?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'case-details.splitAgentLabel' | lang }}\n
    \n
    \n \n
    \n {{ getAgentName(splitAgent) }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{\n splitAgent?.hkpcPercentage ? splitAgent?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{\n splitAgent?.commissionPercentage ? splitAgent?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details.splitAgentLabel' | lang }}\n
    \n
    \n
    \n \n \n \n \n
    \n
    \n {{ getAgentName(splitAgent) || 'N/A' }}\n
    \n
    \n
    \n
    Share HKPC
    \n
    Share Commission
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{\n splitAgent?.hkpcPercentage ? splitAgent?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n {{\n splitAgent?.commissionPercentage ? splitAgent?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n 0\">\n
    \n {{ 'case-details.transferDetailsHeader' | lang }}\n
    \n\n
    \n
    \n
    \n {{ 'case-details-er.originalSchemeLabel' | lang }}\n
    \n
    \n {{ 'case-details-er.newManulifeSchemeLabel' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.transferStatusLabel' | lang }}\n
    \n \n
    \n
    \n (Source: eMPF Portal)\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details-er.originalTrusteeLabel' | lang }}\n
    \n
    \n {{ transferDetail.originalScheme.originalTrusteeName }}\n
    \n\n
    \n {{ 'case-details-er.nameOfOriginalSchemeLabel' | lang }}\n
    \n
    \n {{ transferDetail.originalScheme.schemeName }}\n
    \n\n
    \n {{ 'case-details-er.accountNumberLabel' | lang }}\n
    \n
    \n {{ transferDetail.originalScheme.schemeMemberAccNum }}\n
    \n
    \n
    \n
    \n {{ 'case-details-er.newTrusteeLabel' | lang }}\n
    \n
    \n {{ transferDetail.newMILScheme.newTrusteeName }}\n
    \n\n
    \n {{ 'case-details-er.newSchemeLabel' | lang }}\n
    \n
    \n {{ transferDetail.newMILScheme.schemeName }}\n
    \n\n
    \n {{ 'case-details-er.accountNumberLabel' | lang }}\n
    \n
    \n {{ transferDetail.newMILScheme.schemeMemberAccNum }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details-er.notice' | lang }}\n
    \n\n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { Subscription, from, switchMap, throwError } from 'rxjs';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ScreenType } from 'src/app/core/models/enum/screen.enum';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { getSessionByKey } from 'src/app/utils/indexdb';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault, pageToTop } from 'src/app/utils/utils';\nimport { AdviseIffstatusComponent } from '../case-summary/advise-iffstatus/advise-iffstatus.component';\nimport { AdviseTransferStatusComponent } from '../case-summary/advise-transfer-status/advise-transfer-status.component';\nimport { CasesummaryService } from '../case-summary/casesummary.service';\nimport { DifferentAgentStatusComponent } from '../different-agent-status/different-agent-status.component';\nimport { ResendEiffComponent } from '../resend-eiff/resend-eiff.component';\nimport { ResendEiffResendType } from '../resend-eiff/resend-eiff.model';\nimport { CaseDetailsService } from '../service/case-details.service';\nimport { IffService } from '../service/iff.service';\nimport { CaseDetailRequest } from '../service/model/case-detail-request.model';\nimport { CdHttpServeService } from './../../../shared/cd-http-serve/cd-http-serve.service';\nimport { AgentsInfoRsp, CaseDetailsRsp, RejectReasonsMap } from './case-details.model';\nimport { VoidEiffPopupComponent } from '../sales-support-summary/void-eiff-popup/void-eiff-popup.component';\n\ninterface TransferDetailsItemRsp {\n empfRefNo: string;\n newMILScheme: {\n newTrusteeName: string;\n schemeName: string;\n schemeMemberAccNum: string;\n accType: string;\n };\n number: number;\n originalScheme: {\n accType: string;\n originalTrusteeName: string;\n schemeMemberAccNum: string;\n schemeName: string;\n };\n productType: string;\n transferStatus: string;\n transferStatusEnum: number;\n rejectReasons: { rejectReason1: number; rejectReason2: number; rejectReason3: number; rejectReason4: number; rejectReason5: number };\n}\n\nexport interface VoidInfo {\n voidAble: boolean;\n voidTime: string;\n voided: boolean;\n voidAgentName: string;\n voidAgentCode: string;\n}\n\n@Component({\n selector: 'app-case-details',\n templateUrl: './case-details.component.html',\n styleUrls: ['./case-details.component.scss'],\n})\nexport class CaseDetailsComponent implements OnInit, AfterViewInit, OnDestroy {\n PermissionItem = PermissionItem;\n PermissionAccess = PermissionAccess;\n servicingAgentChannel?: AgentChannel;\n ScreenType = ScreenType;\n disableEditAgentByChannel = false;\n disableVoidEIFF = false;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private caseDetailsService: CaseDetailsService,\n public languageChangeService: LanguageChangeService,\n public cdsLangService: CdsLangService,\n private cdsPopup: CdsPopupService,\n public caseSummaryService: CasesummaryService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private notifyService: NotifyService,\n private permissionService: PermissionService,\n private authenticationService: AuthenticationService,\n private iffService: IffService\n ) {}\n\n caseDetails?: CaseDetailsRsp;\n backErIcon = ActionIcons.button_left_filled;\n lanChangeSubscription?: Subscription;\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n language = this.cdsLangService.currentLang === 'en' ? 'EN' : 'TC';\n secondaryButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n salesJourneySummariesId?: string;\n empfRefNo?: string;\n from?: string;\n productType?: string;\n salesSupportSummaryTab?: string;\n isSendS2 = false;\n isShowSend = false;\n isServicingAgent = false;\n screenType: ScreenType = ScreenType.PC;\n\n transferDetails: TransferDetailsItemRsp[] = [];\n empfDetailsSubscription?: Subscription;\n ngOnInit(): void {\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n this.salesJourneySummariesId = this.route.snapshot.paramMap.get('salesJourneySummariesId') || '';\n this.empfRefNo = this.route.snapshot.paramMap.get('empfRefNo') || '';\n this.from = this.route.snapshot.paramMap.get('from') || '';\n this.productType = this.route.snapshot.paramMap.get('productType') || '';\n this.salesSupportSummaryTab = this.route.snapshot.paramMap.get('salesSupportSummaryTab') || '';\n\n from(getSessionByKey())\n .pipe(\n switchMap(res => {\n const identityId = res.id;\n if (this.salesJourneySummariesId) {\n const params = {\n salesJourneySummaryId: this.salesJourneySummariesId,\n identityId,\n };\n return this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries/caseDetails', params);\n } else {\n return throwError('salesJourneySummariesId is not found');\n }\n })\n )\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.caseDetails = res.data;\n this.getServicingAgentChannel();\n this.authenticationService.currentUserValue().then(res => {\n const servicingAgentId = res.id + '';\n this.iffService.getAgentCode(servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const agentList = this.caseDetails?.agentsInfos?.filter(agent => agent.agentCd === res.data.agentCode);\n this.isServicingAgent = Boolean(agentList && agentList[0]?.servicingAgent);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n this.callTransferDetails();\n this.checkSendS2();\n }\n\n getServicingAgentChannel() {\n if (this.primaryAgentInfo && this.primaryAgentInfo.agentCd) {\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n inputAgentType: string;\n channel: string;\n servicingAgentCode: string;\n commissionAgentCode: string;\n }[]\n >(`/ext/eb-ssms/agent-service/api/v1/agent-code-conversion`, [this.primaryAgentInfo.agentCd])\n .subscribe(res => {\n this.servicingAgentChannel = res.data[0].channel as AgentChannel;\n this.disableEditAgentByChannel = [AgentChannel.SCB, AgentChannel.BROKER, AgentChannel.CORPORATE].includes(this.servicingAgentChannel);\n\n if (this.primaryAgentInfo && this.primaryAgentInfo.agentCd) {\n this.disableVoidEIFF =\n this.servicingAgentChannel === AgentChannel.DBS ||\n (this.servicingAgentChannel === AgentChannel.CORPORATE &&\n this.primaryAgentInfo.agentCd.startsWith('400') &&\n this.primaryAgentInfo.agentCd !== '400003');\n }\n });\n }\n }\n\n callTransferDetails() {\n if (this.empfRefNo) {\n const params = { empfRefNo: this.empfRefNo };\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries/transferDetails', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.transferDetails = res.data;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n }\n\n rejectReasonsNum(rejectReasons: { rejectReason1: number; rejectReason2: number; rejectReason3: number; rejectReason4: number; rejectReason5: number }) {\n const reasons = [];\n if (rejectReasons.rejectReason1) {\n reasons.push(rejectReasons.rejectReason1);\n }\n if (rejectReasons.rejectReason2) {\n reasons.push(rejectReasons.rejectReason2);\n }\n if (rejectReasons.rejectReason3) {\n reasons.push(rejectReasons.rejectReason3);\n }\n if (rejectReasons.rejectReason4) {\n reasons.push(rejectReasons.rejectReason4);\n }\n if (rejectReasons.rejectReason5) {\n reasons.push(rejectReasons.rejectReason5);\n }\n return reasons;\n }\n\n getRejectReason(reasonNum: number) {\n const val = (RejectReasonsMap as any)[reasonNum];\n return val || 'N/A';\n }\n\n private resizeListener = () => {\n const isPad = window.matchMedia('only screen and (max-width: 1023px)').matches || window.screen.width < 1023;\n if (isPad) {\n this.screenType = ScreenType.PAD;\n this.notifyService.notifyHideNavigationLang();\n } else {\n this.screenType = ScreenType.PC;\n }\n };\n\n ngAfterViewInit(): void {\n Promise.all([\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SALES_JOURNEY_AGENT),\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CUSTOMER_MEMBER),\n ]).then(hasPermission => {\n this.isShowSend = hasPermission[0] || hasPermission[1];\n });\n pageToTop();\n if (this.from === 'superAdmin') {\n this.resizeListener();\n this.notifyService.notifyHideNavigationLang();\n window.addEventListener('resize', this.resizeListener);\n this.languageChangeService.setLang('en');\n }\n }\n\n ngOnDestroy(): void {\n if (this.from === 'superAdmin') {\n this.notifyService.notifyDisplayNavigationLang();\n window.removeEventListener('resize', this.resizeListener);\n }\n }\n\n get getClientName() {\n if (!this.caseDetails) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return this.caseDetails.clientNameEng || this.caseDetails.clientNameChn;\n } else {\n return this.caseDetails.clientNameChn || this.caseDetails.clientNameEng;\n }\n }\n\n get primaryAgentInfo() {\n if (this.caseDetails && this.caseDetails.agentsInfos) {\n const list = this.caseDetails.agentsInfos.filter(element => element.primaryAgent);\n if (list && list.length > 0) {\n return list[0];\n }\n }\n return undefined;\n }\n\n get splitAgentInfos() {\n if (this.caseDetails && this.caseDetails.agentsInfos) {\n const list = this.caseDetails.agentsInfos.filter(element => !element.primaryAgent);\n return list;\n }\n return [];\n }\n\n get getEiffStatusRemarks() {\n if (this.empfRefNo !== this.caseDetails?.empfRefNo) {\n return 'No case matched with eMPF data';\n } else if (this.empfRefNo === this.caseDetails?.empfRefNo) {\n return 'Wrong agent mapped';\n }\n // 'Client Name mismatched'\n return '';\n }\n\n get isShowVoidIFFBtn() {\n if (this.caseDetails && [0, 10, 20, 97].includes(this.caseDetails.iffStatusEnum) && this.caseDetails.empfStatusEnum !== undefined) {\n return true;\n }\n return false;\n }\n\n get isShowSendeIFFBtn() {\n if (this.caseDetails && this.caseDetails.iffStatusEnum === 0 && ![50, 40, 99].includes(this.caseDetails.empfStatusEnum)) {\n return true;\n }\n return false;\n }\n\n get isShowResendeIFFBtn() {\n if (this.caseDetails && ![0, 40, 99].includes(this.caseDetails.iffStatusEnum) && ![50, 40, 99].includes(this.caseDetails.empfStatusEnum)) {\n return true;\n }\n return false;\n }\n\n goEditAgentDetails() {\n if (this.disableEditAgentByChannel) {\n return;\n }\n this.router.navigate(['/salesjourney/edit-agent-details', this.salesJourneySummariesId, { type: 'EE' }]);\n }\n\n onDisplayVoidEiffRef() {\n if (this.caseDetails?.voidIffVo?.voided || this.disableVoidEIFF) {\n return;\n }\n\n const ref = this.cdsPopup.open(VoidEiffPopupComponent, {\n size: 'sm',\n });\n\n ref.afterClosed().subscribe(data => {\n if (data.agree) {\n this.voidCase();\n }\n });\n }\n\n voidCase() {\n if (this.salesJourneySummariesId && this.empfRefNo) {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/voidCase', {\n salesJourneySummaryId: this.salesJourneySummariesId,\n empfRefNo: this.empfRefNo,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (res.data && this.caseDetails) {\n this.caseDetails.voidIffVo = res.data;\n\n if (this.caseDetails.voidIffVo && this.caseDetails.voidIffVo.voided) {\n this.caseDetails.iffStatusEnum = 97;\n }\n }\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n\n onDisplayAdviseIFF() {\n const ref = this.cdsPopup.open(AdviseIffstatusComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n\n ref.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n }\n\n openDifferentAgentStatus() {\n const ref = this.cdsPopup.open(DifferentAgentStatusComponent, {\n size: 'sm',\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n\n ref.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n }\n\n openTransferStatusStatus() {\n const ref = this.cdsPopup.open(AdviseTransferStatusComponent, {\n size: 'sm',\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n\n ref.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n }\n\n onBackToCaseSummaryClick() {\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n\n onBackToSalesSupportSummaryClick() {\n const queryParams = { productType: this.productType, salesSupportSummaryTab: this.salesSupportSummaryTab };\n this.router.navigate(['/salesjourney/sales-support-summary', queryParams]);\n }\n\n onBackTBranchLebvelClick() {\n const queryParams = { productType: this.productType };\n this.router.navigate(['/salesjourney/app-paper-summary', queryParams]);\n }\n\n onBackSuperAdmin() {\n const queryParams = { productType: this.productType };\n this.router.navigate(['/salesjourney/super-admin', queryParams]);\n }\n\n onBackIffDeclinedDashboard() {\n this.router.navigate(['/salesjourney/iff-declined-dashboard']);\n }\n\n backToTop() {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTo(0, 0);\n }\n\n getEmpfDetails(caseDetailRequest: CaseDetailRequest) {\n this.caseDetailsService.getEmpfDetails(caseDetailRequest);\n }\n\n getTransferDetails(caseDetailRequest: CaseDetailRequest) {\n this.caseDetailsService.getTransferDetails(caseDetailRequest);\n }\n\n getAgentName(agent?: AgentsInfoRsp) {\n if (!agent) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return agent.agentName || agent.agentNameChn;\n } else {\n return agent.agentNameChn || agent.agentName;\n }\n }\n\n openResendEIFF() {\n const ref = this.cdsPopup.open(ResendEiffComponent, {\n size: 'md',\n data: {\n salesJourneySummariesId: this.salesJourneySummariesId,\n resendType: ResendEiffResendType.EE,\n iffStatus: this.caseDetails?.iffStatusEnum,\n empfStatus: this.caseDetails?.empfStatusEnum,\n },\n });\n ref.afterClosed().subscribe(({ isRefresh }) => {\n if (isRefresh) {\n location.reload();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n openSendEIFF() {\n this.router.navigate(['/salesjourney/send-iff-in-batch-summary', { empfRefNo: this.caseDetails?.empfRefNo }]);\n }\n\n get tipText() {\n if (this.caseDetails?.iffStatusEnum === 10 || this.caseDetails?.iffDeclineExpireReasons?.some(item => item.code === 92)) {\n let a = 'Pending the following split agent submission : ';\n const tempList = this.splitAgentInfos.filter(item => [1, 20].includes(item.iffAgentStatusEnum));\n tempList.forEach((agent, index) => {\n a += `${agent.agentCd} ${this.getAgentName(agent)}`;\n if (index < tempList.length - 1) {\n a += ', ';\n }\n });\n\n return a;\n }\n return undefined;\n }\n\n isOfDeclined(code: number) {\n return [1, 2, 3, 4, 5, 6, 8].includes(code);\n }\n\n isOfExpired(code: number) {\n return [91, 92, 93].includes(code);\n }\n\n checkSendS2() {\n if (this.salesJourneySummariesId) {\n const params = { summaryId: this.salesJourneySummariesId };\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .get<{\n send: boolean;\n }>('/ext/eb-ssms-sales-journey-service/salesJourney/info', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.isSendS2 = res.data.send;\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n}\n","
    \n
    \n \n
    \n \n {{ 'case-details.backToSalesJourneySummaryPage' | lang }}\n \n
    \n
    \n\n
    \n \n
    \n Sales Support Summary Page \n
    \n
    \n\n
    \n \n
    \n branch level Summary Page \n
    \n
    \n\n
    \n \n
    \n Super Admin Page\n
    \n
    \n\n
    \n \n
    \n IFF Declined Dashboard Page\n
    \n
    \n\n
    \n
    \n \n {{ 'case-details.caseDetailsHeader' | lang }}\n \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details.eMPFTransactionReferenceNumberLabel' | lang }}\n
    \n
    \n {{ caseDetails?.empfRefNo }}\n
    \n
    \n
    \n eMPF status:\n
    \n \n
    \n \n
    \n
    \n eMPF ID:\n
    \n
    \n {{ caseDetails?.empfId || 'N/A' }}\n
    \n
    \n
    \n
    \n Employee Account Code:\n
    \n
    \n {{ caseDetails?.memberAcctCd || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.submissionDateTimeLabel' | lang }} \n
    \n
    \n {{ caseDetails?.empfSubDt | date : 'dd/MM/yyyy' }}\n (HKT)\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.eMPFReturnedData' | lang }}\n
    \n
    \n
    \n {{ 'case-details.clientNameLabel' | lang }}\n
    \n
    \n {{ getClientName || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ 'case-details.HKIDPassportNo' | lang }}\n
    \n
    \n
    \n {{ caseDetails?.empfHkidOrPassportNo }}\n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.phoneNumberFromEMPF' | lang }}\n
    \n
    \n {{ caseDetails?.clientPhoneNumber || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ 'case-details.emailFromeMPF' | lang }}\n
    \n
    \n {{ caseDetails?.clientEmail || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'case-details.eIFFSubmittedDetails' | lang }}\n
    \n
    \n
    \n {{ 'case-details.HKIDPassportNo' | lang }}\n
    \n
    \n {{ caseDetails?.hkidOrPassportNo || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n RM Referral Code\n
    \n
    \n {{ caseDetails?.dbs?.dbsRmReferralCd || 'N/A' }}\n
    \n
    \n
    \n
    \n Customer ID\n
    \n
    \n {{ caseDetails?.dbs?.dbsCustomerId || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Campaign Code\n
    \n
    \n {{ caseDetails?.dbs?.dbsCampaignCd || 'N/A' }}\n
    \n
    \n
    \n
    \n Source Code\n
    \n
    \n {{ caseDetails?.dbs?.dbsSourceCd || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.eIFFStatusLabel' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n First eIFF submission time & date (DD/MM/YYYY)\n
    \n
    \n {{\n caseDetails?.firstIffSubDt ? (caseDetails?.firstIffSubDt | date : 'hh:mm a, dd/MM/yyyy') + '(HKT)' : 'N/A'\n }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n {{ (caseDetails?.iffDeclineExpireReasons)![0].errorMsg }}\n
    \n
    \n {{\n (caseDetails?.iffDeclineExpireReasons)![0].hintMsg\n }}\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Declined\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n After 45 days Expired\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n Delivery channel of the eIFF\n
    \n
    \n {{ caseDetails?.iffDeliveryChannel || 'N/A' }}\n
    \n
    \n
    \n
    \n Resend time & date\n
    \n
    \n {{\n caseDetails?.resendIffSubDt ? (caseDetails?.resendIffSubDt | date : 'hh:mm a, dd/MM/yyyy') + '(HKT)' : 'N/A'\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n Void Handling\n
    \n
    \n
    \n Void eIFF\n
    \n
    \n Voided by: {{ caseDetails?.voidIffVo?.voidTime | date : 'h:mma dd/MM/yyyy (+8T)' }}, by\n {{ caseDetails?.voidIffVo?.voidAgentName || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Send eIFF\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Resend eIFF\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n Paper IFF\n
    \n
    \n
    \n Handler Name\n
    \n
    \n {{ caseDetails?.paperIffHandlerName || 'N/A' }}\n
    \n
    \n
    \n
    \n Submission Date and Time\n
    \n
    \n {{\n caseDetails?.latestIffSubDt ? (caseDetails?.latestIffSubDt | date : 'hh:mm a, dd/MM/yyyy') + '(HKT)' : 'N/A'\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'case-details.agentDetailsLabel' | lang }}\n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'case-details.servicingAgentLabel' | lang }}\n
    \n
    \n \n
    \n {{ getAgentName(primaryAgentInfo) }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{\n primaryAgentInfo?.hkpcPercentage ? primaryAgentInfo?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{\n primaryAgentInfo?.commissionPercentage ? primaryAgentInfo?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details.servicingAgentLabel' | lang }}\n
    \n
    \n \n
    \n {{ getAgentName(primaryAgentInfo) }}\n
    \n
    \n
    \n
    Share HKPC
    \n
    Share Commission
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{\n primaryAgentInfo?.hkpcPercentage ? primaryAgentInfo?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n {{\n primaryAgentInfo?.commissionPercentage ? primaryAgentInfo?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'case-details.splitAgentLabel' | lang }}\n
    \n
    \n \n
    \n {{ getAgentName(splitAgent) }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{\n splitAgent?.hkpcPercentage ? splitAgent?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{\n splitAgent?.commissionPercentage ? splitAgent?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'case-details.splitAgentLabel' | lang }}\n
    \n
    \n \n
    \n {{ getAgentName(splitAgent) }}\n
    \n
    \n
    \n
    Share HKPC
    \n
    Share Commission
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{\n splitAgent?.hkpcPercentage ? splitAgent?.hkpcPercentage + '%' : '-'\n }}\n
    \n
    \n {{\n splitAgent?.commissionPercentage ? splitAgent?.commissionPercentage + '%' : '-'\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n {{ 'case-details.transferDetailsHeader' | lang }}\n
    \n\n
    \n
    \n
    \n
    \n #\n
    \n
    \n {{ 'case-details.productTypeLabel' | lang }}\n
    \n
    \n {{ 'case-details.originalSchemeLabel' | lang }}\n
    \n
    \n {{ 'case-details.newManulifeSchemeLabel' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'case-details.transferStatusLabel' | lang }}\n
    \n \n
    \n
    \n (Source: eMPF Portal)\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n {{ transferDetail.productType }}\n
    \n
    \n
    \n
    \n Origianl trustee name\n
    \n
    \n {{ transferDetail.originalScheme.originalTrusteeName }}\n
    \n
    \n
    \n
    \n Scheme name\n
    \n
    \n {{ transferDetail.originalScheme.schemeName }}\n
    \n
    \n
    \n
    \n Scheme member account number\n
    \n
    \n {{ transferDetail.originalScheme.schemeMemberAccNum }}\n
    \n
    \n
    \n
    \n
    \n
    \n New trustee name\n
    \n
    \n {{ transferDetail.newMILScheme.newTrusteeName }}\n
    \n
    \n
    \n
    \n Scheme name\n
    \n
    \n {{ transferDetail.newMILScheme.schemeName }}\n
    \n
    \n
    \n
    \n Scheme member account number\n
    \n
    \n {{ transferDetail.newMILScheme.schemeMemberAccNum }}\n
    \n
    \n
    \n
    \n Account type\n
    \n
    \n {{ transferDetail.newMILScheme.accType }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n #\n
    \n
    \n Reject Reason(s)\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n {{ getRejectReason(reasonNum) }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'case-details-er.notice' | lang }}\n
    \n
    \n \n
    \n
    \n","import { CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { VoidInfo } from './case-details.component';\n\nexport interface AgentsInfoRsp {\n agentCd: string;\n agentId: string;\n agentName: string;\n agentNameChn: string;\n iffAgentStatus: string;\n iffAgentStatusEnum: number;\n iffAgentSubDt: string;\n primaryAgent: boolean;\n regulatedAct: boolean;\n channelConfig?: CdRadioConfig;\n channelValue?: number;\n servicingAgent: boolean;\n commissionPercentage: number;\n hkpcPercentage: number;\n}\n\nexport interface CaseDetailsRsp {\n hkidOrPassportNo: string;\n empfHkidOrPassportNo: string;\n clientEmail: string;\n clientNameChn: string;\n clientNameEng: string;\n clientPhoneNumber: string;\n empfRefNo: string;\n empfStatus: string;\n empfStatusEnum: number;\n empfSubDt: string;\n firstIffSubDt: string;\n iffClientName: string;\n iffDeliveryChannel: string;\n iffStatus: string;\n iffStatusEnum: number;\n iffSubDt: string;\n latestIffSubDt: string;\n agentsInfos: AgentsInfoRsp[];\n couldResend: boolean;\n iffDeclineExpireReasons: {\n code: number;\n errorMsg: string;\n hintMsg: string;\n }[];\n resendIffSubDt: string;\n dbs: {\n dbsCampaignCd: string;\n dbsCustomerId: string;\n dbsRmReferralCd: string;\n dbsSourceCd: string;\n };\n voidIffVo?: VoidInfo;\n paperIff: boolean;\n paperIffHandlerName: string;\n empfId: string;\n memberAcctCd: string;\n}\n\nexport const RejectReasonsMap = {\n 1: '01 - Missing / Incorrect HKID or passport number',\n 2: '02 - Missing / Incorrect name of scheme member',\n 3: '03 - Incorrect membership number under Original Scheme',\n 4: '04 - Incorrect Original Scheme Registration Number',\n 5: '05 - Missing / Mismatch member signature',\n 6: '06 - No such member record in Original Scheme',\n 7: '07 - Member account terminated',\n 9: '09 - Preserved to a personal account',\n 10: '10 - Transfer request has been cancelled by the member',\n 11: '11 - Member has multiple accounts in Original Scheme',\n 12: '12 - Missing / Invalid option in arrangement of voluntary contributions',\n 13: '13 - Missing Notice of Termination',\n 14: '14 - No selection of which Sub-account(s) to be transferred out',\n 15: '15 - Member has ceased employment',\n 16: '16 - Unmatched data and image file',\n 17: '17 - Member still under employment ',\n 18: '18 - Missing page of transfer form',\n 19: '19 - No Member Signature Specimen ',\n 99: '99 - Other-please specify',\n 20: '20 - EEMC_In excess of number election allowed',\n 21: '21 - EEMC_Account contained nil balance',\n 22: '22 - EEVC_VC not allow to transfer out because not fulfill the transfer conditions in the governing rules',\n 23: '23 - EEVC_Account contained nil balance',\n 24: '24 - FRMC_Account contained nil balance',\n 25: '25 - FR VC_ VC not allowed to transfer out because not fulfill the transfer conditions in governing rules',\n 26: '26 - FRVC_Account contained nil balance',\n 27: '27 - All selected sub accounts contained nil balance',\n 28: \"28 - Member's account is a contribution account / self-employed account but P(C) form is received\",\n 29: \"29 - Member's account is a personal account / self-employed account but P(P) form is received Original\",\n};\n","import { Component, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-advise-empfref',\n templateUrl: './advise-empfref.component.html',\n styleUrls: ['./advise-empfref.component.scss'],\n})\nexport class AdviseEmpfrefComponent implements OnInit {\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n backTosummary() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n eMPF source\n
    \n
    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit enim erat, ac lacinia ipsum porta ac. Aenean eu augue finibus, pulvinar ex sed,\n volutpat quam. Quisque sem augue, congue in diam ac.\n
    \n
    \n \"../../../../../assets/img/empf.png\"\n
    \n
    \n Got it\n
    \n
    \n","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\n\nimport { fromEvent, Subscription } from 'rxjs';\n\nimport { ParentElement } from '../case-summary.model';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-advise-empfstatus',\n templateUrl: './advise-empfstatus.component.html',\n styleUrls: ['./advise-empfstatus.component.scss'],\n})\nexport class AdviseEmpfstatusComponent implements OnInit, AfterViewInit, OnDestroy {\n unDocumentClick!: Subscription;\n private clickIsClose = true;\n\n constructor(private dialogRef: MatDialogRef) {}\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n ngOnInit(): void {}\n backTosummary() {\n //this.router.navigate(['/agent/cs']);\n this.dialogRef.close({ agree: true });\n //this.disagree();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.unDocumentClick = fromEvent(document, 'click').subscribe(event => {\n this.clickIsClose = true;\n const newEvent = event as unknown as {\n target: { classList: DOMTokenList; parentElement: ParentElement };\n };\n this.checkStyle(newEvent.target, () => {\n this.clickIsClose = false;\n });\n if (this.clickIsClose) {\n this.clickIsClose = true;\n this.backTosummary();\n }\n });\n }, 0);\n }\n\n checkStyle(element: ParentElement, callback: () => void) {\n if (!element.classList.contains('advise-empfstatus')) {\n if (element.parentElement) {\n this.checkStyle(element.parentElement, callback);\n }\n } else {\n callback();\n }\n }\n\n ngOnDestroy(): void {\n this.unDocumentClick?.unsubscribe();\n }\n}\n","
    \n
    \n

    eMPF Status Flow

    \n
      \n \n
    1. \n
      \n
      1
      \n
      \n
      \n eMPF Processing\n The record is currently under progress in eMPF \n
      \n
    2. \n
    3. \n
      \n
      2
      \n
      \n
      \n eMPF Follow-up\n The record is currently under follow-up in eMPF \n
      \n
    4. \n
    5. \n
      \n
      3
      \n
      \n
      \n eMPF Application cancelled\n The record is canclled in eMPF \n
      \n
    6. \n
    7. \n
      \n
      4
      \n
      \n
      \n eMPF Completed\n The record and onboarding are completed in eMPF \n
      \n
    8. \n
    9. \n
      \n
      5
      \n
      \n
      \n eMPF Rejected\n The record is being rejected in eMPF \n
      \n
    10. \n
    11. \n
      \n
      6
      \n
      \n
      \n Pending eMPF data\n The record is pending for eMPF data feed \n
      \n
    12. \n
    13. \n
      \n
      7
      \n
      \n
      \n Partially Completed\n The record and onboarding are partially completed in eMPF \n
      \n
    14. \n
    15. \n
      \n
      8
      \n
      \n
      \n Not Applicable\n
      \n
    16. \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n@Component({\n selector: 'app-advise-iffstatus',\n templateUrl: './advise-iffstatus.component.html',\n styleUrls: ['./advise-iffstatus.component.scss'],\n})\nexport class AdviseIffstatusComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n ngOnInit(): void {}\n\n backTosummary() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n

    IFF Status Flow

    \n
    \n
  • \n
    \n
    1
    \n
    \n
    \n {{ 'eIFFStatus.pendingToSend' | lang }}\n The IFF form\n
    \n
  • \n
  • \n
    \n
    2
    \n
    \n
    \n {{ 'eIFFStatus.pendingSplitAgent' | lang }} \n The IFF is pending for split agent acknowledgement \n
    \n
  • \n
  • \n
    \n
    3
    \n
    \n
    \n {{ 'eIFFStatus.pendingCustomerSubmission' | lang }}\n The IFF is sent and pending for customer submission \n
    \n
  • \n
  • \n
    \n
    4
    \n
    \n
    \n {{ 'eIFFStatus.completed' | lang }}\n The IFF form is received from customer \n
    \n
  • \n
  • \n
    \n
    5
    \n
    \n
    \n {{ 'eIFFStatus.declined' | lang }}\n
    \n
  • \n
  • \n
    \n
    6
    \n
    \n
    \n Declined (Agent SEP/ Staff CA)\n
    \n
  • \n
  • \n
    \n
    7
    \n
    \n
    \n {{ 'eIFFStatus.expired' | lang }}\n
    \n
  • \n
  • \n
    \n
    8
    \n
    \n
    \n Void\n
    \n
  • \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-advise-transfer-status',\n templateUrl: './advise-transfer-status.component.html',\n styleUrls: ['./advise-transfer-status.component.scss'],\n})\nexport class AdviseTransferStatusComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n\n ngOnInit(): void {}\n\n closeCurrentPopup() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
    \n
    \n
    \n Transfer status\n
    \n
    \n
    \n
    \n Transfer Processing\n
    \n
    \n
    \n
    \n
    \n Transfer Completed\n
    \n
    \n
    \n
    \n
    \n Transfer Cancelled\n
    \n
    \n
    \n
    \n
    \n Transfer Follow up\n
    \n
    \n
    \n
    \n
    \n Transfer Rejected\n
    \n
    \n
    \n\n
    \n \n
    \n
    \n","import { Component, OnDestroy, OnInit, AfterViewInit, HostListener } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FormControl } from '@angular/forms';\n\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\n\nimport { CaseSummaryDS, EmployerColumns, SalesJourneyProdType } from './case-summary.model';\nimport { AdviseEmpfrefComponent } from './advise-empfref/advise-empfref.component';\nimport { AdviseIffstatusComponent } from './advise-iffstatus/advise-iffstatus.component';\nimport { AdviseEmpfstatusComponent } from './advise-empfstatus/advise-empfstatus.component';\nimport { DisplayDetailsByProductTypeComponent } from './display-details-by-product-type/display-details-by-product-type.component';\nimport { DeclarationIffComponent } from './declaration-iff/declaration-iff.component';\nimport { EMPFSTATUS_TYPE_OPTIONS, IFFSTATUS_TYPE_OPTIONS } from './case-summary.config';\nimport { Subscription } from 'rxjs';\nimport { CasesummaryService } from './casesummary.service';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CaseSummaryRequest } from './casesummary-request.model';\nimport { ProductTypeSummaryService } from '../product-type-summary/producttype-summary.service';\nimport { AgentProductSummary } from '../product-type-summary/product-type-summary.model';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { DeclarationIffErComponent } from './declaration-iff-er/declaration-iff-er.component';\nimport { GgiDeclarationPopupComponent } from './ggi-declaration-popup/ggi-declaration-popup.component';\nimport { TempCacheService } from 'src/app/shared/temp-cache/temp-cache.service';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault, pageToTop } from 'src/app/utils/utils';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { CaseSummaryResponse } from './casesummary-response.model';\nimport { ProductTypeResponse } from '../product-type-summary/producttype-response';\n\nexport enum IndividualType {\n ALL = 'all',\n PA = 'PA',\n TVC = 'TVC',\n FRC = 'FRC',\n}\n\ninterface ResEmployer {\n brNo: string;\n customerId?: string;\n splitCase: boolean;\n chnEmployerNm: string;\n domainType: string;\n empfRefNo: string;\n empfStatus: string;\n employerNm: string;\n lnkgIffDclrDt: string;\n lnkgIffStatus: string;\n productType: string;\n salesJourneyStatus: string;\n salesJourneySummaryId: string;\n}\n\n@Component({\n selector: 'app-case-summary',\n templateUrl: './case-summary.component.html',\n styleUrls: ['./case-summary.component.scss'],\n})\nexport class CaseSummaryComponent implements OnInit, OnDestroy, AfterViewInit {\n IndividualType = IndividualType;\n SalesJourneyProdType = SalesJourneyProdType;\n individualTypeSelected = IndividualType.ALL;\n caseSummaryTotalCount = 0;\n isShowProgress = true;\n isDisableTopCheckboxNoEr = false;\n isDisableTopCheckboxEr = false;\n allPageData: CaseSummaryDS[][] = [];\n allPageDataOfEmployerColumns: EmployerColumns[][] = [];\n private allPageDataForCheck: string[] = [];\n private allPageDataOfEmployerColumnsCheck: string[] = [];\n currentPageNumOrigin = 1;\n totalRecords = 0;\n resetDatePicker = false;\n isAgreeSendIff = false;\n private caseSummarySubscription?: Subscription;\n private productSummarySubscription?: Subscription;\n private errorSub?: Subscription;\n isLoading = false;\n private today = new Date();\n private earliestDate = new Date('1970/01/01');\n declarationDateFromMax: Date = this.today;\n declarationDateFromMin: Date = this.earliestDate;\n declarationDateToMax: Date = this.today;\n declarationDateToMin: Date = this.earliestDate;\n birthdateValueMax: Date = this.today;\n declarationDateFromError = false;\n declarationDateToError = false;\n dateofBirthError = false;\n isRefreshAllChecked = false;\n\n constructor(\n private router: Router, // private langService: CdsLangService,\n private cdsPopup: CdsPopupService,\n private alert: CdsAlertService,\n public caseSummaryService: CasesummaryService,\n private productTypeSummaryService: ProductTypeSummaryService,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n private tempCacheService: TempCacheService,\n private agentChannelService: AgentChannelService\n ) {}\n ngOnDestroy(): void {\n this.caseSummarySubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n this.productSummarySubscription?.unsubscribe();\n }\n\n private oldIffStatusoptionsOrigin: CdMultidropdownTopping[] = [];\n iffStatusoptionsOrigin: CdMultidropdownTopping[] = [];\n iffStatusoptionList = IFFSTATUS_TYPE_OPTIONS;\n\n appStatusoptionsOrigin: CdMultidropdownTopping[] = [];\n appStatusoptionList = EMPFSTATUS_TYPE_OPTIONS;\n empfRefValue = '';\n clientNameValue = '';\n declaredatefromValue = '';\n declaredatetoValue = '';\n birthdateValue = '';\n employerNameValue = '';\n brNoValue = '';\n hkidOrPassportNo = '';\n\n result = 0;\n myReqeuest: CaseSummaryRequest = {\n page: 1,\n size: 50,\n };\n private oldIffStatus: number[] = [];\n\n paSummary = new AgentProductSummary(0, 0, 0, 0);\n tvcSummary = new AgentProductSummary(0, 0, 0, 0);\n frcSummary = new AgentProductSummary(0, 0, 0, 0);\n erSummary = new AgentProductSummary(0, 0, 0, 0);\n sepSummary = new AgentProductSummary(0, 0, 0, 0);\n productTypeCount: {\n pa: AgentProductSummary;\n tvc: AgentProductSummary;\n frc: AgentProductSummary;\n er: AgentProductSummary;\n sep: AgentProductSummary;\n } = {\n pa: this.paSummary,\n tvc: this.tvcSummary,\n frc: this.frcSummary,\n er: this.erSummary,\n sep: this.sepSummary,\n };\n get iffStatusoptions() {\n return this.iffStatusoptionsOrigin.map(item => item.value);\n }\n\n get appStatusoptions() {\n return this.appStatusoptionsOrigin.map(item => item.value);\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n\n ngAfterViewInit(): void {\n pageToTop();\n setTimeout(() => {\n const searchParams = localStorage.getItem('case-summary-search-params');\n if (searchParams) {\n this.displayedColumns.unshift('isSelected');\n this.employerColumns.unshift('isSelected');\n this.isAgreeSendIff = true;\n this.myReqeuest = JSON.parse(searchParams);\n this.clientNameValue = this.myReqeuest.clientName || '';\n this.empfRefValue = this.myReqeuest.empfRefNo || '';\n this.birthdateValue = this.myReqeuest.dateOfBirth || '';\n this.hkidOrPassportNo = this.myReqeuest.hkidOrPassportNo || '';\n this.declaredatefromValue = this.myReqeuest.declarationDateFrom || '';\n this.declaredatetoValue = this.myReqeuest.declarationDateTo || '';\n this.iffStatusoptionsOrigin = [{ label: 'Pending to Send', value: 0 }];\n this.appStatusoptionsOrigin =\n this.myReqeuest.empfStatus?.map(value => {\n const option = this.appStatusoptionList.filter(item => item.value === value);\n const topping: CdMultidropdownTopping = {\n label: option[0].label,\n value: option[0].value,\n };\n return topping;\n }) || [];\n localStorage.removeItem('case-summary-search-params');\n }\n\n const data = localStorage.getItem('case-summary-selected-data');\n if (data) {\n const dataList = JSON.parse(data);\n dataList.forEach((item: EmployerColumns | CaseSummaryDS) => {\n this.allPageDataOfEmployerColumnsCheck.push(item.salesJourneySummaryId);\n this.allPageDataForCheck.push(item.salesJourneySummaryId);\n });\n }\n localStorage.removeItem('case-summary-selected-data');\n }, 0);\n }\n\n producttypeDataSubjectCallBack = (response: ProductTypeResponse) => {\n if (response.result !== undefined) {\n this.result = response.result;\n if (response.data !== undefined) {\n const respData = response.data;\n // TVC\n this.tvcSummary.pendingAgent = respData.TVC ? respData.TVC.pending2ndAgent : 0;\n this.tvcSummary.pendingcustomer = respData.TVC ? respData.TVC.pendingCusSubmission : 0;\n this.tvcSummary.pendingToMap = respData.TVC ? respData.TVC.pendingToMap : 0;\n const tvcPendingAgent = this.tvcSummary.pendingAgent ? this.tvcSummary.pendingAgent : 0;\n const tvcPendingCust = this.tvcSummary.pendingcustomer ? this.tvcSummary.pendingcustomer : 0;\n const tvcPendingToSend = this.tvcSummary.pendingToMap ? this.tvcSummary.pendingToMap : 0;\n this.tvcSummary.allPendingCount = tvcPendingAgent + tvcPendingCust + tvcPendingToSend;\n\n // PA\n this.paSummary.pendingAgent = respData.PA ? respData.PA.pending2ndAgent : 0;\n this.paSummary.pendingcustomer = respData.PA ? respData.PA.pendingCusSubmission : 0;\n this.paSummary.pendingToMap = respData.PA ? respData.PA.pendingToMap : 0;\n const paPendingAgent = this.paSummary.pendingAgent ? this.paSummary.pendingAgent : 0;\n const paPendingCust = this.paSummary.pendingcustomer ? this.paSummary.pendingcustomer : 0;\n const paPendingToSend = this.paSummary.pendingToMap ? this.paSummary.pendingToMap : 0;\n this.paSummary.allPendingCount = paPendingAgent + paPendingCust + paPendingToSend;\n\n // FRC\n this.frcSummary.pendingAgent = respData.SVC ? respData.SVC.pending2ndAgent : 0;\n this.frcSummary.pendingcustomer = respData.SVC ? respData.SVC.pendingCusSubmission : 0;\n this.frcSummary.pendingToMap = respData.SVC ? respData.SVC.pendingToMap : 0;\n const frcPendingAgent = this.frcSummary.pendingAgent ? this.frcSummary.pendingAgent : 0;\n const frcPendingCust = this.frcSummary.pendingcustomer ? this.frcSummary.pendingcustomer : 0;\n const frcPendingToSend = this.frcSummary.pendingToMap ? this.frcSummary.pendingToMap : 0;\n this.frcSummary.allPendingCount = frcPendingAgent + frcPendingCust + frcPendingToSend;\n\n // ER\n this.erSummary.pendingAgent = respData.ER ? respData.ER.pending2ndAgent : 0;\n this.erSummary.pendingcustomer = respData.ER ? respData.ER.pendingCusSubmission : 0;\n this.erSummary.pendingToMap = respData.ER ? respData.ER.pendingToMap : 0;\n const erPendingAgent = this.erSummary.pendingAgent ? this.erSummary.pendingAgent : 0;\n const erPendingCust = this.erSummary.pendingcustomer ? this.erSummary.pendingcustomer : 0;\n const erPendingToSend = this.erSummary.pendingToMap ? this.erSummary.pendingToMap : 0;\n this.erSummary.allPendingCount = erPendingAgent + erPendingCust + erPendingToSend;\n\n // SEP\n this.sepSummary.pendingAgent = respData.SEP ? respData.SEP.pending2ndAgent : 0;\n this.sepSummary.pendingcustomer = respData.SEP ? respData.SEP.pendingCusSubmission : 0;\n this.sepSummary.pendingToMap = respData.SEP ? respData.SEP.pendingToMap : 0;\n const sepPendingAgent = this.sepSummary.pendingAgent ? this.sepSummary.pendingAgent : 0;\n const sepPendingCust = this.sepSummary.pendingcustomer ? this.sepSummary.pendingcustomer : 0;\n const sepPendingToSend = this.sepSummary.pendingToMap ? this.sepSummary.pendingToMap : 0;\n this.sepSummary.allPendingCount = sepPendingAgent + sepPendingCust + sepPendingToSend;\n\n this.productTypeCount = {\n pa: this.paSummary,\n tvc: this.tvcSummary,\n frc: this.frcSummary,\n er: this.erSummary,\n sep: this.sepSummary,\n };\n }\n }\n };\n\n ngOnInit(): void {\n // this.router.getCurrentNavigation().extras.state.example;\n // console.log();\n\n this.prodTypeFormControl.setValue(sessionStorage.getItem('productType') || SalesJourneyProdType.Individual);\n this.prodTypeChange(this.prodTypeFormControl.value);\n this.productTypeSummaryService.getProducttypeSummary();\n this.productSummarySubscription = this.productTypeSummaryService.producttypeDataSubject.subscribe(this.producttypeDataSubjectCallBack);\n\n this.errorSub = this.caseSummaryService.errorcasesummarySubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n this.caseSummarySubscription = this.caseSummaryService.casesummaryDataSubject.subscribe(this.casesummaryDataSubjectCallBack);\n }\n\n casesummaryDataSubjectCallBack = (response: CaseSummaryResponse) => {\n if (response.result != 0) {\n this.pageCountSbms = 0;\n this.totalRecords = 0;\n } else if (response.data) {\n const totalPages = response.data.totalPages;\n const currentAllPageData = this.allPageData.length;\n if (totalPages > currentAllPageData) {\n for (let i = 0; i < totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - totalPages; i++) {\n this.allPageData.pop();\n }\n }\n this.totalRecords = response.data.totalElements;\n this.currentPageNumOrigin = response.data.number;\n\n if (!response.data.empty) {\n this.allPageData[this.currentPageIndex] = response.data.content.map(item => {\n let isSelected = false;\n if (this.isAgreeSendIff) {\n isSelected = this.allPageDataForCheck.includes(item.salesJourneySummaryId);\n }\n const casesummaryitem: CaseSummaryDS = {\n isSelected,\n isDisable: false,\n customerId: item.customerId,\n salesJourneySummaryId: item.salesJourneySummaryId,\n eMPFRef: item.empfRefNo,\n ProductType: item.productType,\n ClientName: item.clientLastName && item.clientFirstName ? item.clientLastName + ' ' + item.clientFirstName : '',\n ClientNameTC: item.clientLastNameTC && item.clientFirstNameTC ? item.clientLastNameTC + item.clientFirstNameTC : '',\n hkidOrPassportNo: item.hkidOrPassportNo,\n IFFDeclarationDate: item.iffDeclarationDate,\n IFFStatus: item.iffStatus.toString(),\n eMPFAppStatus: item.empfStatus.toString(),\n SplitCase: item.splitCase,\n };\n return casesummaryitem;\n });\n\n this.allPageData.flat().forEach(element => {\n this.onRowCheckOfNoErList(element.isSelected, element);\n });\n }\n this.refreshAllChecked();\n }\n this.isLoading = false;\n };\n\n getClientName(item: CaseSummaryDS) {\n if (this.cdsLangService.currentLang === 'en') {\n return item.ClientName || item.ClientNameTC;\n } else {\n return item.ClientNameTC || item.ClientName;\n }\n }\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get employerPageData() {\n if (this.allPageDataOfEmployerColumns.length === 0) {\n return [];\n }\n return this.allPageDataOfEmployerColumns[this.currentPageIndex];\n }\n\n pageCountSbms = 1;\n displayedColumns: string[] = [\n // 'isSelected',\n 'eMPFRef',\n 'ProductType',\n 'ClientName',\n 'hkidOrPassportNo',\n 'IFFDeclarationDate',\n 'IFFStatus',\n 'eMPFAppStatus',\n 'SplitCase',\n ];\n\n employerColumns: string[] = [\n // 'isSelected',\n 'eMPFRef',\n 'EmployerName',\n 'BRNumber',\n 'IFFDeclarationDate',\n 'IFFStatus',\n 'eMPFAppStatus',\n 'SplitCase',\n ];\n\n updateIcon = ActionIcons.edit;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n backSummaryIcon = ActionIcons.button_left_filled;\n // CaseSummarylist : CaseSummary[] =[\"M12431743261pc\",\"PA\",\"wan....hc\",\"28/07/2022\",\"28/07/2022\",\"P\",\"P\",\"s\"]\n\n backSummaryIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n prodTypeFormControl: FormControl = new FormControl();\n prodTypeDropdownConfig: CdsDropdownConfig = {\n label: 'Choose product Type',\n options: [\n {\n label: 'Individual(PA,TVC,FRC)',\n value: SalesJourneyProdType.Individual,\n },\n { label: 'Corperate(ER)', value: SalesJourneyProdType.Corperate },\n { label: 'SEP', value: SalesJourneyProdType.SEP },\n ],\n color: 'ml',\n };\n onBackSummayIconClick() {\n this.router.navigate(['/salesjourney/product-type-summary/select-product-type']);\n }\n prodTypeChange(value: string) {\n this.prodTypeFormControl.setValue(value);\n const searchParams = localStorage.getItem('case-summary-search-params');\n if (searchParams) {\n this.myReqeuest = JSON.parse(searchParams);\n this.clientNameValue = this.myReqeuest.clientName || '';\n this.empfRefValue = this.myReqeuest.empfRefNo || '';\n this.birthdateValue = this.myReqeuest.dateOfBirth || '';\n this.hkidOrPassportNo = this.myReqeuest.hkidOrPassportNo || '';\n this.declaredatefromValue = this.myReqeuest.declarationDateFrom || '';\n this.declaredatetoValue = this.myReqeuest.declarationDateTo || '';\n this.iffStatusoptionsOrigin = [{ label: 'Pending to Send', value: 0 }];\n this.appStatusoptionsOrigin =\n this.myReqeuest.empfStatus?.map(value => {\n const option = this.appStatusoptionList.filter(item => item.value === value);\n const topping: CdMultidropdownTopping = {\n label: option[0].label,\n value: option[0].value,\n };\n return topping;\n }) || [];\n } else {\n this.myReqeuest = {\n domainType: value,\n productTypes: [],\n page: 1,\n size: 50,\n };\n }\n\n if (value === SalesJourneyProdType.Individual) {\n delete this.myReqeuest.productTypes;\n } else if (value === SalesJourneyProdType.SEP) {\n this.myReqeuest.productTypes = ['SEP'];\n } else if (value === SalesJourneyProdType.Corperate) {\n this.myReqeuest.productTypes = ['ER'];\n }\n sessionStorage.setItem('productType', value);\n this.individualTypeSelected = IndividualType.ALL;\n this.onResetDatePicker();\n\n this.clearSearchParams();\n this.getCaseSummary();\n this.isLoading = true;\n }\n pageChange(num: number): void {\n this.myReqeuest.page = num;\n this.getCaseSummary();\n this.isLoading = true;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n searchByInputPageNobysubmit($event: any, pageNo: string) {\n $event.preventDefault();\n const intPageNo: number = parseInt(pageNo);\n if (intPageNo > this.pageCountSbms) {\n pageNo = '1';\n }\n this.pageChange(parseInt(pageNo));\n }\n checkRecordDetailTag(value: IndividualType) {\n this.individualTypeSelected = value;\n if (value === IndividualType.ALL) {\n delete this.myReqeuest.productTypes;\n } else {\n this.myReqeuest.productTypes = [value];\n }\n this.allPageDataForCheck.length = 0;\n this.allPageDataOfEmployerColumnsCheck.length = 0;\n this.myReqeuest.page = 1;\n this.isLoading = true;\n this.getCaseSummary();\n }\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n onDisplayAdviseIFF() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AdviseIffstatusComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n onDisplayAdviseEmpf() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AdviseEmpfstatusComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n onClickPAitem() {\n const popupRef: MatDialogRef = this.cdsPopup.open(DisplayDetailsByProductTypeComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n onClickGetDetailsByProductType(type: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(DisplayDetailsByProductTypeComponent, {\n size: 'sm',\n data: {\n count: this.productTypeCount,\n productType: type,\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n closeSendIff() {\n this.isAgreeSendIff = false;\n this.displayedColumns.shift();\n this.employerColumns.shift();\n this.onClickReset();\n this.allPageDataForCheck.length = 0;\n this.allPageDataOfEmployerColumnsCheck.length = 0;\n }\n\n onRoutesend() {\n if (this.isDisableSendIff) {\n return;\n }\n\n const ggiPopupRef: MatDialogRef = this.cdsPopup.open(GgiDeclarationPopupComponent, {\n size: 'md',\n });\n\n ggiPopupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.allPageData = [];\n this.allPageDataOfEmployerColumns = [];\n this.isAgreeSendIff = true;\n this.displayedColumns.unshift('isSelected');\n this.employerColumns.unshift('isSelected');\n this.myReqeuest.page = 1;\n this.myReqeuest.size = 50;\n this.myReqeuest.domainType = this.prodTypeFormControl.value;\n this.oldIffStatus = this.myReqeuest.iffStatus || [];\n this.myReqeuest.iffStatus = [0];\n this.oldIffStatusoptionsOrigin = this.iffStatusoptionsOrigin;\n this.iffStatusoptionsOrigin = [{ label: 'Pending to Send', value: 0 }];\n this.getCaseSummary();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n\n ggiPopupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n onRouteDeclareIff() {\n if (this.isDisableGenerateGeneralIff) {\n return;\n }\n if (this.prodTypeFormControl.value === SalesJourneyProdType.Corperate) {\n const ref = this.cdsPopup.open(DeclarationIffErComponent, {\n size: 'md',\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n\n ref.afterClosed().subscribe((o: { refresh: boolean }) => {\n if (o?.refresh) {\n this.search();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n } else {\n const ref = this.cdsPopup.open(DeclarationIffComponent, {\n size: 'md',\n data: {\n domain: this.prodTypeFormControl.value,\n },\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n\n ref.afterClosed().subscribe((o: { refresh: boolean }) => {\n if (o?.refresh) {\n this.search();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n }\n }\n\n onClickSearch() {\n if (this.isDisableSearch || this.isAgreeSendIff || this.isLoading) {\n return;\n }\n this.search();\n }\n\n search() {\n this.myReqeuest.page = 1;\n this.myReqeuest.size = 50;\n this.myReqeuest.clientName = this.clientNameValue.trim();\n this.myReqeuest.empfRefNo = this.empfRefValue.trim();\n this.myReqeuest.dateOfBirth = this.birthdateValue.trim();\n this.myReqeuest.hkidOrPassportNo = this.hkidOrPassportNo.trim();\n this.myReqeuest.declarationDateFrom = this.declaredatefromValue.trim();\n this.myReqeuest.declarationDateTo = this.declaredatetoValue.trim();\n this.myReqeuest.iffStatus = this.iffStatusoptions.length > 0 ? this.iffStatusoptions : undefined;\n this.myReqeuest.empfStatus = this.appStatusoptions.length > 0 ? this.appStatusoptions : undefined;\n this.isLoading = true;\n this.getCaseSummary();\n }\n\n get getSelected() {\n let num = 0;\n if (this.prodTypeFormControl.value === SalesJourneyProdType.Corperate) {\n this.allPageDataOfEmployerColumns.forEach(list => {\n list.forEach(item => {\n if (item.isSelected) {\n num++;\n }\n });\n });\n } else {\n this.allPageData.forEach(list => {\n list.forEach(item => {\n if (item.isSelected) {\n num++;\n }\n });\n });\n }\n return num;\n }\n\n clearSearchParams() {\n this.brNoValue = '';\n this.employerNameValue = '';\n this.empfRefValue = '';\n this.clientNameValue = '';\n this.declaredatefromValue = '';\n this.declaredatetoValue = '';\n this.birthdateValue = '';\n this.hkidOrPassportNo = '';\n this.appStatusoptionsOrigin = [];\n this.iffStatusoptionsOrigin = [];\n this.declarationDateFromError = false;\n this.declarationDateToError = false;\n this.dateofBirthError = false;\n }\n\n onClickReset() {\n if (this.isAgreeSendIff) {\n return;\n }\n this.onResetDatePicker();\n this.clearSearchParams();\n this.myReqeuest = {\n page: 1,\n size: 50,\n productTypes: this.myReqeuest.productTypes,\n domainType: this.prodTypeFormControl.value,\n };\n this.isLoading = true;\n this.getCaseSummary();\n this.productTypeSummaryService.getProducttypeSummary();\n }\n empfRefChange(result: string) {\n this.empfRefValue = result;\n }\n clientNameChange(result: string) {\n this.clientNameValue = result;\n }\n\n declaredatefChange(result: string) {\n if (result === '') {\n this.declarationDateFromError = false;\n return;\n }\n this.declaredatefromValue = result;\n const temp = this.declaredatefromValue.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date' || selectedDate > this.today) {\n this.declarationDateFromError = true;\n return;\n }\n if (this.declaredatetoValue) {\n const tempTo = this.declaredatetoValue.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.declarationDateFromError = true;\n return;\n }\n }\n this.declarationDateFromError = false;\n\n this.declarationDateToMin = selectedDate;\n }\n declaredatetoChange(result: string) {\n if (result === '') {\n this.declarationDateToError = false;\n return;\n }\n this.declaredatetoValue = result;\n const temp = this.declaredatetoValue.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date' || selectedDate > this.today) {\n this.declarationDateToError = true;\n return;\n }\n if (this.declaredatefromValue) {\n const tempFrom = this.declaredatefromValue.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.declarationDateToError = true;\n return;\n }\n }\n this.declarationDateToError = false;\n\n this.declarationDateFromMax = new Date([temp[1], temp[0], temp[2]].join('/'));\n }\n birthdateChange(result: string) {\n if (result === '') {\n this.dateofBirthError = false;\n return;\n }\n this.birthdateValue = result;\n const temp = result.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date' || selectedDate > this.today) {\n this.dateofBirthError = true;\n return;\n }\n this.dateofBirthError = false;\n }\n\n get isDisableSearch() {\n if (this.prodTypeFormControl.value === SalesJourneyProdType.Corperate) {\n return (\n (this.empfRefValue === '' &&\n this.employerNameValue === '' &&\n this.brNoValue === '' &&\n this.appStatusoptions.length === 0 &&\n this.iffStatusoptions.length === 0 &&\n this.declaredatefromValue === '' &&\n this.declaredatetoValue === '') ||\n this.declarationDateFromError ||\n this.declarationDateToError\n );\n } else {\n return (\n (this.empfRefValue === '' &&\n this.clientNameValue === '' &&\n this.appStatusoptions.length === 0 &&\n this.iffStatusoptions.length === 0 &&\n this.declaredatefromValue === '' &&\n this.declaredatetoValue === '' &&\n this.birthdateValue === '' &&\n this.hkidOrPassportNo === '') ||\n this.declarationDateFromError ||\n this.declarationDateToError ||\n this.dateofBirthError\n );\n }\n }\n\n get isDisableGenerateGeneralIff() {\n return this.disableFoneFtwoByChannel();\n }\n\n get isDisableSendIff() {\n if (this.disableFoneFtwoByChannel()) {\n return true;\n }\n if (this.prodTypeFormControl.value !== SalesJourneyProdType.Corperate) {\n return this.currentPageData.length === 0;\n } else {\n return this.employerPageData.length === 0;\n }\n }\n\n disableFoneFtwoByChannel() {\n if (this.agentChannelService.channel && [AgentChannel.SCB, AgentChannel.BROKER].includes(this.agentChannelService.channel)) {\n return true;\n }\n if (this.agentChannelService.channel === AgentChannel.CORPORATE) {\n if (!this.agentChannelService.agentCode?.startsWith('400') || this.agentChannelService.agentCode === '400003') {\n return true;\n }\n }\n return false;\n }\n\n getCaseSummary() {\n this.isLoading = true;\n if (this.myReqeuest.domainType === SalesJourneyProdType.Corperate) {\n this.myReqeuest.companyName = this.employerNameValue;\n this.myReqeuest.brNo = this.brNoValue;\n delete this.myReqeuest.clientName;\n delete this.myReqeuest.dateOfBirth;\n this.getEmployerSalesJourneySummarie(this.myReqeuest);\n } else {\n delete this.myReqeuest.companyName;\n delete this.myReqeuest.brNo;\n this.caseSummaryService.getCaseSummary(this.myReqeuest);\n }\n }\n\n getEmployerSalesJourneySummarie(request: CaseSummaryRequest) {\n this.cdHttpServeService\n .post<{\n totalPages: number;\n totalElements: number;\n number: number;\n content: ResEmployer[];\n empty: boolean;\n }>(`/ext/eb-ssms-sales-journey-service/employerSalesJourneySummaries`, request)\n .subscribe({\n next: response => {\n if (response.result != 0) {\n this.pageCountSbms = 0;\n this.totalRecords = 0;\n } else if (response.data) {\n const totalPages = response.data.totalPages;\n const currentAllPageData = this.allPageDataOfEmployerColumns.length;\n if (totalPages > currentAllPageData) {\n for (let i = 0; i < totalPages - currentAllPageData; i++) {\n this.allPageDataOfEmployerColumns.push([]);\n }\n } else if (totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - totalPages; i++) {\n this.allPageDataOfEmployerColumns.pop();\n }\n }\n this.totalRecords = response.data.totalElements;\n this.currentPageNumOrigin = response.data.number;\n\n if (!response.data.empty) {\n this.allPageDataOfEmployerColumns[this.currentPageIndex] = response.data.content.map(item => {\n let isSelected = false;\n if (this.isAgreeSendIff) {\n isSelected = this.allPageDataOfEmployerColumnsCheck.includes(item.salesJourneySummaryId);\n }\n const casesummaryitem: EmployerColumns = {\n isSelected,\n isDisable: false,\n customerId: item.customerId,\n salesJourneySummaryId: item.salesJourneySummaryId,\n eMPFRef: item.empfRefNo,\n EmployerName: item.employerNm,\n EmployerNameTC: item.chnEmployerNm,\n BRNumber: item.brNo,\n IFFDeclarationDate: item.lnkgIffDclrDt,\n IFFStatus: item.lnkgIffStatus.toString(),\n eMPFAppStatus: item.empfStatus.toString(),\n SplitCase: item.splitCase,\n };\n return casesummaryitem;\n });\n\n this.allPageDataOfEmployerColumns.flat().forEach(element => {\n this.onRowCheckOfErList(element.isSelected, element);\n });\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onRowCheckOfErList(boo: boolean, element: EmployerColumns) {\n element.isSelected = boo;\n\n if (element.isSelected && element.SplitCase) {\n this.allPageDataOfEmployerColumns.forEach(list => {\n list.forEach(item => {\n if (element.salesJourneySummaryId !== item.salesJourneySummaryId) {\n item.isDisable = true;\n }\n });\n });\n this.isDisableTopCheckboxEr = true;\n } else if (element.isSelected && !element.SplitCase) {\n this.allPageDataOfEmployerColumns.forEach(list => {\n list.forEach(item => {\n if (item.SplitCase) {\n item.isDisable = true;\n }\n });\n });\n }\n\n if (boo) {\n this.allPageDataOfEmployerColumnsCheck.push(element.salesJourneySummaryId);\n } else {\n this.allPageDataOfEmployerColumnsCheck = this.allPageDataOfEmployerColumnsCheck.filter(itemId => itemId !== element.salesJourneySummaryId);\n if (this.allPageDataOfEmployerColumns.flat().every(item => !item.isSelected)) {\n this.allPageDataOfEmployerColumns.flat().forEach(element => {\n element.isDisable = false;\n });\n this.isDisableTopCheckboxEr = false;\n }\n }\n }\n\n erChangeListIsAllChecked() {\n return this.employerPageData.every(item => item.isSelected);\n }\n\n erChangeListIsHalfChecked() {\n const isAllChecked = this.erChangeListIsAllChecked();\n const isAllUnChecked = this.employerPageData.every(item => !item.isSelected);\n\n return !isAllChecked && !isAllUnChecked;\n }\n\n onErAllCheckedChange(boo: boolean) {\n this.employerPageData.forEach(element => {\n if (!element.SplitCase) {\n element.isSelected = boo;\n if (boo) {\n this.allPageDataOfEmployerColumnsCheck.push(element.salesJourneySummaryId);\n } else {\n this.allPageDataOfEmployerColumnsCheck = this.allPageDataOfEmployerColumnsCheck.filter(itemId => itemId !== element.salesJourneySummaryId);\n }\n } else {\n element.isDisable = boo;\n }\n });\n }\n\n onRowCheckOfNoErList(boo: boolean, element: CaseSummaryDS) {\n element.isSelected = boo;\n\n if (element.isSelected && element.SplitCase) {\n this.allPageData.forEach(list => {\n list.forEach(item => {\n if (element.salesJourneySummaryId !== item.salesJourneySummaryId) {\n item.isDisable = true;\n }\n });\n });\n this.isDisableTopCheckboxNoEr = true;\n } else if (element.isSelected && !element.SplitCase) {\n this.allPageData.forEach(list => {\n list.forEach(item => {\n if (item.SplitCase) {\n item.isDisable = true;\n }\n });\n });\n }\n\n if (boo) {\n this.allPageDataForCheck.push(element.salesJourneySummaryId);\n } else {\n this.allPageDataForCheck = this.allPageDataForCheck.filter(itemId => itemId !== element.salesJourneySummaryId);\n if (this.allPageData.flat().every(item => !item.isSelected)) {\n this.allPageData.flat().forEach(element => {\n element.isDisable = false;\n });\n this.isDisableTopCheckboxNoEr = false;\n }\n }\n }\n\n noErChangeListIsAllChecked() {\n return this.currentPageData.every(item => item.isSelected);\n }\n\n noErChangeListIsHalfChecked() {\n const isAllChecked = this.noErChangeListIsAllChecked();\n const isAllUnChecked = this.currentPageData.every(item => !item.isSelected);\n\n return !isAllChecked && !isAllUnChecked;\n }\n\n onNoErAllCheckedChange(boo: boolean) {\n this.currentPageData.forEach(element => {\n if (!element.SplitCase) {\n element.isSelected = boo;\n if (boo) {\n this.allPageDataForCheck.push(element.salesJourneySummaryId);\n } else {\n this.allPageDataForCheck = this.allPageDataForCheck.filter(itemId => itemId !== element.salesJourneySummaryId);\n }\n } else {\n element.isDisable = boo;\n }\n });\n }\n\n getEmployerName(element: EmployerColumns) {\n if (this.cdsLangService.currentLang === 'en') {\n return element.EmployerName || element.EmployerNameTC;\n } else {\n return element.EmployerNameTC || element.EmployerName;\n }\n }\n\n navigateToCaseDetail(salesJourneySummariesId: string, empfRefNo: string) {\n return `/salesjourney/${\n this.prodTypeFormControl.value === SalesJourneyProdType.Corperate ? 'case-details-er' : 'case-details'\n }/${salesJourneySummariesId}/${empfRefNo}`;\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateFromMin = this.earliestDate;\n this.declarationDateToMax = this.today;\n this.declarationDateToMin = this.earliestDate;\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n saveErData(element: EmployerColumns) {\n this.tempCacheService.setItem(`case-summary-er-${element.eMPFRef}`, element);\n this.tempCacheService.saveToLocalStorage();\n }\n\n saveData(element: CaseSummaryDS) {\n this.tempCacheService.setItem(`case-summary-ee-${element.eMPFRef}`, element);\n this.tempCacheService.saveToLocalStorage();\n }\n\n goSendIffInBatchSummary() {\n if (this.disabledContinue) {\n return;\n }\n\n localStorage.setItem('case-summary-search-params', JSON.stringify(this.myReqeuest));\n\n const selectedData: (CaseSummaryDS | EmployerColumns)[] = [];\n if (this.prodTypeFormControl.value !== SalesJourneyProdType.Corperate) {\n this.allPageData.forEach(list => {\n list.forEach(item => {\n if (item.isSelected) {\n selectedData.push(item);\n }\n });\n });\n } else {\n this.allPageDataOfEmployerColumns.forEach(list => {\n list.forEach(item => {\n if (item.isSelected) {\n selectedData.push(item);\n }\n });\n });\n }\n localStorage.setItem('case-summary-selected-data', JSON.stringify(selectedData));\n if (this.prodTypeFormControl.value !== SalesJourneyProdType.Corperate) {\n this.router.navigate(['/salesjourney/send-iff-in-batch-summary']);\n } else {\n this.router.navigate(['/salesjourney/er-send-iff-in-batch-summary']);\n }\n }\n\n get disabledContinue() {\n return this.getSelected === 0;\n }\n\n refreshAllChecked() {\n this.isRefreshAllChecked = true;\n setTimeout(() => {\n this.isRefreshAllChecked = false;\n }, 0);\n }\n}\n","
    \n
    \n {{ 'productTypesummary.header' | lang }}\n
    \n
    \n \n
    \n Back to Product List\n
    \n
    \n
    \n
    \n
    \n
    \n Choose product Type\n
    \n \n
    \n
    \n
    \n
    \n 0 ? 'gold' : '']\"\n (click)=\"onClickGetDetailsByProductType('PA')\">\n
    \n
    \n
    \n {{ productTypeCount.pa.allPendingCount }}\n
    \n
    \n
    \n PA Pending items\n
    \n
    \n \n
    \n
    \n
    \n 0 ? 'gold' : '']\"\n (click)=\"onClickGetDetailsByProductType('TVC')\">\n
    \n
    \n
    \n {{ productTypeCount.tvc.allPendingCount }}\n
    \n
    \n
    \n TVC Pending items\n
    \n
    \n \n
    \n
    \n
    \n 0 ? 'gold' : '']\"\n (click)=\"onClickGetDetailsByProductType('FRC')\">\n
    \n
    \n
    \n {{ productTypeCount.frc.allPendingCount }}\n
    \n
    \n
    \n FRC Pending items\n
    \n
    \n \n
    \n
    \n \n \n
    \n Search record\n
    \n
    \n eMPF Ref# \n \n
    \n
    \n \n {{ 'resend-eiff.clientName' | lang }}\n \n \n
    \n
    \n Employer Name \n \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n
    \n \n \n {{ 'case-summary.hkid' | lang }}\n \n \n
    \n
    \n BR Number \n \n
    \n
    \n
    \n IFF Status \n \n
    \n
    \n
    \n Application Status \n \n
    \n
    \n eMPF App Status \n \n
    \n
    \n Search\n Reset\n
    \n
    \n \n\n
    \n {{ isAgreeSendIff ? 'Send IFF by SSMS in batch' : 'Record list' }}\n
    \n
    \n
    \n Total {{ totalRecords }} records \n
    \n
    Filter by:
    \n
    \n All Product Type\n
    \n
    \n PA\n
    \n
    \n TVC\n
    \n
    \n FRC\n
    \n
    \n
    \n\n
    \n Generate general IFF \n Send IFF by EMPF record\n Back to Summary\n
    \n
    \n
    \n \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'productTypesummary.eMPFRef' | lang }}\n \n
    \n
    \n \n \n \n \n
    \n \n {{ 'productTypesummary.ProductType' | lang }}\n \n {{ element.ProductType }}\n \n \n \n {{ 'productTypesummary.ClientName' | lang }}\n \n {{ element.ClientName }}\n \n \n\n \n {{ 'case-summary.hkid' | lang }}\n \n {{ element.hkidOrPassportNo }}\n \n \n \n {{ 'productTypesummary.IFFDeclarationDate' | lang }}\n \n {{ element.IFFDeclarationDate }}\n \n \n\n \n \n
    \n {{ 'productTypesummary.IFFStatus' | lang }}\n \n
    \n
    \n \n \n \n
    \n\n \n \n
    \n {{ 'productTypesummary.eMPFAppStatus' | lang }}\n \n
    \n
    \n\n \n \n \n
    \n\n \n {{ 'productTypesummary.SplitCase' | lang }}\n \n
    \n \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 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'productTypesummary.eMPFRef' | lang }}\n \n
    \n
    \n \n \n \n \n
    \n \n {{ 'productTypesummary.employerName' | lang }}\n \n {{ getEmployerName(element) }}\n \n \n \n {{ 'productTypesummary.BRNumber' | lang }}\n \n {{ element.BRNumber }}\n \n \n\n \n {{ 'productTypesummary.IFFDeclarationDate' | lang }}\n \n {{ element.IFFDeclarationDate }}\n \n \n\n \n \n
    \n {{ 'productTypesummary.IFFStatus' | lang }}\n \n
    \n
    \n \n \n \n
    \n\n \n \n
    \n {{ 'productTypesummary.eMPFAppStatus' | lang }}\n \n
    \n
    \n\n \n \n \n
    \n\n \n {{ 'productTypesummary.SplitCase' | lang }}\n \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 record(s) to continue.\n
    \n
    \n
    \n {{ getSelected }} item(s) selected\n
    \n
    \n Continue\n
    \n
    \n
    \n\n","import { CdsOption } from '@cds/ng-core/configuration';\n\nexport const IFFSTATUS_TYPE_OPTIONS: CdsOption[] = [\n { label: 'Pending to Send', value: 0 },\n { label: 'Pending Split Agent(s)', value: 10 },\n { label: 'Pending Customer Submission', value: 20 },\n {\n label: 'Completed',\n value: 30,\n },\n {\n label: 'Expired',\n value: 40,\n },\n {\n label: 'Declined (Agent SEP/ Staff CA)',\n value: 98,\n },\n {\n label: 'Declined',\n value: 99,\n },\n {\n label: 'Void',\n value: 97,\n },\n];\nexport const EMPFSTATUS_TYPE_OPTIONS: CdsOption[] = [\n {\n label: 'Pending eMPF data',\n value: 0,\n },\n {\n label: 'eMPF Processing',\n value: 10,\n },\n {\n label: 'eMPF Follow-up',\n value: 20,\n },\n {\n label: 'eMPF Completed',\n value: 30,\n },\n {\n label: 'Partially completed',\n value: 31,\n },\n {\n label: 'eMPF Rejected',\n value: 40,\n },\n {\n label: 'eMPF Application cancelled',\n value: 50,\n },\n {\n label: 'Not Applicable',\n value: 99,\n },\n];\n\nexport const EE_DECLINED_REASON_OPTIONS: CdsOption[] = [\n {\n label: 'Mismatch Ref. No',\n value: '1',\n },\n {\n label: 'Mismatch HKID/ Passport No.',\n value: '2',\n },\n {\n label: 'Mismatch Agent Information',\n value: '6',\n },\n {\n label: 'Mismatch Client Contact',\n value: '7',\n },\n {\n label: 'Declined due to reject application in eMPF portal',\n value: '8',\n },\n];\n\nexport const ER_DECLINED_REASON_OPTIONS: CdsOption[] = [\n {\n label: 'Mismatch Ref. No',\n value: '1',\n },\n {\n label: 'Mismatch Employer Name',\n value: '3',\n },\n {\n label: 'Mismatch BR Number',\n value: '4',\n },\n {\n label: 'Mismatch Agent Information',\n value: '6',\n },\n {\n label: 'Mismatch Authorized Person Contact',\n value: '7',\n },\n {\n label: 'Declined due to reject application in eMPF portal',\n value: '8',\n },\n];\n","export enum ApplicationStaus {\n Pending = 'Pending',\n Completed = 'Completed',\n eMPFFollowup = 'eMPFFollowup',\n eMPFRejected = 'eMPFRejected',\n eMPFProcessing = 'eMPFProcessing',\n}\n\nexport enum IFFStatus {\n Pending = 'Pending',\n Completed = 'Completed',\n Declined = 'Declined',\n PendingCustomerSubmission = 'PeningCustomerSubmission',\n Pending2ndAgentSubmission = 'Pending2ndAgentSubmission',\n}\n","import { CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { FormControl } from '@angular/forms';\nimport { DeliveryChannelType } from 'src/app/core/models/enum/delivery-channel-type.enum';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nexport interface CaseSummary {\n salesJourneySummaryId: string;\n empfRefNo: string;\n productType: string;\n clientFirstName: string;\n clientFirstNameTC: string;\n clientLastName: string;\n clientLastNameTC: string;\n dateOfBirth: string;\n iffDeclarationDate: string;\n iffStatus: number;\n iffStatusName: string;\n empfStatus: number;\n empfStatusName: string;\n salesJourneyStatus: number;\n splitCase: number;\n}\n\nexport interface CaseSummaryDS {\n isSelected: boolean;\n customerId?: string;\n isDisable: boolean;\n salesJourneySummaryId: string;\n eMPFRef: string;\n ProductType: string;\n ClientName: string;\n ClientNameTC: string;\n hkidOrPassportNo: string;\n IFFDeclarationDate: string;\n IFFStatus: string;\n eMPFAppStatus: string;\n SplitCase: boolean;\n countryCallingCode?: string;\n displayPhoneNumber?: string;\n emailAddr?: string;\n memberId?: string;\n phoneNumber?: string;\n deliveryChannelConfig?: CdRadioConfig;\n deliveryChannel?: DeliveryChannelType;\n preferredLanguageConfig?: CdRadioConfig;\n preferredLanguage?: PreferredLanguageType;\n secondAgentCode?: string;\n rmReferralCode?: FormControl;\n campaignCode?: FormControl;\n sourceCode?: FormControl;\n inputCustomerId?: FormControl;\n}\n\nexport type ParentElement = {\n classList: DOMTokenList;\n parentElement: ParentElement;\n};\n\nexport enum PreferredLanguageType {\n Chinese = 'Chinese',\n English = 'English',\n}\n\nexport enum SalesJourneyProdType {\n Individual = 'IND',\n Corperate = 'ER',\n SEP = 'SEP',\n}\n\nexport interface ContactPersonContact {\n contactPersonFirstName: string;\n contactPersonId: string;\n contactPersonLastName: string;\n contactPersonName: string;\n contactPersonNameChi: string;\n countryCallingCode?: string;\n displayPhoneNumber?: string;\n emailAddr?: string;\n phoneNumber?: string;\n deliveryChannelConfig?: CdRadioConfig;\n}\n\nexport interface EmployerColumns {\n isSelected: boolean;\n isDisable: boolean;\n customerId?: string;\n eMPFRef: string;\n EmployerName: string;\n EmployerNameTC: string;\n BRNumber: string;\n IFFDeclarationDate: string;\n IFFStatus: string;\n eMPFAppStatus: string;\n SplitCase: boolean;\n salesJourneySummaryId: string;\n contactPersonContacts?: ContactPersonContact[];\n authorizedPersonNameControl?: FormControl;\n authorizedPersonNameConfigEng?: CdsDropdownConfig;\n authorizedPersonNameConfigChi?: CdsDropdownConfig;\n deliveryChannel?: string | number;\n secondAgentCode?: string;\n thirdAgentCode?: string;\n rmReferralCode?: FormControl;\n campaignCode?: FormControl;\n sourceCode?: FormControl;\n inputCustomerId?: FormControl;\n preferredLanguageConfig?: CdRadioConfig;\n preferredLanguage?: PreferredLanguageType;\n isIntragroupTransfer?: FormControl;\n}\n","export class CaseSummaryResponse {\n result?: number;\n message?: string;\n data?: CaseSummaryResponseBody;\n\n constructor(result: number, message: string) {\n this.result = result;\n this.message = message;\n }\n}\n\nexport interface CaseSummaryResponseBody {\n content: CaseSummaryResponseData[];\n pageable: Pageable;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n numberOfElements: number;\n size: number;\n number: number;\n empty: boolean;\n}\n\nexport interface Pageable {\n pageNumber: number;\n pageSize: number;\n offset?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n\nexport interface CaseSummaryResponseData {\n salesJourneySummaryId: string;\n customerId?: string;\n empfRefNo: string;\n productType: string;\n clientFirstName: string;\n clientFirstNameTC: string;\n clientLastName: string;\n clientLastNameTC: string;\n dateOfBirth: string;\n hkidOrPassportNo: string;\n iffDeclarationDate: string;\n iffStatus: number;\n iffStatusName: string;\n empfStatus: number;\n empfStatusName: string;\n salesJourneyStatus: number;\n splitCase: boolean;\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { catchError, Observable, of, Subject, timeout } from 'rxjs';\nimport { CaseSummaryRequest } from './casesummary-request.model';\nimport { CaseSummaryResponse } from './casesummary-response.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CasesummaryService {\n searchcasesummaryUrl = `${environment.apiPrefix}/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries`;\n casesummaryDataSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorcasesummarySubject = new Subject();\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n getCaseSummary(request: CaseSummaryRequest) {\n this.httpClient\n .post(this.searchcasesummaryUrl, request, this.httpOptions)\n .pipe(timeout(5000), catchError(this.handleError(new CaseSummaryResponse(2, 'ERROR'))))\n .subscribe(resp => {\n this.casesummaryDataSubject.next(resp);\n });\n }\n handleError(result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n this.errorcasesummarySubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n\n wsmStatus(item: { wsmStatus: number }) {\n const result = { color: '', text: '' };\n\n switch (item.wsmStatus) {\n case 10:\n result.color = '#00A758';\n result.text = 'active';\n break;\n case 90:\n result.color = '#F49600';\n result.text = 'expired';\n break;\n }\n\n return result;\n }\n\n iffStatus(item: { IFFStatus: string }) {\n const result = { color: '', text: '' };\n\n switch (item.IFFStatus) {\n case '0':\n result.color = '#F49600';\n result.text = 'eIFFStatus.pendingToSend';\n break;\n\n case '10':\n result.color = '#06C7BA';\n result.text = 'eIFFStatus.pendingSplitAgent';\n break;\n\n case '20':\n result.color = '#0000C1';\n result.text = 'eIFFStatus.pendingCustomerSubmission';\n break;\n\n case '30':\n result.color = '#06874E';\n result.text = 'eIFFStatus.completed';\n break;\n\n case '40':\n result.color = '#8E90A2';\n result.text = 'eIFFStatus.expired';\n break;\n\n case '97':\n result.color = '#282b3e';\n result.text = 'eIFFStatus.void';\n break;\n\n case '98':\n result.color = '#EC6453';\n result.text = 'eIFFStatus.declinedAgent';\n break;\n\n case '99':\n result.color = '#D03A39';\n result.text = 'eIFFStatus.declined';\n break;\n }\n\n return result;\n }\n\n empfAppStatus(item: { eMPFAppStatus: string }) {\n const result = { color: '', text: '' };\n\n switch (item.eMPFAppStatus) {\n case '0':\n result.color = '#F49600';\n result.text = 'Pending eMPF data';\n break;\n\n case '10':\n result.color = '#06C7BA';\n result.text = 'eMPF Processing';\n break;\n\n case '20':\n result.color = '#0000C1';\n result.text = 'eMPF Follow-up';\n break;\n\n case '30':\n result.color = '#06874E';\n result.text = 'eMPF Completed';\n break;\n\n case '31':\n result.color = '#EC6453';\n result.text = 'Partially completed';\n break;\n\n case '40':\n result.color = '#8E90A2';\n result.text = 'eMPF Rejected';\n break;\n\n case '50':\n result.color = '#A00E18';\n result.text = 'eMPF Application cancelled';\n break;\n\n case '99':\n result.color = '#604584';\n result.text = 'Not Applicable';\n break;\n }\n\n return result;\n }\n\n declineReason(list?: string[] | string, type: 'EE' | 'ER' = 'EE', from?: string) {\n if (!list) {\n return [];\n }\n if (typeof list === 'string') {\n list = list.split(',');\n }\n if (list.length === 0) {\n return [];\n }\n\n const result: string[] = [];\n list.forEach(element => {\n switch (element) {\n case '1':\n result.push('Mismatch Ref. No');\n break;\n case '2':\n result.push('Mismatch HKID/ Passport No.');\n break;\n case '3':\n result.push('Mismatch Employer Name');\n break;\n case '4':\n result.push('Mismatch BR Number');\n break;\n case '6':\n result.push('Mismatch Agent Information');\n break;\n case '7':\n if (type === 'EE') {\n result.push('Mismatch Client Contact');\n } else {\n result.push('Mismatch Authorized Person Contact');\n }\n break;\n case '8':\n result.push('Declined due to reject application in eMPF portal');\n break;\n }\n if (from !== 'sales-support-summary' && from !== 'branch-level-summary') {\n switch (element) {\n case '91':\n result.push('Pending to Send');\n break;\n case '92':\n result.push('Pending Split Agent(s)');\n break;\n case '93':\n result.push('Pending Customer Submission');\n break;\n }\n }\n });\n\n return result;\n }\n\n differentAgentStatus(item: { iffStatusEnum: number }) {\n const result = { color: '', text: '' };\n\n switch (item.iffStatusEnum) {\n case 0:\n result.color = '';\n result.text = 'N/A';\n break;\n case 1:\n result.color = '#f49600';\n result.text = 'different-agent-status.pending';\n break;\n case 10:\n result.color = '#00a758';\n result.text = 'different-agent-status.submitted';\n break;\n case 20:\n result.color = '#5e6073';\n result.text = 'different-agent-status.expired';\n break;\n case 11:\n result.color = '#0000c1';\n result.text = 'different-agent-status.notRequired';\n break;\n }\n\n return result;\n }\n\n transferStatus(item: { transferStatusEnum: number }) {\n const result = { color: '', text: '' };\n\n switch (item.transferStatusEnum) {\n case 0:\n result.color = '#f49600';\n result.text = 'Transfer Processing';\n break;\n\n case 10:\n result.color = '#0000c1';\n result.text = 'Transfer Follow up';\n break;\n\n case 20:\n result.color = '#00a758';\n result.text = 'Transfer Completed';\n break;\n\n case 30:\n result.color = '#a00e18';\n result.text = 'Transfer Cancelled';\n break;\n\n case 40:\n result.color = '#8e90a2';\n result.text = 'Transfer Rejected';\n break;\n }\n\n return result;\n }\n}\n","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { IffService } from '../../service/iff.service';\nimport { ValidateEmpfRefNoRequest } from '../../service/model/validate-empf-ref-no-request.model';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { AgentInfo, AgentSubmissionRequest } from '../../service/model/agent-submission-request.model';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { AgentDetailInfo, AgentInfoResponse } from '../../service/model/agent-info-response.model';\nimport { EMPFRefNoUsedComponent } from '../declaration-iff/e-mpf-ref-no-used/e-mpf-ref-no-used.component';\nimport { IffSubmissionSuccPopupComponent } from '../declaration-iff/iff-submission-succ-popup/iff-submission-succ-popup.component';\nimport { ExitIffWarnPopupComponent } from '../declaration-iff/exit-iff-warn-popup/exit-iff-warn-popup.component';\nimport { empfCountryOption } from './empf-declaration-form.config';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { agentCodeRemovePrefix0 } from 'src/app/utils/utils';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { PreferredLanguageType, SalesJourneyProdType } from '../case-summary.model';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\nimport { ValidateEmpfRefNoResponse } from '../../service/model/validate-empf-ref-no-response.model';\nimport { AgentSubmissionResponse } from '../../service/model/agent-submission-response.model';\n\nexport enum EmployerIdentifierEnum {\n employerName = 1,\n bRNumber = 2,\n}\n\n@Component({\n selector: 'app-declaration-iff-er',\n templateUrl: './declaration-iff-er.component.html',\n styleUrls: ['./declaration-iff-er.component.scss'],\n})\nexport class DeclarationIffErComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('displayContent') displayContent!: ElementRef;\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage!: CdRadioComponent;\n @ViewChild('cdRadioSecondAgentPreferredLanguage') cdRadioSecondAgentPreferredLanguage!: CdRadioComponent;\n @ViewChild('cdRadioThirdAgentPreferredLanguage') cdRadioThirdAgentPreferredLanguage!: CdRadioComponent;\n language = 'EN';\n public lanChangeSubscription?: Subscription;\n public validateEmpfRefNoSubscription?: Subscription;\n public agentSubmissionSubscription?: Subscription;\n public secondAgentInfoSubscription?: Subscription;\n public thirdAgentInfoSubscription?: Subscription;\n public errorSub?: Subscription;\n secondAgentCodeValueSubscription?: Subscription;\n secondAgentInfo?: AgentDetailInfo;\n thirdAgentInfo?: AgentDetailInfo;\n isScrollBottom = false;\n servicingAgentCode?: number;\n EmployerIdentifierEnum = EmployerIdentifierEnum;\n PreferredLanguageType = PreferredLanguageType;\n onScoll = () => {\n const scrollHeight = this.displayContent.nativeElement.scrollHeight;\n const clientHeight = this.displayContent.nativeElement.clientHeight;\n\n if (!this.isScrollBottom && this.displayContent.nativeElement.scrollTop > scrollHeight - clientHeight - 10) {\n this.isScrollBottom = true;\n }\n };\n\n secondAgentContactTypeSelected = '';\n secondAgentNotificationChannel = '';\n thirdAgentContactTypeSelected = '';\n thirdAgentNotificationChannel = '';\n isSplitSecondAgent = false;\n isSplitThirdAgent = false;\n\n rmReferralCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n };\n\n inputCustomerIdVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n sourceCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n campaignCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n dbs = {\n rmReferralCode: new FormControl('', [Validators.required, this.rmReferralCodeVali]),\n inputCustomerId: new FormControl('', [this.inputCustomerIdVali]),\n sourceCode: new FormControl('', [this.sourceCodeVali]),\n campaignCode: new FormControl('', [this.campaignCodeVali]),\n };\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n employerIdentifierControl: FormControl = new FormControl();\n employerIdentifierOptions = [\n { label: 'iff-er.employerName', value: EmployerIdentifierEnum.employerName },\n { label: 'sendIffInBatchSummary.eRNumber', value: EmployerIdentifierEnum.bRNumber },\n ];\n\n secondAgentPreferredLanguage?: string;\n secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n thirdAgentPreferredLanguage?: string;\n thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n isToAgentConfirmation = false;\n\n currentStage = 1; // there are 5 stages now. 0: advise-empfref page; 1: declaration page; 2: iffForm page; 3: not-split-agent confirmation page; 4: split agent page; 5: split agent confirmation page\n constructor(\n private dialogRef: MatDialogRef,\n private alert: CdsAlertService,\n public languageChangeService: LanguageChangeService,\n public iffService: IffService,\n private cdsPopup: CdsPopupService,\n private authenticationService: AuthenticationService,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n public agentChannelService: AgentChannelService\n ) {}\n\n ngAfterViewInit(): void {\n this.displayContent.nativeElement.addEventListener('scroll', this.onScoll);\n }\n\n ngOnDestroy(): void {\n this.errorSub?.unsubscribe();\n this.lanChangeSubscription?.unsubscribe();\n this.validateEmpfRefNoSubscription?.unsubscribe();\n this.agentSubmissionSubscription?.unsubscribe();\n this.secondAgentInfoSubscription?.unsubscribe();\n this.displayContent.nativeElement.removeEventListener('scroll', this.onScoll);\n this.secondAgentCodeValueSubscription?.unsubscribe();\n this.thirdAgentInfoSubscription?.unsubscribe();\n }\n commonButton: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n };\n\n commonButton2: CdsButtonConfig = {\n size: 'md',\n style: 'secondary',\n disabled: false,\n };\n\n iffErForm!: FormGroup;\n servicingAgentId?: string;\n multiAgentInfos?: AgentDetailInfo[];\n isSecondAgentConduct?: boolean;\n isThirdAgentConduct?: boolean;\n secondAgentRadioConfig: CdRadioConfig = {\n options: [\n {\n label: this.language === 'EN' ? 'Registered Email()' : '已登記的電郵地址(',\n value: 'E',\n disable: false,\n },\n {\n label: this.language === 'EN' ? 'Registered Mobile No.()' : '已登記的電話號碼()',\n value: 'M',\n disable: false,\n },\n ],\n };\n\n secondAgentContactEmail = '';\n secondAgentContactPhone = '';\n thirdAgentContactEmail = '';\n thirdAgentContactPhone = '';\n thirdAgentRadioConfig: CdRadioConfig = {\n options: [\n {\n label: this.language === 'EN' ? 'Registered Email()' : '已登記的電郵地址(',\n value: 'E',\n disable: false,\n },\n {\n label: this.language === 'EN' ? 'Registered Mobile No.()' : '已登記的電話號碼()',\n value: 'M',\n disable: false,\n },\n ],\n };\n\n agentInfoDataSubjectCallBack = (agentInfoResp: AgentInfoResponse) => {\n if (agentInfoResp && agentInfoResp.result === 0 && agentInfoResp.data && agentInfoResp.data.agentCode) {\n this.isSplitSecondAgent = true;\n this.secondAgentInfo = agentInfoResp.data;\n const secondAgentEmail = this.secondAgentInfo.emailAddress;\n const secondAgentPhoneNo = this.secondAgentInfo.mobileNumber;\n let labelOfEmail = this.language === 'EN' ? 'Registered Email' : '已登記的電郵地址';\n let labelOfPhone = this.language === 'EN' ? 'Registered Mobile No.' : '已登記的電話號碼';\n if (secondAgentEmail) {\n const charIndex = secondAgentEmail.indexOf('@');\n const firstPart = secondAgentEmail.substring(0, charIndex);\n const secondPart = secondAgentEmail.substring(charIndex + 1);\n const revisedEmail = firstPart.substring(0, 4) + '******' + '@' + secondPart;\n labelOfEmail = this.language === 'EN' ? 'Registered Email(' + revisedEmail + ')' : '已登記的電郵地址(' + revisedEmail + ')';\n }\n if (secondAgentPhoneNo) {\n const phoneNoMasked = secondAgentPhoneNo.substring(0, 4) + '****';\n labelOfPhone = this.language === 'EN' ? 'Registered Mobile No.(' + phoneNoMasked + ')' : '已登記的電話號碼(' + phoneNoMasked + ')';\n }\n\n this.secondAgentContactEmail = labelOfEmail;\n this.secondAgentContactPhone = labelOfPhone;\n this.secondAgentRadioConfig = {\n options: [\n { label: labelOfEmail, value: 'E', disable: !secondAgentEmail },\n { label: labelOfPhone, value: 'M', disable: !secondAgentPhoneNo },\n ],\n };\n this.secondAgentContactTypeSelected = labelOfEmail;\n if (secondAgentEmail) {\n this.secondAgentNotificationChannel = 'E';\n } else if (secondAgentPhoneNo) {\n this.secondAgentNotificationChannel = 'M';\n }\n\n // if split second agent code is valid, then try to validate third agent code if inputted\n const secondAgentCode = this.secondAgentCode.value;\n const thirdAgentCode = this.thirdAgentCode.value;\n if (thirdAgentCode) {\n if (this.servicingAgentCode === thirdAgentCode || thirdAgentCode === secondAgentCode) {\n this.thirdAgentCode.setErrors({ invalidSecondAgentCode: true });\n return;\n }\n\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(String(thirdAgentCode)),\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.iffService.getThirdAgentInfo(String(thirdAgentCode));\n } else {\n this.thirdAgentCode.markAsTouched();\n this.thirdAgentCode.setErrors({ invalidSplitAgentCode: true });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n } else {\n // if third agent code not inputted\n this.currentStage = 4;\n this.onSecondAgentContactTypeChange(this.secondAgentNotificationChannel);\n // we should reset some variables(may used before)\n this.isSplitThirdAgent = false;\n this.thirdAgentInfo = undefined;\n if (!this.conductedRegulatorActivityFlag.value) {\n this.isSecondAgentConduct = false;\n this.isThirdAgentConduct = false;\n } else {\n this.isSecondAgentConduct = undefined;\n this.isThirdAgentConduct = undefined;\n }\n }\n } else {\n this.secondAgentCode.markAsTouched();\n this.secondAgentCode.setErrors({ invalidSecondAgentCode: true });\n }\n };\n\n thirdAgentInfoDataSubjectCallBack = (agentInfoResp: AgentInfoResponse) => {\n if (agentInfoResp && agentInfoResp.result === 0 && agentInfoResp.data && agentInfoResp.data.agentCode) {\n this.isSplitThirdAgent = true;\n this.thirdAgentInfo = agentInfoResp.data;\n const thirdAgentInfoTmp = agentInfoResp.data;\n const thirdAgentEmail = thirdAgentInfoTmp.emailAddress;\n const thirdAgentPhoneNo = thirdAgentInfoTmp.mobileNumber;\n let labelOfEmail = this.language === 'EN' ? 'Registered Email' : '已登記的電郵地址';\n\n let labelOfPhone = this.language === 'EN' ? 'Registered Mobile No.' : '已登記的電話號碼';\n if (thirdAgentEmail) {\n const charIndex = thirdAgentEmail.indexOf('@');\n const firstPart = thirdAgentEmail.substring(0, charIndex);\n const secondPart = thirdAgentEmail.substring(charIndex + 1);\n const revisedEmail = firstPart.substring(0, 4) + '******' + '@' + secondPart;\n labelOfEmail = this.language === 'EN' ? 'Registered Email(' + revisedEmail + ')' : '已登記的電郵地址(' + revisedEmail + ')';\n }\n if (thirdAgentPhoneNo) {\n const phoneNoMasked = thirdAgentPhoneNo.substring(0, 4) + '****';\n labelOfPhone = this.language === 'EN' ? 'Registered Mobile No.(' + phoneNoMasked + ')' : '已登記的電話號碼(' + phoneNoMasked + ')';\n }\n this.thirdAgentContactEmail = labelOfEmail;\n this.thirdAgentContactPhone = labelOfPhone;\n this.thirdAgentRadioConfig = {\n options: [\n { label: labelOfEmail, value: 'E', disable: !thirdAgentEmail },\n { label: labelOfPhone, value: 'M', disable: !thirdAgentPhoneNo },\n ],\n };\n this.thirdAgentContactTypeSelected = labelOfEmail;\n\n // navigate to stage 4\n this.currentStage = 4;\n\n // reset to intial state\n if (!this.conductedRegulatorActivityFlag.value) {\n this.isSecondAgentConduct = false;\n this.isThirdAgentConduct = false;\n } else {\n this.isSecondAgentConduct = undefined;\n this.isThirdAgentConduct = undefined;\n }\n\n if (thirdAgentEmail) {\n this.thirdAgentNotificationChannel = 'E';\n } else if (thirdAgentPhoneNo) {\n this.thirdAgentNotificationChannel = 'M';\n }\n this.onSecondAgentContactTypeChange(this.secondAgentNotificationChannel);\n this.onThirdAgentContactTypeChange(this.thirdAgentNotificationChannel);\n } else {\n this.thirdAgentCode.markAsTouched();\n this.thirdAgentCode.setErrors({ invalidThirdAgentCode: true });\n }\n };\n\n validateEmpfRefNoSubjectCallBack = (resp: ValidateEmpfRefNoResponse) => {\n if (resp && resp.result === 0 && resp.data) {\n // the eMPF Ref No. have been submitted\n if (!resp.data.empfRefNoStatus) {\n const dialogRefEMPFRefNoUsed: MatDialogRef = this.cdsPopup.open(EMPFRefNoUsedComponent, {\n size: 'md',\n });\n dialogRefEMPFRefNoUsed.afterClosed().subscribe(data => {\n if (data.agree) {\n this.currentStage = 2;\n this.eMPFReferenceNo.markAsTouched();\n this.eMPFReferenceNo.setErrors({ usedEMPFRefNo: true });\n }\n });\n this.isSplitAgentFine = false;\n } else {\n // not-used eMPF Ref No, then call be API\n const agentInfoArr = [];\n const agentInfo = new AgentInfo();\n agentInfo.agentIdentityId = this.servicingAgentId;\n const isRegulatedAct = this.conductedRegulatorActivityFlag.value;\n agentInfo.regulatedAct = isRegulatedAct === null || isRegulatedAct === undefined ? false : isRegulatedAct;\n agentInfo.agentNotificationChannel = '';\n agentInfo.primaryAgent = true;\n agentInfoArr.push(agentInfo);\n const agentSubmissionRequest = new AgentSubmissionRequest();\n agentSubmissionRequest.empfRefNo = this.eMPFReferenceNo.value;\n // agentSubmissionRequest.firstNm =\n // this.iffErForm.get('givenName')?.value;\n // agentSubmissionRequest.lastNm =\n // this.iffErForm.get('surname')?.value;\n agentSubmissionRequest.channel = this.contactType.value;\n agentSubmissionRequest.countryCallingCode = this.countryCode?.value;\n agentSubmissionRequest.mobileNo = this.phoneNo?.value;\n agentSubmissionRequest.emailAddr = this.email?.value;\n agentSubmissionRequest.caseSplit = false;\n\n if (this.employerIdentifierControl.value === EmployerIdentifierEnum.employerName) {\n if (new RegExp('^[a-zA-Z\\x20]*$').test(this.employerNameOrBrNo.value)) {\n agentSubmissionRequest.companyName = this.employerNameOrBrNo.value;\n } else {\n agentSubmissionRequest.companyNameChn = this.employerNameOrBrNo.value;\n }\n } else if (this.employerIdentifierControl.value === EmployerIdentifierEnum.bRNumber) {\n agentSubmissionRequest.businessRefNo = this.employerNameOrBrNo.value;\n }\n\n if (this.isSplitAgentFine) {\n const agentInfo2 = new AgentInfo();\n agentInfo2.agentid = this.secondAgentInfo?.agentId;\n agentInfo2.regulatedAct = this.isSecondAgentConduct === null || this.isSecondAgentConduct === undefined ? false : this.isSecondAgentConduct;\n agentInfo2.agentNotificationChannel = this.secondAgentNotificationChannel;\n agentInfo2.primaryAgent = false;\n if (agentInfo2.regulatedAct && this.secondAgentNotificationChannel === 'M') {\n agentInfo2.smsLanguage = this.secondAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n agentInfoArr.push(agentInfo2);\n\n // if user inputs third agent\n if (this.thirdAgentInfo) {\n const agentInfo3 = new AgentInfo();\n agentInfo3.agentid = this.thirdAgentInfo.agentId;\n agentInfo3.regulatedAct = this.isThirdAgentConduct === null || this.isThirdAgentConduct === undefined ? false : this.isThirdAgentConduct;\n agentInfo3.agentNotificationChannel = this.thirdAgentNotificationChannel;\n agentInfo3.primaryAgent = false;\n if (agentInfo3.regulatedAct && this.thirdAgentNotificationChannel === 'M') {\n agentInfo3.smsLanguage = this.thirdAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n agentInfoArr.push(agentInfo3);\n }\n\n agentSubmissionRequest.caseSplit = true;\n }\n agentSubmissionRequest.agentInfos = agentInfoArr;\n agentSubmissionRequest.domainType = SalesJourneyProdType.Corperate;\n agentSubmissionRequest.productType = SalesJourneyProdType.Corperate;\n\n if (this.isChannelDBS) {\n agentSubmissionRequest.dbs = {\n dbsRmReferralCd: this.dbs.rmReferralCode.value,\n dbsCustomerId: this.dbs.inputCustomerId.value,\n dbsCampaignCd: this.dbs.campaignCode.value,\n dbsSourceCd: this.dbs.sourceCode.value,\n };\n }\n\n if (agentSubmissionRequest.channel === 'M') {\n agentSubmissionRequest.smsLanguage = this.preferredLanguage.value === PreferredLanguageType.English ? 0 : 1;\n }\n\n this.iffService.agentSubmission(agentSubmissionRequest);\n }\n }\n };\n\n agentSubmissionSubjectCallBack = (resp: AgentSubmissionResponse) => {\n if (resp && resp.result === 0) {\n // not split case, iff submission success\n let msg = '';\n if (this.isToAgentConfirmation) {\n msg = 'sendIffInBatchSummary.popupScreenTitleForSplitAgent';\n } else {\n msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n }\n const iffSubmissionSuccDialogRef: MatDialogRef = this.cdsPopup.open(IffSubmissionSuccPopupComponent, {\n size: 'md',\n data: {\n message: this.cdsLangService.translate(msg),\n },\n });\n iffSubmissionSuccDialogRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.dialogRef.close({ refresh: true });\n }\n });\n }\n };\n\n ngOnInit(): void {\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n\n this.errorSub = this.iffService.errorIffSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n\n this.secondAgentInfoSubscription = this.iffService.agentInfoDataSubject.subscribe(this.agentInfoDataSubjectCallBack);\n\n this.thirdAgentInfoSubscription = this.iffService.thirdAgentInfoDataSubject.subscribe(this.thirdAgentInfoDataSubjectCallBack);\n\n this.authenticationService.currentUserValue().then(res => {\n this.servicingAgentId = res.id + '';\n\n this.iffService.getAgentCode(this.servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.servicingAgentCode = +res.data.agentCode;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n\n this.validateEmpfRefNoSubscription = this.iffService.validateEmpfRefNoSubject.subscribe(this.validateEmpfRefNoSubjectCallBack);\n\n this.agentSubmissionSubscription = this.iffService.agentSubmissionSubject.subscribe(this.agentSubmissionSubjectCallBack);\n this.iffErForm = new FormGroup(\n {\n employerNameOrBrNo: new FormControl(null, [Validators.required]),\n eMPFReferenceNo: new FormControl(null, [Validators.required, Validators.maxLength(50)]),\n conductedRegulatorActivityFlag: new FormControl(null, [Validators.required, Validators.maxLength(200)]),\n contactType: new FormControl(null, [Validators.required]),\n preferredLanguage: new FormControl(null, [this.preferredLanguageVali]),\n secondAgentCode: new FormControl(null, Validators.maxLength(6)),\n thirdAgentCode: new FormControl({ value: '', disabled: true }, Validators.maxLength(6)),\n isIntragroupTransfer: new FormControl({ value: false, disabled: false }),\n },\n this.countryCodeAndPhoneNoUnionValidate.bind(this)\n //{validators: this.countryCodeAndPhoneNoUnionValidate}\n );\n\n this.secondAgentCodeValueSubscription = this.secondAgentCode.valueChanges.subscribe(value => {\n if (value) {\n this.thirdAgentCode.enable();\n } else {\n this.thirdAgentCode.disable();\n }\n });\n }\n\n get isIntragroupTransfer() {\n return this.iffErForm.get('isIntragroupTransfer') as FormControl;\n }\n\n get contactType() {\n return this.iffErForm?.get('contactType') as FormControl;\n }\n\n preferredLanguageVali = (control: AbstractControl): ValidationErrors | null => {\n if ((this.contactType?.value === 'M' && control.value) || this.contactType?.value === 'E' || !this.contactType?.value) {\n return null;\n }\n return { formatError: true };\n };\n\n get employerNameOrBrNo() {\n return this.iffErForm.get('employerNameOrBrNo') as FormControl;\n }\n\n get employerNameOrBrNoControlRegExpLimit() {\n if (this.employerIdentifierControl.value === EmployerIdentifierEnum.employerName) {\n return '^[\\u4E00-\\u9FA5\\x20]*$|^[a-zA-Z\\x20]*$';\n } else if (this.employerIdentifierControl.value === EmployerIdentifierEnum.bRNumber) {\n return '^[A-Za-z0-9]*$';\n }\n return '';\n }\n\n employerIdentifierControlChange() {\n this.employerNameOrBrNo.setValue(null);\n this.employerNameOrBrNo.markAsUntouched();\n }\n\n get employerNameOrBrNoControlPlaceholder() {\n if (this.employerIdentifierControl.value === EmployerIdentifierEnum.employerName) {\n return 'iff-er.pleaseInputEmployerName';\n } else if (this.employerIdentifierControl.value === EmployerIdentifierEnum.bRNumber) {\n return 'iff-er.pleaseInputBRNumber';\n }\n return '';\n }\n\n toIffErForm() {\n if (!this.isScrollBottom) {\n return;\n }\n\n this.currentStage = 2;\n }\n\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n get preferredLanguage() {\n return this.iffErForm.get('preferredLanguage') as FormControl;\n }\n\n resetIffErForm() {\n this.iffErForm.reset();\n // this.iffErForm.get('eMPFReferenceNo')?.setValue(null);\n // this.iffErForm.get('lastName')?.reset();\n // this.iffErForm.get('firstName')?.reset();\n // this.iffErForm.get('contactType')?.reset();\n // this.iffErForm.get('email')?.reset();\n // this.iffErForm.get('phoneNo')?.reset();\n this.preferredLanguage.reset();\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.cdRadioPreferredLanguage.refreshConfig();\n\n this.dbs.rmReferralCode.reset('');\n this.dbs.sourceCode.reset('');\n this.dbs.campaignCode.reset('');\n this.dbs.inputCustomerId.reset('');\n this.employerIdentifierControl.reset(null);\n }\n\n onClickInfoIcon() {\n this.currentStage = 0;\n }\n\n dbsInputHasErrors() {\n if (!this.isChannelDBS) {\n return false;\n }\n return (\n (this.dbs.rmReferralCode && this.dbs.rmReferralCode.dirty && !!this.dbs.rmReferralCode.errors) ||\n (this.dbs.campaignCode && this.dbs.campaignCode.dirty && !!this.dbs.campaignCode.errors) ||\n (this.dbs.sourceCode && this.dbs.sourceCode.dirty && !!this.dbs.sourceCode.errors) ||\n (this.dbs.inputCustomerId && this.dbs.inputCustomerId.dirty && !!this.dbs.inputCustomerId.errors)\n );\n }\n\n closeCurrentPopup() {\n if (this.currentStage === 1) {\n this.dialogRef.close();\n } else {\n const exitIffWarnDialogRef: MatDialogRef = this.cdsPopup.open(ExitIffWarnPopupComponent, {\n size: 'lg',\n });\n exitIffWarnDialogRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.dialogRef.close();\n }\n });\n }\n }\n\n inputBlur(e: string) {\n const eControl = this.iffErForm.get(e);\n if (eControl && eControl.value != null) {\n const temp = eControl.value + '';\n const value = temp.replace(/[\\u4e00-\\u9fa5]/gi, '');\n eControl.setValue(value.trim());\n }\n }\n\n get eMPFReferenceNo() {\n return this.iffErForm.get('eMPFReferenceNo') as FormControl;\n }\n\n get secondAgentCode() {\n return this.iffErForm.get('secondAgentCode') as FormControl;\n }\n\n get thirdAgentCode() {\n return this.iffErForm.get('thirdAgentCode') as FormControl;\n }\n\n onIffPartSubmit() {\n this.secondAgentNotificationChannel = '';\n this.thirdAgentNotificationChannel = '';\n this.eMPFReferenceNo.markAsTouched();\n this.employerNameOrBrNo.markAsTouched();\n this.contactType.markAsTouched();\n this.preferredLanguage.markAsTouched();\n this.conductedRegulatorActivityFlag.markAsTouched();\n const eMPFReferenceNo = this.eMPFReferenceNo.value;\n const contactType = this.contactType.value;\n if (contactType === 'E') {\n this.email?.markAsTouched();\n } else if (contactType === 'M') {\n this.phoneNo?.markAsTouched();\n } else {\n this.contactType.markAsTouched();\n }\n const validateEmpfRefNoRequest = new ValidateEmpfRefNoRequest();\n validateEmpfRefNoRequest.empfRefNo = eMPFReferenceNo;\n\n if (this.isChannelDBS) {\n if (this.dbs.rmReferralCode.errors) {\n this.dbs.rmReferralCode.markAsDirty();\n return;\n }\n }\n if (this.dbsInputHasErrors()) {\n return;\n }\n\n if (this.iffErForm.status === 'VALID') {\n const eMPFReferenceNo = this.eMPFReferenceNo.value;\n const validateEmpfRefNoRequest = new ValidateEmpfRefNoRequest();\n validateEmpfRefNoRequest.empfRefNo = eMPFReferenceNo;\n validateEmpfRefNoRequest.clientType = 'employer';\n this.cdHttpServeService\n .post<{ empfRefNoStatus: boolean }>('/ext/eb-ssms-sales-journey-service/generateGeneralLink/validateEmpfRefNo/flow2', validateEmpfRefNoRequest)\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (!res.data.empfRefNoStatus) {\n const dialogRefEMPFRefNoUsed: MatDialogRef = this.cdsPopup.open(EMPFRefNoUsedComponent, {\n size: 'md',\n });\n dialogRefEMPFRefNoUsed.afterClosed().subscribe(data => {\n if (data.agree) {\n this.currentStage = 2;\n this.eMPFReferenceNo.markAsTouched();\n this.eMPFReferenceNo.setErrors({ usedEMPFRefNo: true });\n }\n });\n this.isSplitAgentFine = false;\n } else {\n const secondAgentCode = this.secondAgentCode.value;\n if (secondAgentCode) {\n if (this.servicingAgentCode === secondAgentCode) {\n this.secondAgentCode.setErrors({ invalidSecondAgentCode: true });\n return;\n }\n\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(String(secondAgentCode)),\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.iffService.getAgentInfo(String(secondAgentCode));\n } else {\n this.secondAgentCode.markAsTouched();\n this.secondAgentCode.setErrors({ invalidSplitAgentCode: true });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n } else {\n this.currentStage = 3;\n this.isIntragroupTransfer.disable();\n this.isSplitSecondAgent = false;\n this.secondAgentInfo = undefined;\n if (!this.conductedRegulatorActivityFlag.value) {\n this.isSecondAgentConduct = false;\n } else {\n this.isSecondAgentConduct = undefined;\n }\n }\n }\n } else {\n this.alert.error('Error!', res.message);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n }\n\n //async validator for hk phone no\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hkPhoneNoValidateAsync(formControl: AbstractControl): Promise | Observable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new Promise(resolve => {\n const hkPhoneNo: number = formControl.value;\n if (!this.isValidHKPhoneNo(hkPhoneNo)) {\n resolve({ invalidPhoneNo: true });\n } else {\n resolve(null);\n }\n });\n }\n\n hkPhoneNoValidate(formControl: AbstractControl): ValidationErrors | null | Observable {\n const hkPhoneNo: number = formControl.value;\n if (!this.isValidHKPhoneNo(hkPhoneNo)) {\n return { invalidPhoneNo: true };\n } else {\n return null;\n }\n }\n\n isValidHKPhoneNo(num: number) {\n if (/^[4-9]\\d{7}$/.test(num + '')) {\n return true;\n }\n return false;\n }\n\n isValidChiPhoneNo(num: number) {\n if (/^[1]\\d{10}$/.test(num + '')) {\n return true;\n }\n return false;\n }\n\n countryCodeAndPhoneNoUnionValidate(formGroup: AbstractControl): ValidationErrors | null | Observable {\n const contactType = formGroup.get('contactType')?.value;\n if (contactType === 'M') {\n const countryCode = formGroup.get('countryCode')?.value;\n const phoneNo = formGroup.get('phoneNo')?.value;\n // phoneNo type is number, need to change to string type here\n if (phoneNo === null || phoneNo === undefined) {\n return { required: true };\n } else if ((countryCode === '86' && !this.isValidChiPhoneNo(phoneNo)) || (countryCode === '852' && !this.isValidHKPhoneNo(phoneNo))) {\n return { invalidPhoneNo: true };\n }\n }\n return null;\n }\n\n emailFormControl?: FormControl;\n\n onContactTypeChange(val: string) {\n this.preferredLanguage.setValue(undefined);\n if (val === 'E') {\n this.iffErForm.removeControl('countryCode');\n this.iffErForm.removeControl('phoneNo');\n this.emailFormControl = new FormControl(null, [Validators.required, Validators.email]);\n this.iffErForm.addControl('email', this.emailFormControl);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.iffErForm.removeControl('email');\n const countryCodeFormControl = new FormControl(null, [Validators.required]);\n const phoneNoFormControl = new FormControl(null, [Validators.required]);\n this.iffErForm.addControl('countryCode', countryCodeFormControl);\n this.iffErForm.addControl('phoneNo', phoneNoFormControl);\n this.iffErForm.patchValue({ countryCode: '852' });\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioPreferredLanguage.refreshConfig();\n }\n\n attentionIcon = ActionIcons.megaphone;\n backToIffErForm() {\n this.isIntragroupTransfer.enable();\n this.currentStage = 2;\n }\n\n get email() {\n return this.iffErForm.get('email') as FormControl;\n }\n\n get phoneNo() {\n return this.iffErForm.get('phoneNo') as FormControl;\n }\n\n iffSubmission() {\n const contactType = this.contactType.value;\n if (contactType === 'E') {\n this.email?.markAsTouched();\n } else if (contactType === 'M') {\n this.phoneNo?.markAsTouched();\n } else {\n this.contactType.markAsTouched();\n }\n this.validateInputtedEMPFReferenceNo();\n }\n\n get conductedRegulatorActivityFlag() {\n return this.iffErForm.get('conductedRegulatorActivityFlag') as FormControl;\n }\n\n get disableIffSplitAgentContinue() {\n return (\n Boolean(\n (this.isSecondAgentConduct && this.secondAgentNotificationChannel === 'M' && !this.secondAgentPreferredLanguage) ||\n (this.isThirdAgentConduct && this.thirdAgentNotificationChannel === 'M' && !this.thirdAgentPreferredLanguage)\n ) ||\n (this.conductedRegulatorActivityFlag.value &&\n ((this.isSplitSecondAgent && this.isSecondAgentConduct === undefined) || (this.isSplitThirdAgent && this.isThirdAgentConduct === undefined)))\n );\n }\n\n iffSplitAgentContinue() {\n if (this.disableIffSplitAgentContinue) {\n return;\n }\n this.isIntragroupTransfer.disable();\n this.currentStage = 5;\n }\n\n onSecondAgentContactTypeChange(val: string) {\n this.secondAgentPreferredLanguage = undefined;\n if (val === 'E') {\n this.secondAgentContactTypeSelected = this.secondAgentContactEmail;\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.secondAgentContactTypeSelected = this.secondAgentContactPhone;\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioSecondAgentPreferredLanguage?.refreshConfig();\n }\n\n onThirdAgentContactTypeChange(val: string) {\n this.thirdAgentPreferredLanguage = undefined;\n if (val === 'E') {\n this.thirdAgentContactTypeSelected = this.thirdAgentContactEmail;\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.thirdAgentContactTypeSelected = this.thirdAgentContactPhone;\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioThirdAgentPreferredLanguage?.refreshConfig();\n }\n\n backToSplitAgentPage() {\n this.isIntragroupTransfer.enable();\n this.currentStage = 4;\n }\n\n get countryCode() {\n return this.iffErForm.get('countryCode') as FormControl;\n }\n\n validateInputtedEMPFReferenceNo() {\n this.isToAgentConfirmation = false;\n // const eMPFReferenceNo = this.iffErForm.get('eMPFReferenceNo')?.value;\n // const validateEmpfRefNoRequest = new ValidateEmpfRefNoRequest();\n // validateEmpfRefNoRequest.empfRefNo = eMPFReferenceNo;\n // this.iffService.validateEmpfRefNo(validateEmpfRefNoRequest);\n\n // not-used eMPF Ref No, then call be API\n const agentInfoArr = [];\n const agentInfo = new AgentInfo();\n agentInfo.agentIdentityId = this.servicingAgentId;\n const isRegulatedAct = this.conductedRegulatorActivityFlag.value;\n agentInfo.regulatedAct = isRegulatedAct === null || isRegulatedAct === undefined ? false : isRegulatedAct;\n agentInfo.agentNotificationChannel = '';\n agentInfo.primaryAgent = true;\n agentInfoArr.push(agentInfo);\n const agentSubmissionRequest = new AgentSubmissionRequest();\n agentSubmissionRequest.empfRefNo = this.eMPFReferenceNo.value;\n // agentSubmissionRequest.firstNm = this.iffErForm.get('givenName')?.value;\n // agentSubmissionRequest.lastNm = this.iffErForm.get('surname')?.value;\n agentSubmissionRequest.channel = this.contactType.value;\n agentSubmissionRequest.countryCallingCode = this.countryCode?.value;\n agentSubmissionRequest.mobileNo = this.phoneNo?.value;\n agentSubmissionRequest.emailAddr = this.email?.value;\n agentSubmissionRequest.caseSplit = false;\n\n if (this.employerIdentifierControl.value === EmployerIdentifierEnum.employerName) {\n if (new RegExp('^[a-zA-Z\\x20]*$').test(this.employerNameOrBrNo.value)) {\n agentSubmissionRequest.companyName = this.employerNameOrBrNo.value;\n } else {\n agentSubmissionRequest.companyNameChn = this.employerNameOrBrNo.value;\n }\n } else if (this.employerIdentifierControl.value === EmployerIdentifierEnum.bRNumber) {\n agentSubmissionRequest.businessRefNo = this.employerNameOrBrNo.value;\n }\n\n if (this.isSplitAgentFine) {\n const agentInfo2 = new AgentInfo();\n agentInfo2.agentid = this.secondAgentInfo?.agentId;\n agentInfo2.regulatedAct = this.isSecondAgentConduct === null || this.isSecondAgentConduct === undefined ? false : this.isSecondAgentConduct;\n agentInfo2.agentNotificationChannel = this.secondAgentNotificationChannel;\n agentInfo2.primaryAgent = false;\n if (agentInfo2.regulatedAct && this.secondAgentNotificationChannel === 'M') {\n agentInfo2.smsLanguage = this.secondAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n agentInfoArr.push(agentInfo2);\n\n // if user inputs third agent\n if (this.thirdAgentInfo) {\n const agentInfo3 = new AgentInfo();\n agentInfo3.agentid = this.thirdAgentInfo.agentId;\n agentInfo3.regulatedAct = this.isThirdAgentConduct === null || this.isThirdAgentConduct === undefined ? false : this.isThirdAgentConduct;\n agentInfo3.agentNotificationChannel = this.thirdAgentNotificationChannel;\n agentInfo3.primaryAgent = false;\n if (agentInfo3.regulatedAct && this.thirdAgentNotificationChannel === 'M') {\n agentInfo3.smsLanguage = this.thirdAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n agentInfoArr.push(agentInfo3);\n }\n\n agentSubmissionRequest.caseSplit = true;\n }\n agentSubmissionRequest.agentInfos = agentInfoArr;\n agentSubmissionRequest.domainType = SalesJourneyProdType.Corperate;\n agentSubmissionRequest.productType = SalesJourneyProdType.Corperate;\n this.isToAgentConfirmation = agentInfoArr.some((info, index: number) => {\n if (index > 0) {\n return info.regulatedAct;\n }\n return false;\n });\n\n if (this.isChannelDBS) {\n agentSubmissionRequest.dbs = {\n dbsRmReferralCd: this.dbs.rmReferralCode.value,\n dbsCustomerId: this.dbs.inputCustomerId.value,\n dbsCampaignCd: this.dbs.campaignCode.value,\n dbsSourceCd: this.dbs.sourceCode.value,\n };\n }\n\n if (agentSubmissionRequest.channel === 'M') {\n agentSubmissionRequest.smsLanguage = this.preferredLanguage.value === PreferredLanguageType.English ? 0 : 1;\n }\n\n agentSubmissionRequest.intraGroup = this.isIntragroupTransfer.value;\n\n this.iffService.agentSubmission(agentSubmissionRequest);\n }\n\n isSplitAgentFine = false; // define if the split agent flow is successful\n iffSplitAgentSubmission() {\n this.isSplitAgentFine = true;\n this.validateInputtedEMPFReferenceNo();\n }\n\n gotItButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n backToForm() {\n this.currentStage = 2;\n }\n\n getAgentName(agent?: AgentDetailInfo) {\n if (!agent) {\n return '';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return agent.agentName || agent.agentNameTC;\n } else {\n return agent.agentNameTC || agent.agentName;\n }\n }\n\n get isChannelDBS() {\n return this.agentChannelService.channel === AgentChannel.DBS;\n }\n\n get isDisabled() {\n if (this.agentChannelService.channel === AgentChannel.DBS) {\n return true;\n }\n if (this.agentChannelService.channel === AgentChannel.CORPORATE && this.agentChannelService.agentCode?.startsWith('400')) {\n return true;\n }\n return false;\n }\n}\n","
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    eMPF source
    \n
    \n
    \n
    \n Lorem ipsum dolor sit amet. Qui autem impedit est tenetur\n reiciendis et sunt rerum qui quisquam animi et repudiandae rerum\n ab cumque dolore ut accusamus ipsum. Doloribus aliquid quo\n delectus atque aut corporis eius eum maiores optio in autem\n
    \n
    \n \"../../../../../assets/img/empf.png\"\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'Declaration.header' | lang }}\n
    \n
    \n
    \n \n {{ 'Declaration.headersub1' | lang }}\n \n
    \n \n {{ 'Declaration.headersub3' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodydis' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubd' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyadmin' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysube' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubf' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyother' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon2' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubg' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubh' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubi' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyimportant' | lang }}\n \n
    \n \n {{ 'Declaration.bodynotice' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodynoticesub1' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubd' | lang }}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclaration' | lang }}\n
    \n
    \n \n {{ 'iff.headerInform' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.eMPFReferenceNo' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n {{ 'iff.eMPFReferenceNoError1' | lang }}\n \n {{ 'iff.eMPFReferenceNoError2' | lang }}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'iff.pleaseSelectRelevantRegulatedActivities' | lang }}\n \n
    \n
    \n\n
    \n
    \n
    {{ 'sendIffInBatchSummary.employerNameOrBrNo' | lang }} :
    \n
    \n
    \n \n
    \n Please select the Employer identifier \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'iff-er.employerNameErrMsg1' | lang }}\n {{ 'iff-er.businessRegNoErrMsg1' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-er.authPersonMobileEmail1' | lang }}\n
    \n
    \n {{ 'iff-er.authPersonMobileEmail2' | lang }} :\n
    \n
    \n
    \n
    \n \n
    \n {{ 'iff.contactTypeError' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'iff-er.authPersonEmailErrMsg1' | lang }}\n \n
    \n
    \n {{ 'iff-er.authPersonEmailErrMsg1' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'iff-er.authPersonMobileErrMsg1' | lang }}\n \n
    \n
    \n {{ 'iff-er.authPersonMobileErrMsg2' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n RM Referral Code:\n
    \n
    \n
    \n \n
    \n Please input valid RM Referral Code\n \n \n Please input valid RM Referral Code\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Customer ID:\n
    \n
    \n
    \n \n
    \n Please input valid Customer ID\n \n
    \n
    \n
    \n
    \n
    \n
    \n Campaign Code:\n
    \n
    \n
    \n \n
    \n Please input valid Campaign Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n Source Code:\n
    \n
    \n
    \n \n
    \n Please input valid Source Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.customerContactTypeRemark' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}: \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ 'common.plsSelect' | lang : { p1: 'sendIffInBatchSummary.preferredLanguage' | lang } }} \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-er.secondAgentCode' | lang }}: \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'iff-er.secondAgentCodeNotFoundError' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-er.thirdAgentCode' | lang }}: \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'iff-er.thirdAgentCodeNotFoundError' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclarationConfirmation' | lang }}\n
    \n
    \n
    \n \n
      \n
    • \n {{ 'iff.splitAgentNote1' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote2' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote3HeadPart' | lang }}\n {{ 'iff.splitAgentNote3RedPart' | lang }}\n {{ 'iff.splitAgentNoteTailPart' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.confirmationEMPFRefNo' | lang }}\n
    \n
    \n
    \n
    \n {{ iffErForm.value.eMPFReferenceNo }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    Employer identifier:
    \n
    \n
    \n
    \n {{\n employerIdentifierControl.value === EmployerIdentifierEnum.employerName\n ? 'Employer Name'\n : employerIdentifierControl.value === EmployerIdentifierEnum.bRNumber\n ? 'BR Number'\n : 'N/A'\n }}\n \n
    \n
    \n
    \n
    \n
    \n
    {{ 'iff-er.employerName' | lang }}:
    \n
    \n
    \n
    \n {{ iffErForm.value.employerNameOrBrNo }} \n
    \n
    \n
    \n
    \n
    \n
    {{ 'iff-er.businessRegNo' | lang }}:
    \n
    \n
    \n
    \n {{ iffErForm.value.employerNameOrBrNo }} \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.customerContactType' | lang }}\n
    \n
    \n
    \n
    \n {{\n iffErForm.value.contactType === 'E' ? iffErForm.value.email : iffErForm.value.countryCode + ' ' + iffErForm.value.phoneNo\n }}\n
    \n
    \n
    \n
    \n
    \n
    {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}:
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    RM Referral Code:
    \n
    \n
    \n {{ dbs.rmReferralCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Customer ID:
    \n
    \n
    \n {{ dbs.inputCustomerId.value || '-' }}\n
    \n
    \n
    \n
    \n
    Campaign Code:
    \n
    \n
    \n {{ dbs.campaignCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Source Code:
    \n
    \n
    \n {{ dbs.sourceCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclaration' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'iff-er.secondAgentCodeNo' | lang }}\n
    \n
    \n
    \n
    \n {{ iffErForm.value.secondAgentCode }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-er.secondAgentName' | lang }}\n
    \n
    \n
    \n
    \n {{ getAgentName(secondAgentInfo) }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n {{ 'iff-er.secondNotes' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentContactDeclareHeader' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'iff-er.thirdAgentCodeNo' | lang }}\n
    \n
    \n
    \n
    \n {{ iffErForm.value.thirdAgentCode }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-er.thirdAgentName' | lang }}\n
    \n
    \n
    \n
    \n {{ getAgentName(thirdAgentInfo) }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n {{ 'iff-er.thirdNotes' | lang }}\n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'iff-er.thirdAgentContactDeclareHeader' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclarationConfirmation' | lang }}\n
    \n
    \n\n
    \n \n
      \n
    • \n {{ 'iff.splitAgentNote1' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote2' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote3HeadPart' | lang }}\n {{ 'iff.splitAgentNote3RedPart' | lang }}\n {{ 'iff.splitAgentNoteTailPart' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.confirmationEMPFRefNo' | lang }}\n
    \n
    \n
    \n {{ iffErForm.value.eMPFReferenceNo }}\n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    Employer identifier:
    \n
    \n
    \n
    \n {{\n employerIdentifierControl.value === EmployerIdentifierEnum.employerName\n ? 'Employer Name'\n : employerIdentifierControl.value === EmployerIdentifierEnum.bRNumber\n ? 'BR Number'\n : 'N/A'\n }}\n \n
    \n
    \n
    \n
    \n
    \n
    {{ 'iff-er.employerName' | lang }}:
    \n
    \n
    \n
    \n {{ iffErForm.value.employerNameOrBrNo }} \n
    \n
    \n
    \n
    \n
    \n
    {{ 'iff-er.businessRegNo' | lang }}:
    \n
    \n
    \n
    \n {{ iffErForm.value.employerNameOrBrNo }} \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'iff-er.authPersonMobileEmail1' | lang }}\n {{ 'iff-er.authPersonMobileEmail2' | lang }}:\n
    \n
    \n
    \n {{\n iffErForm.value.contactType === 'E' ? iffErForm.value.email : iffErForm.value.countryCode + ' ' + iffErForm.value.phoneNo\n }}\n
    \n
    \n\n
    \n
    \n
    {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}:
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n\n \n
    \n
    \n
    RM Referral Code:
    \n
    \n
    \n {{ dbs.rmReferralCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Customer ID:
    \n
    \n
    \n {{ dbs.inputCustomerId.value || '-' }}\n
    \n
    \n
    \n
    \n
    Campaign Code:
    \n
    \n
    \n {{ dbs.campaignCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Source Code:
    \n
    \n
    \n {{ dbs.sourceCode.value || '-' }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'iff-er.secondAgentCode' | lang }} :\n
    \n
    \n {{ secondAgentInfo?.agentCode || '' }}\n {{ getAgentName(secondAgentInfo) }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.splitAgentSelectedContactTypeLabel' | lang }}\n
    \n {{ secondAgentContactTypeSelected }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.language-of' | lang : { p1: 'sendIffInBatchSummary.2ndMPFIntermediary' | lang } }} : \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'iff-er.thirdAgentCode' | lang }} :\n
    \n
    \n {{ thirdAgentInfo?.agentCode || '' }}\n {{ getAgentName(thirdAgentInfo) }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.splitAgentSelectedContactTypeLabel' | lang }}\n
    \n {{ thirdAgentContactTypeSelected }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.language-of' | lang : { p1: 'sendIffInBatchSummary.3rdMPFIntermediary' | lang } }} : \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n \n\n","import { CdsOption } from '@cds/ng-core/configuration';\n\nexport const empfCountryOption: CdsOption[] = [\n { label: '+852 (HK)', value: '852' },\n { label: '+853 (MA)', value: '853' },\n { label: '+86 (CN)', value: '86' },\n {\n label: '+376(AD)',\n value: '376',\n },\n {\n label: '+1-268(AG)',\n value: '1-268',\n },\n {\n label: '+1-264(AI)',\n value: '1-264',\n },\n {\n label: '+355(AL)',\n value: '355',\n },\n {\n label: '+374(AM)',\n value: '374',\n },\n {\n label: '+599(AN)',\n value: '599',\n },\n {\n label: '+244(AO)',\n value: '244',\n },\n {\n label: '+672(AQ)',\n value: '672',\n },\n {\n label: '+54(AR)',\n value: '54',\n },\n {\n label: '+1-684(AS)',\n value: '1-684',\n },\n {\n label: '+43(AT)',\n value: '43',\n },\n {\n label: '+61(AU)',\n value: '61',\n },\n {\n label: '+297(AW)',\n value: '297',\n },\n {\n label: '+994(AZ)',\n value: '994',\n },\n {\n label: '+387(BA)',\n value: '387',\n },\n {\n label: '+1-246(BB)',\n value: '1-246',\n },\n {\n label: '+880(BD)',\n value: '880',\n },\n {\n label: '+32(BE)',\n value: '32',\n },\n {\n label: '+226(BF)',\n value: '226',\n },\n {\n label: '+359(BG)',\n value: '359',\n },\n {\n label: '+973(BH)',\n value: '973',\n },\n {\n label: '+257(BI)',\n value: '257',\n },\n {\n label: '+229(BJ)',\n value: '229',\n },\n {\n label: '+1-441(BM)',\n value: '1-441',\n },\n {\n label: '+673(BN)',\n value: '673',\n },\n {\n label: '+591(BO)',\n value: '591',\n },\n {\n label: '+599-7(BQ)',\n value: '599-7',\n },\n {\n label: '+55(BR)',\n value: '55',\n },\n {\n label: '+1-242(BS)',\n value: '1-242',\n },\n {\n label: '+975(BT)',\n value: '975',\n },\n {\n label: '+55(BV)',\n value: '55',\n },\n {\n label: '+267(BW)',\n value: '267',\n },\n {\n label: '+375(BY)',\n value: '375',\n },\n {\n label: '+501(BZ)',\n value: '501',\n },\n {\n label: '+1(CA)',\n value: '1',\n },\n {\n label: '+61(CC)',\n value: '61',\n },\n {\n label: '+243(CD)',\n value: '243',\n },\n {\n label: '+236(CF)',\n value: '236',\n },\n {\n label: '+242(CG)',\n value: '242',\n },\n {\n label: '+225(CI)',\n value: '225',\n },\n {\n label: '+682(CK)',\n value: '682',\n },\n {\n label: '+56(CL)',\n value: '56',\n },\n {\n label: '+237(CM)',\n value: '237',\n },\n {\n label: '+86(CN)',\n value: '86',\n },\n {\n label: '+57(CO)',\n value: '57',\n },\n {\n label: '+506(CR)',\n value: '506',\n },\n {\n label: '+53(CU)',\n value: '53',\n },\n {\n label: '+238(CV)',\n value: '238',\n },\n {\n label: '+599(CW)',\n value: '599',\n },\n {\n label: '+61(CX)',\n value: '61',\n },\n {\n label: '+357(CY)',\n value: '357',\n },\n {\n label: '+420(CZ)',\n value: '420',\n },\n {\n label: '+253(DJ)',\n value: '253',\n },\n {\n label: '+45(DK)',\n value: '45',\n },\n {\n label: '+1-767(DM)',\n value: '1-767',\n },\n {\n label: '+213(DZ)',\n value: '213',\n },\n {\n label: '+385(HR)',\n value: '385',\n },\n {\n label: '+246(IO)',\n value: '246',\n },\n {\n label: '+855(KH)',\n value: '855',\n },\n {\n label: '+269(KM)',\n value: '269',\n },\n {\n label: '+1-345(KY)',\n value: '1-345',\n },\n {\n label: '+235(TD)',\n value: '235',\n },\n {\n label: '+262(TF)',\n value: '262',\n },\n {\n label: '+1-809',\n value: '1-809',\n },\n {\n label: '+1-829',\n value: '1-829',\n },\n {\n label: '+971(AE)',\n value: '971',\n },\n {\n label: '+590(BL)',\n value: '590',\n },\n {\n label: '+691(FM)',\n value: '691',\n },\n {\n label: '+1-869(KN)',\n value: '1-869',\n },\n {\n label: '+1-758(LC)',\n value: '1-758',\n },\n {\n label: '+423(LI)',\n value: '423',\n },\n {\n label: '+370(LT)',\n value: '370',\n },\n {\n label: '+352(LU)',\n value: '352',\n },\n {\n label: '+212(MA)',\n value: '212',\n },\n {\n label: '+377(MC)',\n value: '377',\n },\n {\n label: '+373(MD)',\n value: '373',\n },\n {\n label: '+382(ME)',\n value: '382',\n },\n {\n label: '+590(MF)',\n value: '590',\n },\n {\n label: '+261(MG)',\n value: '261',\n },\n {\n label: '+692(MH)',\n value: '692',\n },\n {\n label: '+389(MK)',\n value: '389',\n },\n {\n label: '+223(ML)',\n value: '223',\n },\n {\n label: '+95(MM)',\n value: '95',\n },\n {\n label: '+976(MN)',\n value: '976',\n },\n {\n label: '+853(MO)',\n value: '853',\n },\n {\n label: '+1-670(MP)',\n value: '1-670',\n },\n {\n label: '+596(MQ)',\n value: '596',\n },\n {\n label: '+222(MR)',\n value: '222',\n },\n {\n label: '+1-664(MS)',\n value: '1-664',\n },\n {\n label: '+356(MT)',\n value: '356',\n },\n {\n label: '+230(MU)',\n value: '230',\n },\n {\n label: '+960(MV)',\n value: '960',\n },\n {\n label: '+265(MW)',\n value: '265',\n },\n {\n label: '+52(MX)',\n value: '52',\n },\n {\n label: '+60(MY)',\n value: '60',\n },\n {\n label: '+258(MZ)',\n value: '258',\n },\n {\n label: '+264(NA)',\n value: '264',\n },\n {\n label: '+687(NC)',\n value: '687',\n },\n {\n label: '+227(NE)',\n value: '227',\n },\n {\n label: '+672-3(NF)',\n value: '672-3',\n },\n {\n label: '+234(NG)',\n value: '234',\n },\n {\n label: '+505(NI)',\n value: '505',\n },\n {\n label: '+31(NL)',\n value: '31',\n },\n {\n label: '+47(NO)',\n value: '47',\n },\n {\n label: '+977(NP)',\n value: '977',\n },\n {\n label: '+674(NR)',\n value: '674',\n },\n {\n label: '+683(NU)',\n value: '683',\n },\n {\n label: '+64(NZ)',\n value: '64',\n },\n {\n label: '+968(OM)',\n value: '968',\n },\n {\n label: '+507(PA)',\n value: '507',\n },\n {\n label: '+51(PE)',\n value: '51',\n },\n {\n label: '+675(PG)',\n value: '675',\n },\n {\n label: '+63(PH)',\n value: '63',\n },\n {\n label: '+92(PK)',\n value: '92',\n },\n {\n label: '+48(PL)',\n value: '48',\n },\n {\n label: '+64(PN)',\n value: '64',\n },\n {\n label: '+1-939(PR)',\n value: '1-939',\n },\n {\n label: '+970(PS)',\n value: '970',\n },\n {\n label: '+351(PT)',\n value: '351',\n },\n {\n label: '+680(PW)',\n value: '680',\n },\n {\n label: '+595(PY)',\n value: '595',\n },\n {\n label: '+1-787',\n value: '1-787',\n },\n {\n label: '+358(AX)',\n value: '358',\n },\n {\n label: '+41(CH)',\n value: '41',\n },\n {\n label: '+49(DE)',\n value: '49',\n },\n {\n label: '+1-849(DO)',\n value: '1-849',\n },\n {\n label: '+593(EC)',\n value: '593',\n },\n {\n label: '+372(EE)',\n value: '372',\n },\n {\n label: '+20(EG)',\n value: '20',\n },\n {\n label: '+212(EH)',\n value: '212',\n },\n {\n label: '+291(ER)',\n value: '291',\n },\n {\n label: '+34(ES)',\n value: '34',\n },\n {\n label: '+251(ET)',\n value: '251',\n },\n {\n label: '+358(FI)',\n value: '358',\n },\n {\n label: '+679(FJ)',\n value: '679',\n },\n {\n label: '+500(FK)',\n value: '500',\n },\n {\n label: '+298(FO)',\n value: '298',\n },\n {\n label: '+33(FR)',\n value: '33',\n },\n {\n label: '+241(GA)',\n value: '241',\n },\n {\n label: '+44(GB)',\n value: '44',\n },\n {\n label: '+1-473(GD)',\n value: '1-473',\n },\n {\n label: '+995(GE)',\n value: '995',\n },\n {\n label: '+594(GF)',\n value: '594',\n },\n {\n label: '+44-1481(GG)',\n value: '44-1481',\n },\n {\n label: '+233(GH)',\n value: '233',\n },\n {\n label: '+350(GI)',\n value: '350',\n },\n {\n label: '+299(GL)',\n value: '299',\n },\n {\n label: '+220(GM)',\n value: '220',\n },\n {\n label: '+224(GN)',\n value: '224',\n },\n {\n label: '+590(GP)',\n value: '590',\n },\n {\n label: '+240(GQ)',\n value: '240',\n },\n {\n label: '+30(GR)',\n value: '30',\n },\n {\n label: '+500(GS)',\n value: '500',\n },\n {\n label: '+502(GT)',\n value: '502',\n },\n {\n label: '+1-671(GU)',\n value: '1-671',\n },\n {\n label: '+245(GW)',\n value: '245',\n },\n {\n label: '+592(GY)',\n value: '592',\n },\n {\n label: '+852(HK)',\n value: '852',\n },\n {\n label: '+672(HM)',\n value: '672',\n },\n {\n label: '+504(HN)',\n value: '504',\n },\n {\n label: '+509(HT)',\n value: '509',\n },\n {\n label: '+36(HU)',\n value: '36',\n },\n {\n label: '+62(ID)',\n value: '62',\n },\n {\n label: '+353(IE)',\n value: '353',\n },\n {\n label: '+972(IL)',\n value: '972',\n },\n {\n label: '+44-1624(IM)',\n value: '44-1624',\n },\n {\n label: '+91(IN)',\n value: '91',\n },\n {\n label: '+964(IQ)',\n value: '964',\n },\n {\n label: '+98(IR)',\n value: '98',\n },\n {\n label: '+354(IS)',\n value: '354',\n },\n {\n label: '+39(IT)',\n value: '39',\n },\n {\n label: '(IZ)',\n value: '',\n },\n {\n label: '+44-1534(JE)',\n value: '44-1534',\n },\n {\n label: '+1-876(JM)',\n value: '1-876',\n },\n {\n label: '+962(JO)',\n value: '962',\n },\n {\n label: '+81(JP)',\n value: '81',\n },\n {\n label: '+254(KE)',\n value: '254',\n },\n {\n label: '+996(KG)',\n value: '996',\n },\n {\n label: '+686(KI)',\n value: '686',\n },\n {\n label: '+850(KP)',\n value: '850',\n },\n {\n label: '+82(KR)',\n value: '82',\n },\n {\n label: '+965(KW)',\n value: '965',\n },\n {\n label: '+7(KZ)',\n value: '7',\n },\n {\n label: '+856(LA)',\n value: '856',\n },\n {\n label: '+961(LB)',\n value: '961',\n },\n {\n label: '+94(LK)',\n value: '94',\n },\n {\n label: '+231(LR)',\n value: '231',\n },\n {\n label: '+266(LS)',\n value: '266',\n },\n {\n label: '+371(LV)',\n value: '371',\n },\n {\n label: '+218(LY)',\n value: '218',\n },\n {\n label: '(OT)',\n value: '',\n },\n {\n label: '+689(PF)',\n value: '689',\n },\n {\n label: '+508(PM)',\n value: '508',\n },\n {\n label: '+974(QA)',\n value: '974',\n },\n {\n label: '+262(RE)',\n value: '262',\n },\n {\n label: '+40(RO)',\n value: '40',\n },\n {\n label: '+381(RS)',\n value: '381',\n },\n {\n label: '+7(RU)',\n value: '7',\n },\n {\n label: '+250(RW)',\n value: '250',\n },\n {\n label: '+966(SA)',\n value: '966',\n },\n {\n label: '+677(SB)',\n value: '677',\n },\n {\n label: '+248(SC)',\n value: '248',\n },\n {\n label: '+249(SD)',\n value: '249',\n },\n {\n label: '+46(SE)',\n value: '46',\n },\n {\n label: '+65(SG)',\n value: '65',\n },\n {\n label: '+290(SH)',\n value: '290',\n },\n {\n label: '+386(SI)',\n value: '386',\n },\n {\n label: '+47(SJ)',\n value: '47',\n },\n {\n label: '+421(SK)',\n value: '421',\n },\n {\n label: '+232(SL)',\n value: '232',\n },\n {\n label: '+378(SM)',\n value: '378',\n },\n {\n label: '+221(SN)',\n value: '221',\n },\n {\n label: '+252(SO)',\n value: '252',\n },\n {\n label: '+597(SR)',\n value: '597',\n },\n {\n label: '+211(SS)',\n value: '211',\n },\n {\n label: '+239(ST)',\n value: '239',\n },\n {\n label: '+503(SV)',\n value: '503',\n },\n {\n label: '+1-721(SX)',\n value: '1-721',\n },\n {\n label: '+963(SY)',\n value: '963',\n },\n {\n label: '+268(SZ)',\n value: '268',\n },\n {\n label: '+1-649(TC)',\n value: '1-649',\n },\n {\n label: '+228(TG)',\n value: '228',\n },\n {\n label: '+66(TH)',\n value: '66',\n },\n {\n label: '+992(TJ)',\n value: '992',\n },\n {\n label: '+690(TK)',\n value: '690',\n },\n {\n label: '+670(TL)',\n value: '670',\n },\n {\n label: '+993(TM)',\n value: '993',\n },\n {\n label: '+216(TN)',\n value: '216',\n },\n {\n label: '+676(TO)',\n value: '676',\n },\n {\n label: '+90(TR)',\n value: '90',\n },\n {\n label: '+1-868(TT)',\n value: '1-868',\n },\n {\n label: '+688(TV)',\n value: '688',\n },\n {\n label: '+886(TW)',\n value: '886',\n },\n {\n label: '+255(TZ)',\n value: '255',\n },\n {\n label: '+380(UA)',\n value: '380',\n },\n {\n label: '+256(UG)',\n value: '256',\n },\n {\n label: '(UM)',\n value: '',\n },\n {\n label: '+1(US)',\n value: '1',\n },\n {\n label: '+598(UY)',\n value: '598',\n },\n {\n label: '+998(UZ)',\n value: '998',\n },\n {\n label: '+379(VA)',\n value: '379',\n },\n {\n label: '+1-784(VC)',\n value: '1-784',\n },\n {\n label: '+58(VE)',\n value: '58',\n },\n {\n label: '+1-284(VG)',\n value: '1-284',\n },\n {\n label: '+1-340(VI)',\n value: '1-340',\n },\n {\n label: '+84(VN)',\n value: '84',\n },\n {\n label: '+678(VU)',\n value: '678',\n },\n {\n label: '+681(WF)',\n value: '681',\n },\n {\n label: '+685(WS)',\n value: '685',\n },\n {\n label: '+967(YE)',\n value: '967',\n },\n {\n label: '+262(YT)',\n value: '262',\n },\n {\n label: '+27(ZA)',\n value: '27',\n },\n {\n label: '+260(ZM)',\n value: '260',\n },\n {\n label: '+263(ZW)',\n value: '263',\n },\n];\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { IffService } from '../../service/iff.service';\nimport { ValidateEmpfRefNoRequest } from '../../service/model/validate-empf-ref-no-request.model';\nimport { CdsPopupService, CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { ExitIffWarnPopupComponent } from './exit-iff-warn-popup/exit-iff-warn-popup.component';\nimport { EMPFRefNoUsedComponent } from './e-mpf-ref-no-used/e-mpf-ref-no-used.component';\nimport { AgentInfo, AgentSubmissionRequest } from '../../service/model/agent-submission-request.model';\nimport { IffSubmissionSuccPopupComponent } from './iff-submission-succ-popup/iff-submission-succ-popup.component';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { AgentDetailInfo, AgentInfoResponse } from '../../service/model/agent-info-response.model';\nimport { empfCountryOption } from '../declaration-iff-er/empf-declaration-form.config';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { agentCodeRemovePrefix0 } from 'src/app/utils/utils';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { PreferredLanguageType, SalesJourneyProdType } from '../case-summary.model';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\nimport { ValidateEmpfRefNoResponse } from '../../service/model/validate-empf-ref-no-response.model';\nimport { AgentSubmissionResponse } from '../../service/model/agent-submission-response.model';\n\n@Component({\n selector: 'app-declaration-iff',\n templateUrl: './declaration-iff.component.html',\n styleUrls: ['./declaration-iff.component.scss'],\n})\nexport class DeclarationIffComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('displayContent') displayContent!: ElementRef;\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage!: CdRadioComponent;\n @ViewChild('cdRadioSecondAgentPreferredLanguage') cdRadioSecondAgentPreferredLanguage?: CdRadioComponent;\n PreferredLanguageType = PreferredLanguageType;\n language = 'EN';\n public lanChangeSubscription?: Subscription;\n public validateEmpfRefNoSubscription?: Subscription;\n public agentSubmissionSubscription?: Subscription;\n public secondAgentInfoSubscription?: Subscription;\n public errorSub?: Subscription;\n rmReferralCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n };\n inputCustomerIdVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n sourceCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n campaignCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n dbs = {\n rmReferralCode: new FormControl('', [Validators.required, this.rmReferralCodeVali]),\n inputCustomerId: new FormControl('', [this.inputCustomerIdVali]),\n sourceCode: new FormControl('', [this.sourceCodeVali]),\n campaignCode: new FormControl('', [this.campaignCodeVali]),\n };\n hKIDPassportNoConfig: CdsDropdownConfig = {\n options: [\n { label: this.cdsLangService.translate('iff.hkid'), value: '0' },\n { label: this.cdsLangService.translate('iff.passport'), value: '1' },\n ],\n placeholder: this.cdsLangService.translate('iff.pleaseSelectIDType'),\n };\n hKIDPassportNoFormControl = new FormControl();\n isScrollBottom = false;\n onScoll = () => {\n const scrollHeight = this.displayContent.nativeElement.scrollHeight;\n const clientHeight = this.displayContent.nativeElement.clientHeight;\n\n if (!this.isScrollBottom && this.displayContent.nativeElement.scrollTop > scrollHeight - clientHeight - 10) {\n this.isScrollBottom = true;\n }\n };\n currentStage = 1; // there are 5 stages now. 0: advise-empfref page; 1: declaration page; 2: iffForm page; 3: not-split-agent confirmation page; 4: split agent page; 5: split agent confirmation page\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n constructor(\n private dialogRef: MatDialogRef,\n private alert: CdsAlertService,\n public languageChangeService: LanguageChangeService,\n private iffService: IffService,\n private cdsPopup: CdsPopupService,\n private authenticationService: AuthenticationService,\n public cdsLangService: CdsLangService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n domain: string;\n },\n private cdHttpServeService: CdHttpServeService,\n private agentChannelService: AgentChannelService\n ) {}\n\n ngAfterViewInit(): void {\n this.displayContent.nativeElement.addEventListener('scroll', this.onScoll);\n }\n\n ngOnDestroy(): void {\n this.errorSub?.unsubscribe();\n this.lanChangeSubscription?.unsubscribe();\n this.validateEmpfRefNoSubscription?.unsubscribe();\n this.agentSubmissionSubscription?.unsubscribe();\n this.secondAgentInfoSubscription?.unsubscribe();\n this.displayContent.nativeElement.removeEventListener('scroll', this.onScoll);\n }\n commonButton: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n };\n\n commonButton2: CdsButtonConfig = {\n size: 'md',\n style: 'secondary',\n disabled: false,\n };\n\n iffForm!: FormGroup;\n servicingAgentId?: string;\n servicingAgentCode?: string;\n secondAgentInfo?: AgentDetailInfo;\n isSecondAgentConduct?: boolean;\n secondAgentRadioConfig: CdRadioConfig = {\n options: [\n {\n label: this.language === 'EN' ? 'Registered Email()' : '已登記的電郵地址(',\n value: 'E',\n disable: false,\n },\n {\n label: this.language === 'EN' ? 'Registered Mobile No.()' : '已登記的電話號碼()',\n value: 'M',\n disable: false,\n },\n ],\n };\n secondAgentPreferredLanguage?: string;\n\n secondAgentContactEmail = '';\n secondAgentContactPhone = '';\n\n agentInfoDataSubjectCallBack = (agentInfoResp: AgentInfoResponse) => {\n if (agentInfoResp && agentInfoResp.result === 0 && agentInfoResp.data && agentInfoResp.data.agentCode) {\n this.secondAgentInfo = agentInfoResp.data;\n\n const secondAgentEmail = this.secondAgentInfo?.emailAddress;\n const secondAgentPhoneNo = this.secondAgentInfo?.mobileNumber;\n let labelOfEmail = this.language === 'EN' ? 'Registered Email' : '已登記的電郵地址';\n let labelOfPhone = this.language === 'EN' ? 'Registered Mobile No.' : '已登記的電話號碼';\n if (secondAgentEmail) {\n const charIndex = secondAgentEmail.indexOf('@');\n const firstPart = secondAgentEmail.substring(0, charIndex);\n const secondPart = secondAgentEmail.substring(charIndex + 1);\n const revisedEmail = firstPart.substring(0, 4) + '******' + '@' + secondPart;\n labelOfEmail = this.language === 'EN' ? 'Registered Email(' + revisedEmail + ')' : '已登記的電郵地址(' + revisedEmail + ')';\n }\n if (secondAgentPhoneNo) {\n const phoneNoMasked = secondAgentPhoneNo.substring(0, 4) + '****';\n labelOfPhone = this.language === 'EN' ? 'Registered Mobile No.(' + phoneNoMasked + ')' : '已登記的電話號碼(' + phoneNoMasked + ')';\n }\n\n this.secondAgentContactEmail = labelOfEmail;\n this.secondAgentContactPhone = labelOfPhone;\n this.secondAgentRadioConfig = {\n options: [\n { label: labelOfEmail, value: 'E', disable: !secondAgentEmail },\n { label: labelOfPhone, value: 'M', disable: !secondAgentPhoneNo },\n ],\n };\n this.secondAgentContactTypeSelected = labelOfEmail;\n if (!this.conductedRegulatorActivityFlag.value) {\n this.isSecondAgentConduct = false;\n } else {\n this.isSecondAgentConduct = undefined;\n }\n if (secondAgentEmail) {\n this.secondAgentNotificationChannel = 'E';\n } else if (secondAgentPhoneNo) {\n this.secondAgentNotificationChannel = 'M';\n }\n const eMPFReferenceNo = this.eMPFReferenceNo.value;\n const validateEmpfRefNoRequest = new ValidateEmpfRefNoRequest();\n validateEmpfRefNoRequest.empfRefNo = eMPFReferenceNo;\n validateEmpfRefNoRequest.clientType = 'member';\n this.cdHttpServeService\n .post<{ empfRefNoStatus: boolean }>(`/ext/eb-ssms-sales-journey-service/generateGeneralLink/validateEmpfRefNo/flow2`, validateEmpfRefNoRequest)\n .subscribe({\n next: resp => {\n if (resp && resp.result === 0 && resp.data) {\n // the eMPF Ref No. have been submitted\n if (!resp.data.empfRefNoStatus) {\n const dialogRefEMPFRefNoUsed: MatDialogRef = this.cdsPopup.open(EMPFRefNoUsedComponent, {\n size: 'md',\n });\n dialogRefEMPFRefNoUsed.afterClosed().subscribe(data => {\n if (data.agree) {\n this.currentStage = 2;\n this.eMPFReferenceNo.markAsTouched();\n this.eMPFReferenceNo.setErrors({ usedEMPFRefNo: true });\n }\n });\n } else {\n // go to split agent code stage\n this.currentStage = 4;\n this.onSecondAgentContactTypeChange(this.secondAgentNotificationChannel);\n }\n }\n this.isSplitAgentFine = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isSplitAgentFine = false;\n },\n });\n } else {\n this.splitAgentCode.markAsTouched();\n this.splitAgentCode.setErrors({ invalidSplitAgentCode: true });\n }\n };\n\n validateEmpfRefNoSubjectCallBack = (resp: ValidateEmpfRefNoResponse) => {\n if (resp && resp.result === 0 && resp.data) {\n // the eMPF Ref No. have been submitted\n if (!resp.data.empfRefNoStatus) {\n const dialogRefEMPFRefNoUsed: MatDialogRef = this.cdsPopup.open(EMPFRefNoUsedComponent, {\n size: 'md',\n });\n dialogRefEMPFRefNoUsed.afterClosed().subscribe(data => {\n if (data.agree) {\n this.currentStage = 2;\n this.eMPFReferenceNo.markAsTouched();\n this.eMPFReferenceNo.setErrors({ usedEMPFRefNo: true });\n }\n });\n this.isSplitAgentFine = false;\n } else {\n // when this.currentStage === 3 , it will continue to return true, so need this.currentStage === 2.\n if (this.currentStage === 2 && !this.splitAgentCode.value) {\n this.currentStage = 3;\n } else {\n // not-used eMPF Ref No, then call be API\n const agentInfoArr = [];\n const agentInfo = new AgentInfo();\n agentInfo.agentIdentityId = this.servicingAgentId;\n const isRegulatedAct = this.conductedRegulatorActivityFlag.value;\n agentInfo.regulatedAct = isRegulatedAct === null || isRegulatedAct === undefined ? false : isRegulatedAct;\n agentInfo.agentNotificationChannel = '';\n agentInfo.primaryAgent = true;\n agentInfoArr.push(agentInfo);\n const agentSubmissionRequest = new AgentSubmissionRequest();\n agentSubmissionRequest.empfRefNo = this.eMPFReferenceNo.value;\n // agentSubmissionRequest.productType = \"Individual\";\n agentSubmissionRequest.domainType = SalesJourneyProdType.Individual;\n // agentSubmissionRequest.firstNm =\n // this.iffForm.get('firstName')?.value;\n agentSubmissionRequest.hkidOrPassportNo = this.hkidOrPassportNo.value;\n agentSubmissionRequest.idType = this.hKIDPassportNoFormControl.value;\n // agentSubmissionRequest.lastNm =\n // this.iffForm.get('lastName')?.value;\n agentSubmissionRequest.channel = this.iffForm.get('contactType')?.value;\n agentSubmissionRequest.countryCallingCode = this.iffForm.get('countryCode')?.value;\n agentSubmissionRequest.mobileNo = this.iffForm.get('phoneNo')?.value;\n agentSubmissionRequest.emailAddr = this.iffForm.get('email')?.value;\n agentSubmissionRequest.caseSplit = false;\n if (this.isSplitAgentFine) {\n const agentInfo2 = new AgentInfo();\n agentInfo2.agentid = this.secondAgentInfo?.agentId;\n agentInfo2.regulatedAct = this.isSecondAgentConduct === null || this.isSecondAgentConduct === undefined ? false : this.isSecondAgentConduct;\n agentInfo2.agentNotificationChannel = this.secondAgentNotificationChannel;\n agentInfo2.primaryAgent = false;\n if (agentInfo2.regulatedAct && this.secondAgentNotificationChannel === 'M') {\n agentInfo2.smsLanguage = this.secondAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n agentInfoArr.push(agentInfo2);\n agentSubmissionRequest.caseSplit = true;\n }\n agentSubmissionRequest.agentInfos = agentInfoArr;\n if (this.data.domain === SalesJourneyProdType.SEP) {\n agentSubmissionRequest.domainType = SalesJourneyProdType.SEP;\n agentSubmissionRequest.productType = SalesJourneyProdType.SEP;\n }\n if (this.isChannelDBS) {\n agentSubmissionRequest.dbs = {\n dbsRmReferralCd: this.dbs.rmReferralCode.value,\n dbsCustomerId: this.dbs.inputCustomerId.value,\n dbsCampaignCd: this.dbs.campaignCode.value,\n dbsSourceCd: this.dbs.sourceCode.value,\n };\n }\n\n if (agentSubmissionRequest.channel === 'M') {\n agentSubmissionRequest.smsLanguage = this.preferredLanguage.value === PreferredLanguageType.English ? 0 : 1;\n }\n\n this.iffService.agentSubmission(agentSubmissionRequest);\n }\n }\n } else {\n this.alert.error('Error!', resp.message || 'generateGeneralLink/validateEmpfRefNo Error');\n }\n };\n\n agentSubmissionSubjectCallBack = (resp: AgentSubmissionResponse) => {\n if (resp && resp.result === 0) {\n // not split case, iff submission success\n let msg = '';\n if (this.isToAgentConfirmation) {\n msg = 'sendIffInBatchSummary.popupScreenTitleForSplitAgent';\n } else {\n msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n }\n const iffSubmissionSuccDialogRef: MatDialogRef = this.cdsPopup.open(IffSubmissionSuccPopupComponent, {\n size: 'md',\n data: {\n message: this.cdsLangService.translate(msg),\n },\n });\n iffSubmissionSuccDialogRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.dialogRef.close({ refresh: true });\n }\n });\n }\n this.isSplitAgentFine = false;\n };\n\n ngOnInit(): void {\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(lan => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n });\n\n this.errorSub = this.iffService.errorIffSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n\n this.secondAgentInfoSubscription = this.iffService.agentInfoDataSubject.subscribe(this.agentInfoDataSubjectCallBack);\n\n this.authenticationService.currentUserValue().then(res => {\n this.servicingAgentId = res.id + '';\n\n this.iffService.getAgentCode(this.servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.servicingAgentCode = res.data.agentCode;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n\n this.validateEmpfRefNoSubscription = this.iffService.validateEmpfRefNoSubject.subscribe(this.validateEmpfRefNoSubjectCallBack);\n\n this.agentSubmissionSubscription = this.iffService.agentSubmissionSubject.subscribe(this.agentSubmissionSubjectCallBack);\n\n this.iffForm = new FormGroup(\n {\n eMPFReferenceNo: new FormControl(null, [Validators.required]),\n conductedRegulatorActivityFlag: new FormControl(null, [Validators.required]),\n hkidOrPassportNo: new FormControl(null, [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n if (this.hKIDPassportNoFormControl.value === '1') {\n return null;\n }\n let input: string = control.value || '';\n input = input.trim();\n const isValid: RegExpExecArray | null | boolean = /^[a-zA-Z]{1,2}\\d{6}\\([aA\\d]\\)$/.exec(input);\n return isValid ? null : { formatError: true };\n },\n ]),\n contactType: new FormControl(null, [Validators.required]),\n preferredLanguage: new FormControl(null, [\n (control: AbstractControl): ValidationErrors | null => {\n if (\n (this.iffForm?.get('contactType')?.value === 'M' && control.value) ||\n this.iffForm?.get('contactType')?.value === 'E' ||\n !this.iffForm?.get('contactType')?.value\n ) {\n return null;\n }\n return { formatError: true };\n },\n ]),\n splitAgentCode: new FormControl(null),\n },\n this.countryCodeAndPhoneNoUnionValidate.bind(this)\n );\n }\n\n get hkidOrPassportNo() {\n return this.iffForm.get('hkidOrPassportNo') as FormControl;\n }\n\n hKIDPassportNoChange() {\n this.hkidOrPassportNo.updateValueAndValidity();\n }\n\n toIFFForm() {\n if (!this.isScrollBottom) {\n return;\n }\n\n this.currentStage = 2;\n }\n\n hkidOrPassportNoInputBlur() {\n const value = this.hkidOrPassportNo.value?.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (value) {\n this.hkidOrPassportNo.setValue(value.trim());\n }\n\n if (this.hKIDPassportNoFormControl.value === '0') {\n if (/^[a-zA-Z]{1,2}\\d{6}\\([aA\\d]\\)$/.exec(value.trim())) {\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/hkidCheckDigit`, { hkId: value.trim() }).subscribe({\n next: res => {\n if (!(res.result === 0 && res.data)) {\n this.hkidOrPassportNo.setErrors({ formatError: true });\n }\n },\n error: err => {\n this.hkidOrPassportNo.setErrors({ formatError: true });\n this.alert.error('Error!', err);\n },\n });\n }\n }\n }\n\n get eMPFReferenceNo() {\n return this.iffForm.get('eMPFReferenceNo') as FormControl;\n }\n\n eMPFReferenceNoInputBlur() {\n const value: string = this.eMPFReferenceNo.value?.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (value) {\n this.eMPFReferenceNo.setValue(value.trim());\n }\n }\n\n get splitAgentCode() {\n return this.iffForm.get('splitAgentCode') as FormControl;\n }\n\n splitAgentCodeInputBlur() {\n const value: string = this.splitAgentCode.value?.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (value) {\n this.splitAgentCode.setValue(value.trim());\n }\n }\n\n getAgentName(agent?: AgentDetailInfo) {\n if (!agent) {\n return '';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return agent.agentName || agent.agentNameTC;\n } else {\n return agent.agentNameTC || agent.agentName;\n }\n }\n\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n get contactType() {\n return this.iffForm.get('contactType') as FormControl;\n }\n\n get email() {\n return this.iffForm.get('email') as FormControl;\n }\n\n get phoneNo() {\n return this.iffForm.get('phoneNo') as FormControl;\n }\n\n get preferredLanguage() {\n return this.iffForm.get('preferredLanguage') as FormControl;\n }\n\n get countryCode() {\n return this.iffForm.get('countryCode') as FormControl;\n }\n\n resetIffForm() {\n this.iffForm.reset();\n this.eMPFReferenceNo.setValue(null);\n this.hkidOrPassportNo.reset();\n this.contactType.reset();\n this.email?.reset();\n this.phoneNo?.reset();\n this.preferredLanguage.reset();\n this.dbs.rmReferralCode.reset('');\n this.dbs.sourceCode.reset('');\n this.dbs.campaignCode.reset('');\n this.dbs.inputCustomerId.reset('');\n this.hKIDPassportNoFormControl.reset();\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.cdRadioPreferredLanguage.refreshConfig();\n }\n\n onClickInfoIcon() {\n this.currentStage = 0;\n }\n\n closeCurrentPopup() {\n if (this.currentStage === 1) {\n this.dialogRef.close();\n } else {\n const exitIffWarnDialogRef: MatDialogRef = this.cdsPopup.open(ExitIffWarnPopupComponent, {\n size: 'lg',\n });\n exitIffWarnDialogRef.afterClosed().subscribe(data => {\n if (data.agree) {\n this.dialogRef.close();\n }\n });\n }\n }\n\n dbsInputHasErrors() {\n if (!this.isChannelDBS) {\n return false;\n }\n return (\n (this.dbs.rmReferralCode && this.dbs.rmReferralCode.dirty && !!this.dbs.rmReferralCode.errors) ||\n (this.dbs.campaignCode && this.dbs.campaignCode.dirty && !!this.dbs.campaignCode.errors) ||\n (this.dbs.sourceCode && this.dbs.sourceCode.dirty && !!this.dbs.sourceCode.errors) ||\n (this.dbs.inputCustomerId && this.dbs.inputCustomerId.dirty && !!this.dbs.inputCustomerId.errors)\n );\n }\n\n onIffPartSubmit() {\n const hkid = this.hkidOrPassportNo.value;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const idtype = this.hKIDPassportNoFormControl.value;\n\n if (idtype == 0) {\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/hkidCheckDigit`, { hkId: hkid }).subscribe({\n next: res => {\n if (res.result === 0) {\n if (res.data == false) {\n this.hkidOrPassportNo.setErrors({ formatError: true });\n return;\n }\n this.fromValue();\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n } else {\n this.fromValue();\n }\n\n //console.info(this.iffForm.value);\n }\n\n get conductedRegulatorActivityFlag() {\n return this.iffForm.get('conductedRegulatorActivityFlag') as FormControl;\n }\n\n fromValue() {\n this.secondAgentNotificationChannel = '';\n this.eMPFReferenceNo.markAsTouched();\n this.hkidOrPassportNo.markAsTouched();\n this.contactType.markAsTouched();\n this.preferredLanguage.markAsTouched();\n this.conductedRegulatorActivityFlag.markAsTouched();\n const eMPFReferenceNo = this.eMPFReferenceNo.value;\n const contactType = this.contactType.value;\n if (contactType === 'E') {\n this.email?.markAsTouched();\n } else if (contactType === 'M') {\n this.phoneNo?.markAsTouched();\n } else {\n this.contactType.markAsTouched();\n }\n const validateEmpfRefNoRequest = new ValidateEmpfRefNoRequest();\n validateEmpfRefNoRequest.empfRefNo = eMPFReferenceNo;\n if (this.isChannelDBS) {\n if (this.dbs.rmReferralCode.errors) {\n this.dbs.rmReferralCode.markAsDirty();\n return;\n }\n }\n if (this.dbsInputHasErrors()) {\n return;\n }\n if (this.iffForm.status === 'VALID') {\n const splitAgentCode = this.splitAgentCode.value;\n if (splitAgentCode && splitAgentCode.trim() !== '') {\n if (this.servicingAgentCode === splitAgentCode.trim()) {\n this.splitAgentCode.setErrors({ invalidSplitAgentCode: true });\n return;\n }\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(splitAgentCode.trim()),\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.iffService.getAgentInfo(splitAgentCode.trim());\n } else {\n this.splitAgentCode.markAsTouched();\n this.splitAgentCode.setErrors({ invalidSplitAgentCode: true });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n } else {\n this.validateInputtedEMPFReferenceNo();\n }\n }\n }\n\n //async validator for hk phone no\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hkPhoneNoValidateAsync(formControl: AbstractControl): Promise | Observable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new Promise(resolve => {\n const hkPhoneNo: number = formControl.value;\n if (!this.isValidHKPhoneNo(hkPhoneNo)) {\n resolve({ invalidPhoneNo: true });\n } else {\n resolve(null);\n }\n });\n }\n\n hkPhoneNoValidate(formControl: AbstractControl): ValidationErrors | null | Observable {\n const hkPhoneNo: number = formControl.value;\n if (!this.isValidHKPhoneNo(hkPhoneNo)) {\n return { invalidPhoneNo: true };\n } else {\n return null;\n }\n }\n\n isValidHKPhoneNo(num: number) {\n if (/^[4-9]\\d{7}$/.test(num + '')) {\n return true;\n }\n return false;\n }\n\n isValidChiPhoneNo(num: number) {\n if (/^[1]\\d{10}$/.test(num + '')) {\n return true;\n }\n return false;\n }\n\n countryCodeAndPhoneNoUnionValidate(formGroup: AbstractControl): ValidationErrors | null | Observable {\n const contactType = formGroup.get('contactType')?.value;\n if (contactType === 'M') {\n const countryCode = formGroup.get('countryCode')?.value;\n const phoneNo = formGroup.get('phoneNo')?.value;\n // phoneNo type is number, need to change to string type here\n if (phoneNo === null || phoneNo === undefined) {\n return { required: true };\n } else if ((countryCode === '86' && !this.isValidChiPhoneNo(phoneNo)) || (countryCode === '852' && !this.isValidHKPhoneNo(phoneNo))) {\n return { invalidPhoneNo: true };\n }\n }\n return null;\n }\n emailFormControl?: FormControl;\n\n onContactTypeChange(val: string) {\n this.preferredLanguage.setValue(undefined);\n if (val === 'E') {\n this.iffForm.removeControl('countryCode');\n this.iffForm.removeControl('phoneNo');\n this.emailFormControl = new FormControl(null, [Validators.required, Validators.email]);\n this.iffForm.addControl('email', this.emailFormControl);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.iffForm.removeControl('email');\n const countryCodeFormControl = new FormControl(null, [Validators.required]);\n const phoneNoFormControl = new FormControl(null, [Validators.required]);\n this.iffForm.addControl('countryCode', countryCodeFormControl);\n this.iffForm.addControl('phoneNo', phoneNoFormControl);\n this.iffForm.patchValue({ countryCode: '852' });\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioPreferredLanguage.refreshConfig();\n }\n\n // onCountryCodeChange(val:string){\n // if(val ===\"HK\"){\n // this.iffForm.get('phoneNo')?.addValidators(Validators.maxLength(6));\n // this.iffForm.get('phoneNo')?.updateValueAndValidity();\n // }\n // }\n\n attentionIcon = ActionIcons.megaphone;\n backToIffForm() {\n this.currentStage = 2;\n }\n\n // private customEmailValidator(formControl : AbstractControl): ValidationErrors|null{\n // if(!formControl.value){\n // //return {valid:null};\n // console.info('in custom null');\n // return null;\n // }\n // return Validators.email(formControl);\n // }\n\n // private customEmailValidator(control: AbstractControl): {[key: string]: any}|null {\n // const emailError = Validators.email(control);\n // // const error1 = (control?.errors)!['required'];\n // // const error2 = (control?.errors)!['email'];\n // // console.info(error1);\n // // console.info(error2);\n // if (control.value && emailError) {\n // return {'email': {}};\n // } else if (!control.value){\n // return {'required': {}};\n // } else {\n // return null;\n // }\n // }\n iffSubmission() {\n const contactType = this.contactType.value;\n if (contactType === 'E') {\n this.email?.markAsTouched();\n } else if (contactType === 'M') {\n this.phoneNo?.markAsTouched();\n } else {\n this.contactType.markAsTouched();\n }\n this.validateInputtedEMPFReferenceNo();\n }\n\n get disableIffSplitAgentContinue() {\n return (\n Boolean(this.isSecondAgentConduct && this.secondAgentNotificationChannel === 'M' && !this.secondAgentPreferredLanguage) ||\n (this.conductedRegulatorActivityFlag.value && this.isSecondAgentConduct === undefined)\n );\n }\n\n iffSplitAgentContinue() {\n if (this.disableIffSplitAgentContinue) {\n return;\n }\n this.currentStage = 5;\n }\n\n secondAgentContactTypeSelected = '';\n secondAgentNotificationChannel = '';\n onSecondAgentContactTypeChange(val: string) {\n this.secondAgentPreferredLanguage = undefined;\n if (val === 'E') {\n this.secondAgentContactTypeSelected = this.secondAgentContactEmail;\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.secondAgentContactTypeSelected = this.secondAgentContactPhone;\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioSecondAgentPreferredLanguage?.refreshConfig();\n }\n\n backToSplitAgentPage() {\n this.currentStage = 4;\n }\n\n validateInputtedEMPFReferenceNo() {\n const eMPFReferenceNo = this.eMPFReferenceNo.value;\n const validateEmpfRefNoRequest = new ValidateEmpfRefNoRequest();\n validateEmpfRefNoRequest.empfRefNo = eMPFReferenceNo;\n validateEmpfRefNoRequest.clientType = 'member';\n this.iffService.validateEmpfRefNo(validateEmpfRefNoRequest);\n }\n\n isSplitAgentFine = false; // define if the split agent flow is successful\n isToAgentConfirmation = false;\n iffSplitAgentSubmission() {\n this.isSplitAgentFine = true;\n this.isToAgentConfirmation = false;\n // not-used eMPF Ref No, then call be API\n const agentInfoArr = [];\n const agentInfo = new AgentInfo();\n agentInfo.agentIdentityId = this.servicingAgentId;\n const isRegulatedAct = this.conductedRegulatorActivityFlag.value;\n agentInfo.regulatedAct = isRegulatedAct === null || isRegulatedAct === undefined ? false : isRegulatedAct;\n agentInfo.agentNotificationChannel = '';\n agentInfo.primaryAgent = true;\n agentInfoArr.push(agentInfo);\n const agentSubmissionRequest = new AgentSubmissionRequest();\n agentSubmissionRequest.empfRefNo = this.eMPFReferenceNo.value;\n // agentSubmissionRequest.productType = \"Individual\";\n agentSubmissionRequest.domainType = SalesJourneyProdType.Individual;\n // agentSubmissionRequest.firstNm = this.iffForm.get('firstName')?.value;\n agentSubmissionRequest.hkidOrPassportNo = this.hkidOrPassportNo.value;\n agentSubmissionRequest.idType = this.hKIDPassportNoFormControl.value;\n // agentSubmissionRequest.lastNm = this.iffForm.get('lastName')?.value;\n agentSubmissionRequest.channel = this.contactType.value;\n agentSubmissionRequest.countryCallingCode = this.countryCode?.value;\n agentSubmissionRequest.mobileNo = this.phoneNo?.value;\n agentSubmissionRequest.emailAddr = this.email?.value;\n agentSubmissionRequest.caseSplit = false;\n if (this.isSplitAgentFine) {\n const agentInfo2 = new AgentInfo();\n agentInfo2.agentid = this.secondAgentInfo?.agentId;\n agentInfo2.regulatedAct = this.isSecondAgentConduct === null || this.isSecondAgentConduct === undefined ? false : this.isSecondAgentConduct;\n this.isToAgentConfirmation = agentInfo2.regulatedAct;\n agentInfo2.agentNotificationChannel = this.secondAgentNotificationChannel;\n agentInfo2.primaryAgent = false;\n if (agentInfo2.regulatedAct && this.secondAgentNotificationChannel === 'M') {\n agentInfo2.smsLanguage = this.secondAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n agentInfoArr.push(agentInfo2);\n agentSubmissionRequest.caseSplit = true;\n }\n agentSubmissionRequest.agentInfos = agentInfoArr;\n\n if (this.data.domain === SalesJourneyProdType.SEP) {\n agentSubmissionRequest.domainType = SalesJourneyProdType.SEP;\n agentSubmissionRequest.productType = SalesJourneyProdType.SEP;\n }\n if (this.isChannelDBS) {\n agentSubmissionRequest.dbs = {\n dbsRmReferralCd: this.dbs.rmReferralCode.value,\n dbsCustomerId: this.dbs.inputCustomerId.value,\n dbsCampaignCd: this.dbs.campaignCode.value,\n dbsSourceCd: this.dbs.sourceCode.value,\n };\n }\n\n if (agentSubmissionRequest.channel === 'M') {\n agentSubmissionRequest.smsLanguage = this.preferredLanguage.value === PreferredLanguageType.English ? 0 : 1;\n }\n\n this.iffService.agentSubmission(agentSubmissionRequest);\n }\n\n gotItButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n backToForm() {\n this.currentStage = 2;\n }\n\n get isChannelDBS() {\n return this.agentChannelService.channel === AgentChannel.DBS;\n }\n\n get isDisabled() {\n if (this.agentChannelService.channel === AgentChannel.DBS) {\n return true;\n }\n if (this.agentChannelService.channel === AgentChannel.CORPORATE && this.agentChannelService.agentCode?.startsWith('400')) {\n return true;\n }\n return false;\n }\n}\n","
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    eMPF source
    \n
    \n
    \n
    \n Lorem ipsum dolor sit amet. Qui autem impedit est tenetur\n reiciendis et sunt rerum qui quisquam animi et repudiandae rerum\n ab cumque dolore ut accusamus ipsum. Doloribus aliquid quo\n delectus atque aut corporis eius eum maiores optio in autem\n
    \n
    \n \"../../../../../assets/img/empf.png\"\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'Declaration.header' | lang }}\n
    \n
    \n
    \n \n {{ 'Declaration.headersub1' | lang }}\n \n
    \n \n {{ 'Declaration.headersub3' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodydis' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubd' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyadmin' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysube' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubf' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyother' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon2' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubg' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubh' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubi' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyimportant' | lang }}\n \n
    \n \n {{ 'Declaration.bodynotice' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodynoticesub1' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubd' | lang }}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclaration' | lang }}\n
    \n
    \n \n {{ 'iff.headerInform' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.eMPFReferenceNo' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n {{ 'iff.eMPFReferenceNoError1' | lang }}\n \n {{ 'iff.eMPFReferenceNoError2' | lang }}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'iff.pleaseSelectRelevantRegulatedActivities' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'iff.hKIDPassportNo' | lang }}:\n
    \n
    \n \n \n \n \n {{ 'iff.pleaseSelectIDType' | lang }}\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n {{ 'iff.pleaseInputHKIDPassportNo' | lang }}\n \n \n
    \n\n \n
    \n \n \n {{ 'common.invalid' | lang : { p1: 'case-details.HKIDPassportNo' | lang } }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.customerContactType1' | lang }}\n
    \n
    \n {{ 'iff.customerContactType2' | lang }}\n *:\n
    \n
    \n
    \n
    \n \n
    \n {{ 'iff.contactTypeError' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'iff.phoneNoError1' | lang }}\n \n
    \n
    \n {{ 'iff.phoneNoError2' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'iff.emailError1' | lang }}\n \n
    \n
    \n {{ 'iff.emailError2' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n RM Referral Code:\n
    \n
    \n
    \n \n
    \n Please input valid RM Referral Code\n \n \n Please input valid RM Referral Code\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Customer ID:\n
    \n
    \n
    \n \n
    \n Please input valid Customer ID\n \n
    \n
    \n
    \n
    \n
    \n
    \n Campaign Code:\n
    \n
    \n
    \n \n
    \n Please input valid Campaign Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n Source Code:\n
    \n
    \n
    \n \n
    \n Please input valid Source Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.customerContactTypeRemark' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}: \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ 'common.plsSelect' | lang : { p1: 'sendIffInBatchSummary.preferredLanguage' | lang } }} \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.secondIntermediary' | lang }}: \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'iff.invalidSecAgentCode' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclarationConfirmation' | lang }}\n
    \n
    \n
    \n \n
      \n
    • \n {{ 'iff.splitAgentNote1' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote2' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote3HeadPart' | lang }}\n {{ 'iff.splitAgentNote3RedPart' | lang }}\n {{ 'iff.splitAgentNoteTailPart' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.confirmationEMPFRefNo' | lang }}\n
    \n
    \n
    \n
    \n {{ iffForm.value.eMPFReferenceNo }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    {{ 'iff.hKIDPassportNo' | lang }}:
    \n
    \n
    \n
    \n {{ iffForm.value.hkidOrPassportNo }} \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.customerContactType' | lang }}\n
    \n
    \n
    \n
    \n {{\n iffForm.value.contactType === 'E' ? iffForm.value.email : '+(' + iffForm.value.countryCode + ') ' + iffForm.value.phoneNo\n }}\n
    \n
    \n
    \n
    \n
    \n
    {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}:
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    RM Referral Code:
    \n
    \n
    \n {{ dbs.rmReferralCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Customer ID:
    \n
    \n
    \n {{ dbs.inputCustomerId.value || '-' }}\n
    \n
    \n
    \n
    \n
    Campaign Code:
    \n
    \n
    \n {{ dbs.campaignCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Source Code:
    \n
    \n
    \n {{ dbs.sourceCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclaration' | lang }}\n
    \n
    \n
    \n
    \n {{ 'iff.addMPFIntermediary' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentCode' | lang }}\n
    \n
    \n
    \n
    \n {{ iffForm.value.splitAgentCode }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentName' | lang }}\n
    \n
    \n
    \n
    \n {{ getAgentName(secondAgentInfo) }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n {{ 'iff.splitAgentNotice' | lang }}\n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'iff.secondAgentContactDeclareHeader' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'iff.mpfIntermediaryDeclarationConfirmation' | lang }}\n
    \n
    \n\n
    \n \n
      \n
    • \n {{ 'iff.splitAgentNote1' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote2' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote3HeadPart' | lang }}\n {{ 'iff.splitAgentNote3RedPart' | lang }}\n {{ 'iff.splitAgentNoteTailPart' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.confirmationEMPFRefNo' | lang }}\n
    \n
    \n
    \n {{ iffForm.value.eMPFReferenceNo }}\n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    {{ 'iff.hKIDPassportNo' | lang }}:
    \n
    \n
    \n
    \n {{ iffForm.value.hkidOrPassportNo }} \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.customerContactType' | lang }}\n
    \n
    \n
    \n {{\n iffForm.value.contactType === 'E' ? iffForm.value.email : '+(' + iffForm.value.countryCode + ') ' + iffForm.value.phoneNo\n }}\n
    \n
    \n
    \n
    \n
    {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}:
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    RM Referral Code:
    \n
    \n
    \n {{ dbs.rmReferralCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Customer ID:
    \n
    \n
    \n {{ dbs.inputCustomerId.value || '-' }}\n
    \n
    \n
    \n
    \n
    Campaign Code:
    \n
    \n
    \n {{ dbs.campaignCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    Source Code:
    \n
    \n
    \n {{ dbs.sourceCode.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentName' | lang }}:\n
    \n
    \n
    \n {{ secondAgentInfo?.agentCode || '' }}\n
    \n {{ getAgentName(secondAgentInfo) }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff.splitAgentSelectedContactTypeLabel' | lang }}\n {{ secondAgentContactTypeSelected }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.language-of' | lang : { p1: 'sendIffInBatchSummary.2ndMPFIntermediary' | lang } }} : \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n \n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-e-mpf-ref-no-used',\n templateUrl: './e-mpf-ref-no-used.component.html',\n styleUrls: ['./e-mpf-ref-no-used.component.scss'],\n})\nexport class EMPFRefNoUsedComponent implements OnInit {\n disagreeButtonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n disabled: false,\n };\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n returnToEdit() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n
    {{ 'iff.eMPFRefNoUsedMsg' | lang }}
    \n
    \n
    \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-exit-iff-warn-popup',\n templateUrl: './exit-iff-warn-popup.component.html',\n styleUrls: ['./exit-iff-warn-popup.component.scss'],\n})\nexport class ExitIffWarnPopupComponent implements OnInit {\n disagreeButtonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'secondary',\n disabled: false,\n };\n agreeButtonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n disabled: false,\n };\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n disagree() {\n this.dialogRef.close({ agree: false });\n }\n agree() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n {{ 'iff.exitWarnMessage' | lang }}\n
    \n\n
    \n \n \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { EmotionIcons } from '@cds/ng-themes';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-iff-submission-succ-popup',\n templateUrl: './iff-submission-succ-popup.component.html',\n styleUrls: ['./iff-submission-succ-popup.component.scss'],\n})\nexport class IffSubmissionSuccPopupComponent implements OnInit {\n buttonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n disabled: false,\n };\n\n happyFaceIconConfig: CdsIconConfig = {\n size: 'md',\n };\n happyFace = EmotionIcons.happy;\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n message: string;\n }\n ) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n \n
    \n
    \n
    \n {{ data.message }}\n
    \n
    \n\n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { AgentProductSummary } from '../../product-type-summary/product-type-summary.model';\n\n@Component({\n selector: 'app-display-details-by-product-type',\n templateUrl: './display-details-by-product-type.component.html',\n styleUrls: ['./display-details-by-product-type.component.scss'],\n})\nexport class DisplayDetailsByProductTypeComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n count: {\n pa: AgentProductSummary;\n tvc: AgentProductSummary;\n frc: AgentProductSummary;\n er: AgentProductSummary;\n sep: AgentProductSummary;\n };\n productType: string;\n }\n ) {}\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n detailsByProductType: {\n pendingsend?: number;\n pendingcustomer?: number;\n pendingAgent?: number;\n } = { pendingsend: 0, pendingcustomer: 0, pendingAgent: 0 };\n ngOnInit(): void {\n const productType = this.data.productType;\n if (productType === 'PA') {\n this.detailsByProductType = this.data.count.pa;\n } else if (productType === 'TVC') {\n this.detailsByProductType = this.data.count.tvc;\n } else if (productType === 'FRC') {\n this.detailsByProductType = this.data.count.frc;\n } else if (productType === 'ER') {\n this.detailsByProductType = this.data.count.er;\n } else if (productType === 'SEP') {\n this.detailsByProductType = this.data.count.sep;\n }\n }\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n

    Individuals IFF Pending Status

    \n\n
    \n {{ data.productType }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending to send :\n
    \n
    \n {{ detailsByProductType.pendingsend }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ detailsByProductType.pendingcustomer }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending 2nd agent :\n
    \n
    \n {{ detailsByProductType.pendingAgent }}\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\n\n@Component({\n selector: 'app-ggi-declaration-popup',\n templateUrl: './ggi-declaration-popup.component.html',\n styleUrls: ['./ggi-declaration-popup.component.scss'],\n})\nexport class GgiDeclarationPopupComponent implements OnInit {\n isEr = true;\n isScrollBottom = false;\n commonButton: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n };\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n closeCurrentPopup() {\n this.dialogRef.close({ agree: false });\n }\n\n continue() {\n if (this.isScrollBottom) {\n this.dialogRef.close({ agree: true });\n }\n }\n\n haveReachedTheBottom() {\n this.isScrollBottom = true;\n }\n}\n","
    \n
    \n \n
    \n\n
    \n
    \n \n {{ 'Declaration.header' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.headersub1' | lang }}\n \n
    \n \n {{ 'Declaration.headersub3' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodydis' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubd' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyadmin' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysube' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubf' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyother' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon2' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubg' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubh' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubi' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyimportant' | lang }}\n \n
    \n \n {{ 'Declaration.bodynotice' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodynoticesub1' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubd' | lang }}\n \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n {{ 'Declaration.header' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.headersub1' | lang }}\n \n
    \n \n {{ 'Declaration.headersub3' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodydis' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubd' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyadmin' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n \n {{ 'Declaration.bodysube' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubf' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyother' | lang }}\n \n
    \n \n {{ 'Declaration.bodycommon2' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubg' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubh' | lang }}\n \n
    \n \n {{ 'Declaration.bodysubi' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodyimportant' | lang }}\n \n
    \n \n {{ 'Declaration.bodynotice' | lang }}\n \n
    \n
    \n \n {{ 'Declaration.bodynoticesub1' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesuba' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubb' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubc' | lang }}\n \n
    \n \n {{ 'Declaration.bodynoticesubd' | lang }}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-status-light',\n templateUrl: './status-light.component.html',\n styleUrls: ['./status-light.component.scss'],\n})\nexport class StatusLightComponent implements OnInit, AfterViewInit {\n @Input() text?: string;\n @Input() color?: string;\n @Input() tipText?: string;\n\n stepperTarget: 'pc' | 'ipad' = 'pc';\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n if (window.matchMedia('only screen and (max-width: 1500px)').matches) {\n this.stepperTarget = 'ipad';\n } else {\n this.stepperTarget = 'pc';\n }\n }\n\n onMouseenter(event: MouseEvent) {\n if (event.target && this.stepperTarget === 'pc') {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n onMouseleave(event: MouseEvent) {\n if (event.target && this.stepperTarget === 'pc') {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n}\n","
    \n
    \n
    \n {{ text }}\n
    \n
    \n {{ text }}\n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-different-agent-status',\n templateUrl: './different-agent-status.component.html',\n styleUrls: ['./different-agent-status.component.scss'],\n})\nexport class DifferentAgentStatusComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n outsideEvent() {\n this.dialogRef.close();\n }\n}\n","
    \n
    \n
    \n Different Agent Status\n
    \n
    \n
    \n
    \n {{ 'different-agent-status.pending' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'different-agent-status.submitted' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'different-agent-status.expired' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'different-agent-status.notRequired' | lang }}\n
    \n
    \n
    \n N/A\n
    \n
    \n\n
    \n \n
    \n
    \n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { agentCodeRemovePrefix0 } from 'src/app/utils/utils';\nimport { AgentDetailInfo } from '../../service/model/agent-info-response.model';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { NotifyService } from 'src/app/core/services/notify.service';\n\n@Component({\n selector: 'app-add-new-commission-popup',\n templateUrl: './add-new-commission-popup.component.html',\n styleUrls: ['./add-new-commission-popup.component.scss'],\n})\nexport class AddNewCommissionPopupComponent implements OnInit {\n agentCode = '';\n errorMsg = '';\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdHttpServeService: CdHttpServeService,\n private notifyService: NotifyService,\n private alert: CdsAlertService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n agentCodeList: string[];\n }\n ) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n\n add() {\n this.errorMsg = '';\n\n this.agentCode = this.agentCode.trim();\n\n if (this.agentCode === '') {\n this.errorMsg = 'Please input agent code';\n return;\n }\n\n if (this.data.agentCodeList.includes(this.agentCode.trim())) {\n this.errorMsg = 'Duplicate agent code used';\n return;\n }\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(this.agentCode.trim()),\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.cdHttpServeService\n .get('/ext/eb-ssms/agent-service/agent/information', { agentInfo: agentCodeRemovePrefix0(this.agentCode.trim()) })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.dialogRef.close({\n agree: true,\n agent: {\n agentId: res.data.agentId,\n agentCode: res.data.agentCode,\n name: res.data.agentName,\n chineseName: res.data.agentNameTC,\n },\n });\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n } else if (res.result === 2100) {\n switch (res.data.errorCode) {\n case 2101:\n this.errorMsg = 'Invalid agent code';\n break;\n case 21031:\n this.errorMsg = 'Inactive MPF license';\n break;\n case 2102:\n this.errorMsg = 'Inactive agent status';\n break;\n default:\n this.errorMsg = 'Invalid agent code';\n break;\n }\n this.notifyService.screenLoadingSubject.next(false);\n } else {\n this.notifyService.screenLoadingSubject.next(false);\n }\n },\n error: () => {\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n valueChange(val: string) {\n if (val === '') {\n this.errorMsg = '';\n }\n }\n}\n","
    \n
    \n New Commission Agent\n
    \n
    \n Add new commission agent by typing agent code.\n
    \n
    \n \n
    \n \n {{ errorMsg }}\n \n
    \n \n
    \n
    \n Cancel\n Add\n
    \n \n
    \n","import { Location } from '@angular/common';\nimport { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { WillBeLostComponent } from 'src/app/shared/will-be-lost/will-be-lost.component';\nimport { keepDecimalDigitFull, pageToTop } from 'src/app/utils/utils';\nimport { EECaseDetailsResponse } from '../empf-case-details/empf-case-details.model';\nimport { ERCaseDetailsResponse } from '../er-empf-case-details/er-empf-case-details.model';\nimport { SalesjourneyService } from '../salesjourney.service';\nimport { AddNewCommissionPopupComponent } from './add-new-commission-popup/add-new-commission-popup.component';\nimport { LeastOneWarningComponent } from './least-one-warning/least-one-warning.component';\nimport { UpdatedSuccessfullyComponent } from 'src/app/shared/updated-successfully/updated-successfully.component';\n\ntype RolePriority = 'SuperAdmin' | 'SalesSupport' | 'SalesJourneyAgent';\n\n@Component({\n selector: 'app-edit-agent-details',\n templateUrl: './edit-agent-details.component.html',\n styleUrls: ['./edit-agent-details.component.scss'],\n})\nexport class EditAgentDetailsComponent implements OnInit, AfterViewInit, OnDestroy {\n isConfirming = false;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n targetType?: 'EE' | 'ER';\n form = new FormGroup({\n agentList: new FormArray([]),\n });\n servicingAgentRadioConfig: CdsRadioConfig = {\n options: [{ label: '', value: true }],\n };\n isErrPercentage100 = false;\n isErrEquallySplit = false;\n isErrSmallerOne = false;\n\n private errPercentage100Values: string[] = [];\n get errPercentage100() {\n return `The ${this.errPercentage100Values.join(', ')} percentage must add up to 100% in total.`;\n }\n private errPercentage100SubValues: string[] = [];\n get errPercentage100Sub() {\n return `Please check the distribution of ${this.errPercentage100SubValues.join(', ')}`;\n }\n\n private errEquallySplitValues: string[] = [];\n get errEquallySplit() {\n return `The ${this.errEquallySplitValues.join(', ')} percentage of the servicing agent and split agent must be equally split.`;\n }\n private errEquallySplitSubValues: string[] = [];\n get errEquallySplitSub() {\n return `Please check the distribution of ${this.errEquallySplitSubValues.join(', ')}`;\n }\n\n mdNo?: string;\n caseDetails?: EECaseDetailsResponse;\n erCaseDetails?: ERCaseDetailsResponse;\n\n hasSalesSupportRole = false;\n hasSalesJourneyAgentRole = false;\n hasSalesJourneySuperAdmin = false;\n rolePriority?: RolePriority;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public empfAppStatusService: EmpfAppStatusService,\n private cdsPopup: CdsPopupService,\n private fb: FormBuilder,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n public cdsLangService: CdsLangService,\n private location: Location,\n private notifyService: NotifyService,\n private languageChangeService: LanguageChangeService,\n private salesjourneyService: SalesjourneyService,\n private permissionService: PermissionService\n ) {}\n\n get agentList() {\n return this.form.controls['agentList'] as FormArray;\n }\n\n private resizeListener = () => {\n const isMobile = window.matchMedia('only screen and (max-width: 1023px)').matches || window.screen.width < 1023;\n if (isMobile) {\n this.notifyService.notifyHideNavigationLang();\n }\n };\n\n ngAfterViewInit(): void {\n pageToTop();\n this.notifyService.notifyHideNavigationLang();\n window.addEventListener('resize', this.resizeListener);\n this.languageChangeService.setLang('en');\n }\n\n ngOnDestroy(): void {\n this.notifyService.notifyDisplayNavigationLang();\n window.removeEventListener('resize', this.resizeListener);\n }\n\n private async initRole() {\n this.hasSalesJourneySuperAdmin = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_ADMIN);\n this.hasSalesSupportRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SALES_SUPPORT);\n this.hasSalesJourneyAgentRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_AGENT);\n if (this.hasSalesJourneySuperAdmin) {\n this.rolePriority = 'SuperAdmin';\n } else if (this.hasSalesSupportRole) {\n this.rolePriority = 'SalesSupport';\n } else if (this.hasSalesJourneyAgentRole) {\n this.rolePriority = 'SalesJourneyAgent';\n }\n }\n\n ngOnInit(): void {\n if (this.disableEditAgentByChannel()) {\n this.router.navigate(['/permission-error']);\n return;\n }\n\n this.mdNo = this.route.snapshot.paramMap.get('mdNo') || undefined;\n this.targetType = (this.route.snapshot.paramMap.get('type') as 'EE' | 'ER') || undefined;\n\n if (this.mdNo) {\n this.notifyService.screenLoadingSubject.next(true);\n if (this.targetType === 'EE') {\n this.initRole().then(() => {\n let urlRolePart = '';\n switch (this.rolePriority) {\n case 'SalesJourneyAgent':\n urlRolePart = 'agent';\n break;\n case 'SalesSupport':\n urlRolePart = 'support';\n break;\n case 'SuperAdmin':\n urlRolePart = 'admin';\n break;\n default:\n break;\n }\n this.cdHttpServeService\n .get(`/ext/eb-ssms-sales-journey-service/sj/caseDetailByMd/${urlRolePart}`, { mdNo: this.mdNo })\n .subscribe({\n next: this.postMemberCaseDetailsCallBack,\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n });\n } else if (this.targetType === 'ER') {\n this.initRole().then(() => {\n let urlRolePart = '';\n switch (this.rolePriority) {\n case 'SalesJourneyAgent':\n urlRolePart = 'agent';\n break;\n case 'SalesSupport':\n urlRolePart = 'support';\n break;\n case 'SuperAdmin':\n urlRolePart = 'admin';\n break;\n default:\n break;\n }\n this.cdHttpServeService\n .get(`/ext/eb-ssms-sales-journey-service/sj/caseDetailByMd/${urlRolePart}`, { mdNo: this.mdNo })\n .subscribe({\n next: this.postEmployerCaseDetailsCallBack,\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n });\n }\n }\n }\n\n postEmployerCaseDetailsCallBack = (res: { result: number; message: string; data: ERCaseDetailsResponse }) => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.form = new FormGroup({\n agentList: new FormArray([]),\n });\n this.erCaseDetails = res.data;\n\n this.erAgentsInfos.forEach((agent, index: number) => {\n this.agentList.push(\n this.fb.group({\n agentCode: this.fb.control(agent.agentCode),\n agentName: this.fb.control(agent.agentName),\n agentNameTC: this.fb.control(agent.agentNameTC),\n servicingAgent: this.fb.control(index === 0),\n shareHKPC: this.fb.control(agent.shareHKPC ? keepDecimalDigitFull(agent.shareHKPC * 100, 3) + '' : ''),\n shareCommission: this.fb.control(agent.shareCommission ? keepDecimalDigitFull(agent.shareCommission * 100, 3) + '' : ''),\n })\n );\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n };\n\n get eeAgentsInfos() {\n const agentsInfos = [];\n if (this.caseDetails?.servicingAgent) {\n agentsInfos.push(this.caseDetails.servicingAgent);\n }\n if (this.caseDetails?.splitAgents) {\n agentsInfos.push(...this.caseDetails.splitAgents);\n }\n return agentsInfos;\n }\n\n get erAgentsInfos() {\n const agentsInfos = [];\n if (this.erCaseDetails?.servicingAgent) {\n agentsInfos.push(this.erCaseDetails.servicingAgent);\n }\n if (this.erCaseDetails?.servicingAgent) {\n agentsInfos.push(...this.erCaseDetails.splitAgents);\n }\n return agentsInfos;\n }\n\n postMemberCaseDetailsCallBack = (res: { result: number; message: string; data: EECaseDetailsResponse }) => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.form = new FormGroup({\n agentList: new FormArray([]),\n });\n this.caseDetails = res.data;\n\n this.eeAgentsInfos.forEach((agent, index: number) => {\n this.agentList.push(\n this.fb.group({\n agentCode: this.fb.control(agent.agentCode),\n agentName: this.fb.control(agent.agentName),\n agentNameTC: this.fb.control(agent.agentNameTC),\n servicingAgent: this.fb.control(index === 0),\n shareHKPC: this.fb.control(agent.shareHKPC ? keepDecimalDigitFull(agent.shareHKPC * 100, 3) + '' : ''),\n shareCommission: this.fb.control(agent.shareCommission ? keepDecimalDigitFull(agent.shareCommission * 100, 3) + '' : ''),\n })\n );\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n };\n\n onBack() {\n if (this.isConfirming) {\n return;\n }\n this.location.back();\n }\n\n servicingAgentChange(index: number, current: AbstractControl) {\n if (this.asFormGroup(current).controls['servicingAgent'].value === false) {\n return;\n }\n\n let i = 0;\n for (const agent of this.agentList.controls) {\n if (i !== index) {\n this.asFormGroup(agent).controls['servicingAgent'].setValue(false);\n }\n i++;\n }\n }\n\n reset() {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'md',\n });\n\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.form = new FormGroup({\n agentList: new FormArray([]),\n });\n if (this.targetType === 'EE') {\n this.eeAgentsInfos.forEach((agent, index: number) => {\n this.agentList.push(\n this.fb.group({\n agentCode: this.fb.control(agent.agentCode),\n agentName: this.fb.control(agent.agentName),\n agentNameTC: this.fb.control(agent.agentNameTC),\n servicingAgent: this.fb.control(index === 0),\n shareHKPC: this.fb.control(agent.shareHKPC ? keepDecimalDigitFull(agent.shareHKPC * 100, 3) + '' : ''),\n shareCommission: this.fb.control(agent.shareCommission ? keepDecimalDigitFull(agent.shareCommission * 100, 3) + '' : ''),\n })\n );\n });\n } else if (this.targetType === 'ER') {\n this.erAgentsInfos.forEach((agent, index: number) => {\n this.agentList.push(\n this.fb.group({\n agentCode: this.fb.control(agent.agentCode),\n agentName: this.fb.control(agent.agentName),\n agentNameTC: this.fb.control(agent.agentNameTC),\n servicingAgent: this.fb.control(index === 0),\n shareHKPC: this.fb.control(agent.shareHKPC ? keepDecimalDigitFull(agent.shareHKPC * 100, 3) + '' : ''),\n shareCommission: this.fb.control(agent.shareCommission ? keepDecimalDigitFull(agent.shareCommission * 100, 3) + '' : ''),\n })\n );\n });\n }\n this.isErrEquallySplit = false;\n this.isErrPercentage100 = false;\n }\n });\n }\n\n backToEdit() {\n this.isConfirming = false;\n }\n\n confirm() {\n const agentInfos = [];\n for (const agent of this.agentList.controls) {\n agentInfos.push({\n agentCode: this.asFormGroup(agent).controls['agentCode'].value,\n isServiceAgent: this.asFormGroup(agent).controls['servicingAgent'].value,\n commissionPt: +this.asFormGroup(agent).controls['shareCommission'].value / 100,\n hkPcPercentagePt: +this.asFormGroup(agent).controls['shareHKPC'].value / 100,\n });\n }\n\n if (this.mdNo) {\n const params = {\n mdNo: this.mdNo,\n exist: agentInfos,\n };\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/md/update/agent', params).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const ref = this.cdsPopup.open(UpdatedSuccessfullyComponent, {\n size: 'md',\n });\n ref.afterClosed().subscribe(() => {\n this.location.back();\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n\n clearErrPercentage100() {\n this.isErrPercentage100 = false;\n\n if (!this.isErrEquallySplit && !this.isErrSmallerOne) {\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareHKPC'].setErrors(null);\n this.asFormGroup(agent).controls['shareCommission'].setErrors(null);\n }\n }\n }\n\n clearErrEquallySplit() {\n this.isErrEquallySplit = false;\n\n if (!this.isErrPercentage100 && !this.isErrSmallerOne) {\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareHKPC'].setErrors(null);\n this.asFormGroup(agent).controls['shareCommission'].setErrors(null);\n }\n }\n }\n\n clearErrSmallerOne() {\n this.isErrSmallerOne = false;\n\n if (!this.isErrPercentage100 && !this.isErrEquallySplit) {\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareHKPC'].setErrors(null);\n this.asFormGroup(agent).controls['shareCommission'].setErrors(null);\n }\n }\n }\n\n save() {\n if (this.isDisableSave) {\n return;\n }\n\n this.errPercentage100Values = [];\n this.errPercentage100SubValues = [];\n this.errEquallySplitValues = [];\n this.errEquallySplitSubValues = [];\n let sumShareHKPC = 0;\n let sumShareCommission = 0;\n this.isErrEquallySplit = false;\n this.isErrPercentage100 = false;\n this.isErrSmallerOne = false;\n for (const agent of this.agentList.controls) {\n if (this.asFormGroup(agent).controls['shareHKPC'].value === '') {\n this.asFormGroup(agent).controls['shareHKPC'].setValue('0.000');\n }\n if (this.asFormGroup(agent).controls['shareCommission'].value === '') {\n this.asFormGroup(agent).controls['shareCommission'].setValue('0.000');\n }\n const shareHKPCVal = +this.asFormGroup(agent).controls['shareHKPC'].value;\n sumShareHKPC += shareHKPCVal;\n const shareCommissionVal = +this.asFormGroup(agent).controls['shareCommission'].value;\n sumShareCommission += shareCommissionVal;\n\n if (shareHKPCVal < 1) {\n this.isErrSmallerOne = true;\n this.asFormGroup(agent).controls['shareHKPC'].markAsDirty();\n this.asFormGroup(agent).controls['shareHKPC'].setErrors({ format: true });\n }\n if (shareCommissionVal < 1) {\n this.isErrSmallerOne = true;\n this.asFormGroup(agent).controls['shareCommission'].markAsDirty();\n this.asFormGroup(agent).controls['shareCommission'].setErrors({ format: true });\n }\n }\n if (sumShareHKPC !== 100) {\n this.isErrPercentage100 = true;\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareHKPC'].markAsDirty();\n this.asFormGroup(agent).controls['shareHKPC'].setErrors({ format: true });\n }\n this.errPercentage100Values.push('Share PC');\n this.errPercentage100SubValues.push('hkpc%');\n }\n if (sumShareCommission !== 100) {\n this.isErrPercentage100 = true;\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareCommission'].markAsDirty();\n this.asFormGroup(agent).controls['shareCommission'].setErrors({ format: true });\n }\n this.errPercentage100Values.push('Share commission');\n this.errPercentage100SubValues.push('commission%');\n }\n if (this.agentList.controls.length >= 2) {\n if (this.targetType === 'EE') {\n if (\n sumShareHKPC === 100 &&\n ((this.agentList.controls[0] as FormGroup).controls['shareHKPC'].value !== '50.000' ||\n (this.agentList.controls[1] as FormGroup).controls['shareHKPC'].value !== '50.000')\n ) {\n this.isErrEquallySplit = true;\n this.errEquallySplitValues.push('Share PC');\n this.errEquallySplitSubValues.push('hkpc%');\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareHKPC'].markAsDirty();\n this.asFormGroup(agent).controls['shareHKPC'].setErrors({ format: true });\n }\n }\n if (\n sumShareCommission === 100 &&\n ((this.agentList.controls[0] as FormGroup).controls['shareCommission'].value !== '50.000' ||\n (this.agentList.controls[1] as FormGroup).controls['shareCommission'].value !== '50.000')\n ) {\n this.isErrEquallySplit = true;\n this.errEquallySplitValues.push('Share commission');\n this.errEquallySplitSubValues.push('commission%');\n for (const agent of this.agentList.controls) {\n this.asFormGroup(agent).controls['shareCommission'].markAsDirty();\n this.asFormGroup(agent).controls['shareCommission'].setErrors({ format: true });\n }\n }\n }\n }\n\n if (this.isErrEquallySplit) {\n return;\n }\n if (this.isErrPercentage100) {\n return;\n }\n if (this.isErrSmallerOne) {\n return;\n }\n\n this.isConfirming = true;\n pageToTop();\n }\n\n delete(index: number) {\n if (this.agentList.length <= 1) {\n this.cdsPopup.open(LeastOneWarningComponent, {\n size: 'md',\n });\n return;\n }\n\n const isDeleted = this.asFormGroup(this.agentList.controls[index]).controls['servicingAgent'].value === true;\n this.agentList.removeAt(index);\n if (isDeleted) {\n setTimeout(() => {\n this.asFormGroup(this.agentList.at(0)).controls['servicingAgent'].setValue(true);\n }, 0);\n }\n }\n\n get isDisableAddNewSplitAgent() {\n if (this.isConfirming) {\n return true;\n }\n if (this.targetType === 'EE') {\n return this.agentList.length >= 2;\n } else {\n return this.agentList.length >= 10;\n }\n }\n\n addNewSplitAgent() {\n if (this.isDisableAddNewSplitAgent) {\n return;\n }\n\n const agentCodeList = [];\n for (const agent of this.agentList.controls) {\n agentCodeList.push(this.asFormGroup(agent).controls['agentCode'].value);\n }\n\n const popupRef: MatDialogRef = this.cdsPopup.open(AddNewCommissionPopupComponent, {\n size: 'md',\n data: {\n agentCodeList: agentCodeList,\n },\n });\n\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.agentList.push(\n this.fb.group({\n agentCode: this.fb.control(confirm.agent.agentCode),\n agentName: this.fb.control(confirm.agent.name),\n agentNameTC: this.fb.control(confirm.agent.chineseName),\n servicingAgent: this.fb.control(false),\n shareHKPC: this.fb.control(''),\n shareCommission: this.fb.control(''),\n })\n );\n }\n });\n }\n\n asFormGroup(agent: AbstractControl) {\n return agent as FormGroup;\n }\n\n getAgentNameFormControl(agent: AbstractControl) {\n const agentName = this.asFormGroup(agent).controls['agentName'].value;\n const agentNameTC = this.asFormGroup(agent).controls['agentNameTC'].value;\n\n if (this.cdsLangService.currentLang === 'en') {\n return agentName || agentNameTC;\n } else {\n return agentNameTC || agentName;\n }\n }\n\n shareHKPCBlur(agent: AbstractControl) {\n if (this.asFormGroup(agent).controls['shareHKPC'].value !== '') {\n let shareHKPC = String(Math.round(+this.asFormGroup(agent).controls['shareHKPC'].value * 1000) / 1000);\n\n if (shareHKPC.includes('.')) {\n if (shareHKPC.length - 1 - shareHKPC.indexOf('.') < 3) {\n const needN = 3 - (shareHKPC.length - 1 - shareHKPC.indexOf('.'));\n for (let i = 0; i < needN; i++) {\n shareHKPC += '0';\n }\n }\n } else {\n shareHKPC += '.000';\n }\n\n this.asFormGroup(agent).controls['shareHKPC'].setValue(shareHKPC);\n if (this.asFormGroup(agent).controls['shareCommission'].value === '') {\n this.asFormGroup(agent).controls['shareCommission'].setValue(shareHKPC);\n }\n }\n }\n\n shareCommissionBlur(agent: AbstractControl) {\n if (this.asFormGroup(agent).controls['shareCommission'].value !== '') {\n let shareCommission = String(Math.round(+this.asFormGroup(agent).controls['shareCommission'].value * 1000) / 1000);\n\n if (shareCommission.includes('.')) {\n if (shareCommission.length - 1 - shareCommission.indexOf('.') < 3) {\n const needN = 3 - (shareCommission.length - 1 - shareCommission.indexOf('.'));\n for (let i = 0; i < needN; i++) {\n shareCommission += '0';\n }\n }\n } else {\n shareCommission += '.000';\n }\n\n this.asFormGroup(agent).controls['shareCommission'].setValue(shareCommission);\n if (this.asFormGroup(agent).controls['shareHKPC'].value === '') {\n this.asFormGroup(agent).controls['shareHKPC'].setValue(shareCommission);\n }\n }\n }\n\n get isDisableSave() {\n return !this.form.valid;\n }\n\n isShowItemWarning(agent: AbstractControl) {\n return (\n this.targetType === 'ER' &&\n this.isConfirming &&\n this.asFormGroup(agent).controls['shareHKPC'].value !== this.asFormGroup(agent).controls['shareCommission'].value\n );\n }\n\n disableEditAgentByChannel() {\n return this.salesjourneyService.isScbBrokerCorporateChannel();\n }\n}\n","
    \n
    \n
    \n \n
    \n eMPF Case Details\n
    \n
    \n Edit Agent Details\n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n MD Reference Number\n
    \n
    \n
    \n {{ caseDetails?.mdCaseDetail?.mdNo }}\n
    \n
    \n {{ erCaseDetails?.mdCaseDetail?.mdNo }}\n
    \n
    \n
    \n
    \n MD status:\n
    \n \n \n
    \n\n \n\n \n
    \n
    \n
    \n
    \n MD submission date & time (DD/MM/YYYY)\n
    \n
    \n {{ caseDetails.mdCaseDetail.latestSubmissionDt }} (HKT)\n
    \n
    \n {{ erCaseDetails.mdCaseDetail.latestSubmissionDt }} (HKT)\n
    \n
    \n
    \n\n
    \n
    \n Agent Details\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Agent\n
    \n
    \n
    \n
    \n Servicing Agent\n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n
    \n
    \n Action\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ asFormGroup(agent).get('agentCode')?.value }}\n
    \n
    \n {{ getAgentNameFormControl(agent) }}\n
    \n
    \n \n
    \n Servicing Agent\n
    \n
    \n \n
    \n
    \n \n
    \n Share HKPC\n
    \n
    \n \n {{ asFormGroup(agent).controls['shareHKPC'].value }}\n
    \n %\n
    \n
    \n
    \n \n
    \n Share Commission\n
    \n
    \n \n {{ asFormGroup(agent).controls['shareCommission'].value }}\n
    \n %\n
    \n
    \n
    \n
    \n
    \n Delete \n
    \n
    \n
    \n
    \n Please note that the Share HKPC percentage is not the same as the Share Commission percentage.\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n Add new split agent\n
    \n
    \n \n\n
    \n Reset\n Save\n
    \n\n
    \n Back to edit\n Confirm\n
    \n \n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-least-one-warning',\n templateUrl: './least-one-warning.component.html',\n styleUrls: ['./least-one-warning.component.scss'],\n})\nexport class LeastOneWarningComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
    \n
    \n It’s \n not allowed to delete \n the record as at least one servicing agent should be existed.\n
    \n\n
    \n Got it!\n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\n\n@Component({\n selector: 'app-empf-app-status-popup',\n templateUrl: './empf-app-status-popup.component.html',\n styleUrls: ['./empf-app-status-popup.component.scss'],\n})\nexport class EmpfAppStatusPopupComponent implements OnInit {\n EMPF_APP_STATUS = EMPF_APP_STATUS;\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n cancel() {\n this.dialogRef.close();\n }\n}\n","
    \n
    \n
    \n eMPF Status\n
    \n
    \n
    \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n
    \n
    \n {{ item.text }}\n
    \n
    \n {{ item.info }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Got it\n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { EMPF_App_Status_Value } from 'src/app/config/empf-app-status.config';\nimport { MdStatusValue } from 'src/app/config/iff-status.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { TransferStatusService } from 'src/app/core/services/transfer-status/transfer-status.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault, pageToTop } from 'src/app/utils/utils';\nimport { AddMdReferenceNumberPopupComponent } from '../add-md-reference-number-popup/add-md-reference-number-popup.component';\nimport { AddMpfReferenceNumberPopupComponent } from '../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { RefNoType } from '../md-iff-summary/md-iff-summary.model';\nimport { ResendEiffComponent } from '../resend-eiff/resend-eiff.component';\nimport { ResendEiffResendType } from '../resend-eiff/resend-eiff.model';\nimport { EECaseDetailsResponse } from './empf-case-details.model';\nimport { TRANSFER_DETAILS_DECLINED_REASON_OPTIONS } from 'src/app/core/models/salesjourney/salesjourney.model';\nimport { DeclineReason } from 'src/app/config/decline-reason.config';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { AdviseTransferStatusComponent } from '../case-summary/advise-transfer-status/advise-transfer-status.component';\nimport { TransferStatusValue } from 'src/app/config/transfer-status.config';\n\ntype RolePriority = 'SuperAdmin' | 'SalesSupport' | 'SalesJourneyAgent';\n\n@Component({\n selector: 'app-empf-case-details',\n templateUrl: './empf-case-details.component.html',\n styleUrls: ['./empf-case-details.component.scss'],\n})\nexport class EmpfCaseDetailsComponent implements OnInit {\n IffStatusValue = MdStatusValue;\n SalesJourneyProdType = SalesJourneyProdType;\n TransferStatusValue = TransferStatusValue;\n backErIcon = ActionIcons.button_left_filled;\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n hasSalesSupportRole = false;\n hasSalesJourneyAgentRole = false;\n hasSalesJourneySuperAdmin = false;\n rolePriority?: RolePriority;\n caseDetailsResponse?: EECaseDetailsResponse;\n no?: string;\n mdNo?: string;\n refNoType?: RefNoType;\n tabIndex!: number;\n prodType?: SalesJourneyProdType;\n\n get isDisplayUpdateMPFReferenceNo() {\n if (this.caseDetailsResponse) {\n return (\n this.caseDetailsResponse.empfCaseDetail &&\n this.caseDetailsResponse.empfCaseDetail.empfNo &&\n this.caseDetailsResponse.mdCaseDetail &&\n this.caseDetailsResponse.mdCaseDetail.mdNo &&\n [EMPF_App_Status_Value.Pending_eMPF_Return_Data, EMPF_App_Status_Value.Not_Applicable].includes(this.caseDetailsResponse.empfCaseDetail.empfStatus)\n );\n }\n return false;\n }\n\n get PendingSplitAgentSubmission() {\n if (!this.caseDetailsResponse) {\n return '';\n }\n\n return this.caseDetailsResponse.splitAgents\n .filter(item => item.agentIffStatus === 'PENDING')\n .map(item => item.agentCode + ' ' + this.getSplitAgentName(item))\n .join(', ');\n }\n\n get isShowMdIffStatusMouseover() {\n return (\n this.caseDetailsResponse?.mdCaseDetail?.mdStatus === MdStatusValue.Pending_Split_Agent ||\n (this.caseDetailsResponse?.mdCaseDetail?.mdStatus === MdStatusValue.Expired &&\n this.caseDetailsResponse?.mdCaseDetail?.iffDeclineExpireReasons.some(item => item.code === 92))\n );\n }\n\n getSplitAgentName(item: { agentName: string; agentNameTC: string }) {\n if (this.cdsLangService.currentLang === 'en') {\n return item.agentName || item.agentNameTC;\n } else {\n return item.agentNameTC || item.agentName;\n }\n }\n\n constructor(\n private router: Router,\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private permissionService: PermissionService,\n private cdHttpServeService: CdHttpServeService,\n public transferStatusService: TransferStatusService,\n private alert: CdsAlertService,\n private notifyService: NotifyService,\n private route: ActivatedRoute,\n public cdsLangService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n this.no = this.route.snapshot.paramMap.get('no') || undefined;\n this.refNoType = (this.route.snapshot.paramMap.get('refNoType') as RefNoType) || undefined;\n this.tabIndex = Number(this.route.snapshot.paramMap.get('tabIndex'));\n this.prodType = (this.route.snapshot.paramMap.get('prodType') as SalesJourneyProdType) || undefined;\n this.mdNo = this.route.snapshot.paramMap.get('mdNo') || undefined;\n this.initRole().then(() => {\n this.getCaseDetail().then(() => {\n this.initRejectReasons();\n });\n });\n }\n\n getCaseDetail() {\n return new Promise((resolve, reject) => {\n let urlParamPart: {\n empfNo?: string;\n mdNo?: string;\n } | null = null;\n switch (this.refNoType) {\n case RefNoType.MD:\n urlParamPart = { mdNo: this.no };\n break;\n case RefNoType.EMPF:\n urlParamPart = { empfNo: this.no };\n if (this.mdNo) {\n urlParamPart.mdNo = this.mdNo;\n }\n break;\n\n default:\n break;\n }\n\n if (!urlParamPart) {\n return;\n }\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.get(`/ext/eb-ssms-sales-journey-service/salesJourney/caseDetails`, urlParamPart).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n reject();\n } else {\n this.caseDetailsResponse = res.data;\n resolve();\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n reject();\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n });\n }\n\n initRejectReasons() {\n this.caseDetailsResponse?.transfers?.forEach(t => {\n t.rejectReasonCombination = t.rejectReasons.map(item => {\n const option = TRANSFER_DETAILS_DECLINED_REASON_OPTIONS.find(o => o.value === item + '');\n if (option) {\n return {\n title: option.value + ' - ' + option.label,\n content:\n 'Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut accusamus ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis.',\n isExpand: false,\n };\n } else {\n return {\n title: 'N/A',\n content:\n 'Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut accusamus ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis.',\n isExpand: false,\n };\n }\n });\n });\n }\n\n private async initRole() {\n this.hasSalesJourneySuperAdmin = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_ADMIN);\n this.hasSalesSupportRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SALES_SUPPORT);\n this.hasSalesJourneyAgentRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_AGENT);\n if (this.hasSalesJourneySuperAdmin) {\n this.rolePriority = 'SuperAdmin';\n } else if (this.hasSalesSupportRole) {\n this.rolePriority = 'SalesSupport';\n } else if (this.hasSalesJourneyAgentRole) {\n this.rolePriority = 'SalesJourneyAgent';\n }\n }\n\n isOfDeclined(code: number) {\n return [\n DeclineReason.CaseCannotMatchWithEMPFData,\n DeclineReason.ClientHKIDPassportNoMismatchedWithEMPFData,\n DeclineReason.EmployerNameMismatchedWithEMPFData,\n DeclineReason.BRNoMismatchedWithEMPFData,\n DeclineReason.AuthorizedPersonNameMismatchedWithEMPFData,\n DeclineReason.AgentInformationMismatchedWithEMPFData,\n DeclineReason.DeclinedDueToRejectApplicationInEMPFPortal,\n ].includes(code);\n }\n\n isOfExpired(code: number) {\n return [DeclineReason.PendingToSend, DeclineReason.PendingSplitAgents, DeclineReason.PendingCustomerSubmission].includes(code);\n }\n\n get typeOneIffDeclineExpireReasons() {\n return this.caseDetailsResponse?.mdCaseDetail?.iffDeclineExpireReasons.filter(item => item.errorType === 1);\n }\n\n get noTypeOneIffDeclineExpireReasons() {\n return this.caseDetailsResponse?.mdCaseDetail?.iffDeclineExpireReasons.filter(item => item.errorType !== 1);\n }\n\n onBack() {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n }\n\n toTop() {\n pageToTop();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n onOpenAddEmpfRefNoPopup(mdNo: string) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: mdNo,\n prodType: 'EE',\n },\n });\n }\n\n onOpenAddMDRefNoPopup(empfNo: string) {\n this.cdsPopup.open(AddMdReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n empfNo: empfNo,\n prodType: 'EE',\n },\n });\n }\n\n openResendEIFF() {\n const ref = this.cdsPopup.open(ResendEiffComponent, {\n size: 'md',\n data: {\n mdNo: this.caseDetailsResponse?.mdCaseDetail?.mdNo,\n resendType: ResendEiffResendType.EE,\n mdStatus: this.caseDetailsResponse?.mdCaseDetail?.mdStatus,\n empfStatus: this.caseDetailsResponse?.empfCaseDetail?.empfStatus,\n },\n });\n ref.afterClosed().subscribe(({ isRefresh }) => {\n if (isRefresh) {\n location.reload();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n onMDIFFStatusShowToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n onGoEditAgentDetails() {\n this.router.navigate(['/salesjourney/edit-agent-details', this.caseDetailsResponse?.mdCaseDetail?.mdNo, { type: 'EE' }]);\n }\n\n openTransferStatusStatus() {\n this.cdsPopup.open(AdviseTransferStatusComponent, {\n size: 'sm',\n });\n }\n}\n","
    \n
    \n \n
    \n MD_IFF Summary \n
    \n
    \n\n
    \n
    \n eMPF case details \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n Client Name\n
    \n
    \n {{ caseDetailsResponse.mdCaseDetail?.clientName || 'N/A' }}\n
    \n
    \n {{\n caseDetailsResponse.empfCaseDetail?.clientName || caseDetailsResponse.empfCaseDetail?.clientNameChi || 'N/A'\n }}\n
    \n
    \n {{\n caseDetailsResponse.empfCaseDetail?.clientNameChi || caseDetailsResponse.empfCaseDetail?.clientName || 'N/A'\n }}\n
    \n
    \n
    \n \n
    \n Item Checklist\n
    \n
    \n
    \n \n
    \n Servicing agent eIFF Completed\n
    \n
    \n
    \n \n
    \n Split agent eIFF Completed\n
    \n
    \n
    \n \n
    \n Client eIFF Completed\n
    \n
    \n
    \n \n
    \n eMPF case mapped with eIFF\n
    \n
    \n
    \n \n
    \n eMPF status Completed\n
    \n
    \n
    \n
    \n
    \n
    \n MD_IFF Details\n
    \n
    \n
    \n
    \n MD Reference Number\n
    \n
    \n
    \n {{ caseDetailsResponse.mdCaseDetail?.mdNo || 'N/A' }}\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n MD_IFF status\n
    \n \n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(caseDetailsResponse.mdCaseDetail.mdStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(caseDetailsResponse.empfCaseDetail.mdStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(caseDetailsResponse.mdCaseDetail.mdStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n First eIFF submission time & date (DD/MM/YYYY)\n
    \n
    \n {{ caseDetailsResponse.mdCaseDetail?.firstSubmissionDt }} (HKT)\n
    \n \n
    \n N/A\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Declined\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ typeOneIffDeclineExpireReasons[0].hintMsg }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Declined\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n After 45 days Expired\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n Client Name\n
    \n
    \n {{ caseDetailsResponse.mdCaseDetail?.clientName || 'N/A' }}\n
    \n
    \n
    \n
    \n Delivery channel of the eIFF\n
    \n \n N/A\n
    \n \n
    \n EMAIL: {{ caseDetailsResponse.mdCaseDetail.email }}\n
    \n
    \n SMS: (+{{ caseDetailsResponse.mdCaseDetail.phoneCountry }}) {{ caseDetailsResponse.mdCaseDetail.phone }}\n
    \n
    \n
    \n
    \n
    \n Resend time & date\n
    \n
    \n {{ caseDetailsResponse.mdCaseDetail?.resendDt }} (HKT)\n
    \n
    \n N/A\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{\n (caseDetailsResponse.mdCaseDetail?.iffDeclineExpireReasons)![0].errorMsg\n }}\n
    \n
    \n {{\n (caseDetailsResponse.mdCaseDetail?.iffDeclineExpireReasons)![0].hintMsg\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n Resend eIFF\n
    \n
    \n
    \n Match MD Reference No.\n
    \n
    \n
    \n\n
    \n
    \n eMPF Details\n
    \n
    \n
    \n
    \n eMPF Transaction Reference Number\n
    \n
    \n {{ caseDetailsResponse.empfCaseDetail?.empfNo || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n eMPF status\n
    \n \n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(caseDetailsResponse.empfCaseDetail.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n eMPF submission date & time (DD/MM/YYYY)\n
    \n
    \n {{ caseDetailsResponse.empfCaseDetail?.submissionDate }} (HKT)\n
    \n \n
    \n N/A\n
    \n
    \n
    \n
    \n
    \n Client Name\n
    \n
    \n {{\n caseDetailsResponse.empfCaseDetail?.clientName || caseDetailsResponse.empfCaseDetail?.clientNameChi || 'N/A'\n }}\n
    \n
    \n {{\n caseDetailsResponse.empfCaseDetail?.clientNameChi || caseDetailsResponse.empfCaseDetail?.clientName || 'N/A'\n }}\n
    \n
    \n
    \n
    \n Client DOB (DD/MM/YYYY) from eMPF\n
    \n
    \n {{ caseDetailsResponse.empfCaseDetail?.dob || 'N/A' }}\n
    \n
    \n
    \n
    \n Phone Number from eMPF\n
    \n
    \n {{ caseDetailsResponse.empfCaseDetail?.phone || 'N/A' }}\n
    \n
    \n
    \n
    \n Email from eMPF\n
    \n
    \n {{ caseDetailsResponse.empfCaseDetail?.email || 'N/A' }}\n
    \n
    \n
    \n
    \n Match eMPF Reference No.\n
    \n
    \n Update eMPF Reference No.\n
    \n
    \n \n\n
    \n
    \n
    \n Servicing Agent\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Servicing Agent\n
    \n
    \n
    \n {{ caseDetailsResponse.servicingAgent.agentCode }}\n
    \n
    \n
    \n {{\n caseDetailsResponse.servicingAgent.agentName || caseDetailsResponse.servicingAgent.agentNameTC || 'N/A'\n }}\n
    \n
    \n {{\n caseDetailsResponse.servicingAgent.agentNameTC || caseDetailsResponse.servicingAgent.agentName || 'N/A'\n }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{ caseDetailsResponse.servicingAgent.shareHKPC * 100 }} %\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{ caseDetailsResponse.servicingAgent.shareCommission * 100 }} %\n
    \n
    \n
    \n
    \n
    \n\n
    0\" class=\"split-agent-box\">\n
    \n
    \n Split Agent\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n Split Agent\n
    \n
    \n
    \n {{ sagent.agentCode }}\n
    \n
    \n
    \n {{ sagent.agentName || sagent.agentNameTC || 'N/A' }}\n
    \n
    \n {{ sagent.agentNameTC || sagent.agentName || 'N/A' }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{ sagent.shareHKPC * 100 }} %\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{ sagent.shareCommission * 100 }} %\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n Transfer Details\n
    \n\n
    \n
    \n {{ i + 1 }}\n
    \n
    \n \n
    \n Product Type\n
    \n
    \n {{ item.productType }}\n
    \n
    \n
    \n
    \n
    \n Transfer Status*\n
    \n \n
    \n (Source: eMPF Portal)\n
    \n
    \n
    \n
    \n N/A\n
    \n\n
    \n
    \n
    \n {{ transferStatusService.getTransferStatusInfo(item.status)?.text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Original Scheme\n
    \n
    \n New (MIL) Scheme\n
    \n
    \n
    \n
    \n Trustee Name\n
    \n
    \n
    \n {{ item?.trusteeName?.originalScheme || item?.trusteeName?.originalSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.trusteeName?.originalSchemeTC || item?.trusteeName?.originalScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ item?.trusteeName?.newScheme || item?.trusteeName?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.trusteeName?.newSchemeTC || item?.trusteeName?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Scheme name\n
    \n
    \n
    \n {{ item?.schemeName?.originalScheme || item?.schemeName?.originalSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.schemeName?.originalSchemeTC || item?.schemeName?.originalScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ item?.schemeName?.newScheme || item?.schemeName?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.schemeName?.newSchemeTC || item?.schemeName?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Scheme member account no.\n
    \n
    \n
    \n {{\n item?.schemeMemberAccount?.originalScheme || item?.schemeMemberAccount?.originalSchemeTC || 'N/A'\n }}\n
    \n
    \n {{\n item?.schemeMemberAccount?.originalSchemeTC || item?.schemeMemberAccount?.originalScheme || 'N/A'\n }}\n
    \n
    \n
    \n
    \n {{ item?.schemeMemberAccount?.newScheme || item?.schemeMemberAccount?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.schemeMemberAccount?.newSchemeTC || item?.schemeMemberAccount?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Account type\n
    \n
    \n
    \n {{ item?.accountType?.originalScheme || item?.accountType?.originalSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.accountType?.originalSchemeTC || item?.accountType?.originalScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ item?.accountType?.newScheme || item?.accountType?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.accountType?.newSchemeTC || item?.accountType?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n #\n
    \n
    \n Reject Reason(s)\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n {{ reason.title }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Further Action:\n
    \n
    \n

    {{ reason.content }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n *Remarks: If you have any enquiry, please contact eMPF platform at enquiry@eMPF.com.\n
    \n\n
    \n Back to Top\n
    \n \n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\n\n@Component({\n selector: 'app-empf-declaration-confirmation',\n templateUrl: './empf-declaration-confirmation.component.html',\n styleUrls: ['./empf-declaration-confirmation.component.scss'],\n})\nexport class EmpfDeclarationConfirmationComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.megaphone;\n ngOnInit(): void {}\n BackTosummary() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n \n
    強積金中介人聲明資料確認
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n 注意事項\n
      \n
    • 請小心核對所輸入的資料無誤,資料一經提交將不可更改。
    • \n
    • 盡本人所知所信,本表格上所提供之資料均屬正確無訛且無缺漏。
    • \n
    • 我明白在要項上屬具誤導性、虛假或不正確陳述時的後果。
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    請輸入eMPF申請編號:
    \n
    \n
    \n TRF - 87654321-123456\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    客戶全名:
    \n
    \n
    \n CHAN TAI LUNG\n
    \n
    \n
    \n
    \n
    客戶電話/電郵地址:
    \n
    \n
    \n (+852) 9876 5432\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n","// export class producttypeResponse {\n// pendingsend?: number;\n// pendingcustomer?: number;\n// pendingAgent?: number;\n// result?: string;\n// }\nexport class agentinfoResponse {\n result?: number;\n message?: string;\n data?: CheckResponseData;\n}\n\nexport interface CheckResponseData {\n agentId?: string;\n agentCode?: string;\n agentName?: string;\n agentNameTC?: string;\n mobileNumber?: string;\n emailAddress?: string;\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { catchError, Observable, of, Subject, timeout } from 'rxjs';\nimport { agentinfoResponse } from './agentinfo-response';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentinfoService {\n searchAgentinfoUrl = `${environment.apiPrefix}/ext/eb-ssms/agent-service/agent/information`;\n agentinfoDataSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n erroragentinfoSubject = new Subject();\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n GetagentinfoSummary(agentcode: string) {\n this.httpClient\n .get(this.searchAgentinfoUrl, { params: { agentInfo: agentcode } })\n .pipe(timeout(5000), catchError(this.handleError('getAgentinfo', new agentinfoResponse())))\n .subscribe(resp => {\n this.agentinfoDataSubject.next(resp);\n });\n }\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.info(`${operation} failed :${error.message}`);\n this.erroragentinfoSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n}\n","export class EiffRequest {\n eMPFno?: number;\n isCheckedregular?: boolean;\n surnametc?: string;\n givennametc?: string;\n emailaddress?: string;\n phonenumber?: string;\n addAgentCode?: string;\n}\nexport class AdditionAgent {\n agentId?: string;\n agentCode?: string;\n agentName?: string;\n agentNameTC?: string;\n mobileNumber?: string;\n emailAddress?: string;\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { Subscription } from 'rxjs';\nimport { empfCountryOption } from '../case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { EmpfDeclarationConfirmationComponent } from '../empf-declaration-confirmation/empf-declaration-confirmation.component';\nimport { AgentinfoService } from './agentinfo.service';\nimport { AdditionAgent, EiffRequest } from './eiff-request.model';\n\n@Component({\n selector: 'app-empf-declaration-form',\n templateUrl: './empf-declaration-form.component.html',\n styleUrls: ['./empf-declaration-form.component.scss'],\n})\nexport class EmpfDeclarationFormComponent implements OnInit, OnDestroy {\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n private agentInfoService: AgentinfoService,\n private alert: CdsAlertService\n ) {}\n ngOnDestroy(): void {\n this.agentinfoScription?.unsubscribe();\n this.errorSub?.unsubscribe();\n }\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n // RadioformControl: FormControl = new FormControl('');\n empfnocontrol: FormControl = new FormControl('', [Validators.required, Validators.maxLength(50)]);\n selectmode = 0;\n agentcontactinfo = new AdditionAgent();\n result = 0;\n private errorSub?: Subscription;\n private agentinfoScription?: Subscription;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n empfDeclarationForm: any = {\n empfno: { value: null, error: '' },\n surname: { value: null, error: '' },\n givenname: { value: null, error: '' },\n noselect: { value: null, error: '' },\n emailaddress: { value: null, error: '' },\n phonenumber: { value: null, error: '' },\n additionAgent: { value: null, error: '' },\n };\n\n myEiffRequest = new EiffRequest();\n\n // Empfno:new FormControl('',[Validators.required,Validators.maxLength(50)]),\n\n // t = this.Eiffform.get('Empfno')\n radioConfig: CdsRadioConfig = {\n options: [\n { label: '電郵地址', value: 1 },\n { label: '電話號碼', value: 2 },\n ],\n };\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n ngOnInit(): void {}\n closepop() {\n this.dialogRef.close({ agree: true });\n }\n onModechange(result: string) {\n this.empfDeclarationForm.noselect.error = '';\n this.selectmode = parseInt(result);\n if (this.selectmode === 1) {\n this.empfDeclarationForm.phonenumber.error = '';\n this.empfDeclarationForm.phonenumber.value = '';\n } else {\n this.empfDeclarationForm.emailaddress.error = '';\n this.empfDeclarationForm.emailaddress.value = '';\n }\n }\n empfnochange() {\n this.empfDeclarationForm.empfno.error = '';\n }\n surnamechange() {\n this.empfDeclarationForm.surname.error = '';\n }\n givennamechange() {\n this.empfDeclarationForm.givenname.error = '';\n }\n emailaddresschange() {\n this.empfDeclarationForm.emailaddress.error = '';\n }\n phonenumberchange() {\n this.empfDeclarationForm.phonenumber.error = '';\n }\n BackTosummary() {\n this.dialogRef.close({ agree: true });\n }\n validatedeclaration(): boolean {\n if (this.empfDeclarationForm.empfno.value === null || this.empfDeclarationForm.empfno.value === '') {\n this.empfDeclarationForm.empfno.error = '請輸入eMPF申請編號';\n return false;\n }\n if (this.empfDeclarationForm.surname.value === null || this.empfDeclarationForm.surname.value === '') {\n this.empfDeclarationForm.surname.error = '請輸入客戶全名';\n return false;\n }\n if (this.empfDeclarationForm.givenname.value === null || this.empfDeclarationForm.givenname.value === '') {\n this.empfDeclarationForm.givenname.error = '請輸入客戶全名';\n return false;\n }\n if (this.selectmode === 0) {\n this.empfDeclarationForm.noselect.error = '\t請選擇客戶聯繫方式';\n return false;\n }\n if (this.selectmode === 1) {\n if (this.empfDeclarationForm.emailaddress.value === null || this.empfDeclarationForm.emailaddress.value === '') {\n this.empfDeclarationForm.emailaddress.error = '請輸入客戶電郵地址';\n return false;\n }\n const reg = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/;\n if (!reg.test(this.empfDeclarationForm.emailaddress.value)) {\n this.empfDeclarationForm.emailaddress.error = '請輸入客戶電郵地址';\n return false;\n }\n } else {\n if (this.empfDeclarationForm.phonenumber.value === null || this.empfDeclarationForm.phonenumber.value === '') {\n this.empfDeclarationForm.phonenumber.error = '請輸入有效的手機號碼';\n return false;\n }\n }\n return true;\n }\n RouteTosubmit() {\n if (!this.validatedeclaration()) {\n return;\n }\n this.myEiffRequest.eMPFno = this.empfDeclarationForm.empfno.value;\n this.myEiffRequest.surnametc = this.empfDeclarationForm.surname.value;\n this.myEiffRequest.givennametc = this.empfDeclarationForm.givenname.value;\n this.myEiffRequest.phonenumber = this.empfDeclarationForm.phonenumber.value;\n this.myEiffRequest.emailaddress = this.empfDeclarationForm.emailaddress.value;\n this.myEiffRequest.addAgentCode = this.empfDeclarationForm.additionAgent.value;\n if (this.myEiffRequest.addAgentCode !== '' && this.myEiffRequest.addAgentCode !== undefined) {\n this.agentInfoService.GetagentinfoSummary(this.myEiffRequest.addAgentCode);\n this.errorSub = this.agentInfoService.erroragentinfoSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n this.agentinfoScription = this.agentInfoService.agentinfoDataSubject.subscribe(response => {\n if (response.result !== undefined) {\n this.result = response.result;\n if (response.data !== undefined) {\n this.agentcontactinfo = response.data;\n }\n }\n });\n }\n this.dialogRef.close({ agree: true });\n this.cdsPopup.open(EmpfDeclarationConfirmationComponent, {\n size: 'md',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n }\n}\n","
    \n \n
    強積金中介人聲明
    \n \n
    請填寫以下資料以完成聲明
    \n
    \n
    \n
    \n
    請輸入eMPF申請編號:
    \n
    \n
    \n
    \n \n {{ empfDeclarationForm.empfno.error }}\n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    客戶全名:
    \n
    \n
    \n \n {{ empfDeclarationForm.surname.error }}\n \n
    \n
    \n
    \n
    \n \n {{ empfDeclarationForm.givenname.error }}\n \n
    \n
    \n
    \n
    \n
    客戶電郵地址/手機號碼*:
    \n
    \n
    \n \n {{ empfDeclarationForm.noselect.error }}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n {{ empfDeclarationForm.phonenumber.error }}\n \n
    \n
    \n
    \n
    \n \n {{ empfDeclarationForm.emailaddress.error }}\n \n
    \n
    \n
    *請確保此聯絡資料與客戶在eMPF上提供的資料一致
    \n
    \n
    \n
    \n
    強積金中介人編號:
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DeclineReason } from 'src/app/config/decline-reason.config';\nimport { EMPF_App_Status_Value } from 'src/app/config/empf-app-status.config';\nimport { MdStatusValue } from 'src/app/config/iff-status.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { TRANSFER_DETAILS_DECLINED_REASON_OPTIONS } from 'src/app/core/models/salesjourney/salesjourney.model';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { TransferStatusService } from 'src/app/core/services/transfer-status/transfer-status.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault, numRanking, pageToTop } from 'src/app/utils/utils';\nimport { AddMdReferenceNumberPopupComponent } from '../add-md-reference-number-popup/add-md-reference-number-popup.component';\nimport { AddMpfReferenceNumberPopupComponent } from '../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { AdviseTransferStatusComponent } from '../case-summary/advise-transfer-status/advise-transfer-status.component';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { RefNoType } from '../md-iff-summary/md-iff-summary.model';\nimport { ResendEiffComponent } from '../resend-eiff/resend-eiff.component';\nimport { ResendEiffResendType } from '../resend-eiff/resend-eiff.model';\nimport { ERCaseDetailsResponse } from './er-empf-case-details.model';\nimport { TransferStatusValue } from 'src/app/config/transfer-status.config';\n\ntype RolePriority = 'SuperAdmin' | 'SalesSupport' | 'SalesJourneyAgent';\n\n@Component({\n selector: 'app-er-empf-case-details',\n templateUrl: './er-empf-case-details.component.html',\n styleUrls: ['./er-empf-case-details.component.scss'],\n})\nexport class ErEmpfCaseDetailsComponent implements OnInit {\n numRanking = numRanking;\n IffStatusValue = MdStatusValue;\n TransferStatusValue = TransferStatusValue;\n backErIcon = ActionIcons.button_left_filled;\n backErIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n MDIFFStatus = 0;\n empfStatus = 0;\n hasSalesSupportRole = false;\n hasSalesJourneyAgentRole = false;\n hasSalesJourneySuperAdmin = false;\n rolePriority?: RolePriority;\n\n erCaseDetailsResponse?: ERCaseDetailsResponse;\n no?: string;\n mdNo?: string;\n refNoType?: RefNoType;\n tabIndex!: number;\n prodType?: SalesJourneyProdType;\n\n get isDisplayUpdateMPFReferenceNo() {\n if (this.erCaseDetailsResponse) {\n return (\n this.erCaseDetailsResponse.empfCaseDetail &&\n this.erCaseDetailsResponse.empfCaseDetail.empfNo &&\n this.erCaseDetailsResponse.mdCaseDetail &&\n this.erCaseDetailsResponse.mdCaseDetail.mdNo &&\n [EMPF_App_Status_Value.Pending_eMPF_Return_Data, EMPF_App_Status_Value.Not_Applicable].includes(this.erCaseDetailsResponse.empfCaseDetail.empfStatus)\n );\n }\n return false;\n }\n\n get PendingSplitAgentSubmission() {\n if (!this.erCaseDetailsResponse) {\n return '';\n }\n\n return this.erCaseDetailsResponse.splitAgents\n .filter(item => item.agentIffStatus === 'PENDING')\n .map(item => item.agentCode + ' ' + this.getSplitAgentName(item))\n .join(', ');\n }\n\n get isShowMdIffStatusMouseover() {\n return (\n this.erCaseDetailsResponse?.mdCaseDetail?.mdStatus === MdStatusValue.Pending_Split_Agent ||\n (this.erCaseDetailsResponse?.mdCaseDetail?.mdStatus === MdStatusValue.Expired &&\n this.erCaseDetailsResponse?.mdCaseDetail?.iffDeclineExpireReasons.some(item => item.code === 92))\n );\n }\n\n getSplitAgentName(item: { agentName: string; agentNameTC: string }) {\n if (this.cdsLangService.currentLang === 'en') {\n return item.agentName || item.agentNameTC;\n } else {\n return item.agentNameTC || item.agentName;\n }\n }\n\n constructor(\n private router: Router,\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private permissionService: PermissionService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private notifyService: NotifyService,\n private route: ActivatedRoute,\n public transferStatusService: TransferStatusService,\n public cdsLangService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n this.no = this.route.snapshot.paramMap.get('no') || undefined;\n this.refNoType = (this.route.snapshot.paramMap.get('refNoType') as RefNoType) || undefined;\n this.tabIndex = Number(this.route.snapshot.paramMap.get('tabIndex'));\n this.prodType = (this.route.snapshot.paramMap.get('prodType') as SalesJourneyProdType) || undefined;\n this.mdNo = this.route.snapshot.paramMap.get('mdNo') || undefined;\n this.initRole().then(() => {\n this.getCaseDetail().then(() => {\n this.initRejectReasons();\n });\n });\n }\n\n getCaseDetail() {\n return new Promise((resolve, reject) => {\n let urlParamPart: {\n empfNo?: string;\n mdNo?: string;\n } | null = null;\n switch (this.refNoType) {\n case RefNoType.MD:\n urlParamPart = { mdNo: this.no };\n break;\n case RefNoType.EMPF:\n urlParamPart = { empfNo: this.no };\n if (this.mdNo) {\n urlParamPart.mdNo = this.mdNo;\n }\n break;\n\n default:\n break;\n }\n\n if (!urlParamPart) {\n return;\n }\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.get(`/ext/eb-ssms-sales-journey-service/salesJourney/caseDetails`, urlParamPart).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n reject();\n } else {\n this.erCaseDetailsResponse = res.data;\n resolve();\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n reject();\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n });\n }\n\n initRejectReasons() {\n this.erCaseDetailsResponse?.transfers?.forEach(t => {\n t.rejectReasonCombination = t.rejectReasons.map(item => {\n const option = TRANSFER_DETAILS_DECLINED_REASON_OPTIONS.find(o => o.value === item + '');\n if (option) {\n return {\n title: option.value + ' - ' + option.label,\n content:\n 'Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut accusamus ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis.',\n isExpand: false,\n };\n } else {\n return {\n title: 'N/A',\n content:\n 'Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut accusamus ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis.',\n isExpand: false,\n };\n }\n });\n });\n }\n\n private async initRole() {\n this.hasSalesJourneySuperAdmin = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_ADMIN);\n this.hasSalesSupportRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SALES_SUPPORT);\n this.hasSalesJourneyAgentRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_AGENT);\n if (this.hasSalesJourneySuperAdmin) {\n this.rolePriority = 'SuperAdmin';\n } else if (this.hasSalesSupportRole) {\n this.rolePriority = 'SalesSupport';\n } else if (this.hasSalesJourneyAgentRole) {\n this.rolePriority = 'SalesJourneyAgent';\n }\n }\n\n onBack() {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n }\n\n toTop() {\n pageToTop();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n openTransferStatusStatus() {\n this.cdsPopup.open(AdviseTransferStatusComponent, {\n size: 'sm',\n });\n }\n\n onOpenAddEmpfRefNoPopup(mdNo: string) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: mdNo,\n prodType: 'ER',\n },\n });\n }\n\n onOpenAddMDRefNoPopup(empfNo: string) {\n this.cdsPopup.open(AddMdReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n empfNo: empfNo,\n prodType: 'ER',\n },\n });\n }\n\n get typeOneIffDeclineExpireReasons() {\n return this.erCaseDetailsResponse?.mdCaseDetail?.iffDeclineExpireReasons.filter(item => item.errorType === 1);\n }\n\n get noTypeOneIffDeclineExpireReasons() {\n return this.erCaseDetailsResponse?.mdCaseDetail?.iffDeclineExpireReasons.filter(item => item.errorType !== 1);\n }\n\n openResendEIFF() {\n const ref = this.cdsPopup.open(ResendEiffComponent, {\n size: 'md',\n data: {\n mdNo: this.erCaseDetailsResponse?.mdCaseDetail?.mdNo,\n resendType: ResendEiffResendType.ER,\n mdStatus: this.erCaseDetailsResponse?.mdCaseDetail?.mdStatus,\n empfStatus: this.erCaseDetailsResponse?.empfCaseDetail?.empfStatus,\n },\n });\n ref.afterClosed().subscribe(({ isRefresh }) => {\n if (isRefresh) {\n location.reload();\n }\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n\n ref.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n onMDIFFStatusShowToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n onGoEditAgentDetails() {\n this.router.navigate(['/salesjourney/edit-agent-details', this.erCaseDetailsResponse?.mdCaseDetail?.mdNo, { type: 'ER' }]);\n }\n\n isOfDeclined(code: number) {\n return [\n DeclineReason.CaseCannotMatchWithEMPFData,\n DeclineReason.ClientHKIDPassportNoMismatchedWithEMPFData,\n DeclineReason.EmployerNameMismatchedWithEMPFData,\n DeclineReason.BRNoMismatchedWithEMPFData,\n DeclineReason.AuthorizedPersonNameMismatchedWithEMPFData,\n DeclineReason.AgentInformationMismatchedWithEMPFData,\n DeclineReason.DeclinedDueToRejectApplicationInEMPFPortal,\n ].includes(code);\n }\n\n isOfExpired(code: number) {\n return [DeclineReason.PendingToSend, DeclineReason.PendingSplitAgents, DeclineReason.PendingCustomerSubmission].includes(code);\n }\n}\n","
    \n
    \n \n
    \n MD_IFF Summary \n
    \n
    \n\n
    \n
    \n eMPF case details \n
    \n
    \n\n
    \n
    \n Item Checklist\n
    \n
    \n
    \n \n
    \n Servicing agent eIFF Completed\n
    \n
    \n
    \n \n
    \n Split agent eIFF Completed\n
    \n
    \n
    \n \n
    \n Client eIFF Completed\n
    \n
    \n
    \n \n
    \n eMPF case mapped with eIFF\n
    \n
    \n
    \n \n
    \n eMPF status Completed\n
    \n
    \n
    \n
    \n
    \n MD_IFF Details\n
    \n
    \n
    \n
    \n MD Reference Number\n
    \n
    \n
    \n {{ erCaseDetailsResponse.mdCaseDetail?.mdNo || 'N/A' }}\n
    \n \n
    \n
    \n
    \n \n
    \n {{ 'generate.md.inftra-group-transfer' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n MD_IFF status\n
    \n \n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(erCaseDetailsResponse.mdCaseDetail.mdStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(erCaseDetailsResponse.empfCaseDetail.mdStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(erCaseDetailsResponse.mdCaseDetail.mdStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n First eIFF submission time & date (DD/MM/YYYY)\n
    \n
    \n {{ erCaseDetailsResponse.mdCaseDetail?.firstSubmissionDt }} (HKT)\n
    \n \n
    \n N/A\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Declined\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ typeOneIffDeclineExpireReasons[0].hintMsg }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Declined\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n After 45 days Expired\n
    \n
    \n
    \n {{ item.errorMsg }}\n
    \n
    \n {{ item.hintMsg }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Employer Name/ BR Number\n
    \n
    \n {{\n erCaseDetailsResponse.mdCaseDetail?.employerName || erCaseDetailsResponse.mdCaseDetail?.brNo || 'N/A'\n }}\n
    \n
    \n
    \n
    \n Delivery channel of the eIFF\n
    \n \n N/A\n
    \n
    \n
    \n SMS: (+{{ erCaseDetailsResponse.mdCaseDetail.phoneCountry }}) {{ erCaseDetailsResponse.mdCaseDetail.phone }}\n
    \n
    \n EMAIL: {{ erCaseDetailsResponse.mdCaseDetail.email }}\n
    \n
    \n
    \n
    \n
    \n Resend time & date\n
    \n
    \n {{ erCaseDetailsResponse.mdCaseDetail?.resendDt || 'N/A' }} (HKT)\n
    \n
    \n N/A\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{\n (erCaseDetailsResponse.mdCaseDetail?.iffDeclineExpireReasons)![0].errorMsg\n }}\n
    \n
    \n {{\n (erCaseDetailsResponse.mdCaseDetail?.iffDeclineExpireReasons)![0].hintMsg\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n Resend eIFF\n
    \n
    \n
    \n Match MD Reference No.\n
    \n
    \n
    \n\n
    \n
    \n eMPF Details\n
    \n
    \n
    \n
    \n eMPF Transaction Reference Number\n
    \n
    \n {{ erCaseDetailsResponse.empfCaseDetail?.empfNo || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n eMPF status\n
    \n \n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(erCaseDetailsResponse.empfCaseDetail.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n
    \n eMPF submission date & time (DD/MM/YYYY)\n
    \n
    \n {{ erCaseDetailsResponse.empfCaseDetail?.submissionDate }} (HKT)\n
    \n \n
    \n N/A\n
    \n
    \n
    \n
    \n
    \n Employer Name\n
    \n
    \n {{\n erCaseDetailsResponse.empfCaseDetail?.employerName || erCaseDetailsResponse.empfCaseDetail?.employerNameTC || 'N/A'\n }}\n
    \n
    \n {{\n erCaseDetailsResponse.empfCaseDetail?.employerNameTC || erCaseDetailsResponse.empfCaseDetail?.employerName || 'N/A'\n }}\n
    \n
    \n
    \n
    \n BR Number\n
    \n
    \n {{ erCaseDetailsResponse.empfCaseDetail?.brNo || 'N/A' }}\n
    \n
    \n
    \n
    \n 0\n \">\n
    \n Contact of Authorized Person(s) \n
    \n
    \n \n \n
    \n
    \n {{ numRanking(i + 1) }} Authorized Person\n
    \n
    \n
    \n {{ item.name || item.nameChi || 'N/A' }}\n
    \n
    \n {{ item.nameChi || item.name || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Phone Number\n
    \n
    \n Email\n
    \n
    \n
    \n
    \n {{ item.phone || 'N/A' }}\n
    \n
    \n {{ item?.email || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Match eMPF Reference No.\n
    \n
    \n Update eMPF Reference No.\n
    \n
    \n \n\n
    \n
    \n
    \n Servicing Agent\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Servicing Agent\n
    \n
    \n
    \n {{ erCaseDetailsResponse.servicingAgent.agentCode }}\n
    \n
    \n
    \n {{\n erCaseDetailsResponse.servicingAgent.agentName || erCaseDetailsResponse.servicingAgent.agentNameTC || 'N/A'\n }}\n
    \n
    \n {{\n erCaseDetailsResponse.servicingAgent.agentNameTC || erCaseDetailsResponse.servicingAgent.agentName || 'N/A'\n }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{ erCaseDetailsResponse.servicingAgent.shareHKPC * 100 }} %\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{ erCaseDetailsResponse.servicingAgent.shareCommission * 100 }} %\n
    \n
    \n
    \n
    \n
    \n\n
    0\" class=\"split-agent-box\">\n
    \n
    \n Split Agent\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n Split Agent\n
    \n
    \n
    \n {{ sagent.agentCode }}\n
    \n
    \n
    \n {{ sagent.agentName || sagent.agentNameTC || 'N/A' }}\n
    \n
    \n {{ sagent.agentNameTC || sagent.agentName || 'N/A' }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n Share HKPC\n
    \n
    \n {{ sagent.shareHKPC * 100 }} %\n
    \n
    \n
    \n
    \n Share Commission\n
    \n
    \n {{ sagent.shareCommission * 100 }} %\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n Transfer Details\n
    \n\n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n
    \n Transfer Status*\n
    \n \n
    \n (Source: eMPF Portal)\n
    \n
    \n
    \n
    \n N/A\n
    \n
    \n
    \n
    \n {{ transferStatusService.getTransferStatusInfo(item.status)?.text }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Original Scheme\n
    \n
    \n New (MIL) Scheme\n
    \n
    \n
    \n
    \n Trustee Name\n
    \n
    \n
    \n {{ item?.trusteeName?.originalScheme || item?.trusteeName?.originalSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.trusteeName?.originalSchemeTC || item?.trusteeName?.originalScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ item?.trusteeName?.newScheme || item?.trusteeName?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.trusteeName?.newSchemeTC || item?.trusteeName?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Scheme name\n
    \n
    \n
    \n {{ item?.schemeName?.originalScheme || item?.schemeName?.originalSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.schemeName?.originalSchemeTC || item?.schemeName?.originalScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ item?.schemeName?.newScheme || item?.schemeName?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.schemeName?.newSchemeTC || item?.schemeName?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Scheme member account no.\n
    \n
    \n
    \n {{\n item?.schemeMemberAccount?.originalScheme || item?.schemeMemberAccount?.originalSchemeTC || 'N/A'\n }}\n
    \n
    \n {{\n item?.schemeMemberAccount?.originalSchemeTC || item?.schemeMemberAccount?.originalScheme || 'N/A'\n }}\n
    \n
    \n
    \n
    \n {{ item?.schemeMemberAccount?.newScheme || item?.schemeMemberAccount?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.schemeMemberAccount?.newSchemeTC || item?.schemeMemberAccount?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n Account type\n
    \n
    \n
    \n {{ item?.accountType?.originalScheme || item?.accountType?.originalSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.accountType?.originalSchemeTC || item?.accountType?.originalScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n {{ item?.accountType?.newScheme || item?.accountType?.newSchemeTC || 'N/A' }}\n
    \n
    \n {{ item?.accountType?.newSchemeTC || item?.accountType?.newScheme || 'N/A' }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n #\n
    \n
    \n Reject Reason(s)\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n {{ reason.title }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Further Action:\n
    \n
    \n

    {{ reason.content }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n *Remarks: If you have any enquiry, please contact eMPF platform at enquiry@eMPF.com.\n
    \n\n
    \n Back to Top\n
    \n \n\n","import { AfterViewInit } from '@angular/core';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, ViewChildren, ViewChild, QueryList } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdRadioComponent } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { HideTextType } from 'src/app/shared/hide-text/hide-text.pipe';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { agentCodeRemovePrefix0, pageToTop } from 'src/app/utils/utils';\nimport { AgentDetailInfo } from '../service/model/agent-info-response.model';\nimport { ErSubmitSuccessComponent } from './er-submit-success/er-submit-success.component';\nimport { AdviseEmpfrefComponent } from '../case-summary/advise-empfref/advise-empfref.component';\nimport { IffService } from '../service/iff.service';\nimport { TempCacheService } from 'src/app/shared/temp-cache/temp-cache.service';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { ContactPersonContact, EmployerColumns, PreferredLanguageType } from '../case-summary/case-summary.model';\nimport { DeliveryChannelType } from 'src/app/core/models/enum/delivery-channel-type.enum';\nimport { RegulatedActivitiesComponent } from '../regulated-activities/regulated-activities.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\n\n@Component({\n selector: 'app-er-send-iff-in-batch-summary',\n templateUrl: './er-send-iff-in-batch-summary.component.html',\n styleUrls: ['./er-send-iff-in-batch-summary.component.scss'],\n})\nexport class ErSendIffInBatchSummaryComponent implements OnInit, AfterViewInit {\n @ViewChildren('deliveryChannelCdRadio')\n deliveryChannelCdRadioList!: QueryList;\n @ViewChild('secondAgentIntermediaryContactMethodCdRadio')\n secondAgentIntermediaryContactMethodCdRadio?: CdRadioComponent;\n @ViewChild('thirdAgentIntermediaryContactMethodCdRadio')\n thirdAgentIntermediaryContactMethodCdRadio?: CdRadioComponent;\n @ViewChildren('itemPreferredLanguage')\n preferredLanguageList?: QueryList;\n @ViewChild('secondAgentPreferredLanguage') secondAgentPreferredLanguage?: CdRadioComponent;\n @ViewChild('thirdAgentPreferredLanguage') thirdAgentPreferredLanguage?: CdRadioComponent;\n @ViewChildren('regulatedActivities')\n regulatedActivitiesList?: QueryList;\n\n currentStep = 1;\n DeliveryChannelType = DeliveryChannelType;\n HideTextType = HideTextType;\n PreferredLanguageType = PreferredLanguageType;\n\n frControl = new FormControl(undefined);\n primaryControl = new FormControl(false);\n currentStep2FrControl1 = new FormControl(true);\n currentStep2FrControl2 = new FormControl(true);\n empfFrControl = new FormControl(false);\n dataList: (EmployerColumns & { isIntragroupTransfer: FormControl })[] = [];\n secondRegulatedControl1 = new FormControl(undefined);\n secondRegulatedControl2 = new FormControl(undefined);\n readonlySecondRegulatedControl1 = new FormControl(false);\n readonlySecondRegulatedControl2 = new FormControl(false);\n secondAgentCodeAndErr = {\n agentCode: '',\n agentCodeErr: false,\n };\n thirdAgentCodeAndErr = {\n agentCode: '',\n agentCodeErr: false,\n };\n isLoadingSecondAgent = false;\n isLoadingSecondAgentSuccess = true;\n isLoadingThirdAgent = false;\n isLoadingThirdAgentSuccess = true;\n secondAgent?: AgentDetailInfo;\n thirdAgent?: AgentDetailInfo;\n multipleFrControl = new FormControl(false);\n servicingAgentCode?: string;\n\n deliveryChannelConfig = {\n options: [\n {\n label: 'common.email',\n value: DeliveryChannelType.Email,\n disable: true,\n },\n {\n label: 'common.sms',\n value: DeliveryChannelType.SMS,\n disable: true,\n },\n ],\n };\n _isDisableContinue = false;\n private servicingAgentId = '';\n private empfRefNo?: string;\n\n secondAgentPreferredPreferred?: PreferredLanguageType;\n secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n thirdAgentPreferredPreferred?: PreferredLanguageType;\n thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n constructor(\n private router: Router,\n public cdsLangService: CdsLangService,\n private cdsPopup: CdsPopupService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n public languageChangeService: LanguageChangeService,\n private authenticationService: AuthenticationService,\n private notifyService: NotifyService,\n private iffService: IffService,\n private route: ActivatedRoute,\n private tempCacheService: TempCacheService,\n public agentChannelService: AgentChannelService\n ) {}\n\n ngAfterViewInit(): void {\n pageToTop();\n }\n\n ngOnInit(): void {\n this.languageChangeService.lanSubject.subscribe(() => {\n if (this.secondAgent) {\n this.refreshIntermediaryContact(this.secondAgent);\n this.secondAgentIntermediaryContactMethodCdRadio?.refreshConfig();\n }\n if (this.thirdAgent) {\n this.refreshIntermediaryContact(this.thirdAgent);\n this.thirdAgentIntermediaryContactMethodCdRadio?.refreshConfig();\n }\n if (this.regulatedActivitiesList) {\n this.regulatedActivitiesList.forEach(d => {\n d.refreshConfig();\n });\n }\n });\n\n this.frControl.valueChanges.subscribe((boo: boolean) => {\n this.primaryControl.setValue(boo);\n this.multipleFrControl.setValue(boo);\n this.secondRegulatedControl1.setValue(undefined);\n this.secondRegulatedControl2.setValue(undefined);\n\n if (!boo) {\n if (this.secondAgentCodeAndErr.agentCode) {\n this.secondRegulatedControl1.setValue(false);\n }\n if (this.thirdAgentCodeAndErr.agentCode) {\n this.secondRegulatedControl2.setValue(false);\n }\n }\n });\n\n this.empfRefNo = this.route.snapshot.paramMap.get('empfRefNo') || undefined;\n if (this.empfRefNo) {\n const data = this.tempCacheService.getItem(`case-summary-er-${this.empfRefNo}`);\n if (data) {\n this.dataList = [data as EmployerColumns & { isIntragroupTransfer: FormControl }];\n }\n } else {\n const data = localStorage.getItem('case-summary-selected-data');\n if (data) {\n this.dataList = JSON.parse(data);\n }\n }\n\n if (this.dataList.length > 0) {\n const customerIdList: string[] = [];\n this.dataList.forEach(element => {\n if (element.customerId) {\n customerIdList.push(element.customerId);\n }\n element.rmReferralCode = new FormControl('', [Validators.required, this.rmReferralCodeVali]);\n element.inputCustomerId = new FormControl('', [this.inputCustomerIdVali]);\n element.sourceCode = new FormControl('', [this.sourceCodeVali]);\n element.campaignCode = new FormControl('', [this.campaignCodeVali]);\n element.isIntragroupTransfer = new FormControl({ value: false, disabled: false });\n });\n this.postMemberContacts(customerIdList);\n\n if (this.dataList.length === 1 && this.dataList[0].SplitCase) {\n this.getAgentCode(this.dataList[0].salesJourneySummaryId).then(agentCodeList => {\n if (agentCodeList && agentCodeList.length > 0) {\n this.dataList[0].secondAgentCode = agentCodeList[0];\n this.dataList[0].thirdAgentCode = agentCodeList[1];\n this.secondAgentCodeAndErr.agentCode = agentCodeList[0];\n this.thirdAgentCodeAndErr.agentCode = agentCodeList[1];\n }\n });\n }\n }\n\n this.secondRegulatedControl1.valueChanges.subscribe((boo: boolean) => {\n this.currentStep2FrControl1.setValue(boo);\n this.readonlySecondRegulatedControl1.setValue(boo);\n });\n this.secondRegulatedControl2.valueChanges.subscribe((boo: boolean) => {\n this.currentStep2FrControl2.setValue(boo);\n this.readonlySecondRegulatedControl2.setValue(boo);\n });\n this.authenticationService.currentUserValue().then(res => {\n this.servicingAgentId = res.id + '';\n\n this.iffService.getAgentCode(this.servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.servicingAgentCode = res.data.agentCode;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n }\n\n rmReferralCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n };\n\n inputCustomerIdVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n sourceCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n campaignCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n thirdAgentIntermediaryContactMethodValueChange(value?: string) {\n this.thirdAgentPreferredPreferred = undefined;\n if (value === DeliveryChannelType.SMS) {\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n } else if (value === DeliveryChannelType.Email) {\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n }\n if (this.thirdAgentPreferredLanguage) {\n this.thirdAgentPreferredLanguage.refreshConfig();\n }\n }\n\n secondAgentIntermediaryContactMethodValueChange(value?: string) {\n this.secondAgentPreferredPreferred = undefined;\n if (value === DeliveryChannelType.SMS) {\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n } else if (value === DeliveryChannelType.Email) {\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n }\n if (this.secondAgentPreferredLanguage) {\n this.secondAgentPreferredLanguage.refreshConfig();\n }\n }\n\n backOne() {\n this.currentStep = 1;\n this.isLoadingSecondAgentSuccess = true;\n this.isLoadingThirdAgentSuccess = true;\n }\n\n get isDisableSecondRegulatedControl1() {\n return !this.frControl.value || this.secondAgentCodeAndErr.agentCode.length === 0;\n }\n get isDisableSecondRegulatedControl2() {\n return !this.frControl.value || this.secondAgentCodeAndErr?.agentCode?.length === 0 || this.thirdAgentCodeAndErr?.agentCode?.length === 0;\n }\n\n postMemberContacts(customerIdList: string[]) {\n this.cdHttpServeService\n .post<\n {\n contactPersonContacts: ContactPersonContact[];\n employerId: string;\n }[]\n >(`/ext/eb-ssms-sales-journey-service/iffByRecordList/contacts/employer`, customerIdList)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.dataList.forEach(item => {\n const a = res.data.find(d => d.employerId === item.customerId);\n if (a) {\n item.contactPersonContacts = a.contactPersonContacts;\n item.authorizedPersonNameControl = new FormControl(null);\n item.authorizedPersonNameConfigEng = {\n options: [],\n };\n item.authorizedPersonNameConfigChi = {\n options: [],\n };\n\n item.contactPersonContacts.forEach(contact => {\n item.authorizedPersonNameConfigEng?.options.push({\n label: contact.contactPersonName,\n value: contact.contactPersonId,\n });\n item.authorizedPersonNameConfigChi?.options.push({\n label: contact.contactPersonNameChi,\n value: contact.contactPersonId,\n });\n\n contact.deliveryChannelConfig = {\n options: [\n {\n label: 'common.email',\n value: DeliveryChannelType.Email,\n disable: true,\n },\n {\n label: 'common.sms',\n value: DeliveryChannelType.SMS,\n disable: true,\n },\n ],\n };\n if (contact.emailAddr) {\n contact.deliveryChannelConfig.options[0].disable = false;\n }\n if (contact.phoneNumber) {\n contact.deliveryChannelConfig.options[1].disable = false;\n }\n });\n\n if (item.authorizedPersonNameConfigEng) {\n item.authorizedPersonNameConfigEng.placeholder = 'Select Authorized Person Name';\n }\n if (item.authorizedPersonNameConfigChi) {\n item.authorizedPersonNameConfigChi.placeholder = '選擇獲授權人士全名';\n }\n\n if (item.authorizedPersonNameConfigEng?.options.length === 1) {\n item.authorizedPersonNameControl.setValue(item.authorizedPersonNameConfigEng?.options[0].value);\n this.authorizedPersonNameControlChange(item);\n }\n if (item.authorizedPersonNameConfigChi?.options.length === 1) {\n item.authorizedPersonNameControl.setValue(item.authorizedPersonNameConfigChi?.options[0].value);\n this.authorizedPersonNameControlChange(item);\n }\n }\n\n item.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n itemDeliveryChannelChange(item: EmployerColumns) {\n item.preferredLanguage = undefined;\n if (item.deliveryChannel === DeliveryChannelType.SMS) {\n item.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n } else {\n item.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n }\n if (this.preferredLanguageList) {\n this.preferredLanguageList.forEach(d => {\n d.refreshConfig();\n });\n }\n }\n\n goBackWithData() {\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n\n get dbsInputHasErrors() {\n if (!this.isChannelDBS) {\n return false;\n }\n return !this.dataList.every(item => {\n return !(\n (item.rmReferralCode && item.rmReferralCode.dirty && item.rmReferralCode.errors) ||\n (item.campaignCode && item.campaignCode.dirty && item.campaignCode.errors) ||\n (item.sourceCode && item.sourceCode.dirty && item.sourceCode.errors) ||\n (item.inputCustomerId && item.inputCustomerId.dirty && item.inputCustomerId.errors)\n );\n });\n }\n\n private refreshIntermediaryContact(agentDetailInfo: AgentDetailInfo) {\n let shortEmail = '';\n if (agentDetailInfo.emailAddress) {\n const ea = agentDetailInfo.emailAddress;\n const endIndex = ea.indexOf('@');\n shortEmail = ea.substring(0, 4) + '*****' + ea.substring(endIndex);\n }\n\n let shortPhone = '';\n if (agentDetailInfo.mobileNumber) {\n const mn = agentDetailInfo.mobileNumber;\n let phoneArr = new Array((mn + '').length - 3);\n phoneArr = phoneArr.fill('*');\n shortPhone = mn.substring(0, 1) + phoneArr.join('') + mn.substring((mn + '').length - 2);\n }\n\n agentDetailInfo.intermediaryContactMethodConfig = {\n options: [\n {\n label: this.cdsLangService.translate('sendIffInBatchSummary.contactMethodEmail') + (agentDetailInfo.emailAddress ? `(${shortEmail})` : ''),\n value: DeliveryChannelType.Email,\n disable: !agentDetailInfo.emailAddress,\n },\n {\n label: this.cdsLangService.translate('sendIffInBatchSummary.contactMethodPhone') + (agentDetailInfo.mobileNumber ? `(${shortPhone})` : ''),\n value: DeliveryChannelType.SMS,\n disable: !agentDetailInfo.mobileNumber,\n },\n ],\n };\n\n if (!agentDetailInfo.intermediaryContactMethodValue) {\n if (agentDetailInfo.emailAddress) {\n agentDetailInfo.intermediaryContactMethodValue = DeliveryChannelType.Email;\n } else if (agentDetailInfo.mobileNumber) {\n agentDetailInfo.intermediaryContactMethodValue = DeliveryChannelType.SMS;\n }\n }\n }\n\n getIntermediaryContactMethod(agent?: AgentDetailInfo) {\n if (!agent) {\n return undefined;\n }\n\n if (agent.intermediaryContactMethodValue === DeliveryChannelType.Email) {\n return agent.emailAddress;\n } else {\n return agent.mobileNumber;\n }\n }\n\n authorizedPersonNameControlChange(er: EmployerColumns) {\n const ap = this.getAuthorizedPerson(er);\n\n if (ap && ap.deliveryChannelConfig) {\n if (!ap.deliveryChannelConfig.options[0].disable) {\n er.deliveryChannel = DeliveryChannelType.Email;\n } else if (!ap.deliveryChannelConfig.options[1].disable) {\n er.deliveryChannel = DeliveryChannelType.SMS;\n } else {\n er.deliveryChannel = undefined;\n }\n } else {\n er.deliveryChannel = undefined;\n }\n\n this.deliveryChannelCdRadioList.forEach(element => {\n element.refreshConfig();\n });\n\n this.itemDeliveryChannelChange(er);\n }\n\n getAuthorizedPerson(er: EmployerColumns) {\n return er.contactPersonContacts?.find(item => item.contactPersonId === er.authorizedPersonNameControl?.value);\n }\n\n multipleContinue() {\n if (this.isDisableContinue || this.dbsInputHasErrors) {\n return;\n }\n\n if (this.isChannelDBS) {\n let isStop = false;\n for (let i = 0; i < this.dataList.length; i++) {\n if (this.dataList[i].rmReferralCode?.errors) {\n this.dataList[i].rmReferralCode?.markAsDirty();\n isStop = true;\n }\n }\n if (isStop) {\n return;\n }\n }\n\n this.dataList.forEach(item => {\n item.isIntragroupTransfer.disable();\n });\n this.currentStep = 12;\n pageToTop();\n }\n\n backStep1() {\n this.dataList.forEach(item => {\n item.isIntragroupTransfer.enable();\n });\n this.currentStep = 1;\n }\n\n secondAgentCodeChange(val: string) {\n if (val.length === 0) {\n this.secondAgentCodeAndErr.agentCodeErr = false;\n this.thirdAgentCodeAndErr.agentCode = '';\n this.secondRegulatedControl2.setValue(undefined);\n this.secondRegulatedControl1.setValue(undefined);\n } else {\n if (!this.frControl.value) {\n this.secondRegulatedControl1.setValue(false);\n }\n }\n }\n\n thirdAgentCodeChange(val: string) {\n if (val.length === 0) {\n this.thirdAgentCodeAndErr.agentCodeErr = false;\n this.secondRegulatedControl2.setValue(undefined);\n } else {\n if (!this.frControl.value) {\n this.secondRegulatedControl2.setValue(false);\n }\n }\n }\n\n getEmployerName(er: EmployerColumns) {\n if (this.cdsLangService.currentLang === 'en') {\n return er.EmployerName || er.EmployerNameTC;\n } else {\n return er.EmployerNameTC || er.EmployerName;\n }\n }\n\n goCaseSummary() {\n localStorage.removeItem('case-summary-search-params');\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n\n get isDisableContinue() {\n return (\n this._isDisableContinue ||\n this.isLoadingSecondAgent ||\n this.isLoadingThirdAgent ||\n !this.dataList.every(item => {\n return (\n item.authorizedPersonNameControl?.value &&\n (item.deliveryChannel === DeliveryChannelType.Email || (item.deliveryChannel === DeliveryChannelType.SMS && item.preferredLanguage))\n );\n }) ||\n (this.frControl.value !== true && this.frControl.value !== false) ||\n (this.frControl.value === true &&\n this.secondAgentCodeAndErr.agentCode &&\n this.secondRegulatedControl1.value !== true &&\n this.secondRegulatedControl1.value !== false) ||\n (this.frControl.value === true &&\n this.thirdAgentCodeAndErr.agentCode &&\n this.secondRegulatedControl2.value !== true &&\n this.secondRegulatedControl2.value !== false)\n );\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n agentInformation(agentCodeAndErr: { agentCode: string; agentCodeErr: boolean }) {\n return new Promise((resolve, reject) => {\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(agentCodeAndErr.agentCode),\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n agentCodeAndErr.agentCodeErr = true;\n reject();\n } else {\n agentCodeAndErr.agentCodeErr = false;\n this.cdHttpServeService\n .get(`/ext/eb-ssms/agent-service/agent/information`, {\n agentInfo: agentCodeRemovePrefix0(agentCodeAndErr.agentCode),\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n reject();\n } else {\n resolve(res.data);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n reject();\n },\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n agentCodeAndErr.agentCodeErr = true;\n reject();\n },\n });\n });\n }\n\n stepOneContinue() {\n if (this.isDisableContinue || this.dbsInputHasErrors) {\n return;\n }\n\n if (this.isChannelDBS) {\n if (this.dataList[0].rmReferralCode?.errors) {\n this.dataList[0].rmReferralCode?.markAsDirty();\n return;\n }\n }\n\n this.secondAgent = undefined;\n this.thirdAgent = undefined;\n\n if (!this.secondAgentCodeAndErr.agentCode && !this.thirdAgentCodeAndErr.agentCode) {\n this.getSingleSelected.isIntragroupTransfer.disable();\n this.currentStep = 3;\n pageToTop();\n return;\n }\n\n this.secondAgentCodeAndErr.agentCodeErr = false;\n if (this.secondAgentCodeAndErr.agentCode) {\n if (this.servicingAgentCode === this.secondAgentCodeAndErr.agentCode) {\n this.secondAgentCodeAndErr.agentCodeErr = true;\n return;\n }\n }\n\n this.thirdAgentCodeAndErr.agentCodeErr = false;\n if (this.thirdAgentCodeAndErr.agentCode) {\n if (this.servicingAgentCode === this.thirdAgentCodeAndErr.agentCode || this.secondAgentCodeAndErr.agentCode === this.thirdAgentCodeAndErr.agentCode) {\n this.thirdAgentCodeAndErr.agentCodeErr = true;\n return;\n }\n }\n\n if (this.secondAgentCodeAndErr.agentCode) {\n this.isLoadingSecondAgent = true;\n this.isLoadingSecondAgentSuccess = false;\n this.agentInformation(this.secondAgentCodeAndErr)\n .then(data => {\n this.secondAgent = data;\n this.isLoadingSecondAgent = false;\n this.isLoadingSecondAgentSuccess = true;\n\n this.refreshIntermediaryContact(this.secondAgent);\n this.secondAgentIntermediaryContactMethodCdRadio?.refreshConfig();\n\n if (this.isLoadingThirdAgentSuccess) {\n this.isLoadingSecondAgentSuccess = false;\n this.isLoadingThirdAgentSuccess = false;\n this.currentStep = 2;\n this.secondAgentIntermediaryContactMethodValueChange(this.secondAgent.intermediaryContactMethodValue);\n this.thirdAgentIntermediaryContactMethodValueChange(this.thirdAgent?.intermediaryContactMethodValue);\n pageToTop();\n }\n })\n .catch(() => {\n this.isLoadingSecondAgent = false;\n this.isLoadingSecondAgentSuccess = false;\n });\n }\n\n if (this.thirdAgentCodeAndErr.agentCode) {\n this.isLoadingThirdAgent = true;\n this.isLoadingThirdAgentSuccess = false;\n this.agentInformation(this.thirdAgentCodeAndErr)\n .then(data => {\n this.thirdAgent = data;\n this.isLoadingThirdAgent = false;\n this.isLoadingThirdAgentSuccess = true;\n\n this.refreshIntermediaryContact(data);\n this.thirdAgentIntermediaryContactMethodCdRadio?.refreshConfig();\n\n if (this.isLoadingSecondAgentSuccess) {\n this.isLoadingSecondAgentSuccess = false;\n this.isLoadingThirdAgentSuccess = false;\n this.currentStep = 2;\n this.secondAgentIntermediaryContactMethodValueChange(this.secondAgent?.intermediaryContactMethodValue);\n this.thirdAgentIntermediaryContactMethodValueChange(this.thirdAgent?.intermediaryContactMethodValue);\n pageToTop();\n }\n })\n .catch(() => {\n this.isLoadingThirdAgent = false;\n this.isLoadingThirdAgentSuccess = false;\n });\n }\n }\n\n get getSingleSelected() {\n return this.dataList[0];\n }\n\n getAgentName(secondAgent?: AgentDetailInfo) {\n if (!secondAgent) {\n return '';\n }\n\n if (this.cdsLangService.currentLang === 'en') {\n return secondAgent.agentName || secondAgent.agentNameTC;\n } else {\n return secondAgent.agentNameTC || secondAgent.agentName;\n }\n }\n\n get disableStepTwoContinue() {\n return Boolean(\n (this.secondAgent && this.secondAgent.intermediaryContactMethodValue === DeliveryChannelType.SMS && !this.secondAgentPreferredPreferred) ||\n (this.thirdAgent && this.thirdAgent.intermediaryContactMethodValue === DeliveryChannelType.SMS && !this.thirdAgentPreferredPreferred)\n );\n }\n\n stepTwoContinue() {\n if (this.disableStepTwoContinue) {\n return;\n }\n\n this.getSingleSelected.isIntragroupTransfer.disable();\n this.currentStep = 3;\n pageToTop();\n }\n\n stepThreeBack() {\n this.getSingleSelected.isIntragroupTransfer.enable();\n if (!this.thirdAgent && !this.secondAgent) {\n this.currentStep = 1;\n } else {\n this.currentStep = 2;\n }\n pageToTop();\n }\n\n submit() {\n let isToAgentConfirmation = false;\n const data = this.dataList.map(element => {\n const authorizedPerson = this.getAuthorizedPerson(element);\n const agentInfos: any[] = [\n {\n agentIdentityId: this.servicingAgentId,\n regulatedAct: this.frControl.value,\n primaryAgent: true,\n agentNotificationChannel:\n element.deliveryChannel === DeliveryChannelType.Email ? 'E' : element.deliveryChannel === DeliveryChannelType.SMS ? 'M' : '',\n },\n ];\n\n if (this.secondAgent?.agentId) {\n const a: any = {\n agentid: this.secondAgent.agentId,\n regulatedAct: this.secondRegulatedControl1.value || false,\n primaryAgent: false,\n };\n agentInfos.push(a);\n if (this.secondRegulatedControl1.value) {\n a.agentNotificationChannel =\n this.secondAgent.intermediaryContactMethodValue === DeliveryChannelType.Email\n ? 'E'\n : this.secondAgent.intermediaryContactMethodValue === DeliveryChannelType.SMS\n ? 'M'\n : '';\n if (this.secondAgent.intermediaryContactMethodValue === DeliveryChannelType.SMS) {\n a['smsLanguage'] = this.secondAgentPreferredPreferred === PreferredLanguageType.English ? 0 : 1;\n }\n }\n }\n\n if (this.thirdAgent?.agentId) {\n const a: any = {\n agentid: this.thirdAgent.agentId,\n regulatedAct: this.secondRegulatedControl2.value || false,\n primaryAgent: false,\n };\n agentInfos.push(a);\n if (this.secondRegulatedControl2.value) {\n a.agentNotificationChannel =\n this.thirdAgent.intermediaryContactMethodValue === DeliveryChannelType.Email\n ? 'E'\n : this.thirdAgent.intermediaryContactMethodValue === DeliveryChannelType.SMS\n ? 'M'\n : '';\n if (this.thirdAgent.intermediaryContactMethodValue === DeliveryChannelType.SMS) {\n a['smsLanguage'] = this.thirdAgentPreferredPreferred === PreferredLanguageType.English ? 0 : 1;\n }\n }\n }\n\n isToAgentConfirmation = agentInfos.some((info, index: number) => {\n if (index > 0) {\n return info.regulatedAct;\n }\n return false;\n });\n\n const result: any = {\n authPersonId: authorizedPerson?.contactPersonId,\n authPersonName: authorizedPerson?.contactPersonName,\n authPersonFirstName: authorizedPerson?.contactPersonFirstName,\n authPersonLastName: authorizedPerson?.contactPersonLastName,\n salesJourneySummaryId: element.salesJourneySummaryId,\n empfRefNo: element.eMPFRef,\n caseSplit: agentInfos.length > 1,\n emailAddr: authorizedPerson?.emailAddr,\n countryCallingCode: authorizedPerson?.countryCallingCode,\n mobile: authorizedPerson?.phoneNumber,\n clientCommunicationChannel:\n element?.deliveryChannel === DeliveryChannelType.Email ? 'E' : element?.deliveryChannel === DeliveryChannelType.SMS ? 'M' : '',\n agentInfos,\n dbs: element.rmReferralCode?.value\n ? {\n dbsRmReferralCd: element.rmReferralCode.value,\n dbsCustomerId: element.inputCustomerId?.value,\n dbsCampaignCd: element.campaignCode?.value,\n dbsSourceCd: element.sourceCode?.value,\n }\n : undefined,\n intraGroup: element.isIntragroupTransfer.value,\n };\n if (element.deliveryChannel === DeliveryChannelType.SMS) {\n result['smsLanguage'] = element.preferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n if (!result.mobile) {\n delete result.mobile;\n delete result.countryCallingCode;\n }\n if (!result.emailAddr) {\n delete result.emailAddr;\n }\n if (!this.isChannelDBS) {\n delete result.dbs;\n }\n return result;\n });\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/iffByRecordList/submissions`, data).subscribe({\n next: res => {\n if (res.result === 0) {\n let msg = '';\n if (isToAgentConfirmation) {\n msg = 'sendIffInBatchSummary.popupScreenTitleForSplitAgent';\n } else {\n msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n }\n const ref = this.cdsPopup.open(ErSubmitSuccessComponent, {\n data: {\n message: this.cdsLangService.translate(msg),\n },\n });\n ref.afterClosed().subscribe(agree => {\n if (agree) {\n localStorage.removeItem('case-summary-search-params');\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n });\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.notifyService.screenLoadingSubject.next(false);\n this.alert.error('Error!', err);\n },\n });\n }\n\n getAgentCode(salesJourneySummaryId: string) {\n return new Promise(resolve => {\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/iffByRecordList/empfSplitAgentCd', { salesJourneySummaryId }).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n resolve(res.data);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n }\n\n get isChannelDBS() {\n return this.agentChannelService.channel === AgentChannel.DBS;\n }\n\n get isDisabled() {\n if (this.agentChannelService.channel === AgentChannel.DBS) {\n return true;\n }\n if (this.agentChannelService.channel === AgentChannel.CORPORATE && this.agentChannelService.agentCode?.startsWith('400')) {\n return true;\n }\n return false;\n }\n}\n","
    \n
    \n
    \n \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n
    \n Send IFF by SSMS in Batch Summary\n
    \n
    1\" class=\"l-mt-2\">\n Total {{ dataList.length }} records\n
    \n
    1\" class=\"alert-warning\">\n
    \n \n
    \n
    \n Only non-split cases can be handled in batch\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eMPFRef' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.employerName' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eRNumber' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.authorizedPersonName' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.deliveryChannel' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n
    \n For DBS\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ item.eMPFRef }}\n
    \n
    \n
    \n
    \n {{ getEmployerName(item) }}\n
    \n
    \n
    \n
    \n {{ item.BRNumber }}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n RM Referral Code\n
    \n \n
    \n Please input valid RM Referral Code\n \n \n Please input valid RM Referral Code\n \n \n
    \n
    \n
    \n
    \n Customer ID (Optional)\n
    \n \n
    \n Please input valid Customer ID\n \n
    \n
    \n
    \n
    \n Campaign Code (Optional)\n
    \n \n
    \n Please input valid Campaign Code\n \n
    \n
    \n
    \n
    \n Source Code (Optional)\n
    \n \n
    \n Please input valid Source Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n Split Agent\n
    \n
    \n
    \n
    \n 2nd Split Agent Code (optional):\n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentCode' | lang }} :\n
    \n
    \n {{ secondAgentCodeAndErr.agentCode }}\n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.invalidAgentCode' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n 3rd Split Agent Code (optional):\n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentCode' | lang }} :\n
    \n
    \n {{ thirdAgentCodeAndErr.agentCode }}\n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.invalidAgentCode' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'sendIffInBatchSummary.maximum3agents' | lang }}\n
    \n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{\n 'common.continue' | lang\n }}\n 1\" [disabled]=\"isDisableContinue || dbsInputHasErrors\" (click)=\"multipleContinue()\">{{\n 'common.continue' | lang\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n Send IFF by eMPF record\n
    \n
    \n \n
    \n Contact Info of 2nd split agent\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.noNPFCode' | lang : { p1: 'sendIffInBatchSummary.2nd' | lang } }} :\n
    \n
    \n {{ secondAgent.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.noMPFName' | lang : { p1: 'sendIffInBatchSummary.2nd' | lang } }} :\n
    \n
    \n {{ getAgentName(secondAgent) }}\n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n {{ 'sendIffInBatchSummary.makeTheDeclaration' | lang : { p1: 'sendIffInBatchSummary.2nd' | lang } }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}:\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n Contact Info of 3rd split agent\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.noNPFCode' | lang : { p1: 'sendIffInBatchSummary.3rd' | lang } }} :\n
    \n
    \n {{ thirdAgent.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.noMPFName' | lang : { p1: 'sendIffInBatchSummary.3rd' | lang } }} :\n
    \n
    \n {{ getAgentName(thirdAgent) }}\n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n {{ 'sendIffInBatchSummary.makeTheDeclaration' | lang : { p1: 'sendIffInBatchSummary.3rd' | lang } }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}:\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'common.continue' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.miDeclarationConfirmation' | lang }}\n
    \n
    1\" class=\"l-mt-2\">\n Total {{ dataList.length }} records\n
    \n
    \n \n
      \n
    • \n {{ 'sendIffInBatchSummary.inOne' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inTwo' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inThree1' | lang }}\n {{ 'sendIffInBatchSummary.inThree2' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eMPFRef' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.employerName' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eRNumber' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.authorizedPersonName' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.authorizedPersonEmailAddress' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n
    \n For DBS\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ item.eMPFRef }}\n
    \n
    \n
    \n
    \n {{ getEmployerName(item) }}\n
    \n
    \n
    \n
    \n {{ item.BRNumber }}\n
    \n
    \n
    \n
    \n {{ getAuthorizedPerson(item)?.contactPersonName }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.email' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ getAuthorizedPerson(item)?.emailAddr }}\n
    \n
    \n
    \n
    \n
    \n {{ 'common.sms' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ getAuthorizedPerson(item)?.displayPhoneNumber }}\n
    \n
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n /\n
    \n
    \n
    \n
    \n
    \n
    \n RM Referral Code\n
    \n
    \n {{ item.rmReferralCode.value || '-' }}\n
    \n
    \n
    \n
    \n Customer ID (Optional)\n
    \n
    \n {{ item.campaignCode.value || '-' }}\n
    \n
    \n
    \n
    \n Campaign Code (Optional)\n
    \n
    \n {{ item.sourceCode.value || '-' }}\n
    \n
    \n
    \n
    \n Source Code (Optional)\n
    \n
    \n {{ item.inputCustomerId.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'sendIffInBatchSummary.confirmAndSubmit' | lang }}\n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.miDeclarationConfirmation' | lang }}\n
    \n
    \n
    \n \n
      \n
    • \n {{ 'sendIffInBatchSummary.inOne' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inTwo' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inThree1' | lang }}\n {{ 'sendIffInBatchSummary.inThree2' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eMPFReferenceNo' | lang }}:\n
    \n
    \n
    \n {{ getSingleSelected.eMPFRef }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.employerName' | lang }}:\n
    \n
    \n
    \n {{ getEmployerName(getSingleSelected) }}\n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eRNumber' | lang }}:\n
    \n
    \n
    \n {{ getSingleSelected.BRNumber }}\n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.authorizedPersonName' | lang : { p1: 'common.english' | lang } }}:\n
    \n
    \n
    \n {{ getAuthorizedPerson(getSingleSelected)?.contactPersonName }}\n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.apEmailPhone' | lang : { p1: 'common.english' | lang } }}:\n
    \n
    \n
    \n {{\n getSingleSelected.deliveryChannel === 'Email'\n ? getAuthorizedPerson(getSingleSelected)?.emailAddr\n : getAuthorizedPerson(getSingleSelected)?.displayPhoneNumber\n }}\n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}:\n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n RM Referral Code:\n
    \n
    \n
    \n
    \n {{ dataList[0].rmReferralCode?.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Customer ID:\n
    \n
    \n
    \n
    \n {{ dataList[0].inputCustomerId?.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Campaign Code:\n
    \n
    \n
    \n
    \n {{ dataList[0].campaignCode?.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Source Code:\n
    \n
    \n
    \n
    \n {{ dataList[0].sourceCode?.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.2ndMPFIntermediary' | lang }}:\n
    \n
    \n
    \n {{ secondAgent.agentCode }} {{ getAgentName(secondAgent) }}\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.contactMethod' | lang }}:\n {{\n (secondAgent.intermediaryContactMethodValue === DeliveryChannelType.Email\n ? 'sendIffInBatchSummary.contactMethodEmail'\n : 'sendIffInBatchSummary.contactMethodPhone'\n ) | lang\n }}\n ({{\n getIntermediaryContactMethod(secondAgent) || ''\n | hideText : (secondAgent.intermediaryContactMethodValue === DeliveryChannelType.Email ? HideTextType.EMAIL : HideTextType.PHONE)\n }})\n
    \n
    \n {{ 'common.language-of' | lang : { p1: 'sendIffInBatchSummary.2ndMPFIntermediary' | lang } }} : \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.3rdMPFIntermediary' | lang }}:\n
    \n
    \n
    \n {{ thirdAgent.agentCode }} {{ getAgentName(thirdAgent) }}\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.contactMethod' | lang }}:\n {{\n (thirdAgent.intermediaryContactMethodValue === DeliveryChannelType.Email\n ? 'sendIffInBatchSummary.contactMethodEmail'\n : 'sendIffInBatchSummary.contactMethodPhone'\n ) | lang\n }}\n ({{\n getIntermediaryContactMethod(thirdAgent) || ''\n | hideText : (thirdAgent.intermediaryContactMethodValue === DeliveryChannelType.Email ? HideTextType.EMAIL : HideTextType.PHONE)\n }})\n
    \n
    \n {{ 'common.language-of' | lang : { p1: 'sendIffInBatchSummary.3rdMPFIntermediary' | lang } }} : \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.back.to' | lang }}\n
    \n
    \n {{ 'sendIffInBatchSummary.confirmAndSubmit' | lang }}\n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { SubmitSuccessComponent } from '../../send-iff-in-batch-summary/submit-success/submit-success.component';\n\n@Component({\n selector: 'app-er-submit-success',\n templateUrl: './er-submit-success.component.html',\n styleUrls: ['./er-submit-success.component.scss'],\n})\nexport class ErSubmitSuccessComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n message: string;\n }\n ) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close(true);\n }\n}\n","
    \n
    \n \n
    \n
    \n {{ data.message }}\n
    \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n {{ 'common.mingBai' | lang }}\n
    \n
    \n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { Subscription } from 'rxjs';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdPopupService, CdPopupType, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { PreferredLanguageType, SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { empfCountryOption } from '../../case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { ResetWarningComponent } from '../../iff-paper-form/reset-warning/reset-warning.component';\nimport { HasBeenSentCustomerPopupComponent } from '../has-been-sent-customer-popup/has-been-sent-customer-popup.component';\nimport { PendingSplitAgentConfirPopupComponent } from '../pending-split-agent-confir-popup/pending-split-agent-confir-popup.component';\nimport { WillBeLoseInputComponent } from 'src/app/shared/will-be-lose-input/will-be-lose-input.component';\nimport { ValidateService } from 'src/app/core/services/validate/validate.service';\nimport { pageToTop } from 'src/app/utils/utils';\n\nenum Show {\n employer = 'employer',\n intermediary = 'intermediary',\n}\n\ninterface AgentInfo {\n agentId: string;\n agentCode: string;\n agentName: string;\n agentNameTC: string;\n mobileNumber: string;\n emailAddress: string;\n branchCode: string;\n agentCategory: string;\n licenseNumber: string;\n licenseCode: string;\n licenseStatus: string;\n status: string;\n shortEmail?: string;\n shortPhone?: string;\n}\n\ninterface AddEmployerParams {\n email?: string;\n phoneCountry?: string;\n phone?: string;\n isRegulatedActivities?: boolean;\n intraGroup?: boolean;\n commChannel?: 'SMS' | 'EMAIL';\n secondAgent?: {\n agentCode?: string;\n isRegulatedActivities?: boolean;\n commChannel?: 'SMS' | 'EMAIL';\n language?: 'CN' | 'EN';\n };\n thirdAgent?: {\n agentCode?: string;\n isRegulatedActivities?: boolean;\n commChannel?: 'SMS' | 'EMAIL';\n language?: 'CN' | 'EN';\n };\n language?: 'CN' | 'EN';\n productTypes?: string[];\n employerName?: string;\n businessRegisterNo?: string;\n}\n\n@Component({\n selector: 'app-employer-for-md',\n templateUrl: './employer-for-md.component.html',\n styleUrls: ['./employer-for-md.component.scss'],\n})\nexport class EmployerForMdComponent implements OnInit, OnDestroy {\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage?: CdRadioComponent;\n @ViewChild('radioRelevantRegulatedActivities') radioRelevantRegulatedActivities!: CdRadioComponent;\n @ViewChild('radioInTransferValue') radioInTransferValue!: CdRadioComponent;\n @ViewChild('radioSecondAgentRelevantRegulatedActivities') radioSecondAgentRelevantRegulatedActivities!: CdRadioComponent;\n @ViewChild('radioSecondAgentClientContact') radioSecondAgentClientContact?: CdRadioComponent;\n @ViewChild('radioSecondAgentLanguage') radioSecondAgentLanguage?: CdRadioComponent;\n @ViewChild('radioThirdAgentRelevantRegulatedActivities') radioThirdAgentRelevantRegulatedActivities!: CdRadioComponent;\n @ViewChild('radioThirdAgentClientContact') radioThirdAgentClientContact?: CdRadioComponent;\n @ViewChild('radioThirdAgentLanguage') radioThirdAgentLanguage?: CdRadioComponent;\n PreferredLanguageType = PreferredLanguageType;\n Show = Show;\n show = Show.employer;\n isConfirming = false;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n private readonly CN_PHONE = /^1[345678]\\d{9}$/;\n backIcon = ActionIcons.button_left_filled;\n employerForm!: FormGroup;\n authpersonContact = '';\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n lanChangeSubscription?: Subscription;\n language = 'EN';\n authpersonContactConfig: CdRadioConfig = {\n options: [\n {\n label: 'Email Address',\n value: 'E',\n disable: false,\n },\n {\n label: 'Phone Number',\n value: 'M',\n disable: false,\n },\n ],\n };\n resetDatePicker = false;\n secondAgentInfo?: AgentInfo;\n thirdAgentInfo?: AgentInfo;\n isTryConfirm = false;\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n employerFullNameOrBrNumber = '';\n employerFullNameOrBrNumberConfig: CdRadioConfig = {\n options: [\n {\n label: '僱主全名',\n value: 'N',\n disable: false,\n },\n {\n label: '商業登記號碼',\n value: 'B',\n disable: false,\n },\n ],\n };\n\n relevantRegulatedActivitiesValue = '';\n relevantRegulatedActivitiesConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: false,\n },\n ],\n };\n\n inTransferValue = '';\n inTransferConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: false,\n },\n ],\n };\n\n secondAgentRelevantRegulatedActivities = '';\n secondAgentRelevantRegulatedActivitiesConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'Y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'N',\n disable: false,\n },\n ],\n };\n secondAgentClientContact = '';\n secondAgentClientContactConfig?: CdRadioConfig;\n secondAgentLanguage = '';\n secondAgentLanguageConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.chinese'),\n value: 'ZH',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.english'),\n value: 'EN',\n disable: false,\n },\n ],\n };\n\n thirdAgentRelevantRegulatedActivities = '';\n thirdAgentRelevantRegulatedActivitiesConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'Y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'N',\n disable: false,\n },\n ],\n };\n thirdAgentClientContact = '';\n thirdAgentClientContactConfig?: CdRadioConfig;\n thirdAgentLanguage = '';\n thirdAgentLanguageConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.chinese'),\n value: 'ZH',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.english'),\n value: 'EN',\n disable: false,\n },\n ],\n };\n\n defaultFormGroupValues = {\n idType: '0',\n authpersonEmailAddress: null,\n authpersonCountryCode: '852',\n authpersonPhoneNumber: '',\n preferredLanguage: null,\n employerFullName: '',\n BRNumber: '',\n secondAgentCode: '',\n thirdAgentCode: '',\n declaredLives: '',\n };\n\n tabIndex!: number;\n prodType?: SalesJourneyProdType;\n\n secondAgentCodeError = false;\n thirdAgentCodeError = false;\n\n get preferredLanguage() {\n return this.employerForm.get('preferredLanguage') as FormControl;\n }\n\n get authpersonEmailAddress() {\n return this.employerForm.get('authpersonEmailAddress') as FormControl;\n }\n\n get authpersonPhoneNumber() {\n return this.employerForm.get('authpersonPhoneNumber') as FormControl;\n }\n\n get authpersonCountryCode() {\n return this.employerForm.get('authpersonCountryCode') as FormControl;\n }\n\n get employerFullName() {\n return this.employerForm.get('employerFullName') as FormControl;\n }\n\n get BRNumber() {\n return this.employerForm.get('BRNumber') as FormControl;\n }\n\n get idType() {\n return this.employerForm.get('idType') as FormControl;\n }\n\n get secondAgentCode() {\n return this.employerForm.get('secondAgentCode') as FormControl;\n }\n\n get thirdAgentCode() {\n return this.employerForm.get('thirdAgentCode') as FormControl;\n }\n\n get declaredLives() {\n return this.employerForm.get('declaredLives') as FormControl;\n }\n\n get isChangedAnyValues() {\n if (this.defaultFormGroupValues) {\n if (\n !(\n this.defaultFormGroupValues.idType === this.idType.value &&\n this.defaultFormGroupValues.authpersonEmailAddress === this.authpersonEmailAddress.value &&\n this.defaultFormGroupValues.authpersonCountryCode === this.authpersonCountryCode.value &&\n this.defaultFormGroupValues.authpersonPhoneNumber === this.authpersonPhoneNumber.value &&\n this.defaultFormGroupValues.preferredLanguage === this.preferredLanguage.value &&\n this.defaultFormGroupValues.employerFullName === this.employerFullName.value &&\n this.defaultFormGroupValues.BRNumber === this.BRNumber.value &&\n this.employerFullNameOrBrNumber === '' &&\n this.relevantRegulatedActivitiesValue === '' &&\n this.inTransferValue === '' &&\n this.defaultFormGroupValues.secondAgentCode === this.secondAgentCode.value &&\n this.defaultFormGroupValues.thirdAgentCode === this.thirdAgentCode.value &&\n this.defaultFormGroupValues.declaredLives === this.declaredLives.value\n )\n ) {\n return true;\n }\n }\n return false;\n }\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private notifyService: NotifyService,\n private languageChangeService: LanguageChangeService,\n private cdsPopup: CdPopupService,\n private validateService: ValidateService\n ) {}\n\n private beforeunload = (event: BeforeUnloadEvent) => {\n if (this.isChangedAnyValues) {\n event.preventDefault();\n event.returnValue = '';\n }\n };\n\n private popstate = () => {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLoseInputComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n } else {\n history.pushState(null, '', document.URL);\n }\n });\n };\n\n ngOnInit(): void {\n window.addEventListener('beforeunload', this.beforeunload);\n history.pushState(null, '', document.URL);\n window.addEventListener('popstate', this.popstate);\n\n this.tabIndex = Number(this.route.snapshot.paramMap.get('tabIndex'));\n this.prodType = (this.route.snapshot.paramMap.get('prodType') as SalesJourneyProdType) || undefined;\n\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(this.lanSubjectChange);\n\n this.employerForm = new FormGroup({\n declaredLives: new FormControl(this.defaultFormGroupValues.declaredLives, [Validators.required]),\n idType: new FormControl(this.defaultFormGroupValues.idType),\n authpersonEmailAddress: new FormControl(this.defaultFormGroupValues.authpersonEmailAddress, [this.authpersonEmailAddressVali]),\n authpersonCountryCode: new FormControl(this.defaultFormGroupValues.authpersonCountryCode),\n authpersonPhoneNumber: new FormControl(this.defaultFormGroupValues.authpersonPhoneNumber, [this.authpersonPhoneNumberVali]),\n preferredLanguage: new FormControl(this.defaultFormGroupValues.preferredLanguage, [this.preferredLanguageVali]),\n employerFullName: new FormControl(this.defaultFormGroupValues.employerFullName, [this.employerFullNameVali]),\n BRNumber: new FormControl(this.defaultFormGroupValues.BRNumber, [this.brNumberVali]),\n secondAgentCode: new FormControl(this.defaultFormGroupValues.secondAgentCode, {\n validators: [this.secondAgentCodeValidators],\n asyncValidators: [this.validateService.agentValidate],\n }),\n thirdAgentCode: new FormControl(this.defaultFormGroupValues.thirdAgentCode, {\n validators: [this.thirdAgentCodeValidators],\n asyncValidators: [this.validateService.agentValidate],\n }),\n });\n }\n\n secondAgentCodeValidators = (option: AbstractControl): ValidationErrors | null => {\n const secondAgentCode = option.value;\n const thirdAgentCode = option.parent?.get('thirdAgentCode')?.value;\n\n if (secondAgentCode && thirdAgentCode && secondAgentCode === thirdAgentCode) {\n return { invalid: true };\n }\n\n return null;\n };\n\n thirdAgentCodeValidators = (option: AbstractControl): ValidationErrors | null => {\n const secondAgentCode = option.parent?.get('secondAgentCode')?.value;\n const thirdAgentCode = option.value;\n\n if (secondAgentCode && thirdAgentCode && secondAgentCode === thirdAgentCode) {\n return { invalid: true };\n }\n\n return null;\n };\n\n employerFullNameVali = (control: AbstractControl): ValidationErrors | null => {\n if (this.employerFullNameOrBrNumber === 'N') {\n let input = control.value || '';\n input = input.trim();\n if (input.length === 0) {\n return { required: true };\n }\n }\n return null;\n };\n\n private refreshSecondAgentLanguageConfig() {\n this.secondAgentLanguageConfig.options[0].label = this.cdsLangService.translate('common.chinese');\n this.secondAgentLanguageConfig.options[1].label = this.cdsLangService.translate('common.english');\n this.radioSecondAgentLanguage?.refreshConfig();\n }\n\n private refreshThridAgentLanguageConfig() {\n this.thirdAgentLanguageConfig.options[0].label = this.cdsLangService.translate('common.chinese');\n this.thirdAgentLanguageConfig.options[1].label = this.cdsLangService.translate('common.english');\n this.radioThirdAgentLanguage?.refreshConfig();\n }\n\n brNumberVali = (control: AbstractControl): ValidationErrors | null => {\n if (this.employerFullNameOrBrNumber === 'B') {\n let input = control.value || '';\n input = input.trim();\n if (input.length === 0) {\n return { required: true };\n }\n }\n return null;\n };\n\n authpersonPhoneNumberVali = (option: AbstractControl): ValidationErrors | null => {\n if (this.authpersonContact === 'M') {\n if (!option.value) {\n return { required: true };\n }\n\n if (typeof option.value === 'string') {\n if (['852', '853'].includes(this.authpersonCountryCode.value)) {\n if (option.value.length === 8 && ['4', '5', '6', '7', '8', '9'].includes(option.value.substring(0, 1))) {\n return null;\n }\n }\n\n if (['86'].includes(this.authpersonCountryCode.value)) {\n if (option.value.length === 11) {\n const e = this.CN_PHONE.test(option.value);\n if (e) {\n return null;\n }\n }\n }\n\n if (!['852', '853', '86'].includes(this.authpersonCountryCode.value)) {\n return null;\n }\n }\n\n return { errorPhoneNumber: true };\n }\n\n return null;\n };\n\n authpersonEmailAddressVali = (option: AbstractControl): ValidationErrors | null => {\n if (this.authpersonContact === 'E') {\n if (!option.value) {\n return { required: true };\n }\n\n if (typeof option.value === 'string') {\n return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.exec(option.value) ? null : { email: true };\n }\n }\n return null;\n };\n\n authpersonContactChange() {\n this.preferredLanguage.setValue(undefined);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n this.cdRadioPreferredLanguage?.refreshConfig();\n if (this.authpersonContact === 'E') {\n this.authpersonPhoneNumber.updateValueAndValidity();\n }\n }\n\n preferredLanguageVali = (control: AbstractControl): ValidationErrors | null => {\n if ((this.authpersonContact === 'M' && control.value) || this.authpersonContact === 'E' || !this.authpersonContact) {\n return null;\n }\n return { formatError: true };\n };\n\n authpersonCountryCodeChange() {\n this.authpersonPhoneNumber.updateValueAndValidity();\n }\n\n lanSubjectChange = (lan: string) => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n\n this.authpersonContactConfig = {\n options: [\n {\n label: this.cdsLangService.translate('generate.md.emailAddress'),\n value: 'E',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('generate.md.phoneNumber'),\n value: 'M',\n disable: false,\n },\n ],\n };\n\n this.employerFullNameOrBrNumberConfig = {\n options: [\n {\n label: this.cdsLangService.translate('generate.md.employer-full-name'),\n value: 'N',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('generate.md.br-bumber'),\n value: 'B',\n disable: false,\n },\n ],\n };\n\n this.refreshRelevantRegulatedActivitiesConfig();\n this.refreshinTransferConfig();\n this.refreshSecondAgentClientContactConfig();\n this.refreshThirdAgentClientContactConfig();\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n this.refreshSecondAgentLanguageConfig();\n this.refreshThridAgentLanguageConfig();\n };\n\n private refreshSecondAgentClientContactConfig() {\n if (!this.secondAgentInfo) {\n return;\n }\n this.secondAgentInfo.shortEmail = '';\n if (this.secondAgentInfo.emailAddress) {\n const ea = this.secondAgentInfo.emailAddress || '';\n const endIndex = ea.indexOf('@');\n this.secondAgentInfo.shortEmail = ea.substring(0, 4) + '*****' + ea.substring(endIndex);\n }\n this.secondAgentInfo.shortPhone = '';\n if (this.secondAgentInfo.mobileNumber && this.secondAgentInfo.mobileNumber.length) {\n this.secondAgentInfo.shortPhone = '****' + this.secondAgentInfo.mobileNumber.slice(4);\n }\n\n this.secondAgentClientContactConfig = {\n options: [\n {\n label: `${this.cdsLangService.translate('generate.md.registered-email-address')}${\n this.secondAgentInfo.shortEmail ? ' (' + this.secondAgentInfo.shortEmail + ')' : ''\n }`,\n value: 'E',\n disable: !this.secondAgentInfo.shortEmail,\n },\n {\n label: `${this.cdsLangService.translate('generate.md.registered-phone-number')}${\n this.secondAgentInfo.shortPhone ? ' (+852) ' + this.secondAgentInfo.shortPhone : ''\n }`,\n value: 'M',\n disable: !this.secondAgentInfo.shortPhone,\n },\n ],\n };\n\n if (!this.secondAgentInfo.shortEmail && this.secondAgentInfo.shortPhone) {\n this.secondAgentClientContact = 'M';\n } else if (this.secondAgentInfo.shortEmail && !this.secondAgentInfo.shortPhone) {\n this.secondAgentClientContact = 'E';\n }\n this.radioSecondAgentClientContact?.refreshConfig();\n }\n\n private refreshThirdAgentClientContactConfig() {\n if (!this.thirdAgentInfo) {\n return;\n }\n this.thirdAgentInfo.shortEmail = '';\n if (this.thirdAgentInfo.emailAddress) {\n const ea = this.thirdAgentInfo.emailAddress || '';\n const endIndex = ea.indexOf('@');\n this.thirdAgentInfo.shortEmail = ea.substring(0, 4) + '*****' + ea.substring(endIndex);\n }\n this.thirdAgentInfo.shortPhone = '';\n if (this.thirdAgentInfo.mobileNumber && this.thirdAgentInfo.mobileNumber.length) {\n this.thirdAgentInfo.shortPhone = '****' + this.thirdAgentInfo.mobileNumber.slice(4);\n }\n\n this.thirdAgentClientContactConfig = {\n options: [\n {\n label: `${this.cdsLangService.translate('generate.md.registered-email-address')}${\n this.thirdAgentInfo.shortEmail ? ' (' + this.thirdAgentInfo.shortEmail + ')' : ''\n }`,\n value: 'E',\n disable: !this.thirdAgentInfo.shortEmail,\n },\n {\n label: `${this.cdsLangService.translate('generate.md.registered-phone-number')}${\n this.thirdAgentInfo.shortPhone ? ' (+852) ' + this.thirdAgentInfo.shortPhone : ''\n }`,\n value: 'M',\n disable: !this.thirdAgentInfo.shortPhone,\n },\n ],\n };\n\n if (!this.thirdAgentInfo.shortEmail && this.thirdAgentInfo.shortPhone) {\n this.thirdAgentClientContact = 'M';\n } else if (this.thirdAgentInfo.shortEmail && !this.thirdAgentInfo.shortPhone) {\n this.thirdAgentClientContact = 'E';\n }\n this.radioThirdAgentClientContact?.refreshConfig();\n }\n\n reset() {\n if (!this.isChangedAnyValues) {\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(ResetWarningComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(this.resetWarningComponentPopupCloseCall);\n }\n\n resetWarningComponentPopupCloseCall = (confirm: { agree: boolean }) => {\n if (confirm.agree) {\n this.secondAgentCodeError = false;\n this.thirdAgentCodeError = false;\n this.employerForm.reset(this.defaultFormGroupValues);\n this.isTryConfirm = false;\n this.relevantRegulatedActivitiesValue = '';\n this.inTransferValue = '';\n this.authpersonContact = '';\n this.employerFullNameOrBrNumber = '';\n this.resetDatePicker = true;\n this.secondAgentInfo = undefined;\n this.thirdAgentInfo = undefined;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n };\n\n get isDisableNext() {\n return (\n this.employerForm.invalid ||\n this.employerFullNameOrBrNumber === '' ||\n this.authpersonContact === '' ||\n this.relevantRegulatedActivitiesValue === '' ||\n this.inTransferValue === ''\n );\n }\n\n get getSecondAgentName() {\n if (!this.secondAgentInfo) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return this.secondAgentInfo.agentName || this.secondAgentInfo.agentNameTC;\n } else {\n return this.secondAgentInfo.agentNameTC || this.secondAgentInfo.agentName;\n }\n }\n\n get getThirdAgentName() {\n if (!this.thirdAgentInfo) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return this.thirdAgentInfo.agentName || this.thirdAgentInfo.agentNameTC;\n } else {\n return this.thirdAgentInfo.agentNameTC || this.thirdAgentInfo.agentName;\n }\n }\n\n next() {\n if (this.isDisableNext) {\n return;\n }\n\n this.secondAgentInfo = undefined;\n this.thirdAgentInfo = undefined;\n this.secondAgentRelevantRegulatedActivities = '';\n this.secondAgentLanguage = '';\n this.secondAgentClientContact = '';\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n this.thirdAgentRelevantRegulatedActivities = '';\n this.thirdAgentLanguage = '';\n this.thirdAgentClientContact = '';\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n\n if (this.employerForm.valid) {\n const agentCodeList = [];\n if (this.secondAgentCode.value) {\n agentCodeList.push(this.secondAgentCode.value);\n }\n if (this.thirdAgentCode.value) {\n agentCodeList.push(this.thirdAgentCode.value);\n }\n if (agentCodeList.length > 0) {\n this.getAgentInfoByAgentCode(agentCodeList).then(agentInfoList => {\n const tempAgentCode2 = agentInfoList.find(item => item.agentCode === this.secondAgentCode.value);\n const tempAgentCode3 = agentInfoList.find(item => item.agentCode === this.thirdAgentCode.value);\n if (tempAgentCode2) {\n this.secondAgentInfo = tempAgentCode2;\n } else if (this.secondAgentCode.value) {\n this.secondAgentCodeError = true;\n }\n if (tempAgentCode3) {\n this.thirdAgentInfo = tempAgentCode3;\n } else if (this.thirdAgentCode.value) {\n this.thirdAgentCodeError = true;\n }\n\n if (!this.secondAgentCodeError && !this.thirdAgentCodeError) {\n this.isConfirming = true;\n this.setRelevantRegulatedActivitiesDisable();\n this.setInTransferConfigDisable();\n this.show = Show.intermediary;\n pageToTop();\n if (this.relevantRegulatedActivitiesValue === 'n') {\n this.secondAgentRelevantRegulatedActivities = 'N';\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n this.thirdAgentRelevantRegulatedActivities = 'N';\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n }\n this.refreshSecondAgentClientContactConfig();\n this.refreshThirdAgentClientContactConfig();\n }\n });\n } else {\n this.isConfirming = true;\n this.setRelevantRegulatedActivitiesDisable();\n this.setInTransferConfigDisable();\n pageToTop();\n }\n }\n }\n\n private getAgentInfoByAgentCode(agentCodeList: string[]) {\n this.notifyService.screenLoadingSubject.next(true);\n return new Promise((resolve, reject) => {\n this.cdHttpServeService.post(`/ext/eb-ssms/agent-service/agent/infos/agentCd`, agentCodeList).subscribe({\n next: res => {\n if (res.result === 0) {\n resolve(res.data);\n } else {\n this.alert.error('Error!', res.message);\n }\n reject();\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n reject();\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n });\n }\n\n private setRelevantRegulatedActivitiesDisable() {\n this.relevantRegulatedActivitiesConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: true,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: true,\n },\n ],\n };\n this.radioRelevantRegulatedActivities?.refreshConfig();\n }\n\n private setRelevantRegulatedActivitiesEnable() {\n this.relevantRegulatedActivitiesConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: false,\n },\n ],\n };\n this.radioRelevantRegulatedActivities?.refreshConfig();\n }\n\n private setInTransferConfigDisable() {\n this.inTransferConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: true,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: true,\n },\n ],\n };\n this.radioInTransferValue?.refreshConfig();\n }\n\n private setInTransferConfigEnable() {\n this.inTransferConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: false,\n },\n ],\n };\n this.radioInTransferValue?.refreshConfig();\n }\n\n backToEdit() {\n const popupRef = this.cdsPopup.openCommon({\n type: CdPopupType.CONTINUE,\n data: {\n message: 'generate.md.leave-page',\n continue: 'common.confirm-continue',\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.continue) {\n this.isConfirming = false;\n this.setRelevantRegulatedActivitiesEnable();\n this.setInTransferConfigEnable();\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.secondAgentRelevantRegulatedActivities = '';\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.thirdAgentRelevantRegulatedActivities = '';\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n this.secondAgentClientContact = '';\n this.secondAgentLanguage = '';\n this.thirdAgentClientContact = '';\n this.thirdAgentLanguage = '';\n }\n });\n }\n\n submit() {\n const params: AddEmployerParams = {};\n\n if (this.employerFullNameOrBrNumber === 'N') {\n params.employerName = this.employerFullName.value;\n } else {\n params.businessRegisterNo = this.BRNumber.value;\n }\n\n if (this.authpersonContact === 'E') {\n params.commChannel = 'EMAIL';\n params.email = this.authpersonEmailAddress.value;\n } else {\n params.commChannel = 'SMS';\n params.phoneCountry = this.authpersonCountryCode.value;\n params.phone = this.authpersonPhoneNumber.value;\n params.language = this.preferredLanguage.value === PreferredLanguageType.Chinese ? 'CN' : 'EN';\n }\n\n params.isRegulatedActivities = this.relevantRegulatedActivitiesValue === 'y';\n params.intraGroup = this.inTransferValue === 'y';\n params.productTypes = ['ER'];\n\n if (this.secondAgentInfo) {\n params.secondAgent = {};\n params.secondAgent.agentCode = this.secondAgentInfo.agentCode;\n params.secondAgent.isRegulatedActivities = this.secondAgentRelevantRegulatedActivities === 'Y';\n if (params.secondAgent.isRegulatedActivities) {\n params.secondAgent.commChannel = this.secondAgentClientContact === 'E' ? 'EMAIL' : 'SMS';\n if (this.secondAgentClientContact === 'M') {\n params.secondAgent.language = this.secondAgentLanguage === 'EN' ? 'EN' : 'CN';\n }\n }\n }\n\n if (this.thirdAgentInfo) {\n params.thirdAgent = {};\n params.thirdAgent.agentCode = this.thirdAgentInfo.agentCode;\n params.thirdAgent.isRegulatedActivities = this.thirdAgentRelevantRegulatedActivities === 'Y';\n if (params.thirdAgent.isRegulatedActivities) {\n params.thirdAgent.commChannel = this.thirdAgentClientContact === 'E' ? 'EMAIL' : 'SMS';\n if (this.thirdAgentClientContact === 'M') {\n params.thirdAgent.language = this.thirdAgentLanguage === 'EN' ? 'EN' : 'CN';\n }\n }\n }\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{\n mainId: string;\n ids: JSON;\n }>(`/ext/eb-ssms-sales-journey-service/md/add/employer`, params)\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (this.secondAgentRelevantRegulatedActivities === 'Y' || this.thirdAgentRelevantRegulatedActivities === 'Y') {\n this.cdsPopup\n .open(PendingSplitAgentConfirPopupComponent, {\n size: 'md',\n data: {\n mdNo: res.data.mainId,\n ids: res.data.ids ? Object.values(res.data.ids) : [],\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n });\n } else {\n this.cdsPopup\n .open(HasBeenSentCustomerPopupComponent, {\n size: 'md',\n data: {\n mdNo: res.data.mainId,\n ids: res.data.ids ? Object.values(res.data.ids) : [],\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n });\n }\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.lanChangeSubscription?.unsubscribe();\n window.removeEventListener('beforeunload', this.beforeunload);\n window.removeEventListener('popstate', this.popstate);\n }\n\n onBack() {\n if (!this.isChangedAnyValues) {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n } else {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLoseInputComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n }\n });\n }\n }\n\n employerFullNameOrBrNumberChange() {\n this.employerFullName.updateValueAndValidity();\n this.BRNumber.updateValueAndValidity();\n }\n\n private refreshRelevantRegulatedActivitiesConfig() {\n this.relevantRegulatedActivitiesConfig.options[0].label = this.cdsLangService.translate('common.yes');\n this.relevantRegulatedActivitiesConfig.options[1].label = this.cdsLangService.translate('common.no');\n this.radioRelevantRegulatedActivities?.refreshConfig();\n }\n\n private refreshinTransferConfig() {\n this.inTransferConfig.options[0].label = this.cdsLangService.translate('common.yes');\n this.inTransferConfig.options[1].label = this.cdsLangService.translate('common.no');\n this.radioInTransferValue?.refreshConfig();\n }\n\n secondAgentCodeChange(code: string) {\n if (code.length === 0) {\n this.thirdAgentCode.setValue('');\n }\n this.secondAgentCodeError = false;\n this.thirdAgentCodeError = false;\n }\n\n secondAgentClientContactChange() {\n this.secondAgentLanguage = '';\n }\n\n thirdAgentClientContactChange() {\n this.thirdAgentLanguage = '';\n }\n\n get isDisableIntermediaryNext() {\n if (this.secondAgentInfo) {\n if (this.secondAgentRelevantRegulatedActivities === '') {\n return true;\n }\n if (this.secondAgentRelevantRegulatedActivities === 'Y') {\n if (this.secondAgentClientContact === '') {\n return true;\n }\n if (this.secondAgentClientContact === 'M' && this.secondAgentLanguage === '') {\n return true;\n }\n }\n }\n\n if (this.thirdAgentInfo) {\n if (this.thirdAgentRelevantRegulatedActivities === '') {\n return true;\n }\n if (this.thirdAgentRelevantRegulatedActivities === 'Y') {\n if (this.thirdAgentClientContact === '') {\n return true;\n }\n if (this.thirdAgentClientContact === 'M' && this.thirdAgentLanguage === '') {\n return true;\n }\n }\n }\n return false;\n }\n\n get getSecondAgentLanguage() {\n if (this.secondAgentLanguage === 'ZH') {\n return this.secondAgentLanguageConfig.options[0].label;\n } else if (this.secondAgentLanguage === 'EN') {\n return this.secondAgentLanguageConfig.options[1].label;\n }\n return undefined;\n }\n\n get getThirdAgentLanguage() {\n if (this.thirdAgentLanguage === 'ZH') {\n return this.thirdAgentLanguageConfig.options[0].label;\n } else if (this.thirdAgentLanguage === 'EN') {\n return this.thirdAgentLanguageConfig.options[1].label;\n }\n return undefined;\n }\n\n intermediaryNext() {\n if (this.isDisableIntermediaryNext) {\n return;\n }\n this.isConfirming = true;\n this.show = Show.employer;\n this.setRelevantRegulatedActivitiesDisable();\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n pageToTop();\n }\n\n private refreshSecondAgentRelevantRegulatedActivitiesConfig() {\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].label = this.cdsLangService.translate('common.yes');\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].label = this.cdsLangService.translate('common.no');\n this.radioSecondAgentRelevantRegulatedActivities?.refreshConfig();\n }\n\n private refreshThirdAgentRelevantRegulatedActivitiesConfig() {\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].label = this.cdsLangService.translate('common.yes');\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].label = this.cdsLangService.translate('common.no');\n this.radioThirdAgentRelevantRegulatedActivities?.refreshConfig();\n }\n\n backToEdit1() {\n this.show = Show.employer;\n this.isTryConfirm = false;\n this.isConfirming = false;\n this.setRelevantRegulatedActivitiesEnable();\n this.setInTransferConfigEnable();\n pageToTop();\n }\n\n backToEdit2() {\n if (this.secondAgentInfo) {\n this.show = Show.intermediary;\n if (this.relevantRegulatedActivitiesValue === 'n') {\n this.secondAgentRelevantRegulatedActivities = 'N';\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n\n this.thirdAgentRelevantRegulatedActivities = 'N';\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n } else {\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.thirdAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.refreshThirdAgentRelevantRegulatedActivitiesConfig();\n }\n } else {\n this.isTryConfirm = false;\n this.isConfirming = false;\n this.setRelevantRegulatedActivitiesEnable();\n this.setInTransferConfigEnable();\n }\n pageToTop();\n }\n}\n","
    \n
    \n
    \n \n
    \n Exit and back to MD_IFF Summary Page\n
    \n
    \n Generate eIFF Reference Number\n
    \n\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.employer' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.mpf-intermediary-fulfillment' | lang }}\n
    \n
    \n 請填寫以下資料以完成聲明\n
    \n\n
    \n \n
      \n
    • \n {{ 'generate.md.I-declare-that' | lang }}\n
    • \n
    • \n {{ 'generate.md.agents-should-no1' | lang }}\n {{ 'generate.md.agents-should-no2' | lang }}\n
    • \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.clientDetails' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.employer-full-name-br-number' | lang }}*:\n
    \n
    \n {{ employerFullName.value }}\n {{ BRNumber.value }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'generate.md.please-input-the-employer-name' | lang\n }}\n
    \n
    \n \n {{\n 'generate.md.please-input' | lang : { p1: 'generate.md.br-bumber' }\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.auth-person-email-addr-phone-number' | lang }}*:\n
    \n
    \n {{ authpersonEmailAddress.value }}\n (+{{ authpersonCountryCode.value }}) {{ authpersonPhoneNumber.value }}\n
    \n
    \n
    \n \n
    \n {{\n 'generate.md.pleaseSelCustomerContactType' | lang\n }}\n
    \n
    \n
    \n
    \n \n {{\n 'generate.md.pleaseInputValidEmail' | lang\n }}\n {{\n 'generate.md.pleaseInputCustomerEmail' | lang\n }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n {{ 'generate.md.pleaseInputValidMobileNumber' | lang }}\n \n \n
    \n
    \n \n \n {{ 'generate.md.pleaseInputPhoneNumber' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}*:\n
    \n
    \n {{ (preferredLanguage.value === PreferredLanguageType.English ? 'common.english' : 'common.chinese') | lang }}\n
    \n
    \n \n \n {{ 'generate.md.please-select-language' | lang }} \n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.declared-lives' | lang }}*:\n
    \n
    \n {{ declaredLives.value }}\n
    \n
    \n \n {{\n 'generate.md.please-input' | lang : { p1: 'generate.md.declared-lives' }\n }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.pleaseEnsure' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.MPFIntermediary' | lang }}\n
    \n
    \n \n
    \n
    \n {{\n 'generate.md.pleaseSelectRelevantRegulatedActivities' | lang\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.transfer-of-accured-benefits' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.inftra-group-transfer' | lang }}\n
    \n
    \n \n
    \n
    \n {{\n 'generate.md.pleaseSelectRelevantRegulatedActivities' | lang\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.2ndMPFIntermediary' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.2nd-MPF-intermediary-code' | lang }}:\n
    \n
    \n {{ secondAgentCode.value }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n {{ 'generate.md.2nd-invalid-agent-code' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.3rd-MPF-intermediary-code' | lang }}:\n
    \n
    \n {{ thirdAgentCode.value }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n {{ 'generate.md.3rd-invalid-agent-code' | lang }}\n \n \n
    \n
    \n
    \n
    \n {{ 'generate.md.maximum-3-commission-agents' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.2nd-MPF-intermediary-details' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-code' | lang }}:\n
    \n
    \n {{ secondAgentInfo.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-name' | lang }}:\n
    \n
    \n {{ getSecondAgentName }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.clientEmailorPhone' | lang }}:\n
    \n
    \n {{ secondAgentClientContact === 'E' ? secondAgentInfo.shortEmail : '(+852) ' + secondAgentInfo.shortPhone }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}:\n
    \n
    \n {{ getSecondAgentLanguage }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    {{ 'generate.md.mpf-intermediary' | lang }}
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.3rd-MPF-intermediary-details' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-code' | lang }}:\n
    \n
    \n {{ thirdAgentInfo.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-name' | lang }}:\n
    \n
    \n {{ getThirdAgentName }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.clientEmailorPhone' | lang }}:\n
    \n
    \n {{ thirdAgentClientContact === 'E' ? thirdAgentInfo.shortEmail : '(+852) ' + thirdAgentInfo.shortPhone }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}:\n
    \n
    \n {{ getThirdAgentLanguage }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    {{ 'generate.md.mpf-intermediary' | lang }}
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.reset1' | lang }}\n
    \n
    \n {{ 'common.next' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'common.confirmAndSubmit' | lang }}\n
    \n {{ 'generate.md.no-changes-submitted' | lang }}\n
    \n
    \n
    \n
    \n \n\n\n
    \n
    \n
    \n \n
    \n Exit and back to MD_IFF Summary Page\n
    \n
    \n Generate eIFF Reference Number\n
    \n\n
    \n
    \n \n
    \n {{ 'generate.md.employer' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.split-agent-declaration' | lang }}\n
    \n
    \n {{ 'generate.md.addMPFIntermediary' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.2nd-MPF-intermediary-details' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-code' | lang }}:\n
    \n
    \n {{ secondAgentInfo.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-name' | lang }}:\n
    \n
    \n {{ getSecondAgentName }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    {{ 'generate.md.mpf-intermediary' | lang }}
    \n
    \n \n
    \n \n
    \n \n
    \n \n {{ 'generate.md.mpf-declaration-will' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'generate.md.choose-the-following-registered' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.3rd-MPF-intermediary-details' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-code' | lang }}:\n
    \n
    \n {{ thirdAgentInfo.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-name' | lang }}:\n
    \n
    \n {{ getThirdAgentName }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    {{ 'generate.md.mpf-intermediary' | lang }}
    \n
    \n \n
    \n \n
    \n \n
    \n \n {{ 'generate.md.mpf-declaration-will' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'generate.md.choose-the-following-registered' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'common.next' | lang }}\n
    \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA, MatDialogRef } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-has-been-sent-customer-popup',\n templateUrl: './has-been-sent-customer-popup.component.html',\n styleUrls: ['./has-been-sent-customer-popup.component.scss'],\n})\nexport class HasBeenSentCustomerPopupComponent implements OnInit {\n buttonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n disabled: false,\n };\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n ids: [];\n }\n ) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n \n
    \n
    \n \n {{ 'generate.md.has-been-sent-customer' | lang }}\n \n
    \n
    \n {{ 'generate.md.no-changes-submitted' | lang }}\n
    \n
    \n {{ 'generate.md.iff-reference-number' | lang }}\n
    \n
    \n
    \n {{ item }}\n
    \n \n
    \n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsCheckboxListConfig } from '@cds/ng-core/checkbox';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { MatDialogRef } from '@cds/ng-web-components/popup';\nimport { Subscription } from 'rxjs';\nimport { ValidateService } from 'src/app/core/services/validate/validate.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdPopupService } from 'src/app/shared/cd-popup';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { WillBeLoseInputComponent } from 'src/app/shared/will-be-lose-input/will-be-lose-input.component';\nimport { arraysAreEqual, pageToTop } from 'src/app/utils/utils';\nimport { PreferredLanguageType, SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { empfCountryOption } from '../../case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { ResetWarningComponent } from '../../iff-paper-form/reset-warning/reset-warning.component';\nimport { ProductType } from '../../md-iff-summary/md-iff-summary.model';\nimport { HasBeenSentCustomerPopupComponent } from '../has-been-sent-customer-popup/has-been-sent-customer-popup.component';\nimport { PendingSplitAgentConfirPopupComponent } from '../pending-split-agent-confir-popup/pending-split-agent-confir-popup.component';\nimport { Domain } from '../select-product-type-for-md/select-product-type-for-md.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\n\nenum Show {\n individuals = 'individuals',\n intermediary = 'intermediary',\n}\n\ninterface AgentInfo {\n agentId: string;\n agentCode: string;\n agentName: string;\n agentNameTC: string;\n mobileNumber: string;\n emailAddress: string;\n branchCode: string;\n agentCategory: string;\n licenseNumber: string;\n licenseCode: string;\n licenseStatus: string;\n status: string;\n shortEmail?: string;\n shortPhone?: string;\n}\n\ninterface AddMemberParams {\n email?: string;\n phoneCountry?: string;\n phone?: string;\n isRegulatedActivities?: boolean;\n commChannel?: 'SMS' | 'EMAIL';\n secondAgent?: {\n agentCode?: string;\n isRegulatedActivities?: boolean;\n commChannel?: 'SMS' | 'EMAIL';\n language?: 'CN' | 'EN';\n };\n thirdAgent?: {\n agentCode?: string;\n isRegulatedActivities?: boolean;\n commChannel?: 'SMS' | 'EMAIL';\n language?: 'CN' | 'EN';\n };\n language?: 'CN' | 'EN';\n productTypes?: string[];\n fastName?: string;\n lastName?: string;\n hkId?: string;\n passportNo?: string;\n}\n\n@Component({\n selector: 'app-individual',\n templateUrl: './individual.component.html',\n styleUrls: ['./individual.component.scss'],\n})\nexport class IndividualComponent implements OnInit, OnDestroy {\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage!: CdRadioComponent;\n @ViewChild('radioRelevantRegulatedActivities') radioRelevantRegulatedActivities!: CdRadioComponent;\n @ViewChild('radioSecondAgentRelevantRegulatedActivities') radioSecondAgentRelevantRegulatedActivities!: CdRadioComponent;\n @ViewChild('radioSecondAgentClientContact') radioSecondAgentClientContact?: CdRadioComponent;\n @ViewChild('radioSecondAgentLanguage') radioSecondAgentLanguage?: CdRadioComponent;\n PreferredLanguageType = PreferredLanguageType;\n domain?: Domain;\n Domain = Domain;\n Show = Show;\n show = Show.individuals;\n isConfirming = false;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n individualsForm!: FormGroup;\n isTryConfirm = false;\n language = 'EN';\n lanChangeSubscription?: Subscription;\n clientContactConfig: CdRadioConfig = {\n options: [\n {\n label: 'Email',\n value: 'E',\n disable: false,\n },\n {\n label: 'Phone Number',\n value: 'M',\n disable: false,\n },\n ],\n };\n clientContact = '';\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n private readonly CN_PHONE = /^1[345678]\\d{9}$/;\n\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n idTypeConfigOptions = [\n { label: this.cdsLangService.translate('generate.md.hkid'), value: '0' },\n { label: this.cdsLangService.translate('generate.md.passport-no'), value: '1' },\n ];\n\n relevantRegulatedActivitiesValue = '';\n relevantRegulatedActivitiesConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: false,\n },\n ],\n };\n resetDatePicker = false;\n secondAgentInfo?: AgentInfo;\n secondAgentRelevantRegulatedActivities = '';\n secondAgentRelevantRegulatedActivitiesConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'Y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'N',\n disable: false,\n },\n ],\n };\n secondAgentCodeError = false;\n\n secondAgentClientContact = '';\n secondAgentClientContactConfig?: CdRadioConfig;\n\n secondAgentLanguage = '';\n secondAgentLanguageConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.chinese'),\n value: 'ZH',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.english'),\n value: 'EN',\n disable: false,\n },\n ],\n };\n productTypeListConfig: CdsCheckboxListConfig = {\n options: [\n {\n label: ProductType.PA,\n value: ProductType.PA,\n },\n {\n label: ProductType.TVC,\n value: ProductType.TVC,\n },\n {\n label: ProductType.SVC,\n value: ProductType.SVC,\n },\n ],\n orientation: 'vertical',\n };\n\n defaultFormGroupValues: any = null;\n tabIndex!: number;\n prodType?: SalesJourneyProdType;\n\n get preferredLanguage() {\n return this.individualsForm.get('preferredLanguage') as FormControl;\n }\n\n get customerSurname() {\n return this.individualsForm.get('customerSurname') as FormControl;\n }\n\n get customerGivenName() {\n return this.individualsForm.get('customerGivenName') as FormControl;\n }\n\n get isCustomerError() {\n if (!this.isTryConfirm) {\n return false;\n }\n if (!this.customerSurname && !this.customerGivenName) {\n return true;\n } else if ((this.customerSurname && !this.customerGivenName) || (!this.customerSurname && this.customerGivenName)) {\n return true;\n }\n return false;\n }\n\n get hkidOrPassportNo() {\n return this.individualsForm.get('hkidOrPassportNo') as FormControl;\n }\n\n get idType() {\n return this.individualsForm.get('idType') as FormControl;\n }\n\n get getSecondAgentName() {\n if (!this.secondAgentInfo) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return this.secondAgentInfo.agentName || this.secondAgentInfo.agentNameTC;\n } else {\n return this.secondAgentInfo.agentNameTC || this.secondAgentInfo.agentName;\n }\n }\n\n get clientPhoneNumber() {\n return this.individualsForm.get('clientPhoneNumber') as FormControl;\n }\n\n get clientCountryCode() {\n return this.individualsForm.get('clientCountryCode') as FormControl;\n }\n\n get clientEmailAddress() {\n return this.individualsForm.get('clientEmailAddress') as FormControl;\n }\n\n get productTypes() {\n return this.individualsForm.get('productTypes') as FormControl;\n }\n\n get secondAgentCode() {\n return this.individualsForm.get('secondAgentCode') as FormControl;\n }\n\n get isChangedAnyValues() {\n if (this.defaultFormGroupValues) {\n if (\n !(\n this.defaultFormGroupValues.customerSurname === this.customerSurname.value &&\n this.defaultFormGroupValues.customerGivenName === this.customerGivenName.value &&\n this.defaultFormGroupValues.idType === this.idType.value &&\n this.defaultFormGroupValues.hkidOrPassportNo === this.hkidOrPassportNo.value &&\n this.defaultFormGroupValues.clientEmailAddress === this.clientEmailAddress.value &&\n this.defaultFormGroupValues.clientCountryCode === this.clientCountryCode.value &&\n this.defaultFormGroupValues.clientPhoneNumber === this.clientPhoneNumber.value &&\n this.defaultFormGroupValues.preferredLanguage === this.preferredLanguage.value &&\n arraysAreEqual(this.defaultFormGroupValues.productTypes.value, this.productTypes.value) &&\n this.relevantRegulatedActivitiesValue === '' &&\n this.defaultFormGroupValues.secondAgentCode === this.secondAgentCode.value\n )\n ) {\n return true;\n }\n }\n return false;\n }\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private languageChangeService: LanguageChangeService,\n private cdsPopup: CdPopupService,\n private validateService: ValidateService,\n private notifyService: NotifyService\n ) {}\n\n hKIDPassportNoChange() {\n this.hkidOrPassportNo.setValue('');\n this.hkidOrPassportNo.updateValueAndValidity();\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value?.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n\n if (/^[a-zA-Z]{1,2}\\d{6}\\([aA\\d]\\)$/.exec(value)) {\n if (this.idType.value === '0') {\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/hkidCheckDigit`, { hkId: value.trim() }).subscribe({\n next: res => {\n if (!(res.result === 0 && res.data)) {\n this.hkidOrPassportNo.setErrors({ hkidFormatError: true });\n }\n },\n error: err => {\n this.hkidOrPassportNo.setErrors({ hkidFormatError: true });\n this.alert.error('Error!', err);\n },\n });\n }\n }\n }\n\n clientCountryCodeChange() {\n this.clientPhoneNumber.updateValueAndValidity();\n }\n\n clientContactChange() {\n this.preferredLanguage.setValue(undefined);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n this.cdRadioPreferredLanguage?.refreshConfig();\n if (this.clientContact === 'E') {\n this.clientPhoneNumber.updateValueAndValidity();\n }\n }\n\n lanSubjectChange = (lan: string) => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n\n this.clientContactConfig = {\n options: [\n {\n label: this.cdsLangService.translate('generate.md.email'),\n value: 'E',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('generate.md.phoneNumber'),\n value: 'M',\n disable: false,\n },\n ],\n };\n\n this.idTypeConfigOptions = [\n { label: this.cdsLangService.translate('generate.md.hkid'), value: '0' },\n { label: this.cdsLangService.translate('generate.md.passport-no'), value: '1' },\n ];\n\n this.refreshSecondAgentClientContactConfig();\n this.refreshRelevantRegulatedActivitiesConfig();\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n this.refreshSecondAgentLanguageConfig();\n };\n\n private refreshSecondAgentLanguageConfig() {\n this.secondAgentLanguageConfig.options[0].label = this.cdsLangService.translate('common.chinese');\n this.secondAgentLanguageConfig.options[1].label = this.cdsLangService.translate('common.english');\n this.radioSecondAgentLanguage?.refreshConfig();\n }\n\n private refreshSecondAgentRelevantRegulatedActivitiesConfig() {\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].label = this.cdsLangService.translate('common.yes');\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].label = this.cdsLangService.translate('common.no');\n this.radioSecondAgentRelevantRegulatedActivities?.refreshConfig();\n }\n\n private beforeunload = (event: BeforeUnloadEvent) => {\n if (this.isChangedAnyValues) {\n event.preventDefault();\n event.returnValue = '';\n }\n };\n\n private popstate = () => {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLoseInputComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n } else {\n history.pushState(null, '', document.URL);\n }\n });\n };\n\n ngOnInit(): void {\n window.addEventListener('beforeunload', this.beforeunload);\n history.pushState(null, '', document.URL);\n window.addEventListener('popstate', this.popstate);\n\n this.tabIndex = Number(this.route.snapshot.paramMap.get('tabIndex'));\n this.prodType = (this.route.snapshot.paramMap.get('prodType') as SalesJourneyProdType) || undefined;\n\n this.domain = (this.route.snapshot.paramMap.get('domain') as Domain) || undefined;\n this.defaultFormGroupValues = {\n customerSurname: '',\n customerGivenName: '',\n idType: '0',\n hkidOrPassportNo: '',\n clientEmailAddress: '',\n clientCountryCode: '852',\n clientPhoneNumber: '',\n preferredLanguage: '',\n productTypes: { value: [], disabled: false },\n secondAgentCode: '',\n };\n if (this.domain === Domain.sep) {\n this.defaultFormGroupValues.productTypes.value.push(ProductType.SEP);\n }\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(this.lanSubjectChange);\n\n this.individualsForm = new FormGroup({\n customerSurname: new FormControl(this.defaultFormGroupValues.customerSurname, [Validators.required]),\n customerGivenName: new FormControl(this.defaultFormGroupValues.customerGivenName, [Validators.required]),\n idType: new FormControl(this.defaultFormGroupValues.idType),\n hkidOrPassportNo: new FormControl(this.defaultFormGroupValues.hkidOrPassportNo, [Validators.required, this.indFormHkidOrPassportNoVali]),\n clientEmailAddress: new FormControl(this.defaultFormGroupValues.clientEmailAddress, [this.clientEmailVali]),\n clientCountryCode: new FormControl(this.defaultFormGroupValues.clientCountryCode),\n clientPhoneNumber: new FormControl(this.defaultFormGroupValues.clientPhoneNumber, [this.idFormClientPhoneNumberVali]),\n preferredLanguage: new FormControl(this.defaultFormGroupValues.preferredLanguage, [this.idFormPreferredLanguageVali]),\n productTypes: new FormControl(this.defaultFormGroupValues.productTypes, [Validators.required]),\n secondAgentCode: new FormControl(this.defaultFormGroupValues.secondAgentCode, {\n asyncValidators: [this.validateService.agentValidate],\n }),\n });\n }\n\n ngOnDestroy(): void {\n this.lanChangeSubscription?.unsubscribe();\n window.removeEventListener('beforeunload', this.beforeunload);\n window.removeEventListener('popstate', this.popstate);\n }\n\n idFormPreferredLanguageVali = (control: AbstractControl): ValidationErrors | null => {\n if ((this.clientContact === 'M' && control.value) || this.clientContact === 'E' || !this.clientContact) {\n return null;\n }\n return { formatError: true };\n };\n\n clientEmailVali = (option: AbstractControl): ValidationErrors | null => {\n if (this.clientContact === 'E') {\n if (!option.value) {\n return { required: true };\n }\n\n if (typeof option.value === 'string') {\n return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.exec(option.value) ? null : { email: true };\n }\n }\n return null;\n };\n\n idFormClientPhoneNumberVali = (option: AbstractControl): ValidationErrors | null => {\n if (this.clientContact === 'M') {\n if (!option.value) {\n return { required: true };\n }\n\n if (typeof option.value === 'string') {\n if (['852', '853'].includes(this.clientCountryCode.value)) {\n if (option.value.length === 8 && ['4', '5', '6', '7', '8', '9'].includes(option.value.substring(0, 1))) {\n return null;\n }\n }\n\n if (['86'].includes(this.clientCountryCode.value)) {\n if (option.value.length === 11) {\n const e = this.CN_PHONE.test(option.value);\n if (e) {\n return null;\n }\n }\n }\n\n if (!['852', '853', '86'].includes(this.clientCountryCode.value)) {\n return null;\n }\n }\n\n return { errorPhoneNumber: true };\n }\n\n return null;\n };\n\n indFormHkidOrPassportNoVali = (control: AbstractControl): ValidationErrors | null => {\n if (control.value === '' || control.value == undefined) {\n return null;\n }\n let input: string = control.value;\n input = input.trim();\n let isValid: RegExpExecArray | null | boolean;\n if (this.individualsForm?.get('idType')?.value === '1') {\n isValid = /^[a-zA-Z0-9()-]*$/.exec(input);\n return isValid ? null : { passportFormatError: true };\n } else {\n isValid = /^[a-zA-Z]{1,2}\\d{6}\\([aA\\d]\\)$/.exec(input);\n return isValid ? null : { hkidFormatError: true };\n }\n };\n\n onBack() {\n if (!this.isChangedAnyValues) {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n } else {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLoseInputComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n }\n });\n }\n }\n\n reset() {\n if (!this.isChangedAnyValues) {\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(ResetWarningComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(this.resetWarningComponentPopupCloseCall);\n }\n\n resetWarningComponentPopupCloseCall = (confirm: { agree: boolean }) => {\n if (confirm.agree) {\n this.secondAgentCodeError = false;\n this.individualsForm.reset(this.defaultFormGroupValues);\n this.productTypes.setValue(this.defaultFormGroupValues.productTypes.value);\n this.isTryConfirm = false;\n this.relevantRegulatedActivitiesValue = '';\n this.resetDatePicker = true;\n this.clientContact = '';\n this.secondAgentInfo = undefined;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n };\n\n backToEdit1() {\n this.show = Show.individuals;\n this.isTryConfirm = false;\n this.isConfirming = false;\n this.setRelevantRegulatedActivitiesEnable();\n pageToTop();\n setTimeout(() => {\n this.productTypes.enable();\n }, 0);\n }\n\n backToEdit2() {\n if (this.secondAgentInfo) {\n this.show = Show.intermediary;\n if (this.relevantRegulatedActivitiesValue === 'n') {\n this.secondAgentRelevantRegulatedActivities = 'N';\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n } else {\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n }\n } else {\n this.isTryConfirm = false;\n this.isConfirming = false;\n this.setRelevantRegulatedActivitiesEnable();\n setTimeout(() => {\n this.productTypes.enable();\n }, 0);\n }\n pageToTop();\n }\n\n next() {\n if (this.isDisableNext) {\n return;\n }\n this.isTryConfirm = true;\n this.secondAgentInfo = undefined;\n this.secondAgentRelevantRegulatedActivities = '';\n this.secondAgentLanguage = '';\n this.secondAgentClientContact = '';\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = false;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = false;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n\n if (this.individualsForm.valid) {\n if (this.secondAgentCode.value) {\n this.getAgentInfoByAgentCode(this.secondAgentCode.value)\n .then(agentInfo => {\n this.isConfirming = true;\n this.productTypes.disable();\n this.setRelevantRegulatedActivitiesDisable();\n this.show = Show.intermediary;\n pageToTop();\n if (this.relevantRegulatedActivitiesValue === 'n') {\n this.secondAgentRelevantRegulatedActivities = 'N';\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n }\n\n this.secondAgentInfo = agentInfo;\n this.refreshSecondAgentClientContactConfig();\n })\n .catch(() => {\n this.secondAgentCodeError = true;\n return;\n });\n } else {\n this.isConfirming = true;\n this.productTypes.disable();\n this.setRelevantRegulatedActivitiesDisable();\n pageToTop();\n }\n }\n }\n\n private refreshSecondAgentClientContactConfig() {\n if (!this.secondAgentInfo) {\n return;\n }\n this.secondAgentInfo.shortEmail = '';\n if (this.secondAgentInfo.emailAddress) {\n const ea = this.secondAgentInfo.emailAddress || '';\n const endIndex = ea.indexOf('@');\n this.secondAgentInfo.shortEmail = ea.substring(0, 4) + '*****' + ea.substring(endIndex);\n }\n this.secondAgentInfo.shortPhone = '';\n if (this.secondAgentInfo.mobileNumber && this.secondAgentInfo.mobileNumber.length) {\n this.secondAgentInfo.shortPhone = '****' + this.secondAgentInfo.mobileNumber.slice(4);\n }\n\n this.secondAgentClientContactConfig = {\n options: [\n {\n label: `${this.cdsLangService.translate('generate.md.registered-email-address')}${\n this.secondAgentInfo.shortEmail ? ' (' + this.secondAgentInfo.shortEmail + ')' : ''\n }`,\n value: 'E',\n disable: !this.secondAgentInfo.shortEmail,\n },\n {\n label: `${this.cdsLangService.translate('generate.md.registered-phone-number')}${\n this.secondAgentInfo.shortPhone ? ' (+852) ' + this.secondAgentInfo.shortPhone : ''\n }`,\n value: 'M',\n disable: !this.secondAgentInfo.shortPhone,\n },\n ],\n };\n\n if (!this.secondAgentInfo.shortEmail && this.secondAgentInfo.shortPhone) {\n this.secondAgentClientContact = 'M';\n } else if (this.secondAgentInfo.shortEmail && !this.secondAgentInfo.shortPhone) {\n this.secondAgentClientContact = 'E';\n }\n this.radioSecondAgentClientContact?.refreshConfig();\n }\n\n private getAgentInfoByAgentCode(agentCode: string) {\n this.notifyService.screenLoadingSubject.next(true);\n return new Promise((resolve, reject) => {\n this.cdHttpServeService.post(`/ext/eb-ssms/agent-service/agent/infos/agentCd`, [agentCode]).subscribe({\n next: res => {\n if (res.result === 0) {\n if (res.data && res.data.length) {\n resolve(res.data[0]);\n }\n }\n reject();\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: () => {\n reject();\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n });\n }\n\n private refreshRelevantRegulatedActivitiesConfig() {\n this.relevantRegulatedActivitiesConfig.options[0].label = this.cdsLangService.translate('common.yes');\n this.relevantRegulatedActivitiesConfig.options[1].label = this.cdsLangService.translate('common.no');\n this.radioRelevantRegulatedActivities?.refreshConfig();\n }\n\n private setRelevantRegulatedActivitiesDisable() {\n this.relevantRegulatedActivitiesConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: true,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: true,\n },\n ],\n };\n this.radioRelevantRegulatedActivities?.refreshConfig();\n }\n\n private setRelevantRegulatedActivitiesEnable() {\n this.relevantRegulatedActivitiesConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: 'y',\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: 'n',\n disable: false,\n },\n ],\n };\n this.radioRelevantRegulatedActivities?.refreshConfig();\n }\n\n isAllowPast() {\n if (this.relevantRegulatedActivitiesValue === '' || !this.customerSurname || !this.customerGivenName) {\n return false;\n }\n\n if (this.idType.value === '0' && !this.hkidOrPassportNo.valid) {\n return false;\n }\n\n if (this.clientContact === '') {\n return false;\n }\n if (this.clientContact === 'E' && !this.clientEmailAddress.valid) {\n return false;\n } else if (this.clientContact === 'M' && !this.clientPhoneNumber.valid) {\n return false;\n }\n\n return true;\n }\n\n get isDisableNext() {\n return this.individualsForm.invalid || this.clientContact === '' || this.relevantRegulatedActivitiesValue === '';\n }\n\n get isDisableIntermediaryNext() {\n if (this.secondAgentRelevantRegulatedActivities === '') {\n return true;\n }\n if (this.secondAgentRelevantRegulatedActivities === 'Y') {\n if (this.secondAgentClientContact === '') {\n return true;\n }\n if (this.secondAgentClientContact === 'M' && this.secondAgentLanguage === '') {\n return true;\n }\n }\n return false;\n }\n\n secondAgentClientContactChange() {\n this.secondAgentLanguage = '';\n }\n\n intermediaryNext() {\n if (this.isDisableIntermediaryNext) {\n return;\n }\n this.isConfirming = true;\n this.show = Show.individuals;\n this.setRelevantRegulatedActivitiesDisable();\n this.secondAgentRelevantRegulatedActivitiesConfig.options[0].disable = true;\n this.secondAgentRelevantRegulatedActivitiesConfig.options[1].disable = true;\n this.refreshSecondAgentRelevantRegulatedActivitiesConfig();\n pageToTop();\n }\n\n get getSecondAgentLanguage() {\n if (this.secondAgentLanguage === 'ZH') {\n return this.secondAgentLanguageConfig.options[0].label;\n } else if (this.secondAgentLanguage === 'EN') {\n return this.secondAgentLanguageConfig.options[1].label;\n }\n return undefined;\n }\n\n submit() {\n const params: AddMemberParams = {\n lastName: this.customerSurname.value,\n fastName: this.customerGivenName.value,\n };\n if (this.idType.value === '0') {\n params.hkId = this.hkidOrPassportNo.value;\n } else {\n params.passportNo = this.hkidOrPassportNo.value;\n }\n if (this.clientContact === 'E') {\n params.commChannel = 'EMAIL';\n params.email = this.clientEmailAddress.value;\n } else {\n params.commChannel = 'SMS';\n params.phoneCountry = this.clientCountryCode.value;\n params.phone = this.clientPhoneNumber.value;\n params.language = this.preferredLanguage.value === PreferredLanguageType.Chinese ? 'CN' : 'EN';\n }\n params.isRegulatedActivities = this.relevantRegulatedActivitiesValue === 'y';\n params.productTypes = this.productTypes.value;\n\n if (this.secondAgentInfo) {\n params.secondAgent = {};\n params.secondAgent.agentCode = this.secondAgentInfo.agentCode;\n params.secondAgent.isRegulatedActivities = this.secondAgentRelevantRegulatedActivities === 'Y';\n if (params.secondAgent.isRegulatedActivities) {\n params.secondAgent.commChannel = this.secondAgentClientContact === 'E' ? 'EMAIL' : 'SMS';\n if (this.secondAgentClientContact === 'M') {\n params.secondAgent.language = this.secondAgentLanguage === 'EN' ? 'EN' : 'CN';\n }\n }\n }\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{\n mainId: string;\n ids: JSON;\n }>(`/ext/eb-ssms-sales-journey-service/md/add/member`, params)\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (this.secondAgentRelevantRegulatedActivities === 'Y') {\n this.cdsPopup\n .open(PendingSplitAgentConfirPopupComponent, {\n size: 'md',\n data: {\n mdNo: res.data.mainId,\n ids: res.data.ids ? Object.values(res.data.ids) : [],\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: 0,\n prodType: this.domain === Domain.sep ? SalesJourneyProdType.SEP : SalesJourneyProdType.Individual,\n },\n ]);\n });\n } else {\n this.cdsPopup\n .open(HasBeenSentCustomerPopupComponent, {\n size: 'md',\n data: {\n mdNo: res.data.mainId,\n ids: res.data.ids ? Object.values(res.data.ids) : [],\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: 0,\n prodType: this.domain === Domain.sep ? SalesJourneyProdType.SEP : SalesJourneyProdType.Individual,\n },\n ]);\n });\n }\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n}\n","
    \n
    \n
    \n \n
    \n Exit and back to MD_IFF Summary Page\n
    \n
    \n Generate eIFF Reference Number\n
    \n\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.individuals' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.sep' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.mpf-intermediary-fulfillment' | lang }}\n
    \n
    \n 請填寫以下資料以完成聲明\n
    \n\n
    \n \n
      \n
    • \n {{ 'generate.md.I-declare-that' | lang }}\n
    • \n
    • \n {{ 'generate.md.agents-should-no1' | lang }}\n {{ 'generate.md.agents-should-no2' | lang }}\n
    • \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.clientDetails' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.clientName' | lang }}*:\n
    \n
    \n {{ customerSurname.value }} {{ customerGivenName.value }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n {{ 'generate.md.fullNameError' | lang }}\n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.clientHKIDorPass' | lang }}*:\n
    \n
    \n ({{ individualsForm.get('idType')?.value === '0' ? 'HKID' : 'Passport No.' }}) {{ individualsForm.get('hkidOrPassportNo')?.value }}\n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n \n {{ 'generate.md.pleaseInputHkid' | lang }}\n \n \n
    \n
    \n \n \n {{ 'generate.md.hkidInvalid' | lang }}\n \n \n
    \n
    \n \n \n {{ 'generate.md.passportNoInvalid' | lang }}\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'generate.md.clientEmailorPhone' | lang }}*:\n
    \n
    \n {{ individualsForm.get('clientEmailAddress')?.value }}\n (+{{ individualsForm.get('clientCountryCode')?.value }}) {{ individualsForm.get('clientPhoneNumber')?.value }}\n
    \n
    \n
    \n \n
    \n {{\n 'generate.md.pleaseSelCustomerContactType' | lang\n }}\n
    \n
    \n
    \n
    \n \n {{\n 'generate.md.pleaseInputValidEmail' | lang\n }}\n {{\n 'generate.md.pleaseInputCustomerEmail' | lang\n }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n {{ 'generate.md.pleaseInputValidMobileNumber' | lang }}\n \n \n
    \n
    \n \n \n {{ 'generate.md.pleaseInputPhoneNumber' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}*:\n
    \n
    \n {{ (preferredLanguage.value === PreferredLanguageType.English ? 'common.english' : 'common.chinese') | lang }}\n
    \n
    \n \n \n {{ 'generate.md.please-select-language' | lang }} \n
    \n
    \n
    \n
    \n
    \n {{ 'generate.md.pleaseEnsure' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.MPFIntermediary' | lang }}\n
    \n
    \n \n
    \n
    \n {{\n 'generate.md.pleaseSelectRelevantRegulatedActivities' | lang\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.2ndMPFIntermediary' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.addMPFIntermediary' | lang }}:\n
    \n
    \n {{ secondAgentCode.value }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n {{ 'generate.md.2nd-invalid-agent-code' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.2nd-MPF-intermediary-details' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-code' | lang }}:\n
    \n
    \n {{ secondAgentInfo.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-name' | lang }}:\n
    \n
    \n {{ getSecondAgentName }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.clientEmailorPhone' | lang }}:\n
    \n
    \n {{ secondAgentClientContact === 'E' ? secondAgentInfo.shortEmail : '(+852) ' + secondAgentInfo.shortPhone }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}:\n
    \n
    \n {{ getSecondAgentLanguage }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    {{ 'generate.md.mpf-intermediary' | lang }}
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n {{ 'generate.md.product' | lang }}*\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.reset1' | lang }}\n
    \n
    \n {{ 'common.next' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'common.confirmAndSubmit' | lang }}\n
    \n {{ 'generate.md.no-changes-submitted' | lang }}\n
    \n
    \n
    \n \n \n\n\n
    \n
    \n
    \n \n
    \n Exit and back to MD_IFF Summary Page\n
    \n
    \n Generate eIFF Reference Number\n
    \n\n
    \n
    \n \n
    \n {{ 'generate.md.individuals' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.sep' | lang }}\n
    \n
    \n
    \n {{ 'generate.md.split-agent-declaration' | lang }}\n
    \n
    \n {{ 'generate.md.addMPFIntermediary' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.2nd-MPF-intermediary-details' | lang }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-code' | lang }}:\n
    \n
    \n {{ secondAgentInfo?.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.agent-name' | lang }}:\n
    \n
    \n {{ getSecondAgentName }}\n
    \n
    \n
    \n
    \n {{ 'generate.md.relevantRegulatedActivities' | lang }}\n
    \n
    {{ 'generate.md.mpf-intermediary' | lang }}
    \n
    \n \n
    \n \n
    \n \n
    \n \n {{ 'generate.md.mpf-declaration-will' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'generate.md.choose-the-following-registered' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'generate.md.selectLanguage' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'common.next' | lang }}\n
    \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-pending-split-agent-confir-popup',\n templateUrl: './pending-split-agent-confir-popup.component.html',\n styleUrls: ['./pending-split-agent-confir-popup.component.scss'],\n})\nexport class PendingSplitAgentConfirPopupComponent implements OnInit {\n buttonConfig: CdsButtonConfig = {\n size: 'md',\n style: 'primary',\n disabled: false,\n };\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n ids: [];\n }\n ) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n \n
    \n
    \n \n {{ 'generate.md.pending-split-agent' | lang }}\n \n
    \n
    \n {{ 'generate.md.no-changes-submitted' | lang }}\n
    \n
    \n {{ 'generate.md.iff-reference-number' | lang }}\n
    \n
    \n
    \n {{ item }}\n
    \n \n
    \n
    \n \n
    \n
    \n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\n\nexport enum Domain {\n individual = 'individual',\n employer = 'employer',\n sep = 'sep',\n}\n\n@Component({\n selector: 'app-select-product-type-for-md',\n templateUrl: './select-product-type-for-md.component.html',\n styleUrls: ['./select-product-type-for-md.component.scss'],\n})\nexport class SelectProductTypeForMdComponent implements OnInit, OnDestroy {\n Domain = Domain;\n domain = Domain.individual;\n @ViewChild('displayContent') displayContent!: ElementRef;\n currentStep = 1;\n isScrollBottom = false;\n tabIndex!: number;\n prodType?: SalesJourneyProdType;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n\n onScoll = () => {\n const scrollHeight = this.displayContent.nativeElement.scrollHeight;\n const clientHeight = this.displayContent.nativeElement.clientHeight;\n\n if (!this.isScrollBottom && this.displayContent.nativeElement.scrollTop > scrollHeight - clientHeight - 10) {\n this.isScrollBottom = true;\n }\n };\n\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n ngOnInit(): void {\n this.tabIndex = Number(this.route.snapshot.paramMap.get('tabIndex'));\n this.prodType = (this.route.snapshot.paramMap.get('prodType') as SalesJourneyProdType) || undefined;\n }\n\n ngOnDestroy(): void {\n this.displayContent?.nativeElement.removeEventListener('scroll', this.onScoll);\n }\n\n toEdit() {\n if (!this.isScrollBottom) {\n return;\n }\n if (this.domain === Domain.individual) {\n this.router.navigate(['/salesjourney/generate-md/individual', { domain: Domain.individual, tabIndex: this.tabIndex, prodType: this.prodType }]);\n } else if (this.domain === Domain.sep) {\n this.router.navigate(['/salesjourney/generate-md/individual', { domain: Domain.sep, tabIndex: this.tabIndex, prodType: this.prodType }]);\n } else {\n this.router.navigate([\n '/salesjourney/generate-md/employer',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n }\n }\n\n showDeclaration(domain: Domain) {\n this.domain = domain;\n this.currentStep = 2;\n setTimeout(() => {\n this.displayContent?.nativeElement.addEventListener('scroll', this.onScoll);\n }, 0);\n }\n\n onBack() {\n this.router.navigate([\n '/salesjourney/md-iff-summary',\n {\n tabIndex: this.tabIndex,\n prodType: this.prodType,\n },\n ]);\n }\n\n backPrePage() {\n this.currentStep = 1;\n this.isScrollBottom = false;\n }\n}\n","
    \n
    \n
    \n \n
    \n Exit and back to MD_IFF Summary Page\n
    \n
    \n Generate eIFF Reference Number\n
    \n\n
    \n
    \n Select Product Type \n
    \n\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.individuals' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.employer' | lang }}\n
    \n
    \n
    \n \n
    \n {{ 'generate.md.sep' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n *Remarks: Individual includes product PA, TVC & SVC.\n
    \n
    \n
    \n\n
    \n
    \n {{ 'Declaration.header' | lang }}\n
    \n
    \n
    \n \n {{ 'Declaration.headersub1' | lang }}\n \n\n
    \n \n {{ 'Declaration.headersub3' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodydis' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysuba' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubb' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubc' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubd' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodyadmin' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodycommon' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysube' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubf' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodyother' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodycommon2' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubg' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubh' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodysubi' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodyimportant' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodynotice' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodynoticesub1' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodynoticesuba' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodynoticesubb' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodynoticesubc' | lang }}\n \n
    \n\n
    \n \n {{ 'Declaration.bodynoticesubd' | lang }}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-iff-completion-steps-popup',\n templateUrl: './iff-completion-steps-popup.component.html',\n styleUrls: ['./iff-completion-steps-popup.component.scss'],\n})\nexport class IffCompletionStepsPopupComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n}\n","
    \n
    \n IFF Completion Steps\n
    \n
    \n
    \n
    \n 1\n
    \n
    \n
    \n Agent MD Form Completed\n
    \n
    \n
    \n
    \n
    \n 2\n
    \n
    \n
    \n Client MD Form Completed\n
    \n
    \n
    \n
    \n
    \n 3\n
    \n
    \n
    \n eMPF Completed\n
    \n
    \n
    \n
    \n
    \n 4\n
    \n
    \n
    \n Agent IFF Completed\n
    \n
    \n
    \n
    \n
    \n 5\n
    \n
    \n
    \n Client IFF Completed\n
    \n
    \n
    \n Got it\n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, OnInit, ElementRef, ViewChild, QueryList, ViewChildren } from '@angular/core';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { IffDeclinedReasonList, ProductTypeList } from './iff-declined-dashboard.config';\nimport { AdviseEmpfrefComponent } from '../case-summary/advise-empfref/advise-empfref.component';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { getFilterParams } from 'src/app/utils/utils';\nimport moment from 'moment';\nimport { CdsChartColor } from '@cds/ng-charts/core';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { TrusteeDetailsPopupComponent } from 'src/app/components/trustee-details-popup/trustee-details-popup.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { FileType, aoaToSheet } from 'src/app/utils/xlsx';\nimport { IffDeclinedDashboardService } from './iff-declined-dashboard.service';\nimport { Router } from '@angular/router';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\nimport { ResolvePopupComponent } from './resolve-popup/resolve-popup.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdsOption } from '@cds/ng-core/configuration';\n\nenum ResolvedStatus {\n all = 0,\n resolved = 1,\n unresolved = 2,\n}\n\ninterface RequestParams {\n resolvedStatus: ResolvedStatus;\n iffDeclineDateFrom: string;\n iffDeclineDateTo: string;\n iffExpiryDateFrom: string;\n iffExpiryDateTo: string;\n productType: string[];\n districtCode: string[];\n agentCode: string;\n ABMs: string[];\n declineReasons: number[];\n empfStatus: number[];\n page: number;\n size: number;\n}\n\ninterface RecordItem {\n empfRefNo: string;\n districtCd: string;\n agentCd: string;\n productType: string;\n clientOrEmployerName: string;\n hkidOrPassportNoOrBrNo: string;\n declineReason: string[];\n iffDeclineDt: string;\n iffExpiryDt: string;\n iffSubChannel: 'paper IFF' | 'eIFF';\n transferInDetails: string;\n salesJourneySummaryId: string;\n resolvedBy: string;\n resolvedDt: string;\n resovled: boolean;\n}\n\ninterface DeclinedReasonData {\n color: string;\n declinedReason: string;\n noOfCases: number;\n percentage: string;\n}\n\n@Component({\n selector: 'app-iff-declined-dashboard',\n templateUrl: './iff-declined-dashboard.component.html',\n styleUrls: ['./iff-declined-dashboard.component.scss'],\n})\nexport class IffDeclinedDashboardComponent implements OnInit, AfterViewInit {\n ResolvedStatus = ResolvedStatus;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n @ViewChildren('tooltip') tooltipList!: QueryList>;\n iffDeclinedReasonList = IffDeclinedReasonList;\n productTypeList = ProductTypeList;\n excelDisplayedColumns = [\n 'empfRefNo',\n 'districtCd',\n 'agentCd',\n 'productType',\n 'clientOrEmployerName',\n 'hkidOrPassportNoOrBrNo',\n 'declineReason',\n 'iffDeclineDt',\n 'iffExpiryDt',\n 'iffSubChannel',\n 'transferInDetails',\n 'emailTriggeredBy',\n 'emailTriggeredDt',\n 'resolvedBy',\n 'resolvedDt',\n ];\n displayedColumns = [\n 'empfRefNo',\n 'districtCd',\n 'agentCd',\n 'productType',\n 'clientOrEmployerName',\n 'hkidOrPassportNoOrBrNo',\n 'declineReason',\n 'iffDeclineDt',\n 'iffExpiryDt',\n 'iffSubChannel',\n 'transferInDetails',\n 'action',\n ];\n exportColumns = [\n 'eMPF Ref#',\n 'District Code',\n 'Agent Code',\n 'Product Type',\n 'Client / Employer name',\n 'HKID/Passport No.',\n 'Declined reason',\n 'IFF Declined Date',\n 'IFF Expiry Date',\n 'IFF submission channel',\n 'Transfer-in Details',\n 'Who Triggered The Email',\n 'Email Triggered Date',\n 'Who Resolved It',\n 'Resolved Date',\n ];\n data?: {\n label: string;\n value: number;\n tooltip?: string;\n }[];\n isLoadPieChart = true;\n declinedReasonData: DeclinedReasonData[] = [\n {\n color: 'rgba(0, 167, 88, 1)',\n declinedReason: 'iff-declined-dashboard.case-cannot-match-with-e-data',\n noOfCases: 0,\n percentage: 'N/A',\n },\n {\n color: 'rgba(0, 0, 193, 1)',\n declinedReason: 'iff-declined-dashboard.client-hp-no-mis-with-e-data',\n noOfCases: 0,\n percentage: 'N/A',\n },\n {\n color: 'rgba(236, 100, 83, 1)',\n declinedReason: 'iff-declined-dashboard.employer-name-mismatched-with-eMPF-ddata',\n noOfCases: 0,\n percentage: 'N/A',\n },\n {\n color: 'rgba(40, 43, 62, 1)',\n declinedReason: 'iff-declined-dashboard.br-no-mis-with-e-data',\n noOfCases: 0,\n percentage: 'N/A',\n },\n {\n color: 'rgba(215, 125, 40, 1)',\n declinedReason: 'iff-declined-dashboard.agent-inf-mis-with-e-data',\n noOfCases: 0,\n percentage: 'N/A',\n },\n ];\n abmStatusoptionsOrigin: CdMultidropdownTopping[] = [];\n declinedReasonColumns: string[] = ['declinedReason', 'noOfCases', 'percentage'];\n requestParams!: RequestParams;\n abmOptionList: CdsOption[] = [];\n requestParamsForPageChange?: RequestParams;\n infoIcon = ActionIcons.info_1;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n iffDeclineDateFromMax!: Date;\n iffDeclineDateToMax!: Date;\n iffDeclineDateToMin!: Date;\n iffExpiryDateFromMax: Date = new Date('9000/01/01');\n iffExpiryDateToMin: Date = new Date('2000/01/01');\n resetDatePicker = false;\n chartColors: CdsChartColor[] = [\n { r: 0, g: 167, b: 88 },\n { r: 0, g: 0, b: 193 },\n { r: 236, g: 100, b: 83 },\n { r: 40, g: 43, b: 62 },\n { r: 215, g: 125, b: 40 },\n ];\n\n iffDeclinedReasonOrigin: CdMultidropdownTopping[] = [];\n productTypeOrigin: CdMultidropdownTopping[] = [];\n isLoading = false;\n allPageData: RecordItem[][] = [];\n currentPageNumOrigin = 1;\n totalElements = 0;\n totalPages = 0;\n districtCodeValue = '';\n iffDeclineDateFromError = false;\n iffDeclineDateToError = false;\n iffExpiryDateFromError = false;\n iffExpiryDateToError = false;\n today = new Date();\n readonly thirtyToToday = moment(new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000).getTime())\n .startOf('day')\n .toDate();\n isCsvDownLoading = false;\n isCsvClickX = false;\n total = 0;\n resolveStatusSelected = ResolvedStatus.all;\n stepperTarget: 'pc' | 'ipad' = 'pc';\n uniqueCaseCount?: number;\n\n constructor(\n private cdsPopup: CdsPopupService,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n public iffDeclinedDashboardService: IffDeclinedDashboardService,\n private router: Router,\n private notifyService: NotifyService\n ) {}\n\n loadMailtoUrl(iffDeclinedReasons: string, referenceNo: string, productType: string) {\n const mailtoUrl =\n 'mailto:?subject=請跟進被駁回的電子中介人履行職務表格!&body=' +\n // 'Dear Agent:' +\n // '%0D%0A%0D%0A%0D%0APreviously you had been informed that a submitted MPF MPF Intermediary Fulfillment Form is rejected, please follow up as soon as possible to secure your rights as a servicing agent.' +\n // '%0D%0A%0D%0AThe below submitted MPF Intermediary Fulfillment Form is rejected due to ' +\n // iffDeclinedReasons +\n // '. Please click below link now to login to iPension http://www.ssms.com.hk' +\n // '%0D%0A%0D%0Aand submit the eIFF again.' +\n // '%0D%0A%0D%0AThe eMPF application information are listed as follows.' +\n // '%0D%0A%0D%0A%0D%0AClient Name:' +\n // '%0D%0A%0D%0AeMPF Reference no.: ' +\n // referenceNo +\n // '%0D%0A%0D%0AProduct Type: ' +\n // productType +\n // '%0D%0A%0D%0A%0D%0APlease refer to the following declined reasons and follow-up with client:' +\n // '%0D%0A%0D%0A%0D%0A*List of possible declined reasons:' +\n // '%0D%0A%0D%0A 1.Client HKID/Passport No. mismatched with eMPF data' +\n // '%0D%0A 2.Agent information mismatched with eMPF data' +\n // '%0D%0A 3.eMPF reference No. mismatched with eMPF data' +\n // '%0D%0A%0D%0A%0D%0AYours faithfully,' +\n // '%0D%0A%0D%0AHong Kong Retirement';\n // return mailtoUrl;\n\n '代理人:' +\n '%0D%0A%0D%0A較早前已通知您已遞交的電子中介人履行職務表格被駁回,請盡快跟進以保障您的中介人權益。' +\n '%0D%0A以下已遞交的電子中介人履行職務表格因 ' +\n iffDeclinedReasons +\n ' 而被駁回。' +\n '%0D%0A%0D%0A請您立即按以下連結登入iPension http://www.ssms.com.hk 及重新為此客戶確認强積金中介人聲明。請於遞交前小心核對所提供的資訊與積金易平台上客戶提近的申請資訊一致。' +\n '%0D%0A以下列出了被駁回的eMPF申請資訊詳情:' +\n '%0D%0A%0D%0A客戶名稱:' +\n '%0D%0A積金易參考編號:' +\n referenceNo +\n '%0D%0A戶口類別:' +\n productType;\n // '%0D%0A%0D%0A請參考下列被駁回的原因及與客戶跟進:';\n return mailtoUrl;\n }\n\n openOutlook(element: RecordItem) {\n const reasons = element.declineReason.map(reason => this.iffDeclinedDashboardService.iffDeclinedReasonMatch(reason)?.text);\n window.location.href = this.loadMailtoUrl(reasons.join(', '), element.empfRefNo, element.productType);\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/iffDeclineSummaries/emailTrigger', {\n salesJourneySummariesId: element.salesJourneySummaryId,\n empfRefNo: element.empfRefNo,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (this.requestParamsForPageChange) {\n this.requestParamsForPageChange.page = 1;\n this.search(this.requestParamsForPageChange);\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n ngOnInit(): void {\n this.getPieData();\n this.getUniqueCaseCount();\n this.initRequestParams();\n this.getABMList();\n const params = getFilterParams(this.requestParams);\n this.search(params);\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n onDisplayTrusteeDetailsPopup() {\n this.cdsPopup.open(TrusteeDetailsPopupComponent, {\n size: 'lg',\n });\n }\n\n addToSearchDistrictCodeList() {\n if (this.districtCodeValue) {\n if (!this.requestParams.districtCode.includes(this.districtCodeValue)) {\n this.requestParams.districtCode.push(this.districtCodeValue);\n this.districtCodeValue = '';\n }\n }\n }\n\n removeSearchDistrictCodeList(item: string) {\n this.requestParams.districtCode = this.requestParams.districtCode.filter(val => val !== item);\n }\n\n goCaseDetails(item: RecordItem) {\n const queryParams = {\n from: 'iffDeclinedDashboard',\n productType: item.productType,\n };\n this.router.navigate([\n '/salesjourney',\n item.productType === SalesJourneyProdType.Corperate ? 'case-details-er' : 'case-details',\n item.salesJourneySummaryId,\n item.empfRefNo,\n queryParams,\n ]);\n }\n\n pageChange(num: number): void {\n if (this.requestParamsForPageChange) {\n this.requestParamsForPageChange.page = num;\n this.search(this.requestParamsForPageChange);\n }\n }\n\n search(params: RequestParams) {\n const productType = this.productTypeOrigin.map(item => item.value);\n if (productType.length > 0) {\n params.productType = productType;\n }\n if (this.abmStatusoptionsOrigin.length > 0) {\n params.ABMs = this.abmStatusoptionsOrigin.map(item => item.value);\n }\n const declineReasons = this.iffDeclinedReasonOrigin.map(item => item.value);\n if (declineReasons.length > 0) {\n params.declineReasons = declineReasons;\n }\n this.requestParamsForPageChange = params;\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: RecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/iffDeclineSummaries', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n ngAfterViewInit(): void {\n if (window.matchMedia('only screen and (max-width: 1500px)').matches) {\n this.stepperTarget = 'ipad';\n } else {\n this.stepperTarget = 'pc';\n }\n\n const stopPropagation = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n this.tooltipList.changes.subscribe(() => {\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.removeEventListener('click', stopPropagation, false);\n });\n\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.addEventListener('click', stopPropagation, false);\n });\n });\n\n this.tooltipList.forEach(toolTip => {\n toolTip.nativeElement.addEventListener('click', stopPropagation, false);\n });\n }\n\n getPieData() {\n this.cdHttpServeService\n .post<{\n '0': number;\n '1': number;\n '2': number;\n '3': number;\n '4': number;\n '6': number;\n }>('/ext/eb-ssms-sales-journey-service/iffDeclineSummaries/pieData', {})\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const data = res.data;\n this.total = data['1'] + data['2'] + data['3'] + data['4'] + data['6'];\n\n setTimeout(() => {\n this.data = [\n {\n label: '',\n tooltip: this.cdsLangService.translate('iff-declined-dashboard.case-cannot-match-with-e-data'),\n value: data['1'],\n },\n {\n label: '',\n tooltip: this.cdsLangService.translate('iff-declined-dashboard.client-hp-no-mis-with-e-data'),\n value: data['2'],\n },\n {\n label: '',\n tooltip: this.cdsLangService.translate('iff-declined-dashboard.employer-name-mismatched-with-eMPF-ddata'),\n value: data['3'],\n },\n {\n label: '',\n tooltip: this.cdsLangService.translate('iff-declined-dashboard.br-no-mis-with-e-data'),\n value: data['4'],\n },\n {\n label: '',\n tooltip: this.cdsLangService.translate('iff-declined-dashboard.agent-inf-mis-with-e-data'),\n value: data['6'],\n },\n ];\n }, 0);\n\n this.declinedReasonData = [\n {\n color: 'rgba(0, 167, 88, 1)',\n declinedReason: 'iff-declined-dashboard.case-cannot-match-with-e-data',\n noOfCases: data['1'],\n percentage: this.declinedReasonDataPercentage(data['1'], this.total),\n },\n {\n color: 'rgba(0, 0, 193, 1)',\n declinedReason: 'iff-declined-dashboard.client-hp-no-mis-with-e-data',\n noOfCases: data['2'],\n percentage: this.declinedReasonDataPercentage(data['2'], this.total),\n },\n {\n color: 'rgba(236, 100, 83, 1)',\n declinedReason: 'iff-declined-dashboard.employer-name-mismatched-with-eMPF-ddata',\n noOfCases: data['3'],\n percentage: this.declinedReasonDataPercentage(data['3'], this.total),\n },\n {\n color: 'rgba(40, 43, 62, 1)',\n declinedReason: 'iff-declined-dashboard.br-no-mis-with-e-data',\n noOfCases: data['4'],\n percentage: this.declinedReasonDataPercentage(data['4'], this.total),\n },\n {\n color: 'rgba(215, 125, 40, 1)',\n declinedReason: 'iff-declined-dashboard.agent-inf-mis-with-e-data',\n noOfCases: data['6'],\n percentage: this.declinedReasonDataPercentage(data['6'], this.total),\n },\n ];\n }\n this.isLoadPieChart = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoadPieChart = false;\n },\n });\n }\n\n getUniqueCaseCount() {\n this.cdHttpServeService.post<{ count: number }>('/ext/eb-ssms-sales-journey-service/iffDeclineSummaries/uniqueCaseCount', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.uniqueCaseCount = res.data.count;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n declinedReasonDataPercentage(num: number, total: number) {\n if (total === 0) {\n return `0 %`;\n } else {\n return `${Math.round((num / total) * 100)} %`;\n }\n }\n\n initRequestParams() {\n this.iffDeclineDateFromMax = this.today;\n this.iffDeclineDateToMax = this.today;\n this.iffDeclineDateToMin = this.thirtyToToday;\n this.iffDeclineDateFromError = false;\n this.iffDeclineDateToError = false;\n this.iffExpiryDateFromError = false;\n this.iffExpiryDateToError = false;\n this.districtCodeValue = '';\n this.requestParams = {\n page: 1,\n size: 50,\n iffDeclineDateFrom: moment(this.thirtyToToday).format('DD/MM/YYYY'),\n iffDeclineDateTo: moment(this.today).format('DD/MM/YYYY'),\n iffExpiryDateFrom: '',\n iffExpiryDateTo: '',\n productType: [],\n districtCode: [],\n ABMs: [],\n agentCode: '',\n declineReasons: [],\n empfStatus: [],\n resolvedStatus: ResolvedStatus.all,\n };\n }\n\n get isDisableSearch() {\n return (\n (this.requestParams.iffDeclineDateFrom === '' &&\n this.requestParams.iffDeclineDateTo === '' &&\n this.requestParams.iffExpiryDateFrom === '' &&\n this.requestParams.iffExpiryDateTo === '' &&\n this.productTypeOrigin.length === 0 &&\n this.requestParams.districtCode.length === 0 &&\n this.requestParams.agentCode === '' &&\n this.requestParams.ABMs.length === 0 &&\n this.iffDeclinedReasonOrigin.length === 0) ||\n this.requestParams.iffDeclineDateFrom === ''\n );\n }\n\n onClickReset() {\n this.resolveStatusSelected = ResolvedStatus.all;\n this.productTypeOrigin = [];\n this.iffDeclinedReasonOrigin = [];\n this.requestParams.districtCode = [];\n this.requestParams.ABMs = [];\n this.abmStatusoptionsOrigin.length = 0;\n this.onResetDatePicker();\n this.initRequestParams();\n const params = getFilterParams(this.requestParams);\n this.search(params);\n }\n\n onResetDatePicker() {\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n this.resolveStatusSelected = ResolvedStatus.all;\n this.requestParams.page = 1;\n const params = getFilterParams(this.requestParams);\n this.search(params);\n }\n\n iffDeclineDateFromChange(value: string) {\n if (value === '') {\n this.iffDeclineDateFromError = false;\n return;\n }\n this.requestParams.iffDeclineDateFrom = value;\n const temp = this.requestParams.iffDeclineDateFrom.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n\n if (selectedDate.toString() === 'Invalid Date' || selectedDate > this.today) {\n this.iffDeclineDateFromError = true;\n return;\n }\n if (this.requestParams.iffDeclineDateTo) {\n const tempTo = this.requestParams.iffDeclineDateTo.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.iffDeclineDateFromError = true;\n return;\n }\n }\n this.iffDeclineDateFromError = false;\n\n this.iffDeclineDateToMin = selectedDate;\n }\n\n iffDeclineDateToChange(value: string) {\n if (value === '') {\n this.iffDeclineDateToError = false;\n return;\n }\n this.requestParams.iffDeclineDateTo = value;\n const temp = this.requestParams.iffDeclineDateTo.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date' || selectedDate > this.today || selectedDate < this.iffDeclineDateToMin) {\n this.iffDeclineDateToError = true;\n return;\n }\n if (this.requestParams.iffDeclineDateFrom) {\n const tempFrom = this.requestParams.iffDeclineDateFrom.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.iffDeclineDateToError = true;\n return;\n }\n }\n this.iffDeclineDateToError = false;\n\n this.iffDeclineDateFromMax = selectedDate;\n }\n\n iffExpiryDateFromChange(value: string) {\n if (value === '') {\n this.iffExpiryDateFromError = false;\n return;\n }\n this.requestParams.iffExpiryDateFrom = value;\n const temp = this.requestParams.iffExpiryDateFrom.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n\n if (selectedDate.toString() === 'Invalid Date') {\n this.iffExpiryDateFromError = true;\n return;\n }\n if (this.requestParams.iffExpiryDateTo) {\n const tempTo = this.requestParams.iffExpiryDateTo.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.iffExpiryDateFromError = true;\n return;\n }\n }\n this.iffExpiryDateFromError = false;\n\n this.iffExpiryDateToMin = selectedDate;\n }\n\n iffExpiryDateToChange(value: string) {\n if (value === '') {\n this.iffExpiryDateToError = false;\n return;\n }\n this.requestParams.iffExpiryDateTo = value;\n const temp = this.requestParams.iffExpiryDateTo.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n\n if (selectedDate.toString() === 'Invalid Date') {\n this.iffExpiryDateToError = true;\n return;\n }\n if (this.requestParams.iffExpiryDateFrom) {\n const tempFrom = this.requestParams.iffExpiryDateFrom.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.iffExpiryDateToError = true;\n return;\n }\n }\n this.iffExpiryDateToError = false;\n\n this.iffExpiryDateFromMax = selectedDate;\n }\n\n get isExportBtnDisabled() {\n return this.currentPageData.length === 0;\n }\n\n exportResult() {\n if (this.isExportBtnDisabled) {\n return;\n }\n this.isCsvDownLoading = true;\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/iffDeclineSummaries/download', this.requestParamsForPageChange || {})\n .subscribe({\n next: res => {\n if (this.isCsvClickX) {\n this.isCsvClickX = false;\n return;\n }\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const excelData = this.createExcelData(res.data || []);\n aoaToSheet(\n {\n fileName: `IFF declined list ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.XLSX,\n },\n excelData\n );\n }\n this.isCsvDownLoading = false;\n this.isCsvClickX = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isCsvDownLoading = false;\n this.isCsvClickX = false;\n },\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push(this.exportColumns);\n data.forEach(item => {\n const temp: string[] = [];\n this.excelDisplayedColumns.forEach(col => {\n if (col === 'declineReason') {\n if (item['declineReason']) {\n let reasons = '';\n item['declineReason'].forEach((reason: string, index: number) => {\n if (index > 0) {\n reasons += '\\n';\n }\n reasons += this.getDeclineReasonNameByValue(reason);\n });\n temp.push(reasons);\n }\n } else {\n temp.push(item[col]);\n }\n });\n excelData.push(temp);\n });\n return excelData;\n }\n\n getDeclineReasonNameByValue(value: string) {\n const d = IffDeclinedReasonList.filter(item => item.value === value);\n if (d.length === 1) {\n return d[0].label;\n }\n return 'N/A';\n }\n\n onClickX() {\n this.isCsvClickX = true;\n this.isCsvDownLoading = false;\n }\n\n checkedResolveStatusTag(resolvedStatus: ResolvedStatus) {\n this.resolveStatusSelected = resolvedStatus;\n this.requestParams.page = 1;\n this.requestParams.resolvedStatus = resolvedStatus;\n const params = getFilterParams(this.requestParams);\n this.search(params);\n }\n\n onCanDelegateAmtToggle(event: MouseEvent) {\n if (event.target && this.stepperTarget === 'pc') {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n resolve(salesJourneySummaryId: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(ResolvePopupComponent, {\n size: 'sm',\n });\n\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.callResolveApi(salesJourneySummaryId);\n }\n });\n }\n\n callResolveApi(salesJourneySummaryId: string) {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post('/ext/eb-ssms-sales-journey-service/iffDeclineSummaries/resolve', {\n salesJourneySummariesId: salesJourneySummaryId,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (this.requestParamsForPageChange) {\n this.requestParamsForPageChange.page = 1;\n this.search(this.requestParamsForPageChange);\n }\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n}\n","
    \n
    \n {{ 'iff-declined-dashboard.iff-declined-dashboard' | lang }}\n
    \n
    \n
    \n {{ 'iff-declined-dashboard.iff-decline-summary' | lang }}\n
    \n
    \n {{ 'iff-declined-dashboard.records-of-the-current-year-is-displayed' | lang }}.\n
    \n
    \n Latest update: 9:05am 25/05/2022 (HKT)\n
    \n
    \n
    \n
    \n 0\"\n [size]=\"'md'\"\n [keylineWidth]=\"2\"\n [data]=\"data\"\n [chartColors]=\"chartColors\"\n [color]=\"'ml'\"\n [colorMode]=\"'categorical'\">\n \n
    \n
    \n
    \n
    \n Total no. of unique declined cases:\n
    \n
    \n {{ uniqueCaseCount !== undefined ? uniqueCaseCount : 'N/A' }}\n
    \n
    \n \n \n \n \n \n
    \n \n {{ 'iff-declined-dashboard.declined-reason' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ element.declinedReason | lang }}\n
    \n
    \n
    \n
    \n \n \n
    \n \n {{ 'iff-declined-dashboard.no-of-cases' | lang }}\n \n
    \n
    \n \n
    \n {{ element.noOfCases }}\n
    \n
    \n
    \n \n \n
    \n \n {{ 'iff-declined-dashboard.percentage' | lang }}\n \n
    \n
    \n \n
    \n {{ element.percentage }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-declined-dashboard.search-record' | lang }}\n
    \n
    \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sales-support-summary.abm' | lang }}\n \n
    \n
    \n {{ 'iff-declined-dashboard.product-type' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'iff-declined-dashboard.district-code' | lang }}\n
    \n \n
    \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n {{ 'iff-declined-dashboard.agent-code' | lang }}\n \n
    \n
    \n {{ 'iff-declined-dashboard.declined-reason' | lang }}\n \n
    \n
    \n
    0\" class=\"l-d-f l-ai-cen l-fw-w\">\n
    \n {{ 'iff-declined-dashboard.district-code' | lang }}:\n
    \n
    \n
    \n {{ item }}\n
    \n \n
    \n
    \n
    \n
    \n {{ 'common.search1' | lang }}\n {{ 'common.reset1' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'iff-declined-dashboard.record-list' | lang }}\n
    \n
    \n {{ 'iff-declined-dashboard.total-records' | lang : { p1: (totalElements | number) || '' } }}\n
    \n
    \n
    \n {{ 'common.export' | lang }}\n
    \n
    \n
    0\">\n
    \n Filter by:\n
    \n
    \n All\n
    \n \n Resolved Cases\n
    \n \n Unresolved Cases\n
    \n
    \n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'iff-declined-dashboard.empf-ref' | lang }}\n \n
    \n
    \n \n \n \n
    \n\n \n {{ 'iff-declined-dashboard.district-code' | lang }}\n \n {{ element.districtCd }}\n \n \n\n \n {{ 'iff-declined-dashboard.agent-code' | lang }}\n \n
    \n
    \n {{ element.agentCd }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n Latest sent out:\n
    \n
    \n {{ element.emailTriggeredDt | date : 'hh:mm a, dd/MM/yyyy' }} (HKT),\n
    \n
    \n by {{ element.emailTriggeredBy }}\n
    \n
    \n
    \n
    \n\n \n {{ 'iff-declined-dashboard.product-type' | lang }}\n \n {{ element.productType }}\n \n \n\n \n {{ 'iff-declined-dashboard.client-employer-name' | lang }}\n \n {{ element.clientOrEmployerName }}\n \n \n\n \n {{ 'iff-declined-dashboard.hkid-passport-no' | lang }}\n \n {{ element.hkidOrPassportNoOrBrNo }}\n \n \n\n \n \n
    \n {{ 'iff-declined-dashboard.declined-reason' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ iffDeclinedDashboardService.iffDeclinedReasonMatch(item)?.text }}\n
    \n
    \n
    \n \n \n\n \n {{ 'iff-declined-dashboard.iff-declined-date' | lang }}\n \n {{ element.iffDeclineDt }}\n \n \n\n \n {{ 'iff-declined-dashboard.iff-expiry-date' | lang }}\n \n {{ element.iffExpiryDt }}\n \n \n\n \n {{ 'iff-declined-dashboard.iff-sub-channel' | lang }}\n \n {{ element.iffSubChannel }}\n \n \n\n \n \n
    \n {{ 'iff-declined-dashboard.transfer-in-details' | lang }}\n \n
    \n
    \n \n {{ element.transferInDetails }}\n \n
    \n\n \n \n
    \n {{ 'iff-declined-dashboard.action' | lang }}\n
    \n \n
    \n
    \n
    \n \n
    \n Resolve\n
    \n
    \n Resolved\n
    \n Latest resolved:\n
    \n
    \n {{ element.resolvedDt | date : 'hh:mm a, dd/MM/yyyy' }} (HKT), by {{ element.resolvedBy }}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n\n","import { CdsOption } from '@cds/ng-core/configuration';\n\nexport const IffDeclinedReasonList: CdsOption[] = [\n {\n label: 'Case CANNOT match with eMPF data',\n value: '1',\n },\n {\n label: 'Client HKID/ Passport No. mismatched with eMPF data',\n value: '2',\n },\n {\n label: 'Employer Name mismatched with eMPF data',\n value: '3',\n },\n {\n label: 'BR No. mismatched with eMPF data',\n value: '4',\n },\n {\n label: 'Agent information mismatched with eMPF data',\n value: '6',\n },\n];\n\nexport const ProductTypeList: CdsOption[] = [\n {\n label: 'ER',\n value: 'ER',\n },\n {\n label: 'PA',\n value: 'PA',\n },\n {\n label: 'SEP',\n value: 'SEP',\n },\n {\n label: 'TVC',\n value: 'TVC',\n },\n {\n label: 'FRC',\n value: 'FRC',\n },\n];\n","import { Injectable } from '@angular/core';\nimport { IffDeclinedReasonList } from './iff-declined-dashboard.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IffDeclinedDashboardService {\n constructor() {}\n\n iffDeclinedReasonMatch(value: string) {\n const result = {\n text: '',\n color: '',\n };\n const data = IffDeclinedReasonList.filter(item => item.value === value);\n if (data.length === 1) {\n result.text = data[0].label;\n switch (data[0].value) {\n case '1':\n result.color = 'rgb(0 167 88)';\n break;\n case '2':\n result.color = 'rgb(0, 0, 193)';\n break;\n case '3':\n result.color = 'rgb(236, 100, 83)';\n break;\n case '4':\n result.color = 'rgb(40, 43, 62)';\n break;\n case '6':\n result.color = 'rgb(215, 125, 40)';\n break;\n }\n return result;\n }\n return null;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-resolve-popup',\n templateUrl: './resolve-popup.component.html',\n styleUrls: ['./resolve-popup.component.scss'],\n})\nexport class ResolvePopupComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n cancel() {\n this.dialogRef.close({ agree: false });\n }\n\n continue() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n Once the record is resolved, it’s non reversible, are you sure you want to continue?\n
    \n
    \n {{ 'common.cancel' | lang }}\n {{ 'common.continue' | lang }}\n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, ViewChild, AfterViewInit, OnDestroy, DoCheck } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Subscription, from, switchMap } from 'rxjs';\n\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsDatepickerComponent } from '@cds/ng-web-components/datepicker';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { fromJSDateFormat } from 'src/app/utils/dateUtils';\nimport { ResetWarningComponent } from '../reset-warning/reset-warning.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { agentCodeRemovePrefix0 } from 'src/app/utils/utils';\nimport { getSessionByKey } from 'src/app/utils/indexdb';\nimport { UpdatedSuccessfullyComponent } from 'src/app/shared/updated-successfully/updated-successfully.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { SimplePopupComponent } from 'src/app/shared/simple-popup/simple-popup.component';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { empfCountryOption } from '../../case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { PreferredLanguageType } from '../../case-summary/case-summary.model';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { AgentDetailInfo } from '../../service/model/agent-info-response.model';\nimport { Session } from 'src/app/core/models/user';\n\ninterface SubmissionParams {\n identityId: string;\n formType: string;\n productType: string;\n empfRefNo: string;\n employerName?: string;\n chnEmployerName?: string;\n brNo?: string;\n apCommChannel: string;\n apCountryCode?: string;\n apPhoneNumber?: string;\n apEmailAddr?: string;\n specialNeeds: boolean;\n paperFormSubmissionDate: string;\n agentInfos: {\n agentId?: string;\n agentCd?: string;\n servcingAgent: boolean;\n splitAgent: boolean;\n acknowledged: boolean;\n }[];\n smsLanguage?: 0 | 1;\n intraGroup: boolean;\n}\n\ninterface TempAgentType {\n agentCode: string;\n name: string;\n chineseName: string;\n branchNo?: string;\n}\n\n@Component({\n selector: 'app-employer',\n templateUrl: './employer.component.html',\n styleUrls: ['./employer.component.scss'],\n})\nexport class EmployerComponent implements OnInit, AfterViewInit, OnDestroy, DoCheck {\n @ViewChild('pickerFromDate', { static: false }) paperIFFAgentSubmissionFromDate?: CdsDatepickerComponent;\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage!: CdRadioComponent;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n language = 'EN';\n confirmSpecialNeedsValue = 'n';\n confirmSpecialNeedsConfig: CdRadioConfig = {\n options: [\n {\n label:\n 'No, I do not have special needs and this confirmation shall override any previous confirmation and/or any information about me, which may indicate otherwise.',\n value: 'n',\n disable: false,\n },\n {\n label: 'Yes, I have special needs. ',\n value: 'y',\n disable: false,\n },\n ],\n };\n advisedSpecialNeedsValue = '1';\n advisedSpecialNeedsConfig: CdRadioConfig = {\n options: [\n {\n label: 'not to have any witness',\n value: '1',\n disable: false,\n },\n {\n label: 'to be accompanied by a companion/ to be accompanied by an additional member of staff as the witness',\n value: '2',\n disable: false,\n },\n ],\n };\n isConfirming = false;\n\n lanChangeSubscription?: Subscription;\n now = new Date();\n employerFormForm!: FormGroup;\n authorizedContactConfig: CdRadioConfig = {\n options: [\n {\n label: 'Email Address',\n value: 'E',\n disable: false,\n },\n {\n label: 'Phone Number',\n value: 'M',\n disable: false,\n },\n ],\n };\n authorizedContact = '';\n employerNameOrBRNumberConfig: CdRadioConfig = {\n options: [\n {\n label: 'Employer Name',\n value: 'E',\n disable: false,\n },\n {\n label: 'BR Number',\n value: 'B',\n disable: false,\n },\n ],\n };\n employerNameOrBRNumber = '';\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n private readonly CN_PHONE = /^1[345678]\\d{9}$/;\n paperIFFAgentSubmissionTimeMax: number[] | null = null;\n isTryConfirm = false;\n resetDatePicker = false;\n splitAgents = [\n {\n name: '',\n chineseName: '',\n code: new FormControl(null),\n isMatchError: false,\n branchNo: '',\n isSplitAgentCodePerformed: new FormControl(false),\n },\n {\n name: '',\n chineseName: '',\n code: new FormControl(null),\n isMatchError: false,\n branchNo: '',\n isSplitAgentCodePerformed: new FormControl(false),\n },\n ];\n tempServicingAgent: TempAgentType | null = null;\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n constructor(\n private router: Router,\n private languageChangeService: LanguageChangeService,\n public cdsLangService: CdsLangService,\n private cdsPopup: CdsPopupService,\n private cdHttpServeService: CdHttpServeService,\n private notifyService: NotifyService,\n private alert: CdsAlertService\n ) {}\n\n lanSubjectChange = (lan: string) => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n };\n\n empFormPaperIFFAgentSubmissionDateFromVali = (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const temp = control.value.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n return { formatError: true };\n } else {\n return null;\n }\n };\n\n get authorizedCountryCode() {\n return this.employerFormForm.get('authorizedCountryCode') as FormControl;\n }\n\n empFormAuthorizedPhoneNumberVali = (option: AbstractControl): ValidationErrors | null => {\n if (!option.value) {\n return null;\n }\n\n if (typeof option.value === 'string') {\n if (['852', '853'].includes(this.authorizedCountryCode.value)) {\n if (option.value.length === 8 && ['4', '5', '6', '7', '8', '9'].includes(option.value.substring(0, 1))) {\n return null;\n }\n }\n\n if (['86'].includes(this.authorizedCountryCode.value)) {\n if (option.value.length === 11) {\n const e = this.CN_PHONE.test(option.value);\n if (e) {\n return null;\n }\n }\n }\n\n if (!['852', '853', '86'].includes(this.authorizedCountryCode.value)) {\n return null;\n }\n }\n\n return { errorPhoneNumber: true };\n };\n\n empFormPreferredLanguageVali = (control: AbstractControl): ValidationErrors | null => {\n if ((this.authorizedContact === 'M' && control.value) || this.authorizedContact === 'E' || !this.authorizedContact) {\n return null;\n }\n return { formatError: true };\n };\n\n rmReferralCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n };\n inputCustomerIdVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n sourceCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n campaignCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n get servicingAgentCode() {\n return this.employerFormForm.get('servicingAgentCode') as FormControl;\n }\n\n get isIntragroupTransfer() {\n return this.employerFormForm.get('isIntragroupTransfer') as FormControl;\n }\n\n ngOnInit(): void {\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(this.lanSubjectChange);\n\n this.employerFormForm = new FormGroup({\n eMPFReferenceNo: new FormControl('', [Validators.required]),\n paperIFFAgentSubmissionDateFrom: new FormControl('', [Validators.required, this.empFormPaperIFFAgentSubmissionDateFromVali]),\n employerName: new FormControl(null, [Validators.required]),\n brNo: new FormControl(null, [Validators.required]),\n authorizedEmailAddress: new FormControl(null, [Validators.required, Validators.email]),\n authorizedCountryCode: new FormControl('852', [Validators.required]),\n authorizedPhoneNumber: new FormControl('', [Validators.required, this.empFormAuthorizedPhoneNumberVali]),\n servicingAgentCode: new FormControl(null, [Validators.required]),\n isServicingAgentCodePerformed: new FormControl({ value: false, disabled: false }),\n preferredLanguage: new FormControl(null, [this.empFormPreferredLanguageVali]),\n isIntragroupTransfer: new FormControl({ value: false, disabled: false }),\n rmReferralCode: new FormControl('', [Validators.required, this.rmReferralCodeVali]),\n inputCustomerId: new FormControl('', [this.inputCustomerIdVali]),\n sourceCode: new FormControl('', [this.sourceCodeVali]),\n campaignCode: new FormControl('', [this.campaignCodeVali]),\n });\n\n this.servicingAgentCode.valueChanges.subscribe(res => {\n if (res === '') {\n this.splitAgents.forEach(splitAgent => {\n splitAgent.code.setValue(null);\n splitAgent.isSplitAgentCodePerformed.setValue(false);\n splitAgent.name = '';\n splitAgent.chineseName = '';\n splitAgent.isMatchError = false;\n });\n }\n });\n }\n\n ngAfterViewInit() {\n this.setPaperAgentSubmissionDateReadonly();\n }\n\n private setPaperAgentSubmissionDateReadonly() {\n const list = document.getElementsByClassName('paper-agent-submission-date');\n if (list.length === 1) {\n list.item(0)?.getElementsByTagName('input').item(0)?.setAttribute('readonly', '');\n }\n }\n\n openPaperIFFAgentSubmissionFromDate() {\n this.paperIFFAgentSubmissionFromDate?.open();\n }\n\n get authorizedPhoneNumber() {\n return this.employerFormForm.get('authorizedPhoneNumber') as FormControl;\n }\n\n authorizedCountryCodeChange() {\n this.authorizedPhoneNumber.updateValueAndValidity();\n }\n\n ngOnDestroy(): void {\n this.lanChangeSubscription?.unsubscribe();\n }\n\n onBack() {\n this.router.navigate(['/salesjourney/iff-paper-form/select-product-type']);\n }\n\n handleIconClick() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n openSimplePopup(value: string) {\n this.notifyService.screenLoadingSubject.next(false);\n const ref = this.cdsPopup.open(SimplePopupComponent, {\n size: 'md',\n data: {\n message: value,\n buttons: [\n {\n style: 'primary',\n size: 'sm',\n text: 'common.gotItWithExclamation',\n cb: () => {\n ref.close();\n },\n },\n ],\n },\n });\n }\n\n get rmReferralCode() {\n return this.employerFormForm.get('rmReferralCode') as FormControl;\n }\n get inputCustomerId() {\n return this.employerFormForm.get('inputCustomerId') as FormControl;\n }\n\n get campaignCode() {\n return this.employerFormForm.get('campaignCode') as FormControl;\n }\n\n get sourceCode() {\n return this.employerFormForm.get('sourceCode') as FormControl;\n }\n\n confirm() {\n this.eMPFReferenceNo.markAsDirty();\n this.paperIFFAgentSubmissionDateFrom.markAsDirty();\n this.authorizedEmailAddress.markAsDirty();\n this.authorizedPhoneNumber.markAsDirty();\n this.employerName.markAsDirty();\n this.brNo.markAsDirty();\n this.servicingAgentCode.markAsDirty();\n this.preferredLanguage.markAsTouched();\n this.isTryConfirm = true;\n\n const boo = this.isAllowPast();\n if (boo) {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{ empfRefNoStatus: boolean }>('/ext/eb-ssms-sales-journey-service/generateGeneralLink/validateEmpfRefNo/paperFrom', {\n empfRefNo: this.eMPFReferenceNo.value,\n clientType: 'employer',\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (res.data.empfRefNoStatus) {\n this.eMPFReferenceNo.setErrors(null);\n const servicingAgentCd = this.servicingAgentCode.value;\n if (servicingAgentCd) {\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n inputAgentType: string;\n channel: string;\n servicingAgentCode: string;\n commissionAgentCode: string;\n }[]\n >(`/ext/eb-ssms/agent-service/api/v1/agent-code-conversion`, [servicingAgentCd])\n .subscribe(res => {\n const splitAgentList = this.splitAgents.filter(splitAgent => !!splitAgent.code.value);\n // if (res.data[0].channel === AgentChannel.DBS && splitAgentList.length > 0) {\n // this.notifyService.screenLoadingSubject.next(false);\n // const ref = this.cdsPopup.open(SimplePopupComponent, {\n // size: 'md',\n // data: {\n // message: 'Split agent is not allowed for DBS channel',\n // buttons: [\n // {\n // style: 'primary',\n // size: 'sm',\n // text: 'common.gotItWithExclamation',\n // cb: () => {\n // ref.close();\n // },\n // },\n // ],\n // },\n // });\n // return;\n // }\n if (res.data[0].channel === AgentChannel.DBS && splitAgentList.length > 0) {\n this.openSimplePopup('Split agent is not allowed for DBS channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.SCB || res.data[0].channel === AgentChannel.BROKER) {\n this.openSimplePopup('IFF is not required for this sales channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.CORPORATE && !res.data[0].agentCode.startsWith('400')) {\n this.openSimplePopup('IFF is not required for this sales channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.CORPORATE && res.data[0].agentCode === '400003') {\n this.openSimplePopup('IFF is not required for this sales channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.CORPORATE && res.data[0].agentCode.startsWith('400') && splitAgentList.length > 0) {\n this.openSimplePopup('Split agent is not allowed for CORPORATE channel');\n return;\n }\n\n this.tempServicingAgent = null;\n this.validateAgentCode(servicingAgentCd).then(res => {\n this.validateAgentCodeCallBack(servicingAgentCd, res);\n });\n });\n } else {\n this.notifyService.screenLoadingSubject.next(false);\n }\n } else {\n this.notifyService.screenLoadingSubject.next(false);\n this.eMPFReferenceNo.setErrors({ haveExisted: true });\n }\n } else {\n this.notifyService.screenLoadingSubject.next(false);\n this.alert.error('Error!', res.message);\n }\n },\n error: err => {\n this.notifyService.screenLoadingSubject.next(false);\n this.alert.error('Error!', err);\n },\n });\n }\n }\n\n setIsConfirmingToTrue() {\n this.isConfirming = true;\n this.isServicingAgentCodePerformed.disable();\n this.isIntragroupTransfer.disable();\n }\n\n setIsConfirmingToFalse() {\n this.isConfirming = false;\n this.isServicingAgentCodePerformed.enable();\n this.isIntragroupTransfer.enable();\n }\n\n validateAgentCodeCallBack(\n servicingAgentCd: string,\n res:\n | false\n | {\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number | undefined;\n }\n ) {\n if (res) {\n this.tempServicingAgent = res;\n\n this.servicingAgentCode.setErrors(null);\n const splitAgentList = this.splitAgents.filter(splitAgent => !!splitAgent.code.value);\n if (splitAgentList.length === 0) {\n this.notifyService.screenLoadingSubject.next(false);\n this.setIsConfirmingToTrue();\n } else {\n let repeatSplitAgentList = splitAgentList.filter(item => item.code.value === servicingAgentCd);\n if (repeatSplitAgentList.length > 0) {\n repeatSplitAgentList.forEach(element => {\n element.isMatchError = true;\n });\n this.notifyService.screenLoadingSubject.next(false);\n } else {\n repeatSplitAgentList = splitAgentList.filter((item, index) => splitAgentList.findIndex(c => item.code.value === c.code.value) !== index);\n if (repeatSplitAgentList.length > 0) {\n repeatSplitAgentList.forEach(element => {\n element.isMatchError = true;\n });\n this.notifyService.screenLoadingSubject.next(false);\n } else {\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }[]\n >(\n '/ext/eb-ssms/customer-service/add-delegation/validateBatch',\n splitAgentList.map(agent => ({ agentCode: agentCodeRemovePrefix0(agent.code.value) }))\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n for (let i = 0; i < res.data.length; i++) {\n const agent = res.data[i];\n if (agent.errorCode) {\n splitAgentList[i].isMatchError = true;\n } else {\n splitAgentList[i].isMatchError = false;\n splitAgentList[i].chineseName = agent.chineseName;\n splitAgentList[i].name = agent.name;\n }\n }\n if (splitAgentList.every(item => !item.isMatchError)) {\n this.setIsConfirmingToTrue();\n }\n } else if (res.result === 2100) {\n res.data.forEach(element => {\n const newElement = element as unknown as { agent: { agentCode: string } };\n const temp = splitAgentList.find(item => item.code.value === newElement.agent.agentCode);\n if (temp) {\n temp.isMatchError = true;\n }\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: () => {\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n }\n\n const temp: any[] = [];\n if (this.tempServicingAgent) {\n temp.push(this.tempServicingAgent);\n }\n splitAgentList.forEach(element => {\n temp.push(element);\n });\n this.getAgentBranchCds(temp);\n } else {\n this.servicingAgentCode.setErrors({ unMatch: true });\n this.notifyService.screenLoadingSubject.next(false);\n }\n }\n\n getAgentBranchCds(tempAgentList: (TempAgentType & { code: FormControl })[]) {\n const agentCodes = [];\n for (const agent of tempAgentList) {\n if (!agent.agentCode) {\n agentCodes.push(agent.code.value);\n } else {\n agentCodes.push(agent.agentCode);\n }\n }\n if (agentCodes.length === 0) {\n return;\n }\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n branchNo: string;\n }[]\n >('/ext/eb-ssms/agent-service/agent/branchCd', agentCodes)\n .subscribe({\n next: res => {\n if (res.result === 0) {\n for (let i = 0; i < res.data.length; i++) {\n const filAgent = tempAgentList.filter(\n tempAgent => tempAgent.agentCode === res.data[i].agentCode || tempAgent.code?.value === res.data[i].agentCode\n );\n if (filAgent.length > 0) {\n filAgent[0].branchNo = res.data[i].branchNo;\n }\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n validateAgentCode(splitAgentCode: string) {\n return new Promise<\n | false\n | {\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }\n >(resolve => {\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(splitAgentCode.trim()),\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n resolve(res.data);\n } else {\n // this.alert.error('Error!', res.message);\n resolve(false);\n }\n },\n error: () => {\n // this.alert.error('Error!', err);\n resolve(false);\n },\n });\n });\n }\n\n getAgentInformation(agentCode: string) {\n return new Promise(resolve => {\n this.cdHttpServeService.get('/ext/eb-ssms/agent-service/agent/information', { agentInfo: agentCode }).subscribe({\n next: res => {\n if (res.result === 0) {\n resolve(res.data);\n } else {\n this.alert.error('Error!', res.message);\n resolve(null);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n resolve(null);\n },\n });\n });\n }\n\n submissionForSubmit(servicingAgent: AgentDetailInfo | null, splitAgentList: (AgentDetailInfo | null)[], res: Session) {\n const agentInfos = [];\n if (servicingAgent) {\n agentInfos.push({\n agentId: servicingAgent.agentId,\n agentCd: servicingAgent.agentCode,\n servcingAgent: true,\n splitAgent: false,\n acknowledged: this.isServicingAgentCodePerformed.value,\n });\n }\n splitAgentList.forEach(element => {\n if (element) {\n agentInfos.push({\n agentId: element.agentId,\n agentCd: element.agentCode,\n servcingAgent: false,\n splitAgent: true,\n acknowledged: this.splitAgents.find(item => item.code.value === element.agentCode)?.isSplitAgentCodePerformed.value,\n });\n }\n });\n const identityId = res.id;\n const dList = this.paperIFFAgentSubmissionDateFrom.value.split('/');\n const paperFormSubmissionDate = `${dList[2]}-${dList[1]}-${dList[0]} 00:00:00`;\n const params: SubmissionParams = {\n productType: 'ER',\n identityId,\n formType: 'ER',\n empfRefNo: this.eMPFReferenceNo.value,\n apCommChannel: this.authorizedContact,\n apCountryCode: this.authorizedCountryCode.value,\n apPhoneNumber: this.authorizedPhoneNumber.value,\n apEmailAddr: this.authorizedEmailAddress.value,\n specialNeeds: this.confirmSpecialNeedsValue === 'y',\n paperFormSubmissionDate,\n agentInfos,\n intraGroup: this.isIntragroupTransfer.value,\n };\n\n if (this.employerNameOrBRNumber === 'E') {\n if (new RegExp('^[a-zA-Z\\x20]*$').test(this.employerName.value)) {\n params.employerName = this.employerName.value;\n } else {\n params.chnEmployerName = this.employerName.value;\n }\n } else if (this.employerNameOrBRNumber === 'B') {\n params.brNo = this.brNo.value;\n }\n if (this.authorizedContact === 'E') {\n delete params['apCountryCode'];\n delete params['apPhoneNumber'];\n } else if (this.authorizedContact === 'M') {\n delete params['apEmailAddr'];\n params['smsLanguage'] = this.preferredLanguage.value === PreferredLanguageType.English ? 0 : 1;\n }\n return this.cdHttpServeService.post<{ salesJourneySummariesId: string }>('/ext/eb-ssms-sales-journey-service/paperFormIff/submission', params);\n }\n\n submitAllGetAgentInformationCb = (res: (AgentDetailInfo | null)[]) => {\n let servicingAgent: AgentDetailInfo | null = null;\n const splitAgentList: (AgentDetailInfo | null)[] = [];\n res.forEach((element, index) => {\n if (index === 0) {\n servicingAgent = element;\n } else if (index > 0) {\n splitAgentList.push(element);\n }\n });\n from(getSessionByKey())\n .pipe(\n switchMap(res => {\n return this.submissionForSubmit(servicingAgent, splitAgentList, res);\n })\n )\n .subscribe({\n next: this.submitCb,\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n };\n\n submitCb = (res: { result: number; message: string }) => {\n if (res.result === 0) {\n const ref = this.cdsPopup.open(UpdatedSuccessfullyComponent, {\n size: 'md',\n });\n ref.afterClosed().subscribe(() => {\n this.router.navigate(['/salesjourney/sales-support-summary', { productType: 'ER' }]);\n });\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n };\n\n submit() {\n this.notifyService.screenLoadingSubject.next(true);\n\n const promiseList: Promise[] = [];\n if (this.servicingAgentCode.value) {\n promiseList.push(this.getAgentInformation(this.servicingAgentCode.value));\n }\n\n this.splitAgents.forEach(element => {\n if (element.code.value) {\n promiseList.push(this.getAgentInformation(element.code.value));\n }\n });\n Promise.all(promiseList).then(this.submitAllGetAgentInformationCb);\n }\n\n backToEdit() {\n this.setIsConfirmingToFalse();\n }\n\n reset() {\n const popupRef: MatDialogRef = this.cdsPopup.open(ResetWarningComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.employerFormForm.reset();\n this.isIntragroupTransfer.reset({ value: false, disabled: false });\n this.authorizedCountryCode.setValue('852');\n this.employerNameOrBRNumber = '';\n this.isTryConfirm = false;\n this.confirmSpecialNeedsValue = 'n';\n this.advisedSpecialNeedsValue = '1';\n this.resetDatePicker = true;\n this.authorizedContact = '';\n this.splitAgents = [\n {\n name: '',\n chineseName: '',\n code: new FormControl(null),\n isMatchError: false,\n branchNo: '',\n isSplitAgentCodePerformed: new FormControl(false),\n },\n {\n name: '',\n chineseName: '',\n code: new FormControl(null),\n isMatchError: false,\n branchNo: '',\n isSplitAgentCodePerformed: new FormControl(false),\n },\n ];\n setTimeout(() => {\n this.resetDatePicker = false;\n setTimeout(() => {\n this.setPaperAgentSubmissionDateReadonly();\n }, 0);\n }, 0);\n this.preferredLanguage.reset();\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.cdRadioPreferredLanguage.refreshConfig();\n }\n });\n }\n\n authorizedContactChange(val: string) {\n this.preferredLanguage.setValue(undefined);\n if (val === 'E') {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n\n this.cdRadioPreferredLanguage.refreshConfig();\n }\n\n get preferredLanguage() {\n return this.employerFormForm.get('preferredLanguage') as FormControl;\n }\n\n get authorizedEmailAddress() {\n return this.employerFormForm.get('authorizedEmailAddress') as FormControl;\n }\n\n get employerName() {\n return this.employerFormForm.get('employerName') as FormControl;\n }\n\n get brNo() {\n return this.employerFormForm.get('brNo') as FormControl;\n }\n\n isAllowPast() {\n if (!this.eMPFReferenceNo.valid || !this.paperIFFAgentSubmissionDateFrom.valid || !this.servicingAgentCode.valid || !this.preferredLanguage.valid) {\n return false;\n }\n if (this.authorizedContact === '' || this.employerNameOrBRNumber === '') {\n return false;\n }\n if (this.authorizedContact === 'E' && !this.authorizedEmailAddress.valid) {\n return false;\n } else if (this.authorizedContact === 'M' && !this.authorizedPhoneNumber.valid) {\n return false;\n }\n if (this.employerNameOrBRNumber === 'E' && !this.employerName.valid) {\n return false;\n } else if (this.employerNameOrBRNumber === 'B' && !this.brNo.valid) {\n return false;\n }\n\n return true;\n }\n\n get eMPFReferenceNo() {\n return this.employerFormForm.get('eMPFReferenceNo') as FormControl;\n }\n\n eMPFReferenceNoChange(val: string) {\n if (/[\\u4e00-\\u9fa5]/gi.test(val)) {\n this.eMPFReferenceNo.setValue(val.replace(/[\\u4e00-\\u9fa5]/gi, ''));\n }\n }\n\n get paperIFFAgentSubmissionDateFrom() {\n return this.employerFormForm.get('paperIFFAgentSubmissionDateFrom') as FormControl;\n }\n\n refreshPaperIFFAgentSubmissionTimeMax() {\n this.now = new Date();\n if (fromJSDateFormat(this.now) === this.paperIFFAgentSubmissionDateFrom.value) {\n this.paperIFFAgentSubmissionTimeMax = [this.now.getHours(), this.now.getMinutes()];\n } else {\n this.paperIFFAgentSubmissionTimeMax = null;\n }\n }\n\n getAgentName(obj?: { name: string; chineseName: string }) {\n if (!obj) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return obj.name || obj.chineseName;\n } else {\n return obj.chineseName || obj.name;\n }\n }\n\n addNewSplitAgent() {\n if (this.splitAgents.length >= 2) {\n return;\n }\n\n this.splitAgents.push({\n name: '',\n chineseName: '',\n code: new FormControl(null),\n isMatchError: false,\n branchNo: '',\n isSplitAgentCodePerformed: new FormControl(false),\n });\n }\n\n authorizedCountryCodeCodeChange() {\n this.authorizedPhoneNumber.updateValueAndValidity();\n }\n\n get isServicingAgentCodePerformed() {\n return this.employerFormForm.get('isServicingAgentCodePerformed') as FormControl;\n }\n\n isDisabledSplitAgentCodePerformed() {\n const disable = this.isConfirming || !(!this.servicingAgentCode.hasError('required') && !!this.isServicingAgentCodePerformed.value);\n this.splitAgents.forEach(element => {\n if (disable) {\n element.isSplitAgentCodePerformed.disable();\n } else {\n element.isSplitAgentCodePerformed.enable();\n }\n });\n }\n\n ngDoCheck() {\n this.isDisabledSplitAgentCodePerformed();\n }\n}\n","
    \n
    \n
    \n \n
    \n Choose Product Type\n
    \n
    \n IFF Paper Form\n
    \n\n
    \n
    \n
    \n \n
    \n Employer\n
    \n
    \n\n
    \n
    \n
    \n eMPF Information\n
    \n
    \n
    \n
    \n eMPF Reference No.\n
    \n
    \n {{ employerFormForm.get('eMPFReferenceNo')?.value }}\n
    \n
    \n
    \n \n \n
    \n Please input the eMPF Reference No.\n eMPF Ref. No. is being used, please verify and input a valid eMPF Ref. No.\n
    \n
    \n
    \n
    \n Paper IFF Agent Submission Date\n
    \n
    \n {{ employerFormForm.get('paperIFFAgentSubmissionDateFrom')?.value }}\n
    \n
    \n \n \n Please input the paper IFF agent submission date\n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Employer’s Information\n
    \n
    \n
    \n
    \n Employer Name/BR Number* : \n
    \n
    \n {{ employerFormForm.get('employerName')?.value }}\n {{ employerFormForm.get('brNo')?.value }}\n
    \n
    \n
    \n \n
    \n Please input the Employer Name or Business/Other Registration No.\n
    \n
    \n
    \n
    \n \n Please input the Employer Name\n
    \n
    \n \n Please input the Business/Other Registration No.\n
    \n
    \n
    \n
    \n
    \n
    \n Authorized Person contact information* :\n
    \n
    \n {{ employerFormForm.get('authorizedEmailAddress')?.value }}\n (+{{ employerFormForm.get('authorizedCountryCode')?.value }}) {{ employerFormForm.get('authorizedPhoneNumber')?.value }}\n
    \n
    \n
    \n \n
    \n Please choose client contact information\n
    \n
    \n
    \n
    \n \n {{ 'common.please-input-valid-customer-email' | lang }}\n {{ 'common.please-input-customer-email' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n {{ 'common.please-input-valid-mobile-number' | lang }}\n \n \n
    \n
    \n \n \n {{ 'common.please-input-phone-number' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}:\n
    \n
    \n {{ employerFormForm.get('preferredLanguage')?.value }}\n
    \n
    \n \n \n {{ 'common.plsSelect' | lang : { p1: 'sendIffInBatchSummary.preferredLanguage' | lang } }}\n \n
    \n
    \n
    \n
    \n
    \n *請確保資料與客戶在eMPF上提供的資料一致\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Special Needs\n
    \n
    \n
    \n Please confirm whether you are a client with Special Needs by checking the appropriate box below. \n
    \n
    \n {{\n confirmSpecialNeedsValue === 'y'\n ? 'Yes, I have special needs.'\n : 'No, I do not have special needs and this confirmation shall override any previous confirmation and/or any information about me, which may indicate otherwise.'\n }}\n
    \n
    \n \n Please choose special needs \n
    \n \n
    \n I have been advised to be accompanied by a companion and/or have an additional member of staff to witness the relevant sales process and\n constituent fund selection process, and I have chosen:\n
    \n
    \n not to have any witness\n to be accompanied by a companion/ to be accompanied by an additional member of staff as the witness\n
    \n
    \n \n Please choose \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n MPF Intermediary’s Information and Acknowledgement \n
    \n
    \n
    \n
    \n Servicing Agent Code\n
    \n
    \n {{ tempServicingAgent?.agentCode }} {{ getAgentName(tempServicingAgent || undefined) }} (District Code:\n {{ tempServicingAgent?.branchNo }})\n
    \n
    \n \n \n Please input agent code\n \n \n Invalid agent code\n \n
    \n
    \n
    \n \n
    \n I have performed the MPF Intermediary Fulfillment requirements in carrying out the regulated activities with the customer.\n
    \n
    \n \n
    \n
    \n
    \n Split Agent Code\n
    \n
    \n {{ splitAgent?.code?.value }} {{ getAgentName(splitAgent || undefined) }} (District Code: {{ splitAgent?.branchNo }})\n
    \n
    \n
    \n \n
    \n I have performed the MPF Intermediary Fulfillment requirements in carrying out the regulated activities with the customer.\n
    \n
    \n
    \n
    \n
    \n
    \n Split Agent Code\n
    \n
    \n \n Invalid agent code \n
    \n
    \n
    \n \n
    \n I have performed the MPF Intermediary Fulfillment requirements in carrying out the regulated activities with the customer.\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.reset1' | lang }}\n
    \n
    \n {{ 'common.submit' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.backToEdit' | lang }}\n
    \n
    \n {{ 'common.confirmAndSubmit' | lang }}\n
    \n
    \n
    \n \n\n","import { Component, OnDestroy, OnInit, ViewChild, AfterViewInit, DoCheck } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Subscription, from, switchMap } from 'rxjs';\n\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsDatepickerComponent } from '@cds/ng-web-components/datepicker';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { ResetWarningComponent } from '../reset-warning/reset-warning.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { agentCodeRemovePrefix0 } from 'src/app/utils/utils';\nimport { getSessionByKey } from 'src/app/utils/indexdb';\nimport { UpdatedSuccessfullyComponent } from 'src/app/shared/updated-successfully/updated-successfully.component';\nimport { EEProdType } from './individuals.model';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { Session } from 'src/app/core/models/user';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { SimplePopupComponent } from 'src/app/shared/simple-popup/simple-popup.component';\nimport { empfCountryOption } from '../../case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { PreferredLanguageType } from '../../case-summary/case-summary.model';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { AgentDetailInfo } from '../../service/model/agent-info-response.model';\n\ninterface SubmissionParams {\n productType: EEProdType;\n identityId: string;\n formType: string;\n empfRefNo: string;\n clientFirstNmEn?: string;\n clientLastNmEn?: string;\n clientFirstNmChn?: string;\n clientLastNmChn?: string;\n idType: number;\n hkidOrPassportNo: string;\n clientCommChannel?: string;\n countryCode?: string;\n phoneNumber?: string;\n emailAddr?: string;\n specialNeeds: boolean;\n paperFormSubmissionDate: string;\n agentInfos: {\n agentId?: string;\n agentCd?: string;\n servcingAgent: boolean;\n splitAgent: boolean;\n acknowledged: boolean;\n }[];\n smsLanguage?: 0 | 1;\n}\n\ninterface TempAgentType {\n agentCode: string;\n name: string;\n chineseName: string;\n branchNo?: string;\n}\n\n@Component({\n selector: 'app-individuals',\n templateUrl: './individuals.component.html',\n styleUrls: ['./individuals.component.scss'],\n})\nexport class IndividualsComponent implements OnInit, OnDestroy, AfterViewInit, DoCheck {\n @ViewChild('pickerFromDate', { static: false }) paperIFFAgentSubmissionFromDate?: CdsDatepickerComponent;\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage!: CdRadioComponent;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n language = 'EN';\n confirmSpecialNeedsValue = 'n';\n confirmSpecialNeedsConfig: CdRadioConfig = {\n options: [\n {\n label:\n 'No, I do not have special needs and this confirmation shall override any previous confirmation and/or any information about me, which may indicate otherwise.',\n value: 'n',\n disable: false,\n },\n {\n label: 'Yes, I have special needs. ',\n value: 'y',\n disable: false,\n },\n ],\n };\n advisedSpecialNeedsValue = '1';\n advisedSpecialNeedsConfig: CdRadioConfig = {\n options: [\n {\n label: 'not to have any witness',\n value: '1',\n disable: false,\n },\n {\n label: 'to be accompanied by a companion/ to be accompanied by an additional member of staff as the witness',\n value: '2',\n disable: false,\n },\n ],\n };\n isConfirming = false;\n\n lanChangeSubscription?: Subscription;\n now = new Date();\n idTypeConfig: CdsDropdownConfig = {\n options: [\n { label: this.cdsLangService.translate('iff.hkid'), value: '0' },\n { label: this.cdsLangService.translate('iff.passport'), value: '1' },\n ],\n placeholder: this.cdsLangService.translate('iff.pleaseSelectIDType'),\n };\n individualsForm!: FormGroup;\n clientContactConfig: CdRadioConfig = {\n options: [\n {\n label: 'Email Address',\n value: 'E',\n disable: false,\n },\n {\n label: 'Phone Number',\n value: 'M',\n disable: false,\n },\n ],\n };\n clientContact = '';\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n private readonly CN_PHONE = /^1[345678]\\d{9}$/;\n customerEnglishSurname = '';\n customerEnglishGivenName = '';\n customerChinaSurname = '';\n customerChinaGivenName = '';\n isTryConfirm = false;\n resetDatePicker = false;\n prodTypeDropdownConfig: CdsDropdownConfig = {\n options: [\n {\n label: EEProdType.PA,\n value: EEProdType.PA,\n },\n {\n label: EEProdType.TVC,\n value: EEProdType.TVC,\n },\n {\n label: EEProdType.FRC,\n value: EEProdType.FRC,\n },\n {\n label: EEProdType.SEP,\n value: EEProdType.SEP,\n },\n ],\n placeholder: 'Select Product Type',\n color: 'ml',\n };\n tempServicingAgent: TempAgentType | null = null;\n tempSplitAgent: TempAgentType | null = null;\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n constructor(\n private router: Router,\n private languageChangeService: LanguageChangeService,\n public cdsLangService: CdsLangService,\n private cdsPopup: CdsPopupService,\n private cdHttpServeService: CdHttpServeService,\n private notifyService: NotifyService,\n private alert: CdsAlertService\n ) {}\n\n lanSubjectChange = (lan: string) => {\n this.language = lan === 'en' ? 'EN' : 'TC';\n };\n\n indFormPaperIFFAgentSubmissionDateFromVali = (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n const temp = control.value.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n return { formatError: true };\n } else {\n return null;\n }\n };\n\n indFormHkidOrPassportNoVali = (control: AbstractControl): ValidationErrors | null => {\n if (this.individualsForm?.get('idType')?.value === '1') {\n return null;\n }\n if (control.value === '' || control.value == undefined) {\n return null;\n }\n let input: string = control.value;\n input = input.trim();\n const isValid: RegExpExecArray | null | boolean = /^[a-zA-Z]{1,2}\\d{6}\\([aA\\d]\\)$/.exec(input);\n return isValid ? null : { formatError: true };\n };\n\n get clientCountryCode() {\n return this.individualsForm.get('clientCountryCode') as FormControl;\n }\n\n idFormClientPhoneNumberVali = (option: AbstractControl): ValidationErrors | null => {\n if (!option.value) {\n return null;\n }\n\n if (typeof option.value === 'string') {\n if (['852', '853'].includes(this.clientCountryCode.value)) {\n if (option.value.length === 8 && ['4', '5', '6', '7', '8', '9'].includes(option.value.substring(0, 1))) {\n return null;\n }\n }\n\n if (['86'].includes(this.clientCountryCode.value)) {\n if (option.value.length === 11) {\n const e = this.CN_PHONE.test(option.value);\n if (e) {\n return null;\n }\n }\n }\n\n if (!['852', '853', '86'].includes(this.clientCountryCode.value)) {\n return null;\n }\n }\n\n return { errorPhoneNumber: true };\n };\n\n idFormPreferredLanguageVali = (control: AbstractControl): ValidationErrors | null => {\n if ((this.clientContact === 'M' && control.value) || this.clientContact === 'E' || !this.clientContact) {\n return null;\n }\n return { formatError: true };\n };\n\n rmReferralCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n };\n inputCustomerIdVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n sourceCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n campaignCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n ngOnInit(): void {\n this.lanChangeSubscription = this.languageChangeService.lanSubject.subscribe(this.lanSubjectChange);\n\n this.individualsForm = new FormGroup({\n productType: new FormControl(null, [Validators.required]),\n eMPFReferenceNo: new FormControl('', [Validators.required]),\n paperIFFAgentSubmissionDateFrom: new FormControl('', [Validators.required, this.indFormPaperIFFAgentSubmissionDateFromVali]),\n conductedRegulatorActivityFlag: new FormControl(null),\n idType: new FormControl('0'),\n hkidOrPassportNo: new FormControl('', [Validators.required, this.indFormHkidOrPassportNoVali]),\n clientEmailAddress: new FormControl(null, [Validators.required, Validators.email]),\n clientCountryCode: new FormControl('852', [Validators.required]),\n clientPhoneNumber: new FormControl('', [Validators.required, this.idFormClientPhoneNumberVali]),\n servicingAgentCode: new FormControl(null, [Validators.required]),\n splitAgentCode: new FormControl(null),\n isServicingAgentCodePerformed: new FormControl(false),\n isSplitAgentCodePerformed: new FormControl(false),\n preferredLanguage: new FormControl(null, [this.idFormPreferredLanguageVali]),\n rmReferralCode: new FormControl('', [Validators.required, this.rmReferralCodeVali]),\n inputCustomerId: new FormControl('', [this.inputCustomerIdVali]),\n sourceCode: new FormControl('', [this.sourceCodeVali]),\n campaignCode: new FormControl('', [this.campaignCodeVali]),\n });\n\n this.servicingAgentCode.valueChanges.subscribe(this.servicingAgentCodeValueChanges);\n }\n\n servicingAgentCodeValueChanges = (res: string) => {\n if (res === '') {\n this.splitAgentCode.setValue('');\n this.isSplitAgentCodePerformed.setValue(false);\n }\n };\n\n get servicingAgentCode() {\n return this.individualsForm.get('servicingAgentCode') as FormControl;\n }\n\n get splitAgentCode() {\n return this.individualsForm.get('splitAgentCode') as FormControl;\n }\n\n get isSplitAgentCodePerformed() {\n return this.individualsForm.get('isSplitAgentCodePerformed') as FormControl;\n }\n\n ngAfterViewInit() {\n this.setPaperAgentSubmissionDateReadonly();\n }\n\n private setPaperAgentSubmissionDateReadonly() {\n const list = document.getElementsByClassName('paper-agent-submission-date');\n if (list.length === 1) {\n list.item(0)?.getElementsByTagName('input').item(0)?.setAttribute('readonly', '');\n }\n }\n\n openPaperIFFAgentSubmissionFromDate() {\n this.paperIFFAgentSubmissionFromDate?.open();\n }\n\n clientCountryCodeChange() {\n this.clientPhoneNumber.updateValueAndValidity();\n }\n\n get clientPhoneNumber() {\n return this.individualsForm.get('clientPhoneNumber') as FormControl;\n }\n\n hKIDPassportNoChange() {\n this.hkidOrPassportNo.updateValueAndValidity();\n }\n\n get hkidOrPassportNo() {\n return this.individualsForm.get('hkidOrPassportNo') as FormControl;\n }\n\n ngOnDestroy(): void {\n this.lanChangeSubscription?.unsubscribe();\n }\n\n onBack() {\n if (this.isConfirming) {\n return;\n }\n this.router.navigate(['/salesjourney/iff-paper-form/select-product-type']);\n }\n\n handleIconClick() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n get idType() {\n return this.individualsForm.get('idType') as FormControl;\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n\n if (/^[a-zA-Z]{1,2}\\d{6}\\([aA\\d]\\)$/.exec(value)) {\n if (this.idType.value === '0') {\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/hkidCheckDigit`, { hkId: value.trim() }).subscribe({\n next: res => {\n if (!(res.result === 0 && res.data)) {\n this.hkidOrPassportNo.setErrors({ formatError: true });\n }\n },\n error: err => {\n this.hkidOrPassportNo.setErrors({ formatError: true });\n this.alert.error('Error!', err);\n },\n });\n }\n }\n }\n\n get productType() {\n return this.individualsForm.get('productType') as FormControl;\n }\n\n get eMPFReferenceNo() {\n return this.individualsForm.get('eMPFReferenceNo') as FormControl;\n }\n\n get paperIFFAgentSubmissionDateFrom() {\n return this.individualsForm.get('paperIFFAgentSubmissionDateFrom') as FormControl;\n }\n\n get clientEmailAddress() {\n return this.individualsForm.get('clientEmailAddress') as FormControl;\n }\n\n get preferredLanguage() {\n return this.individualsForm.get('preferredLanguage') as FormControl;\n }\n\n get rmReferralCode() {\n return this.individualsForm.get('rmReferralCode') as FormControl;\n }\n get inputCustomerId() {\n return this.individualsForm.get('inputCustomerId') as FormControl;\n }\n\n get campaignCode() {\n return this.individualsForm.get('campaignCode') as FormControl;\n }\n\n get sourceCode() {\n return this.individualsForm.get('sourceCode') as FormControl;\n }\n\n confirm() {\n this.productType.markAsDirty();\n this.eMPFReferenceNo.markAsDirty();\n this.paperIFFAgentSubmissionDateFrom.markAsDirty();\n this.idType.markAsTouched();\n this.isTryConfirm = true;\n this.hkidOrPassportNo.markAsDirty();\n this.clientEmailAddress.markAsDirty();\n this.clientPhoneNumber.markAsDirty();\n this.servicingAgentCode.markAsDirty();\n this.preferredLanguage.markAsTouched();\n const boo = this.isAllowPast();\n\n if (boo) {\n const hkid = this.hkidOrPassportNo.value;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const idtype = this.idType.value;\n\n if (idtype == 0) {\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/hkidCheckDigit`, { hkId: hkid }).subscribe({\n next: res => {\n if (res.result === 0) {\n if (res.data === false) {\n this.hkidOrPassportNo.setErrors({ formatError: true });\n return;\n }\n this.paperFormValue();\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n } else {\n this.paperFormValue();\n }\n }\n }\n\n openSimplePopup(value: string) {\n this.notifyService.screenLoadingSubject.next(false);\n const ref = this.cdsPopup.open(SimplePopupComponent, {\n size: 'md',\n data: {\n message: value,\n buttons: [\n {\n style: 'primary',\n size: 'sm',\n text: 'common.gotItWithExclamation',\n cb: () => {\n ref.close();\n },\n },\n ],\n },\n });\n }\n\n paperFormValue() {\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{ empfRefNoStatus: boolean }>('/ext/eb-ssms-sales-journey-service/generateGeneralLink/validateEmpfRefNo/paperFrom', {\n empfRefNo: this.eMPFReferenceNo.value,\n clientType: 'member',\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n if (res.data.empfRefNoStatus) {\n this.eMPFReferenceNo.setErrors(null);\n\n if (this.servicingAgentCode.value) {\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n inputAgentType: string;\n channel: string;\n servicingAgentCode: string;\n commissionAgentCode: string;\n }[]\n >(`/ext/eb-ssms/agent-service/api/v1/agent-code-conversion`, [this.servicingAgentCode.value])\n .subscribe(res => {\n if (res.data[0].channel === AgentChannel.DBS && this.splitAgentCode.value) {\n this.openSimplePopup('Split agent is not allowed for DBS channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.SCB || res.data[0].channel === AgentChannel.BROKER) {\n this.openSimplePopup('IFF is not required for this sales channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.CORPORATE && !res.data[0].agentCode.startsWith('400')) {\n this.openSimplePopup('IFF is not required for this sales channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.CORPORATE && res.data[0].agentCode === '400003') {\n this.openSimplePopup('IFF is not required for this sales channel');\n return;\n }\n if (res.data[0].channel === AgentChannel.CORPORATE && res.data[0].agentCode.startsWith('400') && this.splitAgentCode.value) {\n this.openSimplePopup('Split agent is not allowed for CORPORATE channel');\n return;\n }\n\n const agentCodeList = [this.servicingAgentCode.value, this.splitAgentCode.value].filter(agentCode => !!agentCode);\n this.tempServicingAgent = null;\n this.tempSplitAgent = null;\n Promise.all(agentCodeList.map(agentCode => this.validateAgentCode(agentCode))).then(this.loadAgentByValidate);\n });\n }\n } else {\n this.notifyService.screenLoadingSubject.next(false);\n this.eMPFReferenceNo.setErrors({ haveExisted: true });\n }\n } else {\n this.notifyService.screenLoadingSubject.next(false);\n this.alert.error('Error!', res.message);\n }\n },\n error: err => {\n this.notifyService.screenLoadingSubject.next(false);\n this.alert.error('Error!', err);\n },\n });\n }\n\n loadAgentByValidate = (\n res: (\n | false\n | {\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number | undefined;\n }\n )[]\n ) => {\n this.notifyService.screenLoadingSubject.next(false);\n if (res.every(item => item)) {\n if (this.servicingAgentCode.value === this.splitAgentCode.value) {\n this.splitAgentCode.setErrors({ unMatch: true });\n } else {\n res.forEach((element, index) => {\n if (index === 0 && element) {\n this.tempServicingAgent = element;\n } else if (index === 1 && element) {\n this.tempSplitAgent = element;\n }\n });\n const temp = [];\n if (this.tempServicingAgent) {\n temp.push(this.tempServicingAgent);\n }\n if (this.tempSplitAgent) {\n temp.push(this.tempSplitAgent);\n }\n this.getAgentBranchCds(temp);\n this.isConfirming = true;\n }\n } else {\n res.forEach((element, index) => {\n if (!element) {\n if (index === 0) {\n this.servicingAgentCode.setErrors({ unMatch: true });\n } else if (index === 1) {\n this.splitAgentCode.setErrors({ unMatch: true });\n }\n }\n });\n }\n };\n\n getAgentBranchCds(tempAgentList: TempAgentType[]) {\n const agentCodes = [];\n for (const agent of tempAgentList) {\n agentCodes.push(agent.agentCode);\n }\n if (agentCodes.length === 0) {\n return;\n }\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n branchNo: string;\n }[]\n >('/ext/eb-ssms/agent-service/agent/branchCd', agentCodes)\n .subscribe({\n next: res => {\n if (res.result === 0) {\n for (let i = 0; i < res.data.length; i++) {\n const filAgent = tempAgentList.filter(tempAgent => tempAgent.agentCode === res.data[i].agentCode);\n if (filAgent.length > 0) {\n filAgent[0].branchNo = res.data[i].branchNo;\n }\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n eMPFReferenceNoChange(val: string) {\n if (/[\\u4e00-\\u9fa5]/gi.test(val)) {\n this.eMPFReferenceNo.setValue(val.replace(/[\\u4e00-\\u9fa5]/gi, ''));\n }\n }\n\n validateAgentCode(splitAgentCode: string) {\n return new Promise<\n | false\n | {\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }\n >(resolve => {\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>('/ext/eb-ssms/customer-service/add-delegation/validate', {\n agentCode: agentCodeRemovePrefix0(splitAgentCode.trim()),\n })\n .subscribe({\n next: res => {\n if (res.result === 0) {\n resolve(res.data);\n } else {\n // this.alert.error('Error!', res.message);\n resolve(false);\n }\n },\n error: () => {\n // this.alert.error('Error!', err);\n resolve(false);\n },\n });\n });\n }\n\n getAgentInformation(agentCode: string) {\n return new Promise(resolve => {\n this.cdHttpServeService.get('/ext/eb-ssms/agent-service/agent/information', { agentInfo: agentCode }).subscribe({\n next: res => {\n if (res.result === 0) {\n resolve(res.data);\n } else {\n this.alert.error('Error!', res.message);\n resolve(null);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n resolve(null);\n },\n });\n });\n }\n\n submit() {\n this.notifyService.screenLoadingSubject.next(true);\n\n const promiseList: Promise[] = [];\n if (this.servicingAgentCode.value) {\n promiseList.push(this.getAgentInformation(this.servicingAgentCode.value));\n }\n if (this.splitAgentCode.value) {\n promiseList.push(this.getAgentInformation(this.splitAgentCode.value));\n }\n Promise.all(promiseList).then(this.getAgentInformationAllCallBack);\n }\n\n servicingAgentFrApiAgentInformation: AgentDetailInfo | null = null;\n splitAgentFrApiAgentInformation: AgentDetailInfo | null = null;\n getAgentInformationAllCallBack = (res: (AgentDetailInfo | null)[]) => {\n this.servicingAgentFrApiAgentInformation = null;\n this.splitAgentFrApiAgentInformation = null;\n res.forEach((element, index) => {\n if (element) {\n if (index === 0) {\n this.servicingAgentFrApiAgentInformation = element;\n } else if (index === 1) {\n this.splitAgentFrApiAgentInformation = element;\n }\n }\n });\n from(getSessionByKey())\n .pipe(switchMap(this.getIdentityIdAlreadySubmission))\n .subscribe({\n next: res => {\n if (res.result === 0) {\n const ref = this.cdsPopup.open(UpdatedSuccessfullyComponent, {\n size: 'md',\n });\n ref.afterClosed().subscribe(() => {\n this.router.navigate(['/salesjourney/sales-support-summary', { productType: this.productType.value }]);\n });\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n };\n\n get isServicingAgentCodePerformed() {\n return this.individualsForm.get('isServicingAgentCodePerformed') as FormControl;\n }\n\n getIdentityIdAlreadySubmission = (res: Session) => {\n const agentInfos = [];\n if (this.servicingAgentFrApiAgentInformation) {\n agentInfos.push({\n agentId: this.servicingAgentFrApiAgentInformation.agentId,\n agentCd: this.servicingAgentFrApiAgentInformation.agentCode,\n servcingAgent: true,\n splitAgent: false,\n acknowledged: this.isServicingAgentCodePerformed.value,\n });\n }\n if (this.splitAgentFrApiAgentInformation) {\n agentInfos.push({\n agentId: this.splitAgentFrApiAgentInformation.agentId,\n agentCd: this.splitAgentFrApiAgentInformation.agentCode,\n servcingAgent: false,\n splitAgent: true,\n acknowledged: this.isSplitAgentCodePerformed.value,\n });\n }\n const identityId = res.id;\n\n const dList = this.paperIFFAgentSubmissionDateFrom.value.split('/');\n const paperFormSubmissionDate = `${dList[2]}-${dList[1]}-${dList[0]} 00:00:00`;\n const params: SubmissionParams = {\n productType: this.productType.value,\n identityId,\n formType: 'MBR',\n empfRefNo: this.eMPFReferenceNo.value,\n clientFirstNmEn: this.customerEnglishGivenName,\n clientLastNmEn: this.customerEnglishSurname,\n clientFirstNmChn: this.customerChinaGivenName,\n clientLastNmChn: this.customerChinaSurname,\n idType: +this.idType.value,\n hkidOrPassportNo: this.hkidOrPassportNo.value,\n clientCommChannel: this.clientContact,\n countryCode: this.clientCountryCode.value,\n phoneNumber: this.clientPhoneNumber.value,\n emailAddr: this.clientEmailAddress.value,\n specialNeeds: this.confirmSpecialNeedsValue === 'y',\n paperFormSubmissionDate,\n agentInfos,\n };\n if (!this.customerEnglishGivenName) {\n delete params['clientFirstNmEn'];\n }\n if (!this.customerEnglishSurname) {\n delete params['clientLastNmEn'];\n }\n if (!this.customerChinaGivenName) {\n delete params['clientFirstNmChn'];\n }\n if (!this.customerChinaSurname) {\n delete params['clientLastNmChn'];\n }\n if (this.clientContact === 'E') {\n delete params['countryCode'];\n delete params['phoneNumber'];\n } else if (this.clientContact === 'M') {\n delete params['emailAddr'];\n params['smsLanguage'] = this.preferredLanguage.value === PreferredLanguageType.English ? 0 : 1;\n }\n return this.cdHttpServeService.post<{ salesJourneySummariesId: string }>('/ext/eb-ssms-sales-journey-service/paperFormIff/submission', params);\n };\n\n backToEdit() {\n this.isConfirming = false;\n }\n\n clientContactChange(val: string) {\n this.preferredLanguage.setValue(undefined);\n if (val === 'E') {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n\n reset() {\n const popupRef: MatDialogRef = this.cdsPopup.open(ResetWarningComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(this.resetWarningComponentPopupCloseCall);\n }\n\n resetWarningComponentPopupCloseCall = (confirm: { agree: boolean }) => {\n if (confirm.agree) {\n this.individualsForm.reset();\n this.productType.setValue(null);\n this.customerEnglishSurname = '';\n this.customerEnglishGivenName = '';\n this.customerChinaSurname = '';\n this.customerChinaGivenName = '';\n this.clientCountryCode.setValue('852');\n this.idType.setValue('0');\n this.isTryConfirm = false;\n this.confirmSpecialNeedsValue = 'n';\n this.advisedSpecialNeedsValue = '1';\n this.resetDatePicker = true;\n this.clientContact = '';\n setTimeout(() => {\n this.resetDatePicker = false;\n setTimeout(() => {\n this.setPaperAgentSubmissionDateReadonly();\n }, 0);\n }, 0);\n this.preferredLanguage.reset();\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.cdRadioPreferredLanguage.refreshConfig();\n }\n };\n\n isAllowPast() {\n if (\n !this.productType.valid ||\n !this.eMPFReferenceNo.valid ||\n !this.paperIFFAgentSubmissionDateFrom.valid ||\n !this.servicingAgentCode.valid ||\n !this.splitAgentCode.valid ||\n !this.preferredLanguage.valid ||\n this.isCustomerEnglishError ||\n this.isCustomerChinaError\n ) {\n return false;\n }\n if (this.idType.value === '0' && !this.hkidOrPassportNo.valid) {\n return false;\n }\n if (this.clientContact === '') {\n return false;\n }\n if (this.clientContact === 'E' && !this.clientEmailAddress.valid) {\n return false;\n } else if (this.clientContact === 'M' && !this.clientPhoneNumber.valid) {\n return false;\n }\n\n return true;\n }\n\n get isCustomerEnglishError() {\n if (!this.isTryConfirm) {\n return false;\n }\n if (!this.customerEnglishSurname && !this.customerEnglishGivenName && !this.customerChinaSurname && !this.customerChinaGivenName) {\n return true;\n } else if ((this.customerEnglishSurname && !this.customerEnglishGivenName) || (!this.customerEnglishSurname && this.customerEnglishGivenName)) {\n return true;\n }\n return false;\n }\n\n get isCustomerChinaError() {\n if (!this.isTryConfirm) {\n return false;\n }\n if (!this.customerEnglishSurname && !this.customerEnglishGivenName && !this.customerChinaSurname && !this.customerChinaGivenName) {\n return true;\n } else if ((this.customerChinaSurname && !this.customerChinaGivenName) || (!this.customerChinaSurname && this.customerChinaGivenName)) {\n return true;\n }\n return false;\n }\n\n getAgentName(obj?: { name: string; chineseName: string }) {\n if (!obj) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return obj.name || obj.chineseName;\n } else {\n return obj.chineseName || obj.name;\n }\n }\n\n isDisableServicingAgentCodePerformed() {\n if (this.isConfirming) {\n this.isServicingAgentCodePerformed.disable();\n } else {\n this.isServicingAgentCodePerformed.enable();\n }\n }\n\n isDisableSplitAgentCodePerformed() {\n const disable =\n this.isConfirming ||\n !(!this.individualsForm.get('servicingAgentCode')?.hasError('required') && this.individualsForm.get('isServicingAgentCodePerformed')?.value);\n\n if (disable) {\n this.isSplitAgentCodePerformed.disable();\n } else {\n this.isSplitAgentCodePerformed.enable();\n }\n }\n\n ngDoCheck() {\n this.isDisableServicingAgentCodePerformed();\n this.isDisableSplitAgentCodePerformed();\n }\n}\n","
    \n
    \n
    \n \n
    \n Choose Product Type\n
    \n
    \n IFF Paper Form\n
    \n\n
    \n
    \n
    \n \n
    \n Individuals\n
    \n
    \n\n
    \n
    \n
    \n eMPF Information\n
    \n
    \n
    \n
    \n Product type\n
    \n
    \n {{ individualsForm.get('productType')?.value }}\n
    \n
    \n \n Please select the product type\n
    \n
    \n
    \n
    \n eMPF Reference No.\n
    \n
    \n {{ individualsForm.get('eMPFReferenceNo')?.value }}\n
    \n
    \n
    \n \n \n
    \n Please input the eMPF Reference No.\n eMPF Ref. No. is being used, please verify and input a valid eMPF Ref. No.\n
    \n
    \n
    \n
    \n Paper IFF Agent Submission Date\n
    \n
    \n {{ individualsForm.get('paperIFFAgentSubmissionDateFrom')?.value }}\n
    \n
    \n \n \n Please input the paper IFF agent submission date\n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Customer’s Information\n
    \n
    \n
    \n
    \n English Name :\n
    \n
    \n {{ customerEnglishSurname }} {{ customerEnglishGivenName }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n Please input the customer’s full name\n
    \n
    \n
    \n
    \n
    \n Chinese Name : \n
    \n
    \n {{ customerChinaSurname }} {{ customerChinaGivenName }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n Please input the customer’s full name\n
    \n
    \n
    \n
    \n
    \n HKID/ Passport No.* :\n
    \n
    \n ({{ individualsForm.get('idType')?.value === '0' ? 'HKID' : 'Passport No.' }}) {{ individualsForm.get('hkidOrPassportNo')?.value }}\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n {{ 'iff.pleaseInputHKIDPassportNo' | lang }}\n \n \n
    \n \n \n \n {{ 'common.invalid' | lang : { p1: 'case-details.HKIDPassportNo' | lang } }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Client Contact Information* :\n
    \n
    \n {{ individualsForm.get('clientEmailAddress')?.value }}\n (+{{ individualsForm.get('clientCountryCode')?.value }}) {{ individualsForm.get('clientPhoneNumber')?.value }}\n
    \n
    \n
    \n \n
    \n Please choose client contact information\n
    \n
    \n
    \n
    \n \n {{ 'common.please-input-valid-customer-email' | lang }}\n {{ 'common.please-input-customer-email' | lang }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n {{ 'common.please-input-valid-mobile-number' | lang }}\n \n \n
    \n
    \n \n \n {{ 'common.please-input-phone-number' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}:\n
    \n
    \n {{ individualsForm.get('preferredLanguage')?.value }}\n
    \n
    \n \n \n {{ 'common.plsSelect' | lang : { p1: 'sendIffInBatchSummary.preferredLanguage' | lang } }}\n \n
    \n
    \n
    \n
    \n
    \n *請確保資料與客戶在eMPF上提供的資料一致\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Special Needs\n
    \n
    \n
    \n Please confirm whether you are a client with Special Needs by checking the appropriate box below. \n
    \n
    \n {{\n confirmSpecialNeedsValue === 'y'\n ? 'Yes, I have special needs.'\n : 'No, I do not have special needs and this confirmation shall override any previous confirmation and/or any information about me, which may indicate otherwise.'\n }}\n
    \n
    \n \n Please choose special needs \n
    \n \n
    \n I have been advised to be accompanied by a companion and/or have an additional member of staff to witness the relevant sales process and\n constituent fund selection process, and I have chosen:\n
    \n
    \n not to have any witness\n to be accompanied by a companion/ to be accompanied by an additional member of staff as the witness\n
    \n
    \n \n Please choose \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n MPF Intermediary’s Information and Acknowledgement \n
    \n
    \n
    \n
    \n Servicing Agent Code\n
    \n
    \n {{ tempServicingAgent?.agentCode }} {{ getAgentName(tempServicingAgent || undefined) }} (District Code:\n {{ tempServicingAgent?.branchNo }})\n
    \n
    \n \n \n Please input agent code\n \n \n Invalid agent code\n \n
    \n
    \n
    \n \n
    \n I have performed the MPF Intermediary Fulfillment requirements in carrying out the regulated activities with the customer.\n
    \n
    \n
    \n
    \n
    \n Split Agent Code\n
    \n
    \n {{ tempSplitAgent?.agentCode }} {{ getAgentName(tempSplitAgent || undefined) }} (District Code: {{ tempSplitAgent?.branchNo }})\n
    \n
    \n
    \n \n
    \n I have performed the MPF Intermediary Fulfillment requirements in carrying out the regulated activities with the customer.\n
    \n
    \n
    \n
    \n
    \n
    \n Split Agent Code\n
    \n
    \n \n \n Invalid agent code\n \n
    \n
    \n
    \n \n
    \n I have performed the MPF Intermediary Fulfillment requirements in carrying out the regulated activities with the customer.\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'common.reset1' | lang }}\n
    \n
    \n {{ 'common.submit' | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'common.backToEdit' | lang }}\n
    \n
    \n {{ 'common.confirmAndSubmit' | lang }}\n
    \n
    \n \n \n\n","export enum EEProdType {\n PA = 'PA',\n TVC = 'TVC',\n FRC = 'FRC',\n SEP = 'SEP',\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-reset-warning',\n templateUrl: './reset-warning.component.html',\n styleUrls: ['./reset-warning.component.scss'],\n})\nexport class ResetWarningComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onCancel() {\n this.dialogRef.close({ agree: false });\n }\n\n onContinue() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n
    \n The changes you’ve made \n will be lost, \n are you sure to continue?\n
    \n
    \n {{ 'common.cancel' | lang }}\n {{ 'common.continue' | lang }}\n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-select-product-type',\n templateUrl: './select-product-type.component.html',\n styleUrls: ['./select-product-type.component.scss'],\n})\nexport class SelectProductTypeComponent implements OnInit {\n constructor(private router: Router) {}\n\n ngOnInit(): void {}\n\n goIndividual() {\n this.router.navigate(['/salesjourney/iff-paper-form/individuals']);\n }\n\n goEmployer() {\n this.router.navigate(['/salesjourney/iff-paper-form/employer']);\n }\n}\n","
    \n
    \n IFF Paper Form\n
    \n\n
    \n
    \n Select Product Type \n
    \n\n
    \n
    \n \n
    \n Individual\n
    \n
    \n
    \n \n
    \n Employer\n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { IFF_STATUS } from 'src/app/config/iff-status.config';\n\n@Component({\n selector: 'app-iff-status-flow-popup',\n templateUrl: './iff-status-flow-popup.component.html',\n styleUrls: ['./iff-status-flow-popup.component.scss'],\n})\nexport class IffStatusFlowPopupComponent implements OnInit {\n IFF_STATUS = IFF_STATUS;\n\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n cancel() {\n this.dialogRef.close();\n }\n}\n","
    \n
    \n IFF Status Flow\n
    \n
    \n
    \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n
    \n
    \n {{ item.text }}\n
    \n
    \n {{ item.info }}\n
    \n
    \n
    \n
    \n
    \n Got it\n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfAgentErRecordItem, RefNoType } from '../md-iff-summary.model';\n\nenum IffStatus {\n 'All',\n 'Completed',\n 'Declined',\n}\n\ninterface ReqeuestParams {\n domain: 'ER';\n page: number;\n size: number;\n empfNo?: string;\n companyName?: string;\n brNo?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n empfStatus?: number[];\n}\n\n@Component({\n selector: 'app-empf-agent-er',\n templateUrl: './empf-agent-er.component.html',\n styleUrls: ['./empf-agent-er.component.scss'],\n})\nexport class EmpfAgentErComponent implements OnInit {\n @Input() rolePriority?: string;\n formGroup!: FormGroup;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = ['empfNo', 'mdNo', 'employerName', 'brNumber', 'declarationDate', 'mdIffStatus', 'empfStatus', 'isSplitAgent'];\n allPageData: EmpfAgentErRecordItem[][] = [];\n totalElements = 0;\n totalPages = 0;\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iffStatusSelected = IffStatus.All;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get companyName() {\n return this.formGroup.get('companyName') as FormControl;\n }\n\n get brNo() {\n return this.formGroup.get('brNo') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n companyName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n brNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusoptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initEmpfAppStatusoptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Corperate,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/er-empf-case-details', empfNo, routeParams]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.companyName = this.companyName.value;\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfAgentErRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/agent', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.employer-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-br-number' | lang }}\n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.employer-name' | lang }}\n \n {{ element.employerName }}\n \n \n \n {{ 'md-iff-summary.label-br-number' | lang }}\n \n {{ element.brNumber }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { EmpfAgentIndRecordItem, IndividualType, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'IND';\n page: number;\n size: number;\n empfNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n empfStatus?: number[];\n hkidOrPassportNo?: string;\n}\n\n@Component({\n selector: 'app-empf-agent-ind',\n templateUrl: './empf-agent-ind.component.html',\n styleUrls: ['./empf-agent-ind.component.scss'],\n})\nexport class EmpfAgentIndComponent implements OnInit {\n @Input() rolePriority?: string;\n IndividualType = IndividualType;\n individualTypeSelected = IndividualType.ALL;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n };\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n formGroup!: FormGroup;\n readonly displayedColumns = ['empfNo', 'mdNo', 'productType', 'clientName', 'hkIdOrPassport', 'declarationDate', 'mdIffStatus', 'empfStatus', 'isSplitAgent'];\n allPageData: EmpfAgentIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n isLoading = false;\n totalElements = 0;\n totalPages = 0;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get hkidOrPassportNo() {\n return this.formGroup.get('hkidOrPassportNo') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get productTypes() {\n return this.formGroup.get('productTypes') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n hkidOrPassportNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n empfStatus: new FormControl([]),\n productTypes: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusoptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initEmpfAppStatusoptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n checkProductTypeTag(value: IndividualType) {\n this.individualTypeSelected = value;\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Individual,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/empf-case-details', empfNo, routeParams]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.hkidOrPassportNo = this.hkidOrPassportNo.value;\n switch (this.individualTypeSelected) {\n case IndividualType.PA:\n this.reqeuestParams.productTypes = [IndividualType.PA];\n break;\n\n case IndividualType.SVC:\n this.reqeuestParams.productTypes = [IndividualType.SVC];\n break;\n\n case IndividualType.TVC:\n this.reqeuestParams.productTypes = [IndividualType.TVC];\n break;\n\n default:\n this.reqeuestParams.productTypes = [IndividualType.PA, IndividualType.TVC, IndividualType.SVC];\n break;\n }\n\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfAgentIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/agent', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    \n
    Filter by:
    \n
    \n All Product Type\n
    \n
    \n PA\n
    \n
    \n TVC\n
    \n
    \n SVC\n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { EmpfAgentIndRecordItem, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'SEP';\n page: number;\n size: number;\n empfNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n empfStatus?: number[];\n hkidOrPassportNo?: string;\n}\n\n@Component({\n selector: 'app-empf-agent-sep',\n templateUrl: './empf-agent-sep.component.html',\n styleUrls: ['./empf-agent-sep.component.scss'],\n})\nexport class EmpfAgentSepComponent implements OnInit {\n @Input() rolePriority?: string;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n };\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n formGroup!: FormGroup;\n readonly displayedColumns = ['empfNo', 'mdNo', 'productType', 'clientName', 'hkIdOrPassport', 'declarationDate', 'mdIffStatus', 'empfStatus', 'isSplitAgent'];\n allPageData: EmpfAgentIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n isLoading = false;\n totalElements = 0;\n totalPages = 0;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get hkidOrPassportNo() {\n return this.formGroup.get('hkidOrPassportNo') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get productTypes() {\n return this.formGroup.get('productTypes') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n hkidOrPassportNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n empfStatus: new FormControl([]),\n productTypes: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusoptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initEmpfAppStatusoptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.SEP,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/empf-case-details', empfNo, routeParams]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.hkidOrPassportNo = this.hkidOrPassportNo.value;\n this.reqeuestParams.productTypes = ['SEP'];\n\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfAgentIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/agent', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { DECLINE_REASON } from 'src/app/config/decline-reason.config';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { IndividualType } from '../../case-summary/case-summary.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfSupportErRecordItem, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'ER';\n page: number;\n size: number;\n empfNo?: string;\n companyName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n empfStatus?: number[];\n agentCode?: string;\n brNo?: string;\n declineReason?: number[];\n abm?: string;\n}\n\n@Component({\n selector: 'app-empf-salessupport-er',\n templateUrl: './empf-salessupport-er.component.html',\n styleUrls: ['./empf-salessupport-er.component.scss'],\n})\nexport class EmpfSalessupportErComponent implements OnInit {\n @Input() rolePriority?: string;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n formGroup!: FormGroup;\n IndividualType = IndividualType;\n individualTypeSelected = IndividualType.ALL;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'empfNo',\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'employerName',\n 'brNumber',\n 'expiryDate',\n 'declarationDate',\n 'mdIffStatus',\n 'empfStatus',\n 'isSplitAgent',\n 'declineReason',\n ];\n\n allPageData: EmpfSupportErRecordItem[][] = [];\n currentPageNumOrigin = 1;\n abmOptionList: CdsOption[] = [];\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n declinedReasonOptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get companyName() {\n return this.formGroup.get('companyName') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get abm() {\n return this.formGroup.get('abm') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get brNo() {\n return this.formGroup.get('brNo') as FormControl;\n }\n\n get declineReason() {\n return this.formGroup.get('declineReason') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get districtCode() {\n return this.formGroup.get('districtCode') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n companyName: new FormControl(),\n agentCode: new FormControl(),\n districtCode: new FormControl(),\n abm: new FormControl([]),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n brNo: new FormControl(),\n declineReason: new FormControl([]),\n mdIffStatus: new FormControl([]),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initDeclinedReasonOptions();\n this.initEmpfAppStatusOptions();\n this.getABMList();\n this.search();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initDeclinedReasonOptions() {\n this.declinedReasonOptionList = DECLINE_REASON.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initEmpfAppStatusOptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n iFFExpiryDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n iFFExpiryDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n getDeclinedReasonLabel(declineReasons: number[]): string[] {\n const labelList: string[] = [];\n declineReasons.forEach(val => {\n const item = this.declinedReasonOptionList.find(item => item.value === val);\n if (item) {\n labelList.push(item.label);\n }\n });\n return labelList;\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n abm: [],\n declineReason: [],\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n checkProductTypeTag(value: IndividualType) {\n this.individualTypeSelected = value;\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Corperate,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/er-empf-case-details', empfNo, routeParams]);\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.abm = this.abm.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.agentCode = this.agentCode.value;\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.companyName = this.companyName.value;\n this.reqeuestParams.declineReason = this.declineReason.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfSupportErRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/salesSupport', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.employer-name' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.agent-code' | lang }}\n \n
    \n
    \n District Code\n \n
    \n
    \n
    \n
    \n
    \n ABM\n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-br-number' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n Declined Reason\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.employer-name' | lang }}\n \n {{ element.employerName }}\n \n \n \n {{ 'md-iff-summary.label-br-number' | lang }}\n \n {{ element.brNumber }}\n \n \n \n MD Expiry Date\n \n {{ element.expiryDate }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Declined Reason\n \n
    \n \n {{ reason }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { DECLINE_REASON } from 'src/app/config/decline-reason.config';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfSupportIndRecordItem, IndividualType, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'IND';\n page: number;\n size: number;\n empfNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n empfStatus?: number[];\n hkidOrPassportNo?: string;\n agentCode?: string;\n declineReason?: number[];\n abm?: string;\n}\n\n@Component({\n selector: 'app-empf-salessupport-ind',\n templateUrl: './empf-salessupport-ind.component.html',\n styleUrls: ['./empf-salessupport-ind.component.scss'],\n})\nexport class EmpfSalessupportIndComponent implements OnInit {\n @Input() rolePriority?: string;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n IndividualType = IndividualType;\n formGroup!: FormGroup;\n individualTypeSelected = IndividualType.ALL;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: [IndividualType.PA, IndividualType.TVC, IndividualType.SVC],\n };\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'empfNo',\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'productType',\n 'clientName',\n 'declarationDate',\n 'mdIffStatus',\n 'empfStatus',\n 'isSplitAgent',\n 'hkIdOrPassport',\n 'declineReason',\n ];\n\n allPageData: EmpfSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n abmOptionList: CdsOption[] = [];\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n declinedReasonOptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get districtCode() {\n return this.formGroup.get('districtCode') as FormControl;\n }\n\n get abm() {\n return this.formGroup.get('abm') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get hkidOrPassportNo() {\n return this.formGroup.get('hkidOrPassportNo') as FormControl;\n }\n\n get declineReason() {\n return this.formGroup.get('declineReason') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n clientName: new FormControl(),\n agentCode: new FormControl(),\n districtCode: new FormControl(),\n abm: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n hkidOrPassportNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n declineReason: new FormControl(),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusOptions();\n this.initDeclinedReasonOptions();\n this.getABMList();\n this.search();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initEmpfAppStatusOptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initDeclinedReasonOptions() {\n this.declinedReasonOptionList = DECLINE_REASON.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n getDeclinedReasonLabel(declineReasons: number[]): string[] {\n const labelList: string[] = [];\n declineReasons.forEach(val => {\n const item = this.declinedReasonOptionList.find(item => item.value === val);\n if (item) {\n labelList.push(item.label);\n }\n });\n return labelList;\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n iFFExpiryDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n iFFExpiryDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n abm: [],\n declineReason: [],\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: [IndividualType.PA, IndividualType.TVC, IndividualType.SVC],\n };\n this.search();\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.abm = this.abm.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.agentCode = this.agentCode.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.declineReason = this.declineReason.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.hkidOrPassportNo = this.hkidOrPassportNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n switch (this.individualTypeSelected) {\n case IndividualType.PA:\n this.reqeuestParams.productTypes = [IndividualType.PA];\n break;\n\n case IndividualType.SVC:\n this.reqeuestParams.productTypes = [IndividualType.SVC];\n break;\n\n case IndividualType.TVC:\n this.reqeuestParams.productTypes = [IndividualType.TVC];\n break;\n\n default:\n this.reqeuestParams.productTypes = [IndividualType.PA, IndividualType.TVC, IndividualType.SVC];\n break;\n }\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/salesSupport', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n checkProductTypeTag(value: IndividualType) {\n this.individualTypeSelected = value;\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Individual,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/empf-case-details', empfNo, routeParams]);\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.agent-code' | lang }}\n \n
    \n
    \n District Code\n \n
    \n
    \n
    \n
    \n
    \n ABM\n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n Declined Reason\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    {{ 'md-iff-summary.product-type' | lang }}:
    \n
    \n All Product Type\n
    \n
    PA
    \n
    \n TVC\n
    \n
    \n SVC\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n\n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n Declined Reason\n \n
    \n \n {{ reason }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { DECLINE_REASON } from 'src/app/config/decline-reason.config';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfSupportIndRecordItem, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'SEP';\n page: number;\n size: number;\n empfNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n empfStatus?: number[];\n hkidOrPassportNo?: string;\n agentCode?: string;\n declineReason?: number[];\n abm?: string;\n}\n\n@Component({\n selector: 'app-empf-salessupport-sep',\n templateUrl: './empf-salessupport-sep.component.html',\n styleUrls: ['./empf-salessupport-sep.component.scss'],\n})\nexport class EmpfSalessupportSepComponent implements OnInit {\n @Input() rolePriority?: string;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n formGroup!: FormGroup;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'empfNo',\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'productType',\n 'clientName',\n 'declarationDate',\n 'mdIffStatus',\n 'empfStatus',\n 'isSplitAgent',\n 'hkIdOrPassport',\n 'declineReason',\n ];\n\n allPageData: EmpfSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n abmOptionList: CdsOption[] = [];\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n declinedReasonOptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get districtCode() {\n return this.formGroup.get('districtCode') as FormControl;\n }\n\n get abm() {\n return this.formGroup.get('abm') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get hkidOrPassportNo() {\n return this.formGroup.get('hkidOrPassportNo') as FormControl;\n }\n\n get declineReason() {\n return this.formGroup.get('declineReason') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n clientName: new FormControl(),\n agentCode: new FormControl(),\n districtCode: new FormControl(),\n abm: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n hkidOrPassportNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n declineReason: new FormControl(),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusOptions();\n this.initDeclinedReasonOptions();\n this.getABMList();\n this.search();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initEmpfAppStatusOptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initDeclinedReasonOptions() {\n this.declinedReasonOptionList = DECLINE_REASON.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n getDeclinedReasonLabel(declineReasons: number[]): string[] {\n const labelList: string[] = [];\n declineReasons.forEach(val => {\n const item = this.declinedReasonOptionList.find(item => item.value === val);\n if (item) {\n labelList.push(item.label);\n }\n });\n return labelList;\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n iFFExpiryDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n iFFExpiryDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n abm: [],\n declineReason: [],\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n this.search();\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.abm = this.abm.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.agentCode = this.agentCode.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.declineReason = this.declineReason.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.hkidOrPassportNo = this.hkidOrPassportNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/salesSupport', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.SEP,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/empf-case-details', empfNo, routeParams]);\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.agent-code' | lang }}\n \n
    \n
    \n District Code\n \n
    \n
    \n
    \n
    \n
    \n ABM\n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n Declined Reason\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n\n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n Declined Reason\n \n
    \n \n {{ reason }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { DECLINE_REASON } from 'src/app/config/decline-reason.config';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { IndividualType } from '../../case-summary/case-summary.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfSupportErRecordItem, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'ER';\n page: number;\n size: number;\n empfNo?: string;\n companyName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n empfStatus?: number[];\n agentCode?: string;\n brNo?: string;\n declineReason?: number[];\n abm?: string;\n}\n\n@Component({\n selector: 'app-empf-superadmin-er',\n templateUrl: './empf-superadmin-er.component.html',\n styleUrls: ['./empf-superadmin-er.component.scss'],\n})\nexport class EmpfSuperadminErComponent implements OnInit {\n @Input() rolePriority?: string;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n formGroup!: FormGroup;\n IndividualType = IndividualType;\n individualTypeSelected = IndividualType.ALL;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'empfNo',\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'employerName',\n 'brNumber',\n 'expiryDate',\n 'declarationDate',\n 'mdIffStatus',\n 'empfStatus',\n 'isSplitAgent',\n 'declineReason',\n ];\n\n allPageData: EmpfSupportErRecordItem[][] = [];\n currentPageNumOrigin = 1;\n abmOptionList: CdsOption[] = [];\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n declinedReasonOptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get companyName() {\n return this.formGroup.get('companyName') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get abm() {\n return this.formGroup.get('abm') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get brNo() {\n return this.formGroup.get('brNo') as FormControl;\n }\n\n get declineReason() {\n return this.formGroup.get('declineReason') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get districtCode() {\n return this.formGroup.get('districtCode') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n companyName: new FormControl(),\n agentCode: new FormControl(),\n districtCode: new FormControl(),\n abm: new FormControl([]),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n brNo: new FormControl(),\n declineReason: new FormControl([]),\n mdIffStatus: new FormControl([]),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initDeclinedReasonOptions();\n this.initEmpfAppStatusOptions();\n this.getABMList();\n this.search();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initDeclinedReasonOptions() {\n this.declinedReasonOptionList = DECLINE_REASON.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initEmpfAppStatusOptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n iFFExpiryDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n iFFExpiryDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n getDeclinedReasonLabel(declineReasons: number[]): string[] {\n const labelList: string[] = [];\n declineReasons.forEach(val => {\n const item = this.declinedReasonOptionList.find(item => item.value === val);\n if (item) {\n labelList.push(item.label);\n }\n });\n return labelList;\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n abm: [],\n declineReason: [],\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n checkProductTypeTag(value: IndividualType) {\n this.individualTypeSelected = value;\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Corperate,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n this.router.navigate(['/salesjourney/er-empf-case-details', empfNo, routeParams]);\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.abm = this.abm.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.agentCode = this.agentCode.value;\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.companyName = this.companyName.value;\n this.reqeuestParams.declineReason = this.declineReason.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfSupportErRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/superAdmin', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.employer-name' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.agent-code' | lang }}\n \n
    \n
    \n District Code\n \n
    \n
    \n
    \n
    \n
    \n ABM\n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-br-number' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n Declined Reason\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.employer-name' | lang }}\n \n {{ element.employerName }}\n \n \n \n {{ 'md-iff-summary.label-br-number' | lang }}\n \n {{ element.brNumber }}\n \n \n \n MD Expiry Date\n \n {{ element.expiryDate }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Declined Reason\n \n
    \n \n {{ reason }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { DECLINE_REASON } from 'src/app/config/decline-reason.config';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfSupportIndRecordItem, IndividualType, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'IND';\n page: number;\n size: number;\n empfNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n empfStatus?: number[];\n hkidOrPassportNo?: string;\n agentCode?: string;\n declineReason?: number[];\n abm?: string;\n}\n@Component({\n selector: 'app-empf-superadmin-ind',\n templateUrl: './empf-superadmin-ind.component.html',\n styleUrls: ['./empf-superadmin-ind.component.scss'],\n})\nexport class EmpfSuperadminIndComponent implements OnInit {\n @Input() rolePriority?: string;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n IndividualType = IndividualType;\n formGroup!: FormGroup;\n individualTypeSelected = IndividualType.ALL;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: [IndividualType.PA, IndividualType.TVC, IndividualType.SVC],\n };\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'empfNo',\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'productType',\n 'clientName',\n 'declarationDate',\n 'mdIffStatus',\n 'empfStatus',\n 'isSplitAgent',\n 'hkIdOrPassport',\n 'declineReason',\n ];\n\n allPageData: EmpfSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n abmOptionList: CdsOption[] = [];\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n declinedReasonOptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get districtCode() {\n return this.formGroup.get('districtCode') as FormControl;\n }\n\n get abm() {\n return this.formGroup.get('abm') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get hkidOrPassportNo() {\n return this.formGroup.get('hkidOrPassportNo') as FormControl;\n }\n\n get declineReason() {\n return this.formGroup.get('declineReason') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n clientName: new FormControl(),\n agentCode: new FormControl(),\n districtCode: new FormControl(),\n abm: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n hkidOrPassportNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n declineReason: new FormControl(),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusOptions();\n this.initDeclinedReasonOptions();\n this.getABMList();\n this.search();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initEmpfAppStatusOptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initDeclinedReasonOptions() {\n this.declinedReasonOptionList = DECLINE_REASON.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n getDeclinedReasonLabel(declineReasons: number[]): string[] {\n const labelList: string[] = [];\n declineReasons.forEach(val => {\n const item = this.declinedReasonOptionList.find(item => item.value === val);\n if (item) {\n labelList.push(item.label);\n }\n });\n return labelList;\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n iFFExpiryDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n iFFExpiryDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n abm: [],\n declineReason: [],\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: [IndividualType.PA, IndividualType.TVC, IndividualType.SVC],\n };\n this.search();\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.abm = this.abm.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.agentCode = this.agentCode.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.declineReason = this.declineReason.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.hkidOrPassportNo = this.hkidOrPassportNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n switch (this.individualTypeSelected) {\n case IndividualType.PA:\n this.reqeuestParams.productTypes = [IndividualType.PA];\n break;\n\n case IndividualType.SVC:\n this.reqeuestParams.productTypes = [IndividualType.SVC];\n break;\n\n case IndividualType.TVC:\n this.reqeuestParams.productTypes = [IndividualType.TVC];\n break;\n\n default:\n this.reqeuestParams.productTypes = [IndividualType.PA, IndividualType.TVC, IndividualType.SVC];\n break;\n }\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/superAdmin', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n checkProductTypeTag(value: IndividualType) {\n this.individualTypeSelected = value;\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.Individual,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n\n this.router.navigate(['/salesjourney/empf-case-details', empfNo, routeParams]);\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.agent-code' | lang }}\n \n
    \n
    \n District Code\n \n
    \n
    \n
    \n
    \n
    \n ABM\n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n Declined Reason\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    {{ 'md-iff-summary.product-type' | lang }}:
    \n
    \n All Product Type\n
    \n
    PA
    \n
    \n TVC\n
    \n
    \n SVC\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n\n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n Declined Reason\n \n
    \n \n {{ reason }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { DECLINE_REASON } from 'src/app/config/decline-reason.config';\nimport { EMPF_APP_STATUS } from 'src/app/config/empf-app-status.config';\nimport { eMPF_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { EmpfAppStatusPopupComponent } from '../../empf-app-status-popup/empf-app-status-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { QuickSearchIffStatus } from '../md-iff-summary.component';\nimport { EmpfSupportIndRecordItem, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'SEP';\n page: number;\n size: number;\n empfNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n empfStatus?: number[];\n hkidOrPassportNo?: string;\n agentCode?: string;\n declineReason?: number[];\n abm?: string;\n}\n\n@Component({\n selector: 'app-empf-superadmin-sep',\n templateUrl: './empf-superadmin-sep.component.html',\n styleUrls: ['./empf-superadmin-sep.component.scss'],\n})\nexport class EmpfSuperadminSepComponent implements OnInit {\n @Input() rolePriority?: string;\n QuickSearchIffStatus = QuickSearchIffStatus;\n quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n formGroup!: FormGroup;\n copyText = copyText;\n reqeuestParams: ReqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n mdIffStatusCompleted?: CdsOption;\n mdIffStatusDeclined?: CdsOption;\n\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'empfNo',\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'productType',\n 'clientName',\n 'declarationDate',\n 'mdIffStatus',\n 'empfStatus',\n 'isSplitAgent',\n 'hkIdOrPassport',\n 'declineReason',\n ];\n\n allPageData: EmpfSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n abmOptionList: CdsOption[] = [];\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n empfAppStatusoptionList: CdsOption[] = [];\n declinedReasonOptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get empfNo() {\n return this.formGroup.get('empfNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get agentCode() {\n return this.formGroup.get('agentCode') as FormControl;\n }\n\n get districtCode() {\n return this.formGroup.get('districtCode') as FormControl;\n }\n\n get abm() {\n return this.formGroup.get('abm') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get empfStatus() {\n return this.formGroup.get('empfStatus') as FormControl;\n }\n\n get hkidOrPassportNo() {\n return this.formGroup.get('hkidOrPassportNo') as FormControl;\n }\n\n get declineReason() {\n return this.formGroup.get('declineReason') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n empfNo: new FormControl(),\n clientName: new FormControl(),\n agentCode: new FormControl(),\n districtCode: new FormControl(),\n abm: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n hkidOrPassportNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n declineReason: new FormControl(),\n empfStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.initEmpfAppStatusOptions();\n this.initDeclinedReasonOptions();\n this.getABMList();\n this.search();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = eMPF_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n\n this.mdIffStatusCompleted = this.iffStatusoptionList.find(item => item.label === 'Completed');\n this.mdIffStatusDeclined = this.iffStatusoptionList.find(item => item.label === 'Declined');\n }\n\n private initEmpfAppStatusOptions() {\n this.empfAppStatusoptionList = EMPF_APP_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n private initDeclinedReasonOptions() {\n this.declinedReasonOptionList = DECLINE_REASON.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n getDeclinedReasonLabel(declineReasons: number[]): string[] {\n const labelList: string[] = [];\n declineReasons.forEach(val => {\n const item = this.declinedReasonOptionList.find(item => item.value === val);\n if (item) {\n labelList.push(item.label);\n }\n });\n return labelList;\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n iFFExpiryDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n iFFExpiryDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onDisplayAdviseEmpf() {\n this.cdsPopup.open(EmpfAppStatusPopupComponent, {\n size: 'sm',\n });\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n if (this.mdIffStatus.value) {\n if (this.mdIffStatus.value.length === 0) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusCompleted?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Completed;\n } else if (this.mdIffStatus.value.length === 1 && this.mdIffStatus.value[0].value === this.mdIffStatusDeclined?.value) {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.Declined;\n } else {\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.NONE;\n }\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n abm: [],\n declineReason: [],\n mdIffStatus: [],\n empfStatus: [],\n });\n this.onResetDatePicker();\n this.quickSearchIffStatusSelected = QuickSearchIffStatus.All;\n\n this.reqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n this.search();\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.abm = this.abm.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.agentCode = this.agentCode.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.declineReason = this.declineReason.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.empfNo = this.empfNo.value;\n this.reqeuestParams.empfStatus = this.empfStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.hkidOrPassportNo = this.hkidOrPassportNo.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EmpfSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/empfIffSummaries/superAdmin', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n checkIFFStatusTag(value: QuickSearchIffStatus) {\n this.quickSearchIffStatusSelected = value;\n switch (this.quickSearchIffStatusSelected) {\n case QuickSearchIffStatus.Completed:\n if (this.mdIffStatusCompleted != null) {\n this.mdIffStatus.setValue([this.mdIffStatusCompleted]);\n }\n break;\n case QuickSearchIffStatus.Declined:\n if (this.mdIffStatusDeclined != null) {\n this.mdIffStatus.setValue([this.mdIffStatusDeclined]);\n }\n break;\n\n default:\n this.mdIffStatus.setValue([]);\n break;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(empfNo: string, mdNo: string | null) {\n const routeParams: any = {\n refNoType: RefNoType.EMPF,\n tabIndex: 1,\n prodType: SalesJourneyProdType.SEP,\n };\n\n if (mdNo !== null) {\n routeParams.mdNo = mdNo;\n }\n\n this.router.navigate(['/salesjourney/empf-case-details', empfNo, routeParams]);\n }\n\n hkidOrPassportNoChange(event: string) {\n const value = this.hkidOrPassportNo.value.replace(/[\\u4e00-\\u9fa5]/gi, '');\n if (event !== value) {\n this.hkidOrPassportNo.setValue(value);\n }\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.agent-code' | lang }}\n \n
    \n
    \n District Code\n \n
    \n
    \n
    \n
    \n
    \n ABM\n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n
    \n Declined Reason\n \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.empf-app-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n
    \n\n
    \n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n
    \n
    \n Generate New eIFF Reference No.\n \n \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.eMPF-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.md-ref-no' | lang\n }}\n \n
    \n
    \n {{ element.mdNo }}\n
    \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n\n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n \n
    \n {{ 'md-iff-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ empfAppStatusService.getEmpfAppStatusInfo(element.empfStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n Declined Reason\n \n
    \n \n {{ reason }}\n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { Subscription } from 'rxjs';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { AgentProductSummary } from '../../product-type-summary/product-type-summary.model';\nimport { producttypeRequest } from '../../product-type-summary/producttype-request';\nimport { ProductTypeSummaryService } from '../../product-type-summary/producttype-summary.service';\n\n@Component({\n selector: 'app-md-iff-select-product-type',\n templateUrl: './md-iff-select-product-type.component.html',\n styleUrls: ['./md-iff-select-product-type.component.scss'],\n})\nexport class MdIffSelectProductTypeComponent implements OnInit, OnDestroy {\n SalesJourneyProdType = SalesJourneyProdType;\n select = '';\n paSummary = new AgentProductSummary(0, 0, 0, 0);\n tvcSummary = new AgentProductSummary(0, 0, 0, 0);\n svcSummary = new AgentProductSummary(0, 0, 0, 0);\n erSummary = new AgentProductSummary(0, 0, 0, 0);\n sepSummary = new AgentProductSummary(0, 0, 0, 0);\n private errorSub?: Subscription;\n\n constructor(private router: Router, private alert: CdsAlertService, private productTypeSummaryService: ProductTypeSummaryService) {}\n ngOnDestroy(): void {\n this.productSummarySubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n }\n\n ngOnInit(): void {\n this.productTypeSummaryService.getProducttypeSummary();\n this.errorSub = this.productTypeSummaryService.errorproducttypeSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n this.productSummarySubscription = this.productTypeSummaryService.producttypeDataSubject.subscribe(response => {\n if (response.result !== undefined) {\n if (response.data !== undefined) {\n this.tvcSummary.pendingAgent = response.data.TVC?.pending2ndAgent;\n this.tvcSummary.pendingcustomer = response.data.TVC?.pendingCusSubmission;\n this.tvcSummary.pendingToMap = response.data.TVC?.pendingToMap;\n this.paSummary.pendingAgent = response.data.PA?.pending2ndAgent;\n this.paSummary.pendingcustomer = response.data.PA?.pendingCusSubmission;\n this.paSummary.pendingToMap = response.data.PA?.pendingToMap;\n this.svcSummary.pendingAgent = response.data.SVC?.pending2ndAgent;\n this.svcSummary.pendingcustomer = response.data.SVC?.pendingCusSubmission;\n this.svcSummary.pendingToMap = response.data.SVC?.pendingToMap;\n this.erSummary.pendingAgent = response.data.ER?.pending2ndAgent;\n this.erSummary.pendingcustomer = response.data.ER?.pendingCusSubmission;\n this.erSummary.pendingToMap = response.data.ER?.pendingToMap;\n this.sepSummary.pendingAgent = response.data.SEP?.pending2ndAgent;\n this.sepSummary.pendingcustomer = response.data.SEP?.pendingCusSubmission;\n this.sepSummary.pendingToMap = response.data.SEP?.pendingToMap;\n }\n }\n });\n }\n onclickroute(value: SalesJourneyProdType) {\n this.select = value;\n sessionStorage.setItem('productType', value);\n localStorage.removeItem('case-summary-search-params');\n localStorage.removeItem('case-summary-selected-data');\n this.router.navigate(['/salesjourney/md-iff-summary']);\n }\n myRqeuest: producttypeRequest = {\n productTypes: 'All',\n };\n private productSummarySubscription?: Subscription;\n\n get isIndividualPendingStatus() {\n return (\n (this.paSummary.pendingAgent || 0) > 0 ||\n (this.paSummary.pendingcustomer || 0) > 0 ||\n (this.paSummary.pendingToMap || 0) > 0 ||\n (this.tvcSummary.pendingAgent || 0) > 0 ||\n (this.tvcSummary.pendingcustomer || 0) > 0 ||\n (this.tvcSummary.pendingToMap || 0) > 0 ||\n (this.svcSummary.pendingAgent || 0) > 0 ||\n (this.svcSummary.pendingcustomer || 0) > 0 ||\n (this.svcSummary.pendingToMap || 0) > 0\n );\n }\n\n get isErPendingStatus() {\n return (this.erSummary.pendingAgent || 0) > 0 || (this.erSummary.pendingcustomer || 0) > 0 || (this.erSummary.pendingToMap || 0) > 0;\n }\n\n get isSepPendingStatus() {\n return (this.sepSummary.pendingAgent || 0) > 0 || (this.sepSummary.pendingcustomer || 0) > 0 || (this.sepSummary.pendingToMap || 0) > 0;\n }\n}\n","
    \n
    \n MPF eIFF Summary - All Product Types \n
    \n\n
    \n
    \n Select Product Type\n
    \n\n
    \n
    \n
    \n
    \n
    \n Individual (PA, TVC, SVC)\n
    \n
    \n
    \n \n
    \n
    \n Pending Items\n
    \n
    \n
    \n
    \n
    \n
    \n PA\n
    \n
    \n
    \n Pending to map :\n
    \n
    \n {{ paSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ paSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent(s) acknowledgement :\n
    \n
    \n {{ paSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n TVC\n
    \n
    \n
    \n Pending to map :\n
    \n
    \n {{ tvcSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ tvcSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent(s) acknowledgement :\n
    \n
    \n {{ tvcSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n SVC\n
    \n
    \n
    \n Pending to map :\n
    \n
    \n {{ svcSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ svcSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent(s) acknowledgement :\n
    \n
    \n {{ svcSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Corporate (ER)\n
    \n
    \n
    \n \n
    \n
    \n Pending Items\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending to map :\n
    \n
    \n {{ erSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ erSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent(s) acknowledgement :\n
    \n
    \n {{ erSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Self-Employed Person (SEP)\n
    \n
    \n
    \n \n
    \n
    \n Pending Items\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending to map :\n
    \n
    \n {{ sepSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ sepSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent(s) acknowledgement :\n
    \n
    \n {{ sepSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { EmpfAppStatusService } from 'src/app/core/services/empf-app-status/empf-app-status.service';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault } from 'src/app/utils/utils';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\nimport { IffCompletionStepsPopupComponent } from '../iff-completion-steps-popup/iff-completion-steps-popup.component';\nimport { AgentProductSummary } from '../product-type-summary/product-type-summary.model';\nimport { CheckResponseData } from '../product-type-summary/producttype-response';\nimport { ProductTypeCountDetailsPopupComponent } from './product-type-count-details-popup/product-type-count-details-popup.component';\nimport { IndividualType } from './md-iff-summary.model';\n\ntype RolePriority = 'SalesSupport' | 'SalesJourneyAgent' | 'SuperAdmin';\n\nexport enum QuickSearchIffStatus {\n 'All',\n 'Completed',\n 'Declined',\n 'NONE',\n}\n\nenum TabIndex {\n 'mdiff',\n 'empf',\n}\n\n@Component({\n selector: 'app-md-iff-summary',\n templateUrl: './md-iff-summary.component.html',\n styleUrls: ['./md-iff-summary.component.scss'],\n})\nexport class MdIffSummaryComponent implements OnInit, OnDestroy {\n SalesJourneyProdType = SalesJourneyProdType;\n TabIndex = TabIndex;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n IndividualType = IndividualType;\n IffStatus = QuickSearchIffStatus;\n individualTypeSelected = IndividualType.ALL;\n iffStatusSelected = QuickSearchIffStatus.All;\n prodTypeFormControl: FormControl = new FormControl(SalesJourneyProdType.Individual);\n productTypeOptions = [\n {\n label: 'Individual(PA,TVC,SVC)',\n value: SalesJourneyProdType.Individual,\n },\n { label: 'Corperate(ER)', value: SalesJourneyProdType.Corperate },\n { label: 'SEP', value: SalesJourneyProdType.SEP },\n ];\n hasSalesSupportRole = false;\n hasSalesJourneyAgentRole = false;\n hasSalesJourneySuperAdminRole = false;\n rolePriority?: RolePriority;\n tabIndex: TabIndex = TabIndex.mdiff;\n backSummaryIcon = ActionIcons.button_left_filled;\n\n backSummaryIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n\n paSummary = new AgentProductSummary(0, 0, 0, 0);\n tvcSummary = new AgentProductSummary(0, 0, 0, 0);\n svcSummary = new AgentProductSummary(0, 0, 0, 0);\n erSummary = new AgentProductSummary(0, 0, 0, 0);\n sepSummary = new AgentProductSummary(0, 0, 0, 0);\n productTypeCount: {\n pa: AgentProductSummary;\n tvc: AgentProductSummary;\n svc: AgentProductSummary;\n er: AgentProductSummary;\n sep: AgentProductSummary;\n } = {\n pa: this.paSummary,\n tvc: this.tvcSummary,\n svc: this.svcSummary,\n er: this.erSummary,\n sep: this.sepSummary,\n };\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private permissionService: PermissionService,\n public empfAppStatusService: EmpfAppStatusService,\n private router: Router,\n private route: ActivatedRoute,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.prodTypeFormControl.setValue(sessionStorage.getItem('productType') || SalesJourneyProdType.Individual);\n const tempTabIndex = sessionStorage.getItem('md-iff-summary-tabIndex');\n if (tempTabIndex) {\n this.tabIndex = Number(tempTabIndex);\n }\n if (this.route.snapshot.paramMap.get('tabIndex') != null) {\n this.tabIndex = Number(this.route.snapshot.paramMap.get('tabIndex'));\n }\n const prodType = (this.route.snapshot.paramMap.get('prodType') as SalesJourneyProdType) || undefined;\n if (prodType) {\n this.prodTypeFormControl.setValue(prodType);\n }\n\n this.initRole();\n }\n\n onClickGetDetailsByProductType(type: string) {\n const popupRef: MatDialogRef = this.cdsPopup.open(ProductTypeCountDetailsPopupComponent, {\n size: 'sm',\n data: {\n count: this.productTypeCount,\n productType: type,\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n ngOnDestroy(): void {\n sessionStorage.removeItem('md-iff-summary-tabIndex');\n }\n\n onBackSummayIconClick() {\n this.router.navigate(['/salesjourney/md-iff-summary/select-product-type']);\n }\n\n private async initRole() {\n this.hasSalesSupportRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SALES_SUPPORT);\n this.hasSalesJourneyAgentRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_AGENT);\n this.hasSalesJourneySuperAdminRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_ADMIN);\n if (this.hasSalesJourneySuperAdminRole) {\n this.rolePriority = 'SuperAdmin';\n } else if (this.hasSalesSupportRole) {\n this.rolePriority = 'SalesSupport';\n } else if (this.hasSalesJourneyAgentRole) {\n this.rolePriority = 'SalesJourneyAgent';\n this.getProductTypeSummaries();\n }\n }\n\n private getProductTypeSummaries() {\n this.cdHttpServeService.get(`/ext/eb-ssms-sales-journey-service/productTypeSummaries`, undefined).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const respData = res.data;\n // TVC\n this.tvcSummary.pendingAgent = respData.TVC ? respData.TVC.pending2ndAgent : 0;\n this.tvcSummary.pendingcustomer = respData.TVC ? respData.TVC.pendingCusSubmission : 0;\n this.tvcSummary.pendingToMap = respData.TVC ? respData.TVC.pendingToMap : 0;\n const tvcPendingAgent = this.tvcSummary.pendingAgent ? this.tvcSummary.pendingAgent : 0;\n const tvcPendingCust = this.tvcSummary.pendingcustomer ? this.tvcSummary.pendingcustomer : 0;\n const tvcPendingToSend = this.tvcSummary.pendingToMap ? this.tvcSummary.pendingToMap : 0;\n this.tvcSummary.allPendingCount = tvcPendingAgent + tvcPendingCust + tvcPendingToSend;\n\n // PA\n this.paSummary.pendingAgent = respData.PA ? respData.PA.pending2ndAgent : 0;\n this.paSummary.pendingcustomer = respData.PA ? respData.PA.pendingCusSubmission : 0;\n this.paSummary.pendingToMap = respData.PA ? respData.PA.pendingToMap : 0;\n const paPendingAgent = this.paSummary.pendingAgent ? this.paSummary.pendingAgent : 0;\n const paPendingCust = this.paSummary.pendingcustomer ? this.paSummary.pendingcustomer : 0;\n const paPendingToSend = this.paSummary.pendingToMap ? this.paSummary.pendingToMap : 0;\n this.paSummary.allPendingCount = paPendingAgent + paPendingCust + paPendingToSend;\n\n // FRC\n this.svcSummary.pendingAgent = respData.SVC ? respData.SVC.pending2ndAgent : 0;\n this.svcSummary.pendingcustomer = respData.SVC ? respData.SVC.pendingCusSubmission : 0;\n this.svcSummary.pendingToMap = respData.SVC ? respData.SVC.pendingToMap : 0;\n const frcPendingAgent = this.svcSummary.pendingAgent ? this.svcSummary.pendingAgent : 0;\n const frcPendingCust = this.svcSummary.pendingcustomer ? this.svcSummary.pendingcustomer : 0;\n const frcPendingToSend = this.svcSummary.pendingToMap ? this.svcSummary.pendingToMap : 0;\n this.svcSummary.allPendingCount = frcPendingAgent + frcPendingCust + frcPendingToSend;\n\n // ER\n this.erSummary.pendingAgent = respData.ER ? respData.ER.pending2ndAgent : 0;\n this.erSummary.pendingcustomer = respData.ER ? respData.ER.pendingCusSubmission : 0;\n this.erSummary.pendingToMap = respData.ER ? respData.ER.pendingToMap : 0;\n const erPendingAgent = this.erSummary.pendingAgent ? this.erSummary.pendingAgent : 0;\n const erPendingCust = this.erSummary.pendingcustomer ? this.erSummary.pendingcustomer : 0;\n const erPendingToSend = this.erSummary.pendingToMap ? this.erSummary.pendingToMap : 0;\n this.erSummary.allPendingCount = erPendingAgent + erPendingCust + erPendingToSend;\n\n // SEP\n this.sepSummary.pendingAgent = respData.SEP ? respData.SEP.pending2ndAgent : 0;\n this.sepSummary.pendingcustomer = respData.SEP ? respData.SEP.pendingCusSubmission : 0;\n this.sepSummary.pendingToMap = respData.SEP ? respData.SEP.pendingToMap : 0;\n const sepPendingAgent = this.sepSummary.pendingAgent ? this.sepSummary.pendingAgent : 0;\n const sepPendingCust = this.sepSummary.pendingcustomer ? this.sepSummary.pendingcustomer : 0;\n const sepPendingToSend = this.sepSummary.pendingToMap ? this.sepSummary.pendingToMap : 0;\n this.sepSummary.allPendingCount = sepPendingAgent + sepPendingCust + sepPendingToSend;\n\n this.productTypeCount = {\n pa: this.paSummary,\n tvc: this.tvcSummary,\n svc: this.svcSummary,\n er: this.erSummary,\n sep: this.sepSummary,\n };\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n quickGuide() {\n this.cdsPopup.open(IffCompletionStepsPopupComponent, {\n size: 'sm',\n });\n }\n\n prodTypeChange(value: string) {\n this.prodTypeFormControl.setValue(value);\n sessionStorage.setItem('productType', value);\n }\n\n tabIndexChange(index: number) {\n sessionStorage.setItem('md-iff-summary-tabIndex', String(index));\n }\n}\n","
    \n
    \n
    \n MD_IFF Summary\n
    \n
    \n
    \n \n
    \n
    \n Quick Guide\n
    \n
    \n
    \n\n \n
    \n \n
    \n Back to Product List\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n Choose product Type\n
    \n \n
    \n
    \n\n \n
    \n
    \n 0 ? 'gold' : '']\"\n (click)=\"onClickGetDetailsByProductType('PA')\">\n
    \n
    \n
    \n {{ productTypeCount.pa.allPendingCount }}\n
    \n
    \n
    \n PA Pending items\n
    \n
    \n \n
    \n
    \n
    \n 0 ? 'gold' : '']\"\n (click)=\"onClickGetDetailsByProductType('TVC')\">\n
    \n
    \n
    \n {{ productTypeCount.tvc.allPendingCount }}\n
    \n
    \n
    \n TVC Pending items\n
    \n
    \n \n
    \n
    \n
    \n 0 ? 'gold' : '']\"\n (click)=\"onClickGetDetailsByProductType('SVC')\">\n
    \n
    \n
    \n {{ productTypeCount.svc.allPendingCount }}\n
    \n
    \n
    \n SVC Pending items\n
    \n
    \n \n
    \n
    \n \n \n \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n","export enum IndividualType {\n ALL = 'all',\n PA = 'PA',\n TVC = 'TVC',\n SVC = 'SVC',\n}\n\nexport interface MdiffAgentIndRecordItem {\n mdNo: string;\n declarationDate: string;\n mdIffStatus: number;\n isSplitAgent: boolean;\n clientName: string;\n hkIdOrPassport: string;\n}\n\nexport interface MdiffAgentErRecordItem {\n mdNo: string;\n declarationDate: string;\n isSplitAgent: boolean;\n employerName: string;\n brNumber: string;\n}\n\nexport interface EmpfAgentIndRecordItem {\n mdNo: string;\n empfNo: string;\n declarationDate: string;\n mdIffStatus: number;\n empfStatus: number;\n isSplitAgent: boolean;\n productType: string;\n clientName: string;\n hkIdOrPassport: string;\n}\n\nexport interface EmpfAgentErRecordItem {\n mdNo: string;\n empfNo: string;\n declarationDate: string;\n mdIffStatus: number;\n empfStatus: number;\n isSplitAgent: boolean;\n employerName: string;\n brNumber: string;\n}\n\nexport interface EmpfSupportIndRecordItem {\n mdNo: string;\n empfNo: string;\n declarationDate: string;\n mdIffStatus: number;\n empfStatus: number;\n isSplitAgent: boolean;\n productType: string;\n clientName: string;\n districtCode: string;\n agentCode: string;\n hkIdOrPassport: string;\n declineReason: string;\n}\n\nexport interface EmpfSupportErRecordItem {\n mdNo: string;\n empfNo: string;\n declarationDate: string;\n mdIffStatus: number;\n empfStatus: number;\n isSplitAgent: boolean;\n employerName: string;\n brNumber: string;\n agentCode: string;\n districtCode: string;\n declinedReason: string;\n expiryDate: string;\n}\n\nexport interface MdiffSupportIndRecordItem {\n mdNo: string;\n empfNo: string;\n declarationDate: string;\n mdIffStatus: number;\n isSplitAgent: boolean;\n clientName: string;\n hkIdOrPassport: string;\n districtCode: string;\n agentCode: string;\n}\n\nexport interface MdiffSupportErRecordItem {\n mdNo: string;\n empfNo: string;\n declarationDate: string;\n mdIffStatus: number;\n isSplitAgent: boolean;\n employerName: string;\n brNumber: string;\n districtCode: string;\n agentCode: string;\n}\n\nexport enum RefNoType {\n MD = 'MD',\n EMPF = 'EMPF',\n}\n\nexport enum ProductType {\n PA = 'PA',\n TVC = 'TVC',\n SVC = 'SVC',\n SEP = 'SEP',\n}\n\nexport interface AddMdIFFReferenceNumberOption {\n mdNo: string;\n productType: string;\n servicingAgent: string;\n code: string;\n status: number;\n}\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffAgentErRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\n\ninterface ReqeuestParams {\n domain: 'ER';\n page: number;\n size: number;\n mdNo?: string;\n companyName?: string;\n brNo?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n}\n\n@Component({\n selector: 'app-mdiff-agent-er',\n templateUrl: './mdiff-agent-er.component.html',\n styleUrls: ['./mdiff-agent-er.component.scss'],\n})\nexport class MdiffAgentErComponent implements OnInit {\n @Input() rolePriority?: string;\n copyText = copyText;\n formGroup!: FormGroup;\n reqeuestParams: ReqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n readonly displayedColumns = ['mdNo', 'employerName', 'brNumber', 'declarationDate', 'mdIffStatus', 'isSplitAgent', 'AddeMPFRefNo'];\n allPageData: MdiffAgentErRecordItem[][] = [];\n totalPages = 0;\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n totalElements = 0;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get companyName() {\n return this.formGroup.get('companyName') as FormControl;\n }\n\n get brNo() {\n return this.formGroup.get('brNo') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n companyName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n brNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffAgentErRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'ER',\n },\n });\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/er-empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.companyName = this.companyName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.mdNo = this.mdNo.value;\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffAgentErRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/agent', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.employer-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-br-number' | lang }}\n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.employer-name' | lang }}\n \n {{ element.employerName }}\n \n \n \n {{ 'md-iff-summary.label-br-number' | lang }}\n \n {{ element.brNumber }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffAgentIndRecordItem, RefNoType } from '../md-iff-summary.model';\n\ninterface ReqeuestParams {\n domain: 'IND';\n page: number;\n size: number;\n mdNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n}\n\n@Component({\n selector: 'app-mdiff-agent-ind',\n templateUrl: './mdiff-agent-ind.component.html',\n styleUrls: ['./mdiff-agent-ind.component.scss'],\n})\nexport class MdiffAgentIndComponent implements OnInit {\n @Input() rolePriority?: string;\n formGroup!: FormGroup;\n copyText = copyText;\n readonly displayedColumns = ['mdNo', 'clientName', 'hkIdOrPassport', 'declarationDate', 'mdIffStatus', 'isSplitAgent', 'AddeMPFRefNo'];\n reqeuestParams: ReqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: ['PA', 'TVC', 'SVC'],\n };\n totalPages = 0;\n allPageData: MdiffAgentIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n totalElements = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n this.reqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: ['PA', 'TVC', 'SVC'],\n };\n this.search();\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffAgentIndRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'EE',\n },\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.mdNo = this.mdNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffAgentIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/agent', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffAgentIndRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\n\ninterface ReqeuestParams {\n domain: 'SEP';\n page: number;\n size: number;\n mdNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n}\n\n@Component({\n selector: 'app-mdiff-agent-sep',\n templateUrl: './mdiff-agent-sep.component.html',\n styleUrls: ['./mdiff-agent-sep.component.scss'],\n})\nexport class MdiffAgentSepComponent implements OnInit {\n @Input() rolePriority?: string;\n formGroup!: FormGroup;\n copyText = copyText;\n readonly displayedColumns = ['mdNo', 'clientName', 'hkIdOrPassport', 'declarationDate', 'mdIffStatus', 'isSplitAgent', 'AddeMPFRefNo'];\n reqeuestParams: ReqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n totalPages = 0;\n allPageData: MdiffAgentIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n totalElements = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n this.reqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n this.search();\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffAgentIndRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'EE',\n },\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.mdNo = this.mdNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffAgentIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/agent', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { IFFStatus } from '../../case-summary/case-summary.enum';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffSupportErRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\n\ninterface ReqeuestParams {\n domain: 'ER';\n page: number;\n size: number;\n mdNo?: string;\n companyName?: string;\n brNo?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n}\n\n@Component({\n selector: 'app-mdiff-salessupport-er',\n templateUrl: './mdiff-salessupport-er.component.html',\n styleUrls: ['./mdiff-salessupport-er.component.scss'],\n})\nexport class MdiffSalessupportErComponent implements OnInit {\n @Input() rolePriority?: string;\n formGroup!: FormGroup;\n IffStatus = IFFStatus;\n reqeuestParams: ReqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n copyText = copyText;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'employerName',\n 'brNumber',\n 'declarationDate',\n 'mdIffStatus',\n 'isSplitAgent',\n 'AddeMPFRefNo',\n ];\n\n allPageData: MdiffSupportErRecordItem[][] = [];\n currentPageNumOrigin = 1;\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get companyName() {\n return this.formGroup.get('companyName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get brNo() {\n return this.formGroup.get('brNo') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n companyName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n brNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffSupportErRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'ER',\n },\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/er-empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.companyName = this.companyName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.mdNo = this.mdNo.value;\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffSupportErRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/salesSupport', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.employer-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-br-number' | lang }}\n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.employer-name' | lang }}\n \n {{ element.employerName }}\n \n \n \n {{ 'md-iff-summary.label-br-number' | lang }}\n \n {{ element.brNumber }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffSupportIndRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { isSameOrBeforeToday } from './../../../../core/validators/date.validator';\n\ninterface ReqeuestParams {\n domain: 'IND';\n page: number;\n size: number;\n mdNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n}\n\n@Component({\n selector: 'app-mdiff-salessupport-ind',\n templateUrl: './mdiff-salessupport-ind.component.html',\n styleUrls: ['./mdiff-salessupport-ind.component.scss'],\n})\nexport class MdiffSalessupportIndComponent implements OnInit {\n @Input() rolePriority?: string;\n copyText = copyText;\n formGroup!: FormGroup;\n reqeuestParams: ReqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: ['PA', 'TVC', 'SVC'],\n };\n readonly displayedColumns = [\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'clientName',\n 'hkIdOrPassport',\n 'declarationDate',\n 'mdIffStatus',\n 'isSplitAgent',\n 'AddeMPFRefNo',\n ];\n allPageData: MdiffSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n totalElements = 0;\n totalPages = 0;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: ['PA', 'TVC', 'SVC'],\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffSupportIndRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'EE',\n },\n });\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.mdNo = this.mdNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/salesSupport', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffSupportIndRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\n\ninterface ReqeuestParams {\n domain: 'SEP';\n page: number;\n size: number;\n mdNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n}\n\n@Component({\n selector: 'app-mdiff-salessupport-sep',\n templateUrl: './mdiff-salessupport-sep.component.html',\n styleUrls: ['./mdiff-salessupport-sep.component.scss'],\n})\nexport class MdiffSalessupportSepComponent implements OnInit {\n @Input() rolePriority?: string;\n copyText = copyText;\n formGroup!: FormGroup;\n reqeuestParams: ReqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n readonly displayedColumns = [\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'clientName',\n 'hkIdOrPassport',\n 'declarationDate',\n 'mdIffStatus',\n 'isSplitAgent',\n 'AddeMPFRefNo',\n ];\n allPageData: MdiffSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n totalElements = 0;\n totalPages = 0;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffSupportIndRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'EE',\n },\n });\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.mdNo = this.mdNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/salesSupport', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { IFFStatus } from '../../case-summary/case-summary.enum';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffSupportErRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\n\ninterface ReqeuestParams {\n domain: 'ER';\n page: number;\n size: number;\n mdNo?: string;\n companyName?: string;\n brNo?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n}\n\n@Component({\n selector: 'app-mdiff-superadmin-er',\n templateUrl: './mdiff-superadmin-er.component.html',\n styleUrls: ['./mdiff-superadmin-er.component.scss'],\n})\nexport class MdiffSuperadminErComponent implements OnInit {\n @Input() rolePriority?: string;\n formGroup!: FormGroup;\n IffStatus = IFFStatus;\n reqeuestParams: ReqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n copyText = copyText;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n readonly displayedColumns = [\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'employerName',\n 'brNumber',\n 'declarationDate',\n 'mdIffStatus',\n 'isSplitAgent',\n 'AddeMPFRefNo',\n ];\n\n allPageData: MdiffSupportErRecordItem[][] = [];\n currentPageNumOrigin = 1;\n totalElements = 0;\n totalPages = 0;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get companyName() {\n return this.formGroup.get('companyName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get brNo() {\n return this.formGroup.get('brNo') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n companyName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n brNo: new FormControl(),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'ER',\n page: 1,\n size: 30,\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffSupportErRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'ER',\n },\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/er-empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Corperate,\n },\n ]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateEnd = undefined;\n this.reqeuestParams.declarationDateStart = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n }\n this.reqeuestParams.brNo = this.brNo.value;\n this.reqeuestParams.companyName = this.companyName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n this.reqeuestParams.mdNo = this.mdNo.value;\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffSupportErRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/superAdmin', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.employer-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-br-number' | lang }}\n \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.employer-name' | lang }}\n \n {{ element.employerName }}\n \n \n \n {{ 'md-iff-summary.label-br-number' | lang }}\n \n {{ element.brNumber }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffSupportIndRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { isSameOrBeforeToday } from './../../../../core/validators/date.validator';\n\ninterface ReqeuestParams {\n domain: 'IND';\n page: number;\n size: number;\n mdNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n}\n\n@Component({\n selector: 'app-mdiff-superadmin-ind',\n templateUrl: './mdiff-superadmin-ind.component.html',\n styleUrls: ['./mdiff-superadmin-ind.component.scss'],\n})\nexport class MdiffSuperadminIndComponent implements OnInit {\n @Input() rolePriority?: string;\n copyText = copyText;\n formGroup!: FormGroup;\n reqeuestParams: ReqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: ['PA', 'TVC', 'SVC'],\n };\n readonly displayedColumns = [\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'clientName',\n 'hkIdOrPassport',\n 'declarationDate',\n 'mdIffStatus',\n 'isSplitAgent',\n 'AddeMPFRefNo',\n ];\n allPageData: MdiffSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n totalElements = 0;\n totalPages = 0;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'IND',\n page: 1,\n size: 30,\n productTypes: ['PA', 'TVC', 'SVC'],\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffSupportIndRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'EE',\n },\n });\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.Individual,\n },\n ]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.mdNo = this.mdNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/superAdmin', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { MD_IFF_STATUS } from 'src/app/config/iff-status.config';\nimport { IffStatusService } from 'src/app/core/services/iff-status/iff-status.service';\nimport { dateRangeInvalidValidator, isSameOrBeforeToday } from 'src/app/core/validators';\nimport { atLeastOneQueryConditionValidator } from 'src/app/core/validators/common.validator';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { copyText, getFilterParams, pageToTop } from 'src/app/utils/utils';\nimport { AddMpfReferenceNumberPopupComponent } from '../../add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { IffStatusFlowPopupComponent } from '../../iff-status-flow-popup/iff-status-flow-popup.component';\nimport { MdiffSupportIndRecordItem, RefNoType } from '../md-iff-summary.model';\nimport { dateValidator } from 'src/app/shared/validators/validators';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\n\ninterface ReqeuestParams {\n domain: 'SEP';\n page: number;\n size: number;\n mdNo?: string;\n clientName?: string;\n declarationDateStart?: string;\n declarationDateEnd?: string;\n mdIffStatus?: number[];\n productTypes?: string[];\n}\n\n@Component({\n selector: 'app-mdiff-superadmin-sep',\n templateUrl: './mdiff-superadmin-sep.component.html',\n styleUrls: ['./mdiff-superadmin-sep.component.scss'],\n})\nexport class MdiffSuperadminSepComponent implements OnInit {\n @Input() rolePriority?: string;\n copyText = copyText;\n formGroup!: FormGroup;\n reqeuestParams: ReqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n readonly displayedColumns = [\n 'mdNo',\n 'districtCode',\n 'agentCode',\n 'clientName',\n 'hkIdOrPassport',\n 'declarationDate',\n 'mdIffStatus',\n 'isSplitAgent',\n 'AddeMPFRefNo',\n ];\n allPageData: MdiffSupportIndRecordItem[][] = [];\n currentPageNumOrigin = 1;\n resetDatePicker = false;\n private today = new Date();\n declarationDateFromMax = this.today;\n declarationDateToMin = new Date('2000/01/01');\n declarationDateToMax: Date = this.today;\n iffStatusoptionList: CdsOption[] = [];\n isLoading = false;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n infoIcon = ActionIcons.info_1;\n totalElements = 0;\n totalPages = 0;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get mdNo() {\n return this.formGroup.get('mdNo') as FormControl;\n }\n\n get clientName() {\n return this.formGroup.get('clientName') as FormControl;\n }\n\n get declarationDateStart() {\n return this.formGroup.get('declarationDateStart') as FormControl;\n }\n\n get declarationDateEnd() {\n return this.formGroup.get('declarationDateEnd') as FormControl;\n }\n\n get mdIffStatus() {\n return this.formGroup.get('mdIffStatus') as FormControl;\n }\n\n constructor(\n private cdsPopup: CdsPopupService,\n public iffStatusService: IffStatusService,\n private toast: CdsToastService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n mdNo: new FormControl(),\n clientName: new FormControl(),\n declarationDateStart: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n declarationDateEnd: new FormControl(null, {\n validators: [dateValidator('common.invalidDate'), isSameOrBeforeToday({ dateInvalid: 'common.invalidDate' })],\n }),\n mdIffStatus: new FormControl([]),\n },\n [dateRangeInvalidValidator('declarationDateStart', 'declarationDateEnd'), atLeastOneQueryConditionValidator()]\n );\n\n this.initIffStatusOptions();\n this.search();\n }\n\n private initIffStatusOptions() {\n this.iffStatusoptionList = MD_IFF_STATUS.map(element => ({\n label: element.text,\n value: element.value,\n }));\n }\n\n get isDisableSearch() {\n return this.formGroup.invalid;\n }\n\n declarationDateFromChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateToMin = dateObject.toDate();\n }\n }\n\n declarationDateToChange(val: string) {\n const dateObject = moment(val, 'DD/MM/YYYY');\n if (dateObject.isValid()) {\n this.declarationDateFromMax = dateObject.toDate();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n\n this.reqeuestParams.page = 1;\n this.search();\n }\n\n onClickReset() {\n this.formGroup.reset({\n mdIffStatus: [],\n });\n this.onResetDatePicker();\n\n this.reqeuestParams = {\n domain: 'SEP',\n page: 1,\n size: 30,\n productTypes: ['SEP'],\n };\n this.search();\n }\n\n onGenerateNewMDReferenceNo() {\n this.router.navigate([\n '/salesjourney/generate-md/select-product-type',\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n onDisplayAdviseIFF() {\n this.cdsPopup.open(IffStatusFlowPopupComponent, {\n size: 'sm',\n });\n }\n\n pageChange(num: number): void {\n pageToTop();\n this.reqeuestParams.page = num;\n this.search();\n }\n\n onOpenAddEmpfRefNoPopup(md: MdiffSupportIndRecordItem) {\n this.cdsPopup.open(AddMpfReferenceNumberPopupComponent, {\n size: 'sm',\n data: {\n mdNo: md.mdNo,\n prodType: 'EE',\n },\n });\n }\n\n onGoCaseDetails(mdNo: string) {\n this.router.navigate([\n '/salesjourney/empf-case-details',\n mdNo,\n {\n refNoType: RefNoType.MD,\n tabIndex: 0,\n prodType: SalesJourneyProdType.SEP,\n },\n ]);\n }\n\n onResetDatePicker() {\n this.declarationDateFromMax = this.today;\n this.declarationDateToMin = new Date('2000/01/01');\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n private search() {\n this.reqeuestParams.declarationDateStart = undefined;\n this.reqeuestParams.declarationDateEnd = undefined;\n if (\n !this.declarationDateStart.hasError('dateInvalid') &&\n !this.declarationDateEnd.hasError('dateInvalid') &&\n !this.formGroup.hasError('dateRangeInvalidValidator')\n ) {\n this.reqeuestParams.declarationDateStart = this.declarationDateStart.value;\n this.reqeuestParams.declarationDateEnd = this.declarationDateEnd.value;\n }\n this.reqeuestParams.mdNo = this.mdNo.value;\n this.reqeuestParams.clientName = this.clientName.value;\n this.reqeuestParams.mdIffStatus = this.mdIffStatus.value?.map((item: { value: number }) => item.value);\n const params = getFilterParams(this.reqeuestParams);\n\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: MdiffSupportIndRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/mdIffSummaries/superAdmin', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n\n const currentAllPageData = this.allPageData.length;\n if (this.totalPages > currentAllPageData) {\n for (let i = 0; i < this.totalPages - currentAllPageData; i++) {\n this.allPageData.push([]);\n }\n } else if (this.totalPages < currentAllPageData) {\n for (let i = 0; i < currentAllPageData - this.totalPages; i++) {\n this.allPageData.pop();\n }\n }\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n}\n","
    \n
    \n Search record\n
    \n
    \n {{ 'md-iff-summary.md-reference-no' | lang }}\n \n
    \n
    \n {{ 'md-iff-summary.client-name' | lang }}\n \n
    \n \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n \n \n \n {{ 'common.invalidDate' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'md-iff-summary.search-md-iff-status' | lang }}\n \n
    \n
    \n
    \n {{\n 'md-iff-summary.search' | lang\n }}\n {{ 'md-iff-summary.reset' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n
    \n Generate New eIFF Reference No.\n
    \n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'md-iff-summary.md-ref-no' | lang }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n District Code\n \n {{ element.districtCode }}\n \n \n \n {{ 'md-iff-summary.agent-code' | lang }}\n \n {{ element.agentCode }}\n \n \n \n {{ 'md-iff-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'md-iff-summary.hkid-pas-no' | lang }}\n \n {{ element.hkIdOrPassport }}\n \n \n \n {{ 'md-iff-summary.label-md-declaration-date' | lang }}\n \n {{ element.declarationDate }}\n \n \n \n \n
    \n {{ 'md-iff-summary.label-md-iff-status' | lang }}\n \n
    \n
    \n \n
    \n
    \n
    \n {{ iffStatusService.getIFFStatusInfo(element.mdIffStatus)?.text }}\n
    \n
    \n
    \n
    \n \n {{ 'md-iff-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{\n 'md-iff-summary.add-eMPF-ref-no' | lang\n }}\n \n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\nimport { AgentProductSummary } from '../../product-type-summary/product-type-summary.model';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { IFF_STATUS, MdStatusValue } from 'src/app/config/iff-status.config';\n\n@Component({\n selector: 'app-product-type-count-details-popup',\n templateUrl: './product-type-count-details-popup.component.html',\n styleUrls: ['./product-type-count-details-popup.component.scss'],\n})\nexport class ProductTypeCountDetailsPopupComponent implements OnInit {\n clearButton: CdsButtonConfig = {\n size: 'sm',\n style: 'primary',\n disabled: false,\n };\n pendingToMapColor?: string;\n PendingCustomerSubmissionColor?: string;\n pendingSplitAgentColor?: string;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n count: {\n pa: AgentProductSummary;\n tvc: AgentProductSummary;\n svc: AgentProductSummary;\n er: AgentProductSummary;\n sep: AgentProductSummary;\n };\n productType: string;\n }\n ) {}\n\n detailsByProductType: AgentProductSummary = { pendingToMap: 0, pendingcustomer: 0, pendingAgent: 0 };\n\n ngOnInit(): void {\n const productType = this.data.productType;\n if (productType === 'PA') {\n this.detailsByProductType = this.data.count.pa;\n } else if (productType === 'TVC') {\n this.detailsByProductType = this.data.count.tvc;\n } else if (productType === 'SVC') {\n this.detailsByProductType = this.data.count.svc;\n } else if (productType === 'ER') {\n this.detailsByProductType = this.data.count.er;\n } else if (productType === 'SEP') {\n this.detailsByProductType = this.data.count.sep;\n }\n\n this.pendingToMapColor = 'orange';\n this.PendingCustomerSubmissionColor = IFF_STATUS.find(item => item.value === MdStatusValue.Pending_Customer_Submission)?.color || '#000000';\n this.pendingSplitAgentColor = IFF_STATUS.find(item => item.value === MdStatusValue.Pending_Split_Agent)?.color || '#000000';\n }\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n

    Individuals IFF Pending Status

    \n\n
    \n {{ data.productType }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending to map :\n
    \n
    \n {{ detailsByProductType.pendingToMap }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ detailsByProductType.pendingcustomer }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending split agent(s) acknowledgement :\n
    \n
    \n {{ detailsByProductType.pendingAgent }}\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { SentEiffPopupComponent } from './sent-eiff-popup/sent-eiff-popup.component';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { PreferredLanguageType } from '../case-summary/case-summary.model';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { empfCountryOption } from '../case-summary/declaration-iff-er/empf-declaration-form.config';\nimport { clientPhoneNumberVali } from 'src/app/core/validators/common.validator';\nimport { ResendEiffResendType } from '../resend-eiff/resend-eiff.model';\n\n@Component({\n selector: 'app-new-resend-eiff',\n templateUrl: './new-resend-eiff.component.html',\n styleUrls: ['./new-resend-eiff.component.scss'],\n})\nexport class NewResendEiffComponent implements OnInit {\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage?: CdRadioComponent;\n PreferredLanguageType = PreferredLanguageType;\n ResendType = ResendEiffResendType;\n regulationConfig: CdRadioConfig = {\n options: [\n {\n label: '是',\n value: 'Y',\n disable: true,\n },\n {\n label: '否',\n value: 'N',\n disable: true,\n },\n ],\n };\n secondIntermediaryContactInformationConfig: CdRadioConfig = {\n options: [\n {\n label: '已登記的電郵地址(wink******@manulife.com)',\n value: 'E',\n disable: false,\n },\n {\n label: '已登記的手機號碼 (+852) 6188 ****',\n value: 'M',\n disable: false,\n },\n ],\n };\n secondIntermediaryLangConfig: CdRadioConfig = {\n options: [\n {\n label: '中文',\n value: 'zh',\n disable: false,\n },\n {\n label: '英文',\n value: 'en',\n disable: false,\n },\n ],\n };\n secondIntermediaryLang = 'en';\n secondIntermediaryContactInformation = 'M';\n regulation = 'Y';\n isShowAllInfo = false;\n isEdit = false;\n iffForm!: FormGroup;\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n countrycodeConfig: CdsDropdownConfig = {\n options: empfCountryOption,\n placeholder: '+852 (HK)',\n color: 'ml',\n };\n step = 1;\n dbs?: FormGroup;\n intragroupTransferCheck = new FormControl(true);\n\n get showCountryCode() {\n return '+' + this.countryCode?.value;\n }\n\n get showPhoneNo() {\n return this.phoneNo?.value;\n }\n\n get showEmail() {\n return this.email?.value;\n }\n\n get contactType() {\n return this.iffForm.get('contactType') as FormControl;\n }\n\n get email() {\n return this.iffForm.get('email') as FormControl;\n }\n\n get phoneNo() {\n return this.iffForm.get('phoneNo') as FormControl;\n }\n\n get countryCode() {\n return this.iffForm.get('countryCode') as FormControl;\n }\n\n get preferredLanguage() {\n return this.iffForm.get('preferredLanguage') as FormControl;\n }\n\n get dbsRmReferralCd() {\n return this.dbs?.get('dbsRmReferralCd') as FormControl;\n }\n get dbsCustomerId() {\n return this.dbs?.get('dbsCustomerId') as FormControl;\n }\n get dbsSourceCd() {\n return this.dbs?.get('dbsSourceCd') as FormControl;\n }\n get dbsCampaignCd() {\n return this.dbs?.get('dbsCampaignCd') as FormControl;\n }\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n salesJourneySummariesId: string;\n resendType: ResendEiffResendType;\n iffStatus: number;\n empfStatus: number;\n }\n ) {}\n\n ngOnInit(): void {\n this.iffForm = new FormGroup({\n contactType: new FormControl('M', [Validators.required]),\n preferredLanguage: new FormControl(PreferredLanguageType.English, [\n (control: AbstractControl): ValidationErrors | null => {\n if (\n (this.iffForm?.get('contactType')?.value === 'M' && control.value) ||\n this.iffForm?.get('contactType')?.value === 'E' ||\n !this.iffForm?.get('contactType')?.value\n ) {\n return null;\n }\n return { formatError: true };\n },\n ]),\n countryCode: new FormControl('82'),\n phoneNo: new FormControl('87878787'),\n email: new FormControl('abc@gmail.com'),\n });\n\n this.dbs = new FormGroup({\n dbsRmReferralCd: new FormControl('12312312', [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n },\n ]),\n dbsCustomerId: new FormControl('12312312', [\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n },\n ]),\n dbsSourceCd: new FormControl('1231231231', [\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n },\n ]),\n dbsCampaignCd: new FormControl('1231231231', [\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n },\n ]),\n });\n }\n\n clientCountryCodeChange() {\n this.phoneNo.updateValueAndValidity();\n }\n\n onContactTypeChange(val: string) {\n this.preferredLanguage.setValue(undefined);\n if (val === 'E') {\n this.iffForm.removeControl('countryCode');\n this.iffForm.removeControl('phoneNo');\n const emailFormControl = new FormControl(null, [Validators.required, Validators.email]);\n this.iffForm.addControl('email', emailFormControl);\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (val === 'M') {\n this.iffForm.removeControl('email');\n const countryCodeFormControl = new FormControl(null, [Validators.required]);\n const phoneNoFormControl = new FormControl(null, [Validators.required, clientPhoneNumberVali(countryCodeFormControl)]);\n this.iffForm.addControl('countryCode', countryCodeFormControl);\n this.iffForm.addControl('phoneNo', phoneNoFormControl);\n this.iffForm.patchValue({ countryCode: '852' });\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n\n closeCurrentPopup() {\n this.dialogRef.close();\n }\n\n onContinue() {\n if (this.isDisableContinue) {\n return;\n }\n\n this.isEdit = false;\n this.isShowAllInfo = true;\n this.step = 2;\n }\n\n onSubmit() {\n this.cdsPopup.open(SentEiffPopupComponent, {\n size: 'sm',\n });\n this.closeCurrentPopup();\n }\n\n onEdit() {\n this.isEdit = true;\n this.isShowAllInfo = true;\n this.step = 1;\n this.contactType.reset('');\n this.onContactTypeChange('');\n }\n\n onBackEdit() {\n this.isEdit = true;\n this.isShowAllInfo = true;\n this.step = 1;\n\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n\n get isDisableContinue() {\n return (this.iffForm.invalid || !!(this.dbs && this.dbs.invalid)) && this.isEdit;\n }\n}\n","
    \n
    \n \n
    \n
    \n
    \n 重新發送eIFF\n
    \n
    \n
    \n \n
    \n
    \n
    \n MD Reference Number\n
    \n
    \n MD120382714\n
    \n
    \n \n
    \n {{ 'generate.md.inftra-group-transfer' | lang }}\n
    \n
    \n
    \n
    \n
    \n \n
      \n
    • \n 盡本人所知所信,本聲明上所提供之資料均屬正確無訛且無缺漏。\n
    • \n
    • \n
      \n 代理人不得使用自己或任何第三方的郵寄地址、電話號碼和/或電郵地址,去代替客戶的聯繫方式。\n
      \n
      \n 一旦發現違規,會立刻向合規部及您的上級呈報並發出警告。\n
      \n
    • \n
    \n
    \n
    \n
    \n
    \n 客戶資料\n
    \n
    \n
    \n \n
    \n 客戶姓名* :\n
    \n
    \n 陳大文\n
    \n
    \n \n
    僱主全名:
    \n
    \n ABC Company\n
    \n
    商業登記號碼:
    \n
    \n 123456\n
    \n
    獲授權人士全名:
    \n
    \n CHEUNG SIU MING\n
    \n
    \n
    \n 客戶電郵地址/ 手機號碼* :\n
    \n
    \n ({{ showCountryCode }}) {{ showPhoneNo }}\n {{ showEmail }}\n
    \n
    \n
    \n
    \n \n
    \n {{ 'iff.contactTypeError' | lang }} \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n {{ 'common.please-input-valid-mobile-number' | lang }}\n \n \n
    \n
    \n \n \n {{ 'common.please-input-phone-number' | lang }}\n \n \n
    \n
    \n
    \n
    \n
    \n \n {{\n 'common.please-input-valid-customer-email' | lang\n }}\n {{\n 'common.please-input-customer-email' | lang\n }}\n
    \n
    \n
    \n
    \n
    \n *請確保資料與客戶在eMPF上提供的資料一致\n
    \n \n
    選擇語言 :
    \n
    \n 英文\n 中文\n
    \n
    \n \n
    \n {{ 'common.plsSelect' | lang : { p1: 'sendIffInBatchSummary.preferredLanguage' | lang } }} \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n DBS\n
    \n
    \n \n
    \n
    \n
    \n RM Referral Code\n * \n :\n
    \n
    \n
    \n {{ dbsRmReferralCd.value || '-' }}\n \n
    \n Please input valid RM Referral Code\n \n \n Please input valid RM Referral Code\n \n \n
    \n
    \n
    \n
    \n
    \n
    Customer ID:
    \n
    \n
    \n {{ dbsCustomerId.value || '-' }}\n \n
    \n Please input valid Customer ID\n \n
    \n
    \n
    \n
    \n
    \n
    Campaign Code:
    \n
    \n
    \n {{ dbsCampaignCd.value || '-' }}\n \n
    \n Please input valid Campaign Code\n \n
    \n
    \n
    \n
    \n
    \n
    Source Code:
    \n
    \n
    \n {{ dbsSourceCd.value || '-' }}\n \n
    \n Please input valid Source Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n 有關受規管活動\n
    \n
    \n
    \n 在客戶進行受規管活動時,必須已履行強積金中介人履行職務要求。\n
    \n
    \n \n
    \n
    \n
    \n
    \n 第二強積金中介人資料\n
    \n
    \n
    \n
    代理人編號:
    \n
    \n 345678\n
    \n
    代理人姓名:
    \n
    \n LAU TAI MAN\n
    \n \n
    \n 客戶電郵地址/ 手機號碼* :\n
    \n
    \n {{ secondIntermediaryContactInformation === 'M' ? '(+852) 6188 ****' : 'wink******@manulife.com' }}\n
    \n
    選擇語言 :
    \n
    \n {{ secondIntermediaryLang === 'en' ? '英文' : '中文' }}\n
    \n
    \n
    \n
    \n
    \n 有關受規管活動\n
    \n
    \n 在客戶進行受規管活動時,必須已履行強積金中介人履行職務要求。\n
    \n
    \n \n
    \n
    \n
    \n
    \n 請選擇以下已登記的第二強積金中介人聯絡方式完成聲明:\n
    \n
    \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 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-sent-eiff-popup',\n templateUrl: './sent-eiff-popup.component.html',\n styleUrls: ['./sent-eiff-popup.component.scss'],\n})\nexport class SentEiffPopupComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n onGotIt() {\n this.dialogRef.close();\n }\n}\n","
    \n \n
    \n 已發送eIFF申請給客戶確認,請留意電郵更新。\n
    \n
    \n
    \n \n
    \n
    \n 聲明一經提交後將不得更改\n
    \n
    \n
    \n 了解\n
    \n
    \n","import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService, MatDialogRef } from '@cds/ng-web-components/popup';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../case-summary/advise-empfref/advise-empfref.component';\nimport { AdviseEmpfstatusComponent } from '../case-summary/advise-empfstatus/advise-empfstatus.component';\nimport { AdviseIffstatusComponent } from '../case-summary/advise-iffstatus/advise-iffstatus.component';\nimport { EE_DECLINED_REASON_OPTIONS, EMPFSTATUS_TYPE_OPTIONS, ER_DECLINED_REASON_OPTIONS, IFFSTATUS_TYPE_OPTIONS } from '../case-summary/case-summary.config';\n\nimport { CasesummaryService } from '../case-summary/casesummary.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { EEProdType } from '../iff-paper-form/individuals/individuals.model';\n\nenum IndividualType {\n ALL = 'all',\n PA = 'PA',\n TVC = 'TVC',\n FRC = 'FRC',\n}\n\nenum IFFStatusTag {\n ALL = 'all',\n Completed = 'Completed',\n Declined = 'Declined',\n NONE = 'NONE',\n}\n\ninterface RecordItem {\n empfRefNo: string;\n districtCd: string;\n agentCd: string;\n productType: string;\n iffExpiryDate: string;\n iffStatus: string;\n iffStatusEnum: number;\n IFFStatus: string;\n empfStatus: string;\n empfStatusEnum: number;\n eMPFAppStatus: string;\n splitCase: boolean;\n declineReasons: string;\n salesJourneyStatusEnum: number;\n salesJourneySummaryId: string;\n}\n\ninterface EERecordItem extends RecordItem {\n clientName: string;\n hkidOrPassportNo: string;\n}\n\ninterface ERRecordItem extends RecordItem {\n companyName: string;\n businessRefNo: string;\n}\n\ninterface ReqeuestParams {\n page: number;\n size: number;\n empfRefNo: string;\n agentCd: string;\n districtCd: string;\n iffExpiryDateFrom: string;\n iffExpiryDateTo: string;\n eiffStatus: number[];\n empfStatus: number[];\n ABMs: string[];\n declineReasons: number[];\n productTypes?: string[];\n identityId: string;\n domain: SalesJourneyProdType;\n}\n\ninterface EEReqeuestParams extends ReqeuestParams {\n clientName: string;\n hkidOrPassportNo: string;\n}\n\ninterface ERReqeuestParams extends ReqeuestParams {\n companyName: string;\n brNo: string;\n}\n\ninterface BaseParams {\n prodTypeFormControl: FormControl;\n prodTypeDropdownConfig: CdsDropdownConfig;\n resetDatePicker: boolean;\n iFFExpiryDateFromValueError: boolean;\n iFFExpiryDateToValueError: boolean;\n individualTypeSelected: IndividualType;\n iffStatusTagSelected: IFFStatusTag;\n isLoading: boolean;\n currentPageNumOrigin: number;\n totalElements: number;\n totalPages: number;\n allPageData: EERecordItem[][] | ERRecordItem[][];\n iffStatusoptionsOrigin: CdMultidropdownTopping[];\n appStatusoptionsOrigin: CdMultidropdownTopping[];\n abmStatusoptionsOrigin: CdMultidropdownTopping[];\n declinedReasonOptionsOrigin: CdMultidropdownTopping[];\n iFFExpiryDateFromValMax: Date;\n iFFExpiryDateFromValMin: Date;\n iFFExpiryDateToValMax: Date;\n iFFExpiryDateToValMin: Date;\n requestParams: EEReqeuestParams | ERReqeuestParams;\n requestParamsForPageChange?: EEReqeuestParams | ERReqeuestParams;\n}\n\n@Component({\n selector: 'app-paper-summary',\n templateUrl: './paper-summary.component.html',\n styleUrls: ['./paper-summary.component.scss'],\n})\nexport class PaperSummaryComponent implements OnInit {\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n SalesJourneyProdType = SalesJourneyProdType;\n IndividualType = IndividualType;\n IFFStatusTag = IFFStatusTag;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n infoIcon = ActionIcons.info_1;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n iffStatusoptionList = IFFSTATUS_TYPE_OPTIONS;\n appStatusoptionList = EMPFSTATUS_TYPE_OPTIONS;\n abmOptionList: CdsOption[] = [];\n declinedReasonOptionList = EE_DECLINED_REASON_OPTIONS;\n declinedReasonOptionListER = ER_DECLINED_REASON_OPTIONS;\n private earliestDate = new Date('1970/01/01');\n eeDisplayedColumns: string[] = [\n 'empfRefNo',\n 'districtCd',\n 'agentCd',\n 'productType',\n 'clientName',\n 'hkidOrPassportNo',\n 'iffExpiryDate',\n 'iffStatusEnum',\n 'empfStatusEnum',\n 'splitCase',\n 'declineReasons',\n ];\n erDisplayedColumns: string[] = [\n 'empfRefNo',\n 'districtCd',\n 'agentCd',\n 'companyName',\n 'businessRefNo',\n 'iffExpiryDate',\n 'iffStatusEnum',\n 'empfStatusEnum',\n 'splitCase',\n 'declineReasons',\n ];\n baseParamsList: BaseParams[] = [];\n baseParams!: BaseParams;\n\n constructor(\n private cdsPopup: CdsPopupService,\n public caseSummaryService: CasesummaryService,\n private router: Router,\n private route: ActivatedRoute,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService\n ) {}\n\n // fakeTabIndexChange(index: number) {\n // this.baseParams = this.baseParamsList[index];\n\n // if (this.currentPageData.length === 0) {\n // const params = this.getFilterParams();\n // this.search(params);\n // }\n // }\n\n private initRequestParams() {\n this.baseParams.requestParams = {\n page: 1,\n size: 50,\n domain: this.baseParams.prodTypeFormControl.value,\n empfRefNo: '',\n clientName: '',\n agentCd: '',\n districtCd: '',\n iffExpiryDateFrom: '',\n iffExpiryDateTo: '',\n hkidOrPassportNo: '',\n eiffStatus: [],\n empfStatus: [],\n ABMs: [],\n declineReasons: [],\n productTypes: [],\n identityId: '',\n companyName: '',\n brNo: '',\n };\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n\n prodTypeChange(value: SalesJourneyProdType) {\n if (this.baseParams.requestParams.domain === value) {\n return;\n }\n\n this.reset();\n\n this.baseParams.requestParams.domain = value;\n if (this.baseParams.requestParams.domain === SalesJourneyProdType.Individual) {\n delete this.baseParams.requestParams.productTypes;\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.SEP) {\n this.baseParams.requestParams.productTypes = ['SEP'];\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.Corperate) {\n this.baseParams.requestParams.productTypes = ['ER'];\n }\n\n const params = this.getFilterParams();\n this.search(params);\n }\n\n ngOnInit(): void {\n this.baseParamsList = [\n {\n prodTypeFormControl: new FormControl(SalesJourneyProdType.Individual),\n prodTypeDropdownConfig: {\n options: [\n {\n label: 'Individuals (PA, TVC, SVC)',\n value: SalesJourneyProdType.Individual,\n },\n { label: 'Corporates (ER)', value: SalesJourneyProdType.Corperate },\n { label: 'Self- Employed Person (SEP)', value: SalesJourneyProdType.SEP },\n ],\n color: 'ml',\n },\n resetDatePicker: false,\n iFFExpiryDateFromValueError: false,\n iFFExpiryDateToValueError: false,\n individualTypeSelected: IndividualType.ALL,\n iffStatusTagSelected: IFFStatusTag.ALL,\n isLoading: false,\n currentPageNumOrigin: 1,\n totalElements: 0,\n totalPages: 0,\n allPageData: [],\n iffStatusoptionsOrigin: [],\n appStatusoptionsOrigin: [],\n abmStatusoptionsOrigin: [],\n declinedReasonOptionsOrigin: [],\n iFFExpiryDateFromValMax: new Date('9000/01/01'),\n iFFExpiryDateFromValMin: this.earliestDate,\n iFFExpiryDateToValMax: new Date('9000/01/01'),\n iFFExpiryDateToValMin: this.earliestDate,\n requestParams: {\n page: 1,\n size: 50,\n domain: SalesJourneyProdType.Individual,\n empfRefNo: '',\n clientName: '',\n agentCd: '',\n districtCd: '',\n iffExpiryDateFrom: '',\n iffExpiryDateTo: '',\n hkidOrPassportNo: '',\n eiffStatus: [],\n empfStatus: [],\n ABMs: [],\n declineReasons: [],\n productTypes: [],\n identityId: '',\n companyName: '',\n brNo: '',\n },\n },\n ];\n\n this.baseParams = this.baseParamsList[0];\n delete this.baseParams.requestParams.productTypes;\n const params = this.getFilterParams();\n if (this.route.snapshot.paramMap.get('productType') === EEProdType.SEP) {\n this.baseParams.prodTypeFormControl.setValue(SalesJourneyProdType.SEP);\n this.baseParams.requestParams.productTypes = ['SEP'];\n this.prodTypeChange(this.baseParams.prodTypeFormControl.value);\n } else if (this.route.snapshot.paramMap.get('productType') === 'ER') {\n this.baseParams.prodTypeFormControl.setValue(SalesJourneyProdType.Corperate);\n this.baseParams.requestParams.productTypes = ['ER'];\n this.prodTypeChange(this.baseParams.prodTypeFormControl.value);\n } else {\n this.baseParams.prodTypeFormControl.setValue(SalesJourneyProdType.Individual);\n delete this.baseParams.requestParams.productTypes;\n this.search(params);\n }\n // this.search(params);\n this.getABMList();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n goCaseDetails(item: RecordItem) {\n const queryParams = { from: 'branchLeaveSummary' };\n this.router.navigate([\n '/salesjourney',\n this.baseParams.prodTypeFormControl.value === SalesJourneyProdType.Corperate ? 'case-details-er' : 'case-details',\n item.salesJourneySummaryId,\n item.empfRefNo,\n queryParams,\n ]);\n }\n\n get currentPageIndex() {\n return this.baseParams.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.baseParams.allPageData.length === 0) {\n return [];\n }\n return this.baseParams.allPageData[this.currentPageIndex];\n }\n\n get EECurrentPageData() {\n if (this.baseParams.allPageData.length === 0) {\n return [] as EERecordItem[];\n }\n return this.baseParams.allPageData[this.currentPageIndex] as EERecordItem[];\n }\n\n get ERCurrentPageData() {\n if (this.baseParams.allPageData.length === 0) {\n return [] as ERRecordItem[];\n }\n return this.baseParams.allPageData[this.currentPageIndex] as ERRecordItem[];\n }\n\n checkIndividualTypeTag(value: IndividualType) {\n this.baseParams.individualTypeSelected = value;\n if (value === IndividualType.ALL) {\n delete this.baseParams.requestParams.productTypes;\n } else {\n this.baseParams.requestParams.productTypes = [value];\n }\n this.baseParams.requestParams.page = 1;\n const params = this.getFilterParams();\n this.search(params);\n }\n\n checkIFFStatusTag(value: IFFStatusTag) {\n this.baseParams.iffStatusTagSelected = value;\n\n if (value === IFFStatusTag.ALL) {\n this.baseParams.iffStatusoptionsOrigin = [];\n } else if (value === IFFStatusTag.Completed) {\n this.baseParams.iffStatusoptionsOrigin = [\n {\n label: 'Completed',\n value: 30,\n },\n ];\n } else if (value === IFFStatusTag.Declined) {\n this.baseParams.iffStatusoptionsOrigin = [\n {\n label: 'Declined',\n value: 99,\n },\n ];\n }\n\n this.baseParams.requestParams;\n this.baseParams.requestParams.page = 1;\n const params = this.getFilterParams();\n this.search(params);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n onDisplayAdviseIFF() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AdviseIffstatusComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n onDisplayAdviseEmpf() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AdviseEmpfstatusComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n private onResetDatePicker() {\n this.baseParams.iFFExpiryDateFromValMax = new Date('9000/01/01');\n this.baseParams.iFFExpiryDateFromValMin = this.earliestDate;\n this.baseParams.iFFExpiryDateToValMax = new Date('9000/01/01');\n this.baseParams.iFFExpiryDateToValMin = this.earliestDate;\n\n this.baseParams.resetDatePicker = true;\n setTimeout(() => {\n this.baseParams.resetDatePicker = false;\n }, 0);\n }\n\n pageChange(num: number): void {\n if (this.baseParams.requestParamsForPageChange) {\n this.baseParams.requestParamsForPageChange.page = num;\n this.search(this.baseParams.requestParamsForPageChange);\n }\n }\n\n iFFExpiryDateFromValueChange(val: string) {\n if (val === '') {\n this.baseParams.iFFExpiryDateFromValueError = false;\n return;\n }\n this.baseParams.requestParams.iffExpiryDateFrom = val;\n const temp = this.baseParams.requestParams.iffExpiryDateFrom.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.baseParams.iFFExpiryDateFromValueError = true;\n return;\n }\n if (this.baseParams.requestParams.iffExpiryDateTo) {\n const tempTo = this.baseParams.requestParams.iffExpiryDateTo.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.baseParams.iFFExpiryDateFromValueError = true;\n return;\n }\n }\n this.baseParams.iFFExpiryDateFromValueError = false;\n this.baseParams.iFFExpiryDateToValMin = new Date(selectedDate.getTime());\n }\n\n iFFExpiryDateToValueChange(val: string) {\n if (val === '') {\n this.baseParams.iFFExpiryDateToValueError = false;\n return;\n }\n this.baseParams.requestParams.iffExpiryDateTo = val;\n const temp = this.baseParams.requestParams.iffExpiryDateTo.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.baseParams.iFFExpiryDateToValueError = true;\n return;\n }\n if (this.baseParams.requestParams.iffExpiryDateFrom) {\n const tempFrom = this.baseParams.requestParams.iffExpiryDateFrom.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.baseParams.iFFExpiryDateToValueError = true;\n return;\n }\n }\n this.baseParams.iFFExpiryDateToValueError = false;\n this.baseParams.iFFExpiryDateFromValMax = new Date([temp[1], temp[0], temp[2]].join('/'));\n }\n\n onClickSearch() {\n if (this.isDisableSearch || this.baseParams.isLoading) {\n return;\n }\n\n this.baseParams.requestParams.page = 1;\n this.baseParams.requestParams.size = 50;\n const params = this.getFilterParams();\n\n if (params.eiffStatus) {\n if (params.eiffStatus.length === 0) {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.ALL;\n } else if (params.eiffStatus.length === 1 && params.eiffStatus[0] === 99) {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.Declined;\n } else if (params.eiffStatus.length === 1 && params.eiffStatus[0] === 30) {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.Completed;\n } else {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.NONE;\n }\n }\n\n this.search(params);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n search(params: any) {\n this.baseParams.requestParamsForPageChange = params;\n this.baseParams.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EERecordItem[] | ERRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>(\n this.baseParams.requestParams.domain === SalesJourneyProdType.Corperate\n ? '/ext/eb-ssms-sales-journey-service/employerSalesJourneySummaries/branchLevel'\n : '/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries/branchLevel',\n params\n )\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n this.EECurrentPageData.length = 0;\n this.ERCurrentPageData.length = 0;\n } else {\n res.data.content = res.data.content || [];\n res.data.content.forEach(element => {\n element.IFFStatus = String(element.iffStatusEnum);\n element.eMPFAppStatus = String(element.empfStatusEnum);\n });\n\n this.baseParams.currentPageNumOrigin = res.data.number;\n this.baseParams.allPageData[this.currentPageIndex] = res.data.content;\n this.baseParams.totalElements = res.data.totalElements;\n this.baseParams.totalPages = res.data.totalPages;\n }\n this.baseParams.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.baseParams.isLoading = false;\n },\n });\n }\n\n private reset() {\n this.onResetDatePicker();\n this.initRequestParams();\n\n this.baseParams.individualTypeSelected = IndividualType.ALL;\n this.baseParams.iffStatusTagSelected = IFFStatusTag.ALL;\n this.baseParams.appStatusoptionsOrigin = [];\n this.baseParams.iffStatusoptionsOrigin = [];\n this.baseParams.abmStatusoptionsOrigin = [];\n this.baseParams.declinedReasonOptionsOrigin = [];\n this.baseParams.iFFExpiryDateFromValueError = false;\n this.baseParams.iFFExpiryDateToValueError = false;\n }\n\n private getFilterParams() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const params: any = {};\n for (const key in this.baseParams.requestParams) {\n if (Object.prototype.hasOwnProperty.call(this.baseParams.requestParams, key)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const val = (this.baseParams.requestParams as any)[key];\n if (val !== undefined && val !== null && val !== '' && !(Object.prototype.toString.call(val) === '[object Array]' && val.length === 0)) {\n if (typeof val === 'string') {\n params[key] = val.trim();\n } else {\n params[key] = val;\n }\n }\n }\n }\n if (this.baseParams.appStatusoptionsOrigin.length > 0) {\n params.empfStatus = this.baseParams.appStatusoptionsOrigin.map(item => item.value);\n }\n if (this.baseParams.iffStatusoptionsOrigin.length > 0) {\n params.eiffStatus = this.baseParams.iffStatusoptionsOrigin.map(item => item.value);\n }\n if (this.baseParams.abmStatusoptionsOrigin.length > 0) {\n params.ABMs = this.baseParams.abmStatusoptionsOrigin.map(item => item.value);\n }\n if (this.baseParams.declinedReasonOptionsOrigin.length > 0) {\n params.declineReasons = this.baseParams.declinedReasonOptionsOrigin.map(item => item.value);\n }\n if (this.isERReqeuestParams(this.baseParams.requestParams)) {\n delete params.clientName;\n delete params.hkidOrPassportNo;\n } else {\n delete params.companyName;\n delete params.businessRefNo;\n }\n return params;\n }\n\n onClickReset() {\n this.reset();\n\n if (this.baseParams.requestParams.domain === SalesJourneyProdType.Individual) {\n delete this.baseParams.requestParams.productTypes;\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.SEP) {\n this.baseParams.requestParams.productTypes = ['SEP'];\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.Corperate) {\n this.baseParams.requestParams.productTypes = ['ER'];\n }\n\n const params = this.getFilterParams();\n this.search(params);\n }\n\n get isDisableSearch() {\n if (this.isERReqeuestParams(this.baseParams.requestParams)) {\n return (\n (this.baseParams.requestParams.empfRefNo === '' &&\n this.baseParams.requestParams.companyName === '' &&\n this.baseParams.requestParams.agentCd === '' &&\n this.baseParams.requestParams.districtCd === '' &&\n this.baseParams.requestParams.iffExpiryDateFrom === '' &&\n this.baseParams.requestParams.iffExpiryDateTo === '' &&\n this.baseParams.requestParams.brNo === '' &&\n this.baseParams.appStatusoptionsOrigin.length === 0 &&\n this.baseParams.iffStatusoptionsOrigin.length === 0 &&\n this.baseParams.abmStatusoptionsOrigin.length === 0 &&\n this.baseParams.declinedReasonOptionsOrigin.length === 0 &&\n this.baseParams.requestParams.identityId === '') ||\n this.baseParams.iFFExpiryDateFromValueError ||\n this.baseParams.iFFExpiryDateToValueError\n );\n } else {\n return (\n (this.baseParams.requestParams.empfRefNo === '' &&\n this.baseParams.requestParams.clientName === '' &&\n this.baseParams.requestParams.agentCd === '' &&\n this.baseParams.requestParams.districtCd === '' &&\n this.baseParams.requestParams.iffExpiryDateFrom === '' &&\n this.baseParams.requestParams.iffExpiryDateTo === '' &&\n this.baseParams.requestParams.hkidOrPassportNo === '' &&\n this.baseParams.appStatusoptionsOrigin.length === 0 &&\n this.baseParams.iffStatusoptionsOrigin.length === 0 &&\n this.baseParams.abmStatusoptionsOrigin.length === 0 &&\n this.baseParams.declinedReasonOptionsOrigin.length === 0 &&\n this.baseParams.requestParams.identityId === '') ||\n this.baseParams.iFFExpiryDateFromValueError ||\n this.baseParams.iFFExpiryDateToValueError\n );\n }\n }\n\n isERReqeuestParams(params: EEReqeuestParams | ERReqeuestParams): params is ERReqeuestParams {\n return params.domain === SalesJourneyProdType.Corperate;\n }\n}\n","
    \n
    \n All eIFF Summary\n
    \n\n
    \n
    \n
    \n Choose product type\n
    \n\n
    \n \n
    \n\n
    \n Search record\n
    \n\n
    \n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.client-name' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.abm' | lang }}\n \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n {{ 'sales-support-summary.HKID-or-passport-no' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.declined-reason' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n\n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.employer-name' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.abm' | lang }}\n \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n {{ 'sales-support-summary.business-registration-number' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.declined-reason' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n\n
    \n {{\n 'common.search1' | lang\n }}\n {{ 'common.reset1' | lang }}\n
    \n
    \n\n
    \n Record list\n
    \n\n
    \n Total {{ baseParams.totalElements | number }} records\n
    \n\n
    \n
    Product Type:
    \n \n All Product Type\n
    \n \n PA\n
    \n \n TVC\n
    \n \n FRC\n
    \n \n\n
    \n
    IFF status:
    \n
    \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n \n \n\n
    \n *The bold and starred code represents Servicing Agent\n
    \n\n
    \n \n
    0 ? 'flex' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n \n \n \n
    \n\n \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    {{ item }}
    \n
    \n
    \n\n \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n \n {{ item }}{{ i === 0 ? '*' : '' }}\n \n
    \n
    \n
    \n\n \n {{ 'sales-support-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n\n \n {{ 'sales-support-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'sales-support-summary.HKID-or-passport-no' | lang }}\n \n {{ element.hkidOrPassportNo }}\n \n \n \n {{ 'sales-support-summary.eIFF-expiry-date' | lang }}\n \n {{ element.iffExpiryDate }}\n \n \n \n \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n \n
    \n \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n \n
    \n
    \n \n \n \n
    \n \n {{ 'sales-support-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'sales-support-summary.decline-reason' | lang }}\n \n {{ item }}\n \n \n \n \n \n \n \n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    {{ item }}
    \n
    \n
    \n \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n \n {{ item }}{{ i === 0 ? '*' : '' }}\n \n
    \n
    \n
    \n \n {{ 'sales-support-summary.employer-name' | lang }}\n \n {{ element.companyName }}\n \n \n \n {{\n 'sales-support-summary.business-registration-number' | lang\n }}\n \n {{ element.businessRefNo }}\n \n \n \n {{ 'sales-support-summary.eIFF-expiry-date' | lang }}\n \n {{ element.iffExpiryDate }}\n \n \n \n \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n \n
    \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n {{ 'sales-support-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'sales-support-summary.decline-reason' | lang }}\n \n {{ item }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { Subscription } from 'rxjs';\nimport { AgentProductSummary } from './product-type-summary.model';\nimport { producttypeRequest } from './producttype-request';\nimport { ProductTypeSummaryService } from './producttype-summary.service';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\n\n@Component({\n selector: 'app-product-type-summary',\n templateUrl: './product-type-summary.component.html',\n styleUrls: ['./product-type-summary.component.scss'],\n})\nexport class ProductTypeSummaryComponent implements OnInit, OnDestroy {\n SalesJourneyProdType = SalesJourneyProdType;\n select = '';\n paSummary = new AgentProductSummary(0, 0, 0, 0);\n tvcSummary = new AgentProductSummary(0, 0, 0, 0);\n frcSummary = new AgentProductSummary(0, 0, 0, 0);\n erSummary = new AgentProductSummary(0, 0, 0, 0);\n sepSummary = new AgentProductSummary(0, 0, 0, 0);\n private errorSub?: Subscription;\n\n constructor(private router: Router, private alert: CdsAlertService, private productTypeSummaryService: ProductTypeSummaryService) {}\n ngOnDestroy(): void {\n this.productSummarySubscription?.unsubscribe();\n this.errorSub?.unsubscribe();\n }\n\n ngOnInit(): void {\n this.productTypeSummaryService.getProducttypeSummary();\n this.errorSub = this.productTypeSummaryService.errorproducttypeSubject.subscribe(errorMessage => {\n const alertTitle = 'Got Error!';\n this.alert.error(alertTitle, errorMessage);\n });\n this.productSummarySubscription = this.productTypeSummaryService.producttypeDataSubject.subscribe(response => {\n if (response.result !== undefined) {\n if (response.data !== undefined) {\n this.tvcSummary.pendingAgent = response.data.TVC?.pending2ndAgent;\n this.tvcSummary.pendingcustomer = response.data.TVC?.pendingCusSubmission;\n this.tvcSummary.pendingToMap = response.data.TVC?.pendingToMap;\n this.paSummary.pendingAgent = response.data.PA?.pending2ndAgent;\n this.paSummary.pendingcustomer = response.data.PA?.pendingCusSubmission;\n this.paSummary.pendingToMap = response.data.PA?.pendingToMap;\n this.frcSummary.pendingAgent = response.data.SVC?.pending2ndAgent;\n this.frcSummary.pendingcustomer = response.data.SVC?.pendingCusSubmission;\n this.frcSummary.pendingToMap = response.data.SVC?.pendingToMap;\n this.erSummary.pendingAgent = response.data.ER?.pending2ndAgent;\n this.erSummary.pendingcustomer = response.data.ER?.pendingCusSubmission;\n this.erSummary.pendingToMap = response.data.ER?.pendingToMap;\n this.sepSummary.pendingAgent = response.data.SEP?.pending2ndAgent;\n this.sepSummary.pendingcustomer = response.data.SEP?.pendingCusSubmission;\n this.sepSummary.pendingToMap = response.data.SEP?.pendingToMap;\n }\n }\n });\n }\n onclickroute(value: SalesJourneyProdType) {\n this.select = value;\n sessionStorage.setItem('productType', value);\n localStorage.removeItem('case-summary-search-params');\n localStorage.removeItem('case-summary-selected-data');\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n myRqeuest: producttypeRequest = {\n productTypes: 'All',\n };\n private productSummarySubscription?: Subscription;\n\n get isIndividualPendingStatus() {\n return (\n (this.paSummary.pendingAgent || 0) > 0 ||\n (this.paSummary.pendingcustomer || 0) > 0 ||\n (this.paSummary.pendingToMap || 0) > 0 ||\n (this.tvcSummary.pendingAgent || 0) > 0 ||\n (this.tvcSummary.pendingcustomer || 0) > 0 ||\n (this.tvcSummary.pendingToMap || 0) > 0 ||\n (this.frcSummary.pendingAgent || 0) > 0 ||\n (this.frcSummary.pendingcustomer || 0) > 0 ||\n (this.frcSummary.pendingToMap || 0) > 0\n );\n }\n\n get isErPendingStatus() {\n return (this.erSummary.pendingAgent || 0) > 0 || (this.erSummary.pendingcustomer || 0) > 0 || (this.erSummary.pendingToMap || 0) > 0;\n }\n\n get isSepPendingStatus() {\n return (this.sepSummary.pendingAgent || 0) > 0 || (this.sepSummary.pendingcustomer || 0) > 0 || (this.sepSummary.pendingToMap || 0) > 0;\n }\n}\n","
    \n
    \n MPF eIFF Summary –All Product Types\n
    \n\n
    \n
    \n Select Product Type\n
    \n\n
    \n
    \n
    \n Individual (PA, TVC, FRC)\n
    \n
    \n
    \n \n
    \n
    \n Pending Items\n
    \n
    \n
    \n
    \n
    \n
    \n PA\n
    \n
    \n
    \n Pending to send :\n
    \n
    \n {{ paSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ paSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent :\n
    \n
    \n {{ paSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n TVC\n
    \n
    \n
    \n Pending to send :\n
    \n
    \n {{ tvcSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ tvcSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent :\n
    \n
    \n {{ tvcSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n FRC\n
    \n
    \n
    \n Pending to send :\n
    \n
    \n {{ frcSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ frcSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent :\n
    \n
    \n {{ frcSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Corporate (ER)\n
    \n
    \n
    \n \n
    \n
    \n Pending Items\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending to send :\n
    \n
    \n {{ erSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ erSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent :\n
    \n
    \n {{ erSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n Self-Employed Person (SEP)\n
    \n
    \n
    \n \n
    \n
    \n Pending Items\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Pending to send :\n
    \n
    \n {{ sepSummary.pendingToMap }}\n
    \n
    \n
    \n
    \n Pending customer submission :\n
    \n
    \n {{ sepSummary.pendingcustomer }}\n
    \n
    \n
    \n
    \n Pending split agent :\n
    \n
    \n {{ sepSummary.pendingAgent }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","export class AgentProductSummary {\n pendingToMap?: number;\n pendingcustomer?: number;\n pendingAgent?: number;\n allPendingCount?: number;\n\n constructor(pendingToMap: number, pendingcustomer: number, pendingAgent: number, allPendingCount: number) {\n this.pendingToMap = pendingToMap;\n this.pendingcustomer = pendingcustomer;\n this.pendingAgent = pendingAgent;\n this.allPendingCount = allPendingCount;\n }\n}\n","// export class producttypeResponse {\n// pendingsend?: number;\n// pendingcustomer?: number;\n// pendingAgent?: number;\n// result?: string;\n// }\nexport class ProductTypeResponse {\n result?: number;\n message?: string;\n data?: CheckResponseData;\n}\n\nexport interface CheckResponseData {\n TVC?: TVC;\n PA?: PA;\n SVC?: SVC;\n ER?: ER;\n SEP?: SEP;\n}\n\nexport interface TVC {\n pendingToMap?: number;\n pending2ndAgent?: number;\n pendingCusSubmission?: number;\n}\n\nexport interface PA {\n pendingToMap?: number;\n pending2ndAgent?: number;\n pendingCusSubmission?: number;\n}\n\nexport interface SVC {\n pendingToMap?: number;\n pending2ndAgent?: number;\n pendingCusSubmission?: number;\n}\n\nexport interface ER {\n pendingToMap?: number;\n pending2ndAgent?: number;\n pendingCusSubmission?: number;\n}\n\nexport interface SEP {\n pendingToMap?: number;\n pending2ndAgent?: number;\n pendingCusSubmission?: number;\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, Observable, of, Subject, timeout } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { ProductTypeResponse } from './producttype-response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductTypeSummaryService {\n searchProducttypeUrl = `${environment.apiPrefix}/ext/eb-ssms-sales-journey-service/productTypeSummaries`;\n producttypeDataSubject = new Subject();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorproducttypeSubject = new Subject();\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n constructor(private httpClient: HttpClient) {}\n getProducttypeSummary() {\n this.httpClient\n .get(this.searchProducttypeUrl, this.httpOptions)\n .pipe(timeout(5000), catchError(this.handleError(new ProductTypeResponse())))\n .subscribe(resp => {\n this.producttypeDataSubject.next(resp);\n });\n }\n handleError(result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n this.errorproducttypeSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\n\n@Component({\n selector: 'app-regulated-activities',\n templateUrl: './regulated-activities.component.html',\n styleUrls: ['./regulated-activities.component.scss'],\n})\nexport class RegulatedActivitiesComponent implements OnInit {\n @ViewChild('cdRadio', { static: false }) cdRadio?: CdRadioComponent;\n @Input() value?: boolean;\n @Output() valueChange = new EventEmitter();\n @Input() formControl?: FormControl;\n config: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: true,\n disable: false,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: false,\n disable: false,\n },\n ],\n };\n private _disable = false;\n @Input()\n get disable() {\n return this._disable;\n }\n set disable(val: boolean) {\n this._disable = val;\n this.refreshConfig();\n }\n @Input() group!: FormGroup;\n @Input() controlName = '';\n\n constructor(private cdsLangService: CdsLangService) {}\n\n ngOnInit(): void {}\n\n refreshConfig() {\n this.config = {\n options: [\n {\n label: this.cdsLangService.translate('common.yes'),\n value: true,\n disable: this._disable,\n },\n {\n label: this.cdsLangService.translate('common.no'),\n value: false,\n disable: this._disable,\n },\n ],\n };\n this.cdRadio?.refreshConfig();\n }\n}\n","
    \n
    \n 有關受規管活動\n
    \n
    \n {{ 'sendIffInBatchSummary.havePerformedMPF2' | lang }}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n 有關受規管活動\n
    \n
    \n {{ 'sendIffInBatchSummary.havePerformedMPF2' | lang }}\n
    \n
    \n \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-resend-eiff-submit-success',\n templateUrl: './resend-eiff-submit-success.component.html',\n styleUrls: ['./resend-eiff-submit-success.component.scss'],\n})\nexport class ResendEiffSubmitSuccessComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n message: string;\n }\n ) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close(true);\n }\n}\n","
    \n
    \n \n
    \n
    \n {{ data.message }}\n
    \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n {{ 'common.mingBai' | lang }}\n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, DoCheck, Inject, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { EMPF_App_Status_Value } from 'src/app/config/empf-app-status.config';\nimport { MdStatusValue } from 'src/app/config/iff-status.config';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { CaseDetailsRsp } from '../case-details/case-details.model';\nimport { ContactPersonContact, PreferredLanguageType } from '../case-summary/case-summary.model';\nimport { AgentOfDetailByMdNoRsp, AreaCode, DetailByMdNoRsp, ResendEiffResendType } from './resend-eiff.model';\nimport { ResendEiffSubmitSuccessComponent } from './resend-eiff-submit-success/resend-eiff-submit-success.component';\n\n@Component({\n selector: 'app-resend-eiff',\n templateUrl: './resend-eiff.component.html',\n styleUrls: ['./resend-eiff.component.scss'],\n})\nexport class ResendEiffComponent implements OnInit, DoCheck {\n @ViewChild('cdRadio', { static: false }) cdRadio!: CdRadioComponent;\n @ViewChild('cdRadioPreferredLanguage') cdRadioPreferredLanguage?: CdRadioComponent;\n @ViewChild('cdRadioSecondAgentPreferredLanguage') cdRadioSecondAgentPreferredLanguage?: CdRadioComponent;\n @ViewChild('cdRadioThirdAgentPreferredLanguage') cdRadioThirdAgentPreferredLanguage?: CdRadioComponent;\n ResendType = ResendEiffResendType;\n PreferredLanguageType = PreferredLanguageType;\n private readonly CN_PHONE = /^1[345678]\\d{9}$/;\n emailAndPhoneConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.currentLang === 'en' ? 'Email Address' : '電郵地址',\n value: 1,\n disable: false,\n },\n {\n label: this.cdsLangService.currentLang === 'en' ? 'Phone Number' : '手機號碼',\n value: 2,\n disable: false,\n },\n ],\n };\n emailAndPhoneValue = 1;\n\n disableChannelConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.currentLang === 'en' ? 'Registered email address' : '已登記的電郵地址',\n value: 1,\n disable: true,\n },\n {\n label: this.cdsLangService.currentLang === 'en' ? 'Registered phone number' : '已登記的手機號碼',\n value: 2,\n disable: true,\n },\n ],\n };\n\n countrycodeFormControl: FormControl = new FormControl(AreaCode.HK);\n emailAddressFormControl: FormControl = new FormControl('', [Validators.email]);\n countrycodeConfig: CdsDropdownConfig = {\n options: [\n { label: '+852 (HK)', value: AreaCode.HK },\n { label: '+853 (MA)', value: AreaCode.MA },\n { label: '+86 (CN)', value: AreaCode.CN },\n ],\n color: 'ml',\n };\n phoneNumberFormControl: FormControl = new FormControl('', [\n (option: AbstractControl) => {\n if (typeof option.value === 'string') {\n if (option.value.length === 0) {\n return {};\n }\n\n if ([AreaCode.HK, AreaCode.MA].includes(this.countrycodeFormControl.value)) {\n if (option.value.length === 8 && ['4', '5', '6', '7', '8', '9'].includes(option.value.substring(0, 1))) {\n return {};\n }\n }\n\n if ([AreaCode.CN].includes(this.countrycodeFormControl.value)) {\n if (option.value.length === 11) {\n const e = this.CN_PHONE.test(option.value);\n if (e) {\n return {};\n }\n }\n }\n }\n\n return { errorPhoneNumber: true };\n },\n ]);\n isShowPleaseInputPhoneNumber = false;\n isShowPleaseInputCustomerEmail = false;\n resendInfo?: DetailByMdNoRsp;\n isReadOnlyAuthorizedPersonName = false;\n isReadOnlyAuthorizedPersonNameRadio = false;\n isReadOnlyAuthorizedPersonNameEmailAndPhone = false;\n currentStep = 1;\n dbs?: {\n dbsRmReferralCd: FormControl;\n dbsCustomerId: FormControl;\n dbsCampaignCd: FormControl;\n dbsSourceCd: FormControl;\n };\n\n preferredLanguage?: PreferredLanguageType;\n preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n secondAgentPreferredLanguage?: PreferredLanguageType;\n secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n thirdAgentPreferredLanguage?: PreferredLanguageType;\n thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n regulationConfig: CdRadioConfig = {\n options: [\n {\n label: '是',\n value: true,\n disable: true,\n },\n {\n label: '否',\n value: false,\n disable: true,\n },\n ],\n };\n\n secondIntermediaryContactInformationConfig: CdRadioConfig = {\n options: [\n {\n label: '已登記的電郵地址(wink******@manulife.com)',\n value: 'EMAIL',\n disable: false,\n },\n {\n label: '已登記的手機號碼 (+852) 6188 ****',\n value: 'SMS',\n disable: false,\n },\n ],\n };\n secondIntermediaryLangConfig: CdRadioConfig = {\n options: [\n {\n label: '中文',\n value: 'CN',\n disable: false,\n },\n {\n label: '英文',\n value: 'EN',\n disable: false,\n },\n ],\n };\n\n contactPersonContacts: ContactPersonContact[] = [];\n\n constructor(\n private dialogRef: MatDialogRef,\n public cdsLangService: CdsLangService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n mdNo: string;\n resendType: ResendEiffResendType;\n mdStatus: number;\n empfStatus: number;\n },\n public notifyService: NotifyService,\n private cdsPopup: CdsPopupService,\n private agentChannelService: AgentChannelService\n ) {}\n\n get isReadOnlyEmailAndPhone() {\n if (this.data.resendType === ResendEiffResendType.EE) {\n return (\n ![\n EMPF_App_Status_Value.Pending_eMPF_Return_Data,\n EMPF_App_Status_Value.eMPF_Rejected,\n EMPF_App_Status_Value.eMPF_Application_cancelled,\n EMPF_App_Status_Value.Not_Applicable,\n ].includes(this.data.empfStatus) && [MdStatusValue.Pending_Split_Agent, MdStatusValue.Pending_Customer_Submission].includes(this.data.mdStatus)\n );\n } else {\n return !(\n [EMPF_App_Status_Value.Pending_eMPF_Return_Data].includes(this.data.empfStatus) &&\n [MdStatusValue.Pending_Split_Agent, MdStatusValue.Pending_Customer_Submission].includes(this.data.mdStatus)\n );\n }\n }\n\n get isReadOnlyEmailForNull() {\n return this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data && !this.emailAddressFormControl.value;\n }\n\n get isReadOnlyPhoneForNull() {\n return this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data && !this.phoneNumberFormControl.value;\n }\n\n ngOnInit(): void {\n this.notifyService.screenLoadingSubject.next(true);\n\n this.countrycodeFormControl.valueChanges.subscribe(() => {\n this.phoneNumberFormControl.updateValueAndValidity();\n });\n\n this.phoneNumberFormControl.valueChanges.subscribe((val: string) => {\n if (val?.length > 0) {\n this.isShowPleaseInputPhoneNumber = false;\n } else {\n this.isShowPleaseInputPhoneNumber = true;\n }\n });\n\n this.emailAddressFormControl.valueChanges.subscribe((val: string) => {\n if (val?.length > 0) {\n this.isShowPleaseInputCustomerEmail = false;\n } else {\n this.isShowPleaseInputCustomerEmail = true;\n }\n });\n\n this.getResendInfo();\n }\n\n getResendInfo() {\n this.cdHttpServeService\n .get('/ext/eb-ssms-sales-journey-service/md/detailByMdNo', {\n mdNo: this.data.mdNo,\n })\n .subscribe({\n next: res => {\n this.notifyService.screenLoadingSubject.next(false);\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.resendInfo = res.data;\n let isDisableChannelConfig = false;\n\n this.emailAddressFormControl.setValue(this.resendInfo.email);\n this.countrycodeFormControl.setValue(this.resendInfo.phoneCountry.replace('+', '') || AreaCode.HK);\n this.phoneNumberFormControl.setValue(this.resendInfo.phone);\n if (this.data.resendType === ResendEiffResendType.EE) {\n this.emailAndPhoneValue = this.resendInfo.commChannel === 'EMAIL' ? 1 : this.resendInfo.commChannel === 'SMS' ? 2 : 0;\n this.cdRadio.refreshConfig();\n isDisableChannelConfig =\n (![\n EMPF_App_Status_Value.Pending_eMPF_Return_Data,\n EMPF_App_Status_Value.eMPF_Rejected,\n EMPF_App_Status_Value.eMPF_Application_cancelled,\n EMPF_App_Status_Value.Not_Applicable,\n ].includes(this.data.empfStatus) ||\n this.data.empfStatus === 0) &&\n this.data.mdStatus === MdStatusValue.Pending_Customer_Submission;\n } else {\n this.isReadOnlyAuthorizedPersonName = !(\n ![\n EMPF_App_Status_Value.Pending_eMPF_Return_Data,\n EMPF_App_Status_Value.eMPF_Rejected,\n EMPF_App_Status_Value.eMPF_Application_cancelled,\n EMPF_App_Status_Value.Not_Applicable,\n ].includes(this.data.empfStatus) && [MdStatusValue.Pending_Split_Agent, MdStatusValue.Pending_Customer_Submission].includes(this.data.mdStatus)\n );\n this.isReadOnlyAuthorizedPersonNameRadio = this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data;\n this.isReadOnlyAuthorizedPersonNameEmailAndPhone = this.data.empfStatus === EMPF_App_Status_Value.Pending_eMPF_Return_Data;\n this.getMemberContacts();\n }\n\n switch (this.resendInfo.language) {\n case 'EN':\n this.preferredLanguage = PreferredLanguageType.English;\n break;\n case 'CN':\n this.preferredLanguage = PreferredLanguageType.Chinese;\n break;\n }\n if (this.resendInfo.language !== undefined) {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n\n if (this.agentInfos.length > 0) {\n this.agentInfos.forEach((agentInfo, agentInfoIndex) => {\n agentInfo.shortEmail = '';\n if (agentInfo.email) {\n const ea = agentInfo.email || '';\n const endIndex = ea.indexOf('@');\n agentInfo.shortEmail = ea.substring(0, 4) + '*****' + ea.substring(endIndex);\n }\n agentInfo.shortPhone = '';\n if (agentInfo.phone) {\n const mn = agentInfo.phone || '';\n let phoneArr = new Array((mn + '').length - 10);\n phoneArr = phoneArr.fill('*');\n agentInfo.shortPhone = mn.substring(0, 10) + phoneArr.join('');\n }\n\n if (this.data.resendType === ResendEiffResendType.ER) {\n isDisableChannelConfig = !(!agentInfo.isSplitSent && this.data.mdStatus === MdStatusValue.Pending_Split_Agent);\n }\n\n agentInfo.channelConfig = {\n options: [\n {\n label:\n this.cdsLangService.currentLang === 'en'\n ? `Registered email address (${agentInfo.shortEmail})`\n : `已登記的電郵地址 (${agentInfo.shortEmail})`,\n value: 'EMAIL',\n disable: isDisableChannelConfig || !agentInfo.email,\n },\n {\n label:\n this.cdsLangService.currentLang === 'en'\n ? `Registered phone number ${agentInfo.shortPhone}`\n : `已登記的手機號碼 ${agentInfo.shortPhone}`,\n value: 'SMS',\n disable: isDisableChannelConfig || !agentInfo.phone,\n },\n ],\n };\n\n switch (agentInfo.language) {\n case 'EN':\n if (agentInfoIndex === 0) {\n this.secondAgentPreferredLanguage = PreferredLanguageType.English;\n } else if (agentInfoIndex === 1) {\n this.thirdAgentPreferredLanguage = PreferredLanguageType.English;\n }\n break;\n case 'CN':\n if (agentInfoIndex === 0) {\n this.secondAgentPreferredLanguage = PreferredLanguageType.Chinese;\n } else if (agentInfoIndex === 1) {\n this.thirdAgentPreferredLanguage = PreferredLanguageType.Chinese;\n }\n break;\n }\n\n if (agentInfo.language !== undefined) {\n if (agentInfoIndex === 0) {\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: isDisableChannelConfig || !agentInfo.phone,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: isDisableChannelConfig || !agentInfo.phone,\n },\n ],\n };\n this.cdRadioSecondAgentPreferredLanguage?.refreshConfig();\n } else if (agentInfoIndex === 1) {\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: isDisableChannelConfig || !agentInfo.phone,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: isDisableChannelConfig || !agentInfo.phone,\n },\n ],\n };\n this.cdRadioThirdAgentPreferredLanguage?.refreshConfig();\n }\n }\n });\n }\n\n this.emailAndPhoneConfig.options[0].disable =\n this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data && !this.emailAddressFormControl.value;\n this.emailAndPhoneConfig.options[1].disable =\n this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data && !this.phoneNumberFormControl.value;\n setTimeout(() => {\n this.cdRadio.refreshConfig();\n this.emailAndPhoneValue = this.resendInfo?.commChannel === 'EMAIL' ? 1 : 2;\n }, 0);\n\n this.dbs = {\n dbsRmReferralCd: new FormControl(this.resendInfo.dbs?.dbsRmReferralCd, [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n },\n ]),\n dbsCustomerId: new FormControl(this.resendInfo.dbs?.dbsCustomerId, [\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n },\n ]),\n dbsSourceCd: new FormControl(this.resendInfo.dbs?.dbsSourceCd, [\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n },\n ]),\n dbsCampaignCd: new FormControl(this.resendInfo.dbs?.dbsCampaignCd, [\n (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n },\n ]),\n };\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n get agentInfos() {\n const agentInfos = [];\n if (this.resendInfo?.secondAgent) {\n agentInfos.push(this.resendInfo.secondAgent);\n }\n if (this.resendInfo?.thirdAgent) {\n agentInfos.push(this.resendInfo.thirdAgent);\n }\n return agentInfos;\n }\n\n getChannel(channelConfig?: CdRadioConfig, channelValue?: number) {\n return channelConfig?.options.find(o => o.value === channelValue)?.label;\n }\n\n resendSubmission() {\n this.notifyService.screenLoadingSubject.next(true);\n\n const params: {\n mdNo?: string;\n contactPersonId?: string;\n language?: 'CN' | 'EN';\n communicationType?: 'SMS' | 'EMAIL';\n } = {};\n\n params.mdNo = this.data.mdNo;\n if (this.resendInfo?.primaryAgent.isRgltdActAck && this.emailAndPhoneValue === 2) {\n params.language = this.preferredLanguage === PreferredLanguageType.English ? 'EN' : 'CN';\n }\n params.communicationType = this.emailAndPhoneValue === 1 ? 'EMAIL' : 'SMS';\n if (this.data.resendType === ResendEiffResendType.ER) {\n params.contactPersonId = this.resendInfo?.authorizedPersonNameControl.value;\n }\n\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/md/reSend', params).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n let msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n if (this.data.mdStatus === MdStatusValue.Pending_Customer_Submission) {\n msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n } else if (this.data.mdStatus === MdStatusValue.Pending_Split_Agent) {\n msg = 'sendIffInBatchSummary.popupScreenTitleForSplitAgent';\n }\n const ref = this.cdsPopup.open(ResendEiffSubmitSuccessComponent, {\n size: 'sm',\n data: {\n message: this.cdsLangService.translate(msg),\n },\n });\n ref.afterClosed().subscribe(() => {\n this.dialogRef.close({ isRefresh: true });\n });\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n // resendSubmission() {\n // this.notifyService.screenLoadingSubject.next(true);\n // const splitAgentInfos =\n // this.resendInfo?.agentInfos?.map((element, index) => {\n // const a: any = {\n // agentid: element.agentid,\n // agentNotificationChannel: element.channelValue === 1 ? 'E' : element.channelValue === 2 ? 'M' : '',\n // };\n // if (element.regulatedAct && element.channelValue === 2) {\n // if (index === 0) {\n // a['smsLanguage'] = this.secondAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n // } else if (index === 1) {\n // a['smsLanguage'] = this.thirdAgentPreferredLanguage === PreferredLanguageType.English ? 0 : 1;\n // }\n // }\n // return a;\n // }) || [];\n // const params: ResendEiffResendSubmissionParams = {\n // salesJourneySummaryId: this.data.salesJourneySummariesId,\n // empfRefNo: this.resendInfo?.empfRefNo,\n // communicationChannel: this.emailAndPhoneValue === 1 ? 'E' : this.emailAndPhoneValue === 2 ? 'M' : '',\n // authPersonId: this.resendInfo?.authorizedPersonNameControl?.value,\n // customerId: this.resendInfo?.customerId,\n // splitAgentInfos: splitAgentInfos,\n // };\n // if (this.resendInfo?.regulatedAct && this.emailAndPhoneValue === 2) {\n // params.smsLanguage = this.preferredLanguage === PreferredLanguageType.English ? 0 : 1;\n // }\n // if (this.emailAndPhoneValue === 1) {\n // params.email = this.emailAddressFormControl.value;\n // } else {\n // params.countryCallingCode = this.countrycodeFormControl.value;\n // params.mobile = this.phoneNumberFormControl.value;\n // }\n // if (this.isChannelDBS) {\n // params.dbs = {\n // dbsRmReferralCd: this.dbs?.dbsRmReferralCd.value,\n // dbsCustomerId: this.dbs?.dbsCustomerId.value,\n // dbsCampaignCd: this.dbs?.dbsCampaignCd.value,\n // dbsSourceCd: this.dbs?.dbsSourceCd.value,\n // };\n // }\n // this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/resend/submission', params).subscribe({\n // next: res => {\n // if (res.result !== 0) {\n // this.alert.warning('Warning!', `${res.message}`);\n // } else {\n // let msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n // if (this.data.iffStatus === 20) {\n // msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n // } else if (this.data.iffStatus === 10) {\n // msg = 'sendIffInBatchSummary.popupScreenTitleForSplitAgent';\n // }\n // const ref = this.cdsPopup.open(ResendEiffSubmitSuccessComponent, {\n // size: 'sm',\n // data: {\n // message: this.cdsLangService.translate(msg),\n // },\n // });\n // ref.afterClosed().subscribe(() => {\n // this.dialogRef.close({ isRefresh: true });\n // });\n // }\n // this.notifyService.screenLoadingSubject.next(false);\n // },\n // error: err => {\n // this.alert.error('Error!', err);\n // this.notifyService.screenLoadingSubject.next(false);\n // },\n // });\n // }\n\n get isChannelDBS() {\n return this.agentChannelService.channel === AgentChannel.DBS;\n }\n\n get isDisabledContinue() {\n if (\n this.dbs &&\n ((this.dbs.dbsRmReferralCd.dirty && !!this.dbs.dbsRmReferralCd.errors) ||\n (this.dbs.dbsCustomerId.dirty && !!this.dbs.dbsCustomerId.errors) ||\n (this.dbs.dbsCampaignCd.dirty && !!this.dbs.dbsCampaignCd.errors) ||\n (this.dbs.dbsSourceCd.dirty && !!this.dbs.dbsSourceCd.errors))\n ) {\n return true;\n }\n\n if (this.resendInfo?.primaryAgent?.isRgltdActAck && this.emailAndPhoneValue === 2 && !this.preferredLanguage) {\n return true;\n }\n\n const b = this.agentInfos?.some(\n (agent, index) =>\n agent.isRgltdActAck &&\n agent.channelValue === 2 &&\n ((index === 0 && !this.secondAgentPreferredLanguage) || (index === 1 && !this.thirdAgentPreferredLanguage))\n );\n if (b) {\n return true;\n }\n\n if (this.emailAndPhoneValue === 1) {\n return this.emailAddressFormControlValidatorFail || this.isShowPleaseInputCustomerEmail;\n } else {\n return this.phoneNumberFormControlValidatorFail || this.isShowPleaseInputPhoneNumber;\n }\n }\n\n getMemberContacts() {\n this.cdHttpServeService\n .get<\n {\n contactPersonId: string;\n firstName: string;\n lastName: string;\n chineseFirstName: string;\n chineseLastName: string;\n email: string;\n phone: {\n countryCode: string;\n phoneNo: string;\n phoneExt: string;\n };\n }[]\n >(`/ext/eb-ssms-sales-journey-service/md/concatPerson`, { mdNo: this.data.mdNo })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (this.resendInfo) {\n this.resendInfo.authorizedPersonNameControl = new FormControl(null);\n this.resendInfo.authorizedPersonNameConfig = {\n options: [],\n };\n\n res.data.forEach(contact => {\n if (\n (this.resendInfo?.apLastName === contact.lastName && this.resendInfo?.apFirstName === contact.firstName) ||\n (this.resendInfo?.apLastName === contact.chineseLastName && this.resendInfo?.apFirstName === contact.chineseFirstName)\n ) {\n this.resendInfo.authorizedPersonNameControl.setValue(contact.contactPersonId);\n this.emailAddressFormControl.setValue(contact.email);\n this.countrycodeFormControl.setValue(contact.phone.countryCode);\n this.phoneNumberFormControl.setValue(contact.phone.phoneNo);\n }\n this.resendInfo?.authorizedPersonNameConfig?.options.push({\n label: contact.lastName + ' ' + contact.firstName,\n value: contact.contactPersonId,\n });\n });\n\n if (this.resendInfo.authorizedPersonNameConfig) {\n this.resendInfo.authorizedPersonNameConfig.placeholder = 'Select Authorized Person Name';\n }\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n close() {\n this.dialogRef.close({ isRefresh: false });\n }\n\n authorizedPersonNameControlChange() {\n if (this.contactPersonContacts && this.resendInfo) {\n const c = this.contactPersonContacts.filter(contact => contact.contactPersonId === this.resendInfo?.authorizedPersonNameControl.value);\n if (c && c.length === 1) {\n this.emailAddressFormControl.setValue(c[0].emailAddr);\n this.countrycodeFormControl.setValue(c[0].countryCallingCode);\n this.phoneNumberFormControl.setValue(c[0].phoneNumber);\n\n if (c[0].contactPersonLastName === this.resendInfo.lastName && c[0].contactPersonFirstName === this.resendInfo.firstName) {\n this.emailAndPhoneValue = this.resendInfo.commChannel === 'EMAIL' ? 1 : this.resendInfo.commChannel === 'SMS' ? 2 : 0;\n } else {\n this.emailAndPhoneValue = c[0].emailAddr ? 1 : c[0].countryCallingCode && c[0].phoneNumber ? 2 : 0;\n }\n this.emailAndPhoneConfig.options[0].disable =\n this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data && !this.emailAddressFormControl.value;\n this.emailAndPhoneConfig.options[1].disable =\n this.data.empfStatus !== EMPF_App_Status_Value.Pending_eMPF_Return_Data && !this.phoneNumberFormControl.value;\n setTimeout(() => {\n this.cdRadio.refreshConfig();\n }, 0);\n\n if (!this.emailAndPhoneConfig.options[1].disable && this.emailAndPhoneValue === 2) {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n this.preferredLanguage = undefined;\n } else {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n this.preferredLanguage = undefined;\n }\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n }\n }\n\n get emailAddressFormControlValidatorFail() {\n return (this.emailAddressFormControl.touched || this.emailAddressFormControl.dirty) && !this.emailAddressFormControl.valid;\n }\n\n get phoneNumberFormControlValidatorFail() {\n return (this.phoneNumberFormControl.touched || this.phoneNumberFormControl.dirty) && !this.phoneNumberFormControl.valid;\n }\n\n getClientName(data?: CaseDetailsRsp) {\n if (!data) {\n return '';\n }\n\n if (this.cdsLangService.currentLang === 'en') {\n return data.clientNameEng || data.clientNameChn;\n } else {\n return data.clientNameChn || data.clientNameEng;\n }\n }\n\n getAgentName(agent?: AgentOfDetailByMdNoRsp) {\n if (!agent) {\n return '';\n }\n\n if (this.cdsLangService.currentLang === 'en') {\n return agent.agentName || agent.agentNameTC;\n } else {\n return agent.agentNameTC || agent.agentName;\n }\n }\n\n continue() {\n if (this.isDisabledContinue) {\n return;\n }\n\n if (this.isChannelDBS) {\n this.dbs?.dbsRmReferralCd.markAsDirty();\n if (this.dbs?.dbsRmReferralCd.errors) {\n return;\n }\n }\n\n if (this.emailAndPhoneValue === 1) {\n if (this.emailAddressFormControl.value.length === 0) {\n this.isShowPleaseInputCustomerEmail = true;\n return;\n }\n } else {\n if (this.phoneNumberFormControl.value.length === 0) {\n this.isShowPleaseInputPhoneNumber = true;\n return;\n }\n }\n this.currentStep = 2;\n }\n\n back() {\n if (this.currentStep === 1) {\n this.close();\n }\n this.currentStep = 1;\n }\n\n emailAndPhoneValueChange(value: number) {\n this.preferredLanguage = undefined;\n if (value === 1) {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (value === 2) {\n this.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioPreferredLanguage?.refreshConfig();\n }\n\n agentInfosChannelValueChange(i: number, value: number) {\n if (i === 0) {\n this.secondAgentPreferredLanguage = undefined;\n if (value === 1) {\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (value === 2) {\n this.secondAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioSecondAgentPreferredLanguage?.refreshConfig();\n } else if (i === 1) {\n this.thirdAgentPreferredLanguage = undefined;\n if (value === 1) {\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n } else if (value === 2) {\n this.thirdAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n }\n this.cdRadioThirdAgentPreferredLanguage?.refreshConfig();\n }\n }\n\n isDisableCountrycodeFormControl() {\n const disable = this.isReadOnlyEmailAndPhone || this.isReadOnlyPhoneForNull;\n if (disable) {\n this.countrycodeFormControl.disable();\n } else {\n this.countrycodeFormControl.enable();\n }\n }\n\n ngDoCheck(): void {\n this.isDisableCountrycodeFormControl();\n }\n}\n","
    \n \n
    \n
    \n {{ 'resend-eiff.resendIff' | lang }}\n {{ 'resend-eiff.resendIffConfirmation' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n MD Reference Number\n
    \n
    \n {{ data.mdNo }}\n
    \n
    \n \n
    \n 這是有聯繫公司間或更改業務擁有權時之成員累算權益轉移。\n
    \n
    \n
    \n
    \n
    \n
    \n \n
      \n
    • \n {{ 'iff.splitAgentNote1' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote2' | lang }}\n
    • \n
    • \n {{ 'iff.splitAgentNote3HeadPart' | lang }}\n {{ 'iff.splitAgentNote3RedPart' | lang }}\n {{ 'iff.splitAgentNoteTailPart' | lang }}\n
    • \n
    \n
    \n
    \n\n
    \n
    \n 客戶資料\n
    \n
    \n
    \n \n
    \n {{ 'case-details-er.employer-name' | lang }} :\n
    \n
    \n {{ resendInfo?.companyName }}\n
    \n
    \n\n \n
    \n {{ 'sendIffInBatchSummary.eRNumber' | lang }} :\n
    \n
    \n {{ resendInfo?.brNo }}\n
    \n
    \n\n \n
    \n {{ 'sendIffInBatchSummary.authorizedPersonName' | lang }} :\n
    \n
    \n {{ resendInfo.clientName }}\n \n
    \n \n\n \n \n
    \n {{ 'sendIffInBatchSummary.apEmailPhone' | lang }} :\n
    \n
    \n \n
    \n
    \n\n \n
    \n
    \n
    \n \n {{\n 'common.please-input-valid-customer-email' | lang\n }}\n {{\n 'common.please-input-customer-email' | lang\n }}\n
    \n
    \n \n
    \n \n {{\n 'common.please-input-valid-mobile-number' | lang\n }}\n {{\n 'common.please-input-customer-mobile-number' | lang\n }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n {{ 'sendIffInBatchSummary.apEmailPhone' | lang }} :\n
    \n
    \n
    \n {{ emailAddressFormControl.value }}\n
    \n
    \n {{ '(' + countrycodeFormControl.value + ')' + phoneNumberFormControl.value }}\n
    \n
    \n
    \n\n \n
    \n 客戶姓名* :\n
    \n
    \n {{ resendInfo?.clientName }}\n
    \n
    \n\n \n
    \n {{ 'sendIffInBatchSummary.emailAndPhone' | lang }}* :\n
    \n
    \n
    \n {{ emailAddressFormControl.value }}\n
    \n
    \n {{ '(' + countrycodeFormControl.value + ')' + phoneNumberFormControl.value }}\n
    \n
    \n
    \n\n \n
    \n {{ 'sendIffInBatchSummary.emailAndPhone' | lang }}* :\n
    \n
    \n \n
    \n\n
    \n
    \n
    \n \n {{\n 'common.please-input-valid-customer-email' | lang\n }}\n {{\n 'common.please-input-customer-email' | lang\n }}\n
    \n
    \n \n
    \n \n {{\n 'common.please-input-valid-mobile-number' | lang\n }}\n {{\n 'common.please-input-customer-mobile-number' | lang\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n {{ 'resend-eiff.pleaseEnsure' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n {{ 'resend-eiff.ensureTheContact' | lang }}\n
    \n
    \n
    \n\n \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}: \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}: \n
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n
    \n
    \n\n \n \n\n \n
    \n
    \n
    \n RM Referral Code:\n
    \n
    \n
    \n {{ dbs.dbsRmReferralCd.value || '-' }}\n \n
    \n Please input valid RM Referral Code\n \n \n Please input valid RM Referral Code\n \n \n
    \n
    \n
    \n
    \n
    \n
    Customer ID:
    \n
    \n
    \n {{ dbs.dbsCustomerId.value || '-' }}\n \n
    \n Please input valid Customer ID\n \n
    \n
    \n
    \n
    \n
    \n
    Campaign Code:
    \n
    \n
    \n {{ dbs.dbsCampaignCd.value || '-' }}\n \n
    \n Please input valid Campaign Code\n \n
    \n
    \n
    \n
    \n
    \n
    Source Code:
    \n
    \n
    \n {{ dbs.dbsSourceCd.value || '-' }}\n \n
    \n Please input valid Source Code\n \n
    \n
    \n
    \n
    \n
    \n *請確保資料與客戶在eMPF上提供的資料一致 \n
    \n
    \n
    \n\n
    \n
    \n 有關受規管活動\n
    \n
    \n
    \n 在客戶進行受規管活動時,必須已履行強積金中介人履行職務要求。\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n {{\n 'resend-eiff.informationOnMPFIntermediaries'\n | lang\n : {\n p1: ['resend-eiff.second', 'resend-eiff.third'][i] | lang\n }\n }}\n
    \n
    \n
    \n
    代理人編號:
    \n
    \n {{ item.agentCode }}\n
    \n
    代理人姓名:
    \n
    \n {{ getAgentName(item) }}\n
    \n \n
    \n 客戶電郵地址/ 手機號碼* :\n
    \n
    \n {{ item.commChannel === 'SMS' ? item.shortPhone : item.shortEmail }}\n
    \n
    選擇語言 :
    \n
    \n \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n 有關受規管活動\n
    \n
    \n 在客戶進行受規管活動時,必須已履行強積金中介人履行職務要求。\n
    \n
    \n \n
    \n
    \n
    \n
    \n 請選擇以下已登記的第{{ i === 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 {{ 'common.back' | lang }}\n {{ 'common.continue' | lang }}\n
    \n
    \n {{ 'common.back' | lang }}\n {{ 'common.confirmAndSubmit' | lang }}\n
    \n
    \n
    \n","import { FormControl } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\n\nexport enum AreaCode {\n HK = '852',\n MA = '853',\n CN = '86',\n}\n\nexport enum ResendEiffResendType {\n ER,\n EE,\n}\n\nexport interface AgentOfDetailByMdNoRsp {\n agentIndex: number;\n agentName: string;\n agentNameTC: string;\n agentCode: string;\n isRgltdActAck: boolean; // regulatedAct\n isPrimaryAgent: boolean;\n language: 'CN' | 'EN'; // smsLanguage\n commChannel: 'SMS' | 'EMAIL';\n email: string;\n phone: string;\n shortEmail?: string;\n shortPhone?: string;\n isSplitSent: boolean;\n\n channelConfig?: CdRadioConfig;\n channelValue?: number;\n}\n\nexport interface DetailByMdNoRsp {\n language: 'CN' | 'EN';\n commChannel: 'SMS' | 'EMAIL';\n email: string;\n phoneCountry: string;\n phone: string;\n primaryAgent: AgentOfDetailByMdNoRsp;\n secondAgent: AgentOfDetailByMdNoRsp;\n thirdAgent: AgentOfDetailByMdNoRsp;\n brNo: string;\n companyName: string;\n clientName: string; // last first name\n lastName: string;\n firstName: string;\n hkId: string;\n hkIdCheckDigit: string;\n passportNo: string;\n hkidOrPassportNo: string;\n authorizedPersonNameControl: FormControl;\n authorizedPersonNameConfig: CdsDropdownConfig;\n contactInfos: {\n personName: string;\n email: string;\n phoneCountry: string;\n phone: string;\n }[];\n dbs?: {\n isDBS: boolean;\n dbsRmReferralCd: string;\n dbsCustomerId: string;\n dbsCampaignCd: string;\n dbsSourceCd: string;\n };\n apFirstName: string;\n apLastName: string;\n apPhone: string;\n apEmail: string;\n apCountryCallingCd: string;\n apCommChannel: string;\n}\n\nexport interface ResendEiffResendInfoRsp {\n empfRefNo: string;\n firstName: string;\n lastName: string;\n hkidOrPassportNo: string;\n countryCallingCd: string;\n phoneNumber: string;\n emailAddress: string;\n commChannel: string;\n specialNeeds: number;\n regulatedAct: boolean;\n companyName: string;\n brNo: string;\n customerId: string;\n authorizedPersonNameControl: FormControl;\n authorizedPersonNameConfig: CdsDropdownConfig;\n agentInfos: {\n agentid: string;\n agentCd: string;\n regulatedAct: boolean;\n agentNotificationChannel: string;\n emailAddress: string;\n mobile: string;\n agentNameTc: string;\n agentName: string;\n channelConfig?: CdRadioConfig;\n channelValue?: number;\n iffAgentStatusEnum: number;\n smsLanguage?: 0 | 1;\n }[];\n dbs?: {\n dbsRmReferralCd: string;\n dbsCustomerId: string;\n dbsCampaignCd: string;\n dbsSourceCd: string;\n };\n smsLanguage?: 0 | 1;\n}\n\nexport interface ResendEiffResendSubmissionParams {\n salesJourneySummaryId: string;\n empfRefNo?: string;\n communicationChannel: string;\n authPersonId: string;\n email?: string;\n countryCallingCode?: string;\n mobile?: string;\n customerId?: string;\n splitAgentInfos: {\n agentid: string;\n agentNotificationChannel: string;\n }[];\n dbs?: {\n dbsRmReferralCd: string;\n dbsCustomerId: string;\n dbsCampaignCd: string;\n dbsSourceCd: string;\n };\n smsLanguage?: 0 | 1;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdFakeTabsComponent } from 'src/app/shared/cd-fake-tabs/cd-fake-tabs.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\nimport { cdsPopupBackdropOntouchmovePreventDefault, cdsPopupBackdropUnOntouchmovePreventDefault, pageToTop } from 'src/app/utils/utils';\nimport { AdviseEmpfrefComponent } from '../../case-summary/advise-empfref/advise-empfref.component';\nimport { AdviseEmpfstatusComponent } from '../../case-summary/advise-empfstatus/advise-empfstatus.component';\nimport { AdviseIffstatusComponent } from '../../case-summary/advise-iffstatus/advise-iffstatus.component';\nimport {\n EE_DECLINED_REASON_OPTIONS,\n EMPFSTATUS_TYPE_OPTIONS,\n ER_DECLINED_REASON_OPTIONS,\n IFFSTATUS_TYPE_OPTIONS,\n} from '../../case-summary/case-summary.config';\nimport { SalesJourneyProdType } from '../../case-summary/case-summary.model';\nimport { CasesummaryService } from '../../case-summary/casesummary.service';\nimport { EEProdType } from '../../iff-paper-form/individuals/individuals.model';\n\nenum IndividualType {\n ALL = 'all',\n PA = 'PA',\n TVC = 'TVC',\n FRC = 'FRC',\n}\n\nexport enum IFFStatusTag {\n ALL = 'all',\n Completed = 'Completed',\n Declined = 'Declined',\n NONE = 'NONE',\n}\n\nexport interface AbmOptions {\n employerNo?: string;\n eMpfId?: string;\n employerName?: string;\n lineOfBusiness?: string;\n _totalLiveModel?: number[];\n startTotalLives?: number;\n endTotalLives?: number;\n intermediatoryCode?: string;\n aggregateInvestedAmountCurrency?: string;\n aggregateInvestedAmountFrom?: string | number;\n aggregateInvestedAmountTo?: string | number;\n origErAcctCd?: string;\n}\n\ninterface RecordItem {\n empfRefNo: string;\n districtCd: string[];\n agentCd: string;\n productType: string;\n iffExpiryDate: string;\n iffStatus: string;\n iffStatusEnum: number;\n IFFStatus: string;\n empfStatus: string;\n empfStatusEnum: number;\n eMPFAppStatus: string;\n splitCase: boolean;\n declineReasons: string;\n salesJourneyStatusEnum: number;\n salesJourneySummaryId: string;\n}\n\ninterface EERecordItem extends RecordItem {\n clientName: string;\n hkidOrPassportNo: string;\n}\n\ninterface ERRecordItem extends RecordItem {\n chnEmployerNm: string;\n companyName: string;\n businessRefNo: string;\n}\n\ninterface ReqeuestParams {\n page: number;\n size: number;\n tab: 'E' | 'W';\n empfRefNo: string;\n agentCd: string;\n districtCd: string;\n iffExpiryDateFrom: string;\n iffExpiryDateTo: string;\n eiffStatus: number[];\n empfStatus: number[];\n ABMs: string[];\n declineReasons: string[];\n productTypes?: string[];\n identityId: string;\n domain: SalesJourneyProdType;\n}\n\ninterface EEReqeuestParams extends ReqeuestParams {\n clientName: string;\n hkidOrPassportNo: string;\n}\n\ninterface ERReqeuestParams extends ReqeuestParams {\n companyName: string;\n brNo: string;\n}\n\ninterface BaseParams {\n tab: 'E' | 'W';\n prodTypeFormControl: FormControl;\n prodTypeDropdownConfig: CdsDropdownConfig;\n resetDatePicker: boolean;\n iFFExpiryDateFromValueError: boolean;\n iFFExpiryDateToValueError: boolean;\n individualTypeSelected: IndividualType;\n iffStatusTagSelected: IFFStatusTag;\n isLoading: boolean;\n currentPageNumOrigin: number;\n totalElements: number;\n totalPages: number;\n allPageData: EERecordItem[][] | ERRecordItem[][];\n iffStatusoptionsOrigin: CdMultidropdownTopping[];\n abmStatusoptionsOrigin: CdMultidropdownTopping[];\n appStatusoptionsOrigin: CdMultidropdownTopping[];\n declinedReasonOptionsOrigin: CdMultidropdownTopping[];\n iFFExpiryDateFromValMax: Date;\n iFFExpiryDateFromValMin: Date;\n iFFExpiryDateToValMax: Date;\n iFFExpiryDateToValMin: Date;\n requestParams: EEReqeuestParams | ERReqeuestParams;\n requestParamsForPageChange?: EEReqeuestParams | ERReqeuestParams;\n}\n\n@Component({\n selector: 'app-sales-support-summary',\n templateUrl: './sales-support-summary.component.html',\n styleUrls: ['./sales-support-summary.component.scss'],\n})\nexport class SalesSupportSummaryComponent implements OnInit, AfterViewInit {\n @ViewChild('cdFakeTabs', { static: false })\n cdFakeTabs!: CdFakeTabsComponent;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n SalesJourneyProdType = SalesJourneyProdType;\n IndividualType = IndividualType;\n IFFStatusTag = IFFStatusTag;\n backIconConfig: CdsIconConfig = {\n color: 'cta',\n size: 'sm',\n };\n backIcon = ActionIcons.button_left_filled;\n infoIcon = ActionIcons.info_1;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n iffStatusoptionList = IFFSTATUS_TYPE_OPTIONS;\n appStatusoptionList = EMPFSTATUS_TYPE_OPTIONS;\n eeDeclinedReasonOptionList = EE_DECLINED_REASON_OPTIONS;\n erDeclinedReasonOptionList = ER_DECLINED_REASON_OPTIONS;\n abmOptionList: CdsOption[] = [];\n private earliestDate = new Date('1970/01/01');\n eeDisplayedColumns: string[] = [\n 'empfRefNo',\n 'districtCd',\n 'agentCd',\n 'productType',\n 'clientName',\n 'hkidOrPassportNo',\n 'iffExpiryDate',\n 'iffStatusEnum',\n 'empfStatusEnum',\n 'splitCase',\n 'declineReasons',\n ];\n erDisplayedColumns: string[] = [\n 'empfRefNo',\n 'districtCd',\n 'agentCd',\n 'companyName',\n 'businessRefNo',\n 'iffExpiryDate',\n 'iffStatusEnum',\n 'empfStatusEnum',\n 'splitCase',\n 'declineReasons',\n ];\n baseParamsList: BaseParams[] = [];\n baseParams!: BaseParams;\n\n formGroup!: FormGroup;\n formControl = {\n scaleType: {\n label: 'commission.scale.type.label',\n placeholder: 'commission.scale.type.placeholder',\n },\n scalePattern: {\n label: 'commission.scale.pattern.label',\n placeholder: 'commission.scale.pattern.placeholder',\n },\n };\n\n constructor(\n private cdsPopup: CdsPopupService,\n public caseSummaryService: CasesummaryService,\n private router: Router,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n public route: ActivatedRoute,\n public cdsLangService: CdsLangService\n ) {}\n\n fakeTabIndexChange(index: number) {\n this.baseParams = this.baseParamsList[index];\n\n if (this.currentPageData.length === 0) {\n const params = this.getFilterParams();\n this.search(params, this.baseParams);\n }\n }\n\n private initRequestParams() {\n this.baseParams.requestParams = {\n page: 1,\n size: 50,\n tab: this.baseParams.tab,\n domain: this.baseParams.prodTypeFormControl.value,\n empfRefNo: '',\n clientName: '',\n agentCd: '',\n districtCd: '',\n iffExpiryDateFrom: '',\n iffExpiryDateTo: '',\n hkidOrPassportNo: '',\n eiffStatus: [],\n empfStatus: [],\n ABMs: [],\n declineReasons: [],\n productTypes: [],\n identityId: '',\n companyName: '',\n brNo: '',\n };\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n\n prodTypeChange(value: SalesJourneyProdType) {\n if (this.baseParams.requestParams.domain === value) {\n return;\n }\n this.baseParams.prodTypeFormControl.setValue(value);\n\n this.reset();\n\n this.baseParams.requestParams.domain = value;\n if (this.baseParams.requestParams.domain === SalesJourneyProdType.Individual) {\n delete this.baseParams.requestParams.productTypes;\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.SEP) {\n this.baseParams.requestParams.productTypes = ['SEP'];\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.Corperate) {\n this.baseParams.requestParams.productTypes = ['ER'];\n }\n\n const params = this.getFilterParams();\n this.search(params, this.baseParams);\n }\n\n ngOnInit(): void {\n this.baseParamsList = [\n {\n tab: 'E',\n prodTypeFormControl: new FormControl(SalesJourneyProdType.Individual),\n prodTypeDropdownConfig: {\n options: [\n {\n label: 'Individuals (PA, TVC, SVC)',\n value: SalesJourneyProdType.Individual,\n },\n { label: 'Corporates (ER)', value: SalesJourneyProdType.Corperate },\n { label: 'Self- Employed Person (SEP)', value: SalesJourneyProdType.SEP },\n ],\n color: 'ml',\n },\n resetDatePicker: false,\n iFFExpiryDateFromValueError: false,\n iFFExpiryDateToValueError: false,\n individualTypeSelected: IndividualType.ALL,\n iffStatusTagSelected: IFFStatusTag.ALL,\n isLoading: false,\n currentPageNumOrigin: 1,\n totalElements: 0,\n totalPages: 0,\n allPageData: [],\n iffStatusoptionsOrigin: [],\n appStatusoptionsOrigin: [],\n abmStatusoptionsOrigin: [],\n declinedReasonOptionsOrigin: [],\n iFFExpiryDateFromValMax: new Date('9000/01/01'),\n iFFExpiryDateFromValMin: this.earliestDate,\n iFFExpiryDateToValMax: new Date('9000/01/01'),\n iFFExpiryDateToValMin: this.earliestDate,\n requestParams: {\n page: 1,\n size: 50,\n tab: 'E',\n domain: SalesJourneyProdType.Individual,\n empfRefNo: '',\n clientName: '',\n agentCd: '',\n districtCd: '',\n iffExpiryDateFrom: '',\n iffExpiryDateTo: '',\n hkidOrPassportNo: '',\n eiffStatus: [],\n empfStatus: [],\n ABMs: [],\n declineReasons: [],\n productTypes: [],\n identityId: '',\n companyName: '',\n brNo: '',\n },\n },\n {\n tab: 'W',\n prodTypeFormControl: new FormControl(SalesJourneyProdType.Individual),\n prodTypeDropdownConfig: {\n options: [\n {\n label: 'Individuals (PA, TVC, SVC)',\n value: SalesJourneyProdType.Individual,\n },\n { label: 'Corporates (ER)', value: SalesJourneyProdType.Corperate },\n { label: 'Self- Employed Person (SEP)', value: SalesJourneyProdType.SEP },\n ],\n color: 'ml',\n },\n resetDatePicker: false,\n iFFExpiryDateFromValueError: false,\n iFFExpiryDateToValueError: false,\n individualTypeSelected: IndividualType.ALL,\n iffStatusTagSelected: IFFStatusTag.ALL,\n isLoading: false,\n currentPageNumOrigin: 1,\n totalElements: 0,\n totalPages: 0,\n allPageData: [],\n iffStatusoptionsOrigin: [],\n appStatusoptionsOrigin: [],\n abmStatusoptionsOrigin: [],\n declinedReasonOptionsOrigin: [],\n iFFExpiryDateFromValMax: new Date('9000/01/01'),\n iFFExpiryDateFromValMin: this.earliestDate,\n iFFExpiryDateToValMax: new Date('9000/01/01'),\n iFFExpiryDateToValMin: this.earliestDate,\n requestParams: {\n page: 1,\n size: 50,\n tab: 'W',\n domain: SalesJourneyProdType.Individual,\n empfRefNo: '',\n clientName: '',\n agentCd: '',\n districtCd: '',\n iffExpiryDateFrom: '',\n iffExpiryDateTo: '',\n hkidOrPassportNo: '',\n eiffStatus: [],\n ABMs: [],\n empfStatus: [],\n declineReasons: [],\n productTypes: [],\n identityId: '',\n companyName: '',\n brNo: '',\n },\n },\n ];\n if (this.route.snapshot.paramMap.get('salesSupportSummaryTab') === 'W') {\n this.baseParams = this.baseParamsList[1];\n } else {\n this.baseParams = this.baseParamsList[0];\n }\n if (this.route.snapshot.paramMap.get('productType') === EEProdType.SEP) {\n this.baseParams.prodTypeFormControl.setValue(SalesJourneyProdType.SEP);\n this.baseParams.requestParams.productTypes = ['SEP'];\n this.prodTypeChange(this.baseParams.prodTypeFormControl.value);\n } else if (this.route.snapshot.paramMap.get('productType') === 'ER') {\n this.baseParams.prodTypeFormControl.setValue(SalesJourneyProdType.Corperate);\n this.baseParams.requestParams.productTypes = ['ER'];\n this.prodTypeChange(this.baseParams.prodTypeFormControl.value);\n } else {\n this.baseParams.prodTypeFormControl.setValue(SalesJourneyProdType.Individual);\n delete this.baseParams.requestParams.productTypes;\n const params = this.getFilterParams();\n this.search(params, this.baseParams);\n }\n this.getABMList();\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n ngAfterViewInit(): void {\n pageToTop();\n setTimeout(() => {\n if (this.route.snapshot.paramMap.get('salesSupportSummaryTab') === 'W') {\n this.cdFakeTabs.onChange(1);\n } else {\n this.cdFakeTabs.onChange(0);\n }\n }, 0);\n }\n\n goCaseDetails(item: RecordItem) {\n const queryParams = {\n from: 'salesSupportSummary',\n salesSupportSummaryTab: this.baseParams.tab,\n productType: this.baseParams.prodTypeFormControl.value,\n };\n this.router.navigate([\n '/salesjourney',\n this.baseParams.prodTypeFormControl.value === SalesJourneyProdType.Corperate ? 'case-details-er' : 'case-details',\n item.salesJourneySummaryId,\n item.empfRefNo,\n queryParams,\n ]);\n }\n\n get currentPageIndex() {\n return this.baseParams.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.baseParams.allPageData.length === 0) {\n return [];\n }\n return this.baseParams.allPageData[this.currentPageIndex];\n }\n\n get EECurrentPageData() {\n if (this.baseParams.allPageData.length === 0) {\n return [] as EERecordItem[];\n }\n return this.baseParams.allPageData[this.currentPageIndex] as EERecordItem[];\n }\n\n get ERCurrentPageData() {\n if (this.baseParams.allPageData.length === 0) {\n return [] as ERRecordItem[];\n }\n return this.baseParams.allPageData[this.currentPageIndex] as ERRecordItem[];\n }\n\n checkIndividualTypeTag(value: IndividualType) {\n this.baseParams.individualTypeSelected = value;\n if (value === IndividualType.ALL) {\n delete this.baseParams.requestParams.productTypes;\n } else {\n this.baseParams.requestParams.productTypes = [value];\n }\n this.baseParams.requestParams.page = 1;\n const params = this.getFilterParams();\n this.search(params, this.baseParams);\n }\n\n checkIFFStatusTag(value: IFFStatusTag) {\n this.baseParams.iffStatusTagSelected = value;\n\n if (value === IFFStatusTag.ALL) {\n this.baseParams.iffStatusoptionsOrigin = [];\n } else if (value === IFFStatusTag.Completed) {\n this.baseParams.iffStatusoptionsOrigin = [\n {\n label: 'Completed',\n value: 30,\n },\n ];\n } else if (value === IFFStatusTag.Declined) {\n this.baseParams.iffStatusoptionsOrigin = [\n {\n label: 'Declined',\n value: 99,\n },\n ];\n }\n\n this.baseParams.requestParams;\n this.baseParams.requestParams.page = 1;\n const params = this.getFilterParams();\n this.search(params, this.baseParams);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n onDisplayAdviseIFF() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AdviseIffstatusComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n onDisplayAdviseEmpf() {\n const popupRef: MatDialogRef = this.cdsPopup.open(AdviseEmpfstatusComponent, {\n size: 'sm',\n data: {\n message: 'The changes you’ve made will be lost, are you sure to continue?',\n cancel: 'Cancel',\n continue: 'Continue',\n },\n });\n popupRef.afterClosed().subscribe(() => {\n cdsPopupBackdropUnOntouchmovePreventDefault();\n });\n popupRef.afterOpened().subscribe(() => {\n cdsPopupBackdropOntouchmovePreventDefault();\n });\n }\n\n private onResetDatePicker() {\n this.baseParams.iFFExpiryDateFromValMax = new Date('9000/01/01');\n this.baseParams.iFFExpiryDateFromValMin = this.earliestDate;\n this.baseParams.iFFExpiryDateToValMax = new Date('9000/01/01');\n this.baseParams.iFFExpiryDateToValMin = this.earliestDate;\n\n this.baseParams.resetDatePicker = true;\n setTimeout(() => {\n this.baseParams.resetDatePicker = false;\n }, 0);\n }\n\n pageChange(num: number): void {\n if (this.baseParams.requestParamsForPageChange) {\n this.baseParams.requestParamsForPageChange.page = num;\n this.search(this.baseParams.requestParamsForPageChange, this.baseParams);\n }\n }\n\n iFFExpiryDateFromValueChange(val: string) {\n if (val === '') {\n this.baseParams.iFFExpiryDateFromValueError = false;\n return;\n }\n this.baseParams.requestParams.iffExpiryDateFrom = val;\n const temp = this.baseParams.requestParams.iffExpiryDateFrom.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.baseParams.iFFExpiryDateFromValueError = true;\n return;\n }\n if (this.baseParams.requestParams.iffExpiryDateTo) {\n const tempTo = this.baseParams.requestParams.iffExpiryDateTo.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.baseParams.iFFExpiryDateFromValueError = true;\n return;\n }\n }\n this.baseParams.iFFExpiryDateFromValueError = false;\n this.baseParams.iFFExpiryDateToValMin = selectedDate;\n }\n\n iFFExpiryDateToValueChange(val: string) {\n if (val === '') {\n this.baseParams.iFFExpiryDateToValueError = false;\n return;\n }\n this.baseParams.requestParams.iffExpiryDateTo = val;\n const temp = this.baseParams.requestParams.iffExpiryDateTo.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.baseParams.iFFExpiryDateToValueError = true;\n return;\n }\n if (this.baseParams.requestParams.iffExpiryDateFrom) {\n const tempFrom = this.baseParams.requestParams.iffExpiryDateFrom.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.baseParams.iFFExpiryDateToValueError = true;\n return;\n }\n }\n this.baseParams.iFFExpiryDateToValueError = false;\n this.baseParams.iFFExpiryDateFromValMax = new Date([temp[1], temp[0], temp[2]].join('/'));\n }\n\n onClickSearch() {\n if (this.isDisableSearch || this.baseParams.isLoading) {\n return;\n }\n\n this.baseParams.requestParams.page = 1;\n this.baseParams.requestParams.size = 50;\n const params = this.getFilterParams();\n\n if (params.eiffStatus) {\n if (params.eiffStatus.length === 0) {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.ALL;\n } else if (params.eiffStatus.length === 1 && params.eiffStatus[0] === 99) {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.Declined;\n } else if (params.eiffStatus.length === 1 && params.eiffStatus[0] === 30) {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.Completed;\n } else {\n this.baseParams.iffStatusTagSelected = IFFStatusTag.NONE;\n }\n }\n\n this.search(params, this.baseParams);\n }\n\n search(params: any, targetBaseParams: BaseParams) {\n targetBaseParams.requestParamsForPageChange = params;\n targetBaseParams.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: EERecordItem[] | ERRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>(\n targetBaseParams.requestParams.domain === SalesJourneyProdType.Corperate\n ? '/ext/eb-ssms-sales-journey-service/employerSalesJourneySummaries/salesSupport'\n : '/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries/salesSupport',\n params\n )\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n res.data.content.forEach(element => {\n element.IFFStatus = String(element.iffStatusEnum);\n element.eMPFAppStatus = String(element.empfStatusEnum);\n });\n\n targetBaseParams.currentPageNumOrigin = res.data.number;\n targetBaseParams.allPageData[this.currentPageIndex] = res.data.content;\n targetBaseParams.totalElements = res.data.totalElements;\n targetBaseParams.totalPages = res.data.totalPages;\n }\n targetBaseParams.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n targetBaseParams.isLoading = false;\n },\n });\n }\n\n private reset() {\n this.onResetDatePicker();\n this.initRequestParams();\n\n this.baseParams.individualTypeSelected = IndividualType.ALL;\n this.baseParams.iffStatusTagSelected = IFFStatusTag.ALL;\n this.baseParams.appStatusoptionsOrigin = [];\n this.baseParams.iffStatusoptionsOrigin = [];\n this.baseParams.abmStatusoptionsOrigin = [];\n this.baseParams.declinedReasonOptionsOrigin = [];\n this.baseParams.iFFExpiryDateFromValueError = false;\n this.baseParams.iFFExpiryDateToValueError = false;\n }\n\n private getFilterParams() {\n const params: any = {};\n for (const key in this.baseParams.requestParams) {\n if (Object.prototype.hasOwnProperty.call(this.baseParams.requestParams, key)) {\n const val = (this.baseParams.requestParams as any)[key];\n if (val !== undefined && val !== null && val !== '' && !(Object.prototype.toString.call(val) === '[object Array]' && val.length === 0)) {\n if (typeof val === 'string') {\n params[key] = val.trim();\n } else {\n params[key] = val;\n }\n }\n }\n }\n if (this.baseParams.appStatusoptionsOrigin.length > 0) {\n params.empfStatus = this.baseParams.appStatusoptionsOrigin.map(item => item.value);\n }\n if (this.baseParams.iffStatusoptionsOrigin.length > 0) {\n params.eiffStatus = this.baseParams.iffStatusoptionsOrigin.map(item => item.value);\n }\n if (this.baseParams.declinedReasonOptionsOrigin.length > 0) {\n params.declineReasons = this.baseParams.declinedReasonOptionsOrigin.map(item => item.value);\n }\n if (this.baseParams.abmStatusoptionsOrigin.length > 0) {\n params.ABMs = this.baseParams.abmStatusoptionsOrigin.map(item => item.value);\n }\n if (this.isERReqeuestParams(this.baseParams.requestParams)) {\n delete params.clientName;\n delete params.hkidOrPassportNo;\n } else {\n delete params.companyName;\n delete params.businessRefNo;\n }\n return params;\n }\n\n onClickReset() {\n this.reset();\n\n if (this.baseParams.requestParams.domain === SalesJourneyProdType.Individual) {\n delete this.baseParams.requestParams.productTypes;\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.SEP) {\n this.baseParams.requestParams.productTypes = ['SEP'];\n } else if (this.baseParams.requestParams.domain === SalesJourneyProdType.Corperate) {\n this.baseParams.requestParams.productTypes = ['ER'];\n }\n\n const params = this.getFilterParams();\n this.search(params, this.baseParams);\n }\n\n getCompanyName(item: ERRecordItem) {\n if (this.cdsLangService.currentLang === 'en') {\n return item.companyName || item.chnEmployerNm;\n } else {\n return item.chnEmployerNm || item.companyName;\n }\n }\n\n get isDisableSearch() {\n if (this.isERReqeuestParams(this.baseParams.requestParams)) {\n return (\n (this.baseParams.requestParams.empfRefNo === '' &&\n this.baseParams.requestParams.companyName === '' &&\n this.baseParams.requestParams.agentCd === '' &&\n this.baseParams.requestParams.districtCd === '' &&\n this.baseParams.requestParams.iffExpiryDateFrom === '' &&\n this.baseParams.requestParams.iffExpiryDateTo === '' &&\n this.baseParams.requestParams.brNo === '' &&\n this.baseParams.appStatusoptionsOrigin.length === 0 &&\n this.baseParams.iffStatusoptionsOrigin.length === 0 &&\n this.baseParams.abmStatusoptionsOrigin.length === 0 &&\n this.baseParams.declinedReasonOptionsOrigin.length === 0 &&\n this.baseParams.requestParams.identityId === '') ||\n this.baseParams.iFFExpiryDateFromValueError ||\n this.baseParams.iFFExpiryDateToValueError\n );\n } else {\n return (\n (this.baseParams.requestParams.empfRefNo === '' &&\n this.baseParams.requestParams.clientName === '' &&\n this.baseParams.requestParams.agentCd === '' &&\n this.baseParams.requestParams.districtCd === '' &&\n this.baseParams.requestParams.iffExpiryDateFrom === '' &&\n this.baseParams.requestParams.iffExpiryDateTo === '' &&\n this.baseParams.requestParams.hkidOrPassportNo === '' &&\n this.baseParams.appStatusoptionsOrigin.length === 0 &&\n this.baseParams.iffStatusoptionsOrigin.length === 0 &&\n this.baseParams.abmStatusoptionsOrigin.length === 0 &&\n this.baseParams.declinedReasonOptionsOrigin.length === 0 &&\n this.baseParams.requestParams.identityId === '') ||\n this.baseParams.iFFExpiryDateFromValueError ||\n this.baseParams.iFFExpiryDateToValueError\n );\n }\n }\n\n isERReqeuestParams(params: EEReqeuestParams | ERReqeuestParams): params is ERReqeuestParams {\n return params.domain === SalesJourneyProdType.Corperate;\n }\n}\n","
    \n
    \n eIFF Summary\n
    \n\n
    \n \n
    \n\n
    \n
    \n
    \n Choose product type\n
    \n\n
    \n
    \n \n\n \n
    \n
    \n\n
    \n Search record\n
    \n\n
    \n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.client-name' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.abm' | lang }}\n \n
    \n\n \n\n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n\n
    \n {{ 'sales-support-summary.HKID-or-passport-no' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.declined-reason' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n\n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.employer-name' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.abm' | lang }}\n \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n {{ 'sales-support-summary.business-registration-number' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.declined-reason' | lang }}\n \n
    \n
    \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n\n
    \n {{\n 'common.search1' | lang\n }}\n {{ 'common.reset1' | lang }}\n
    \n
    \n\n
    \n Record list\n
    \n\n
    \n Total {{ baseParams.totalElements | number }} records\n
    \n\n
    \n
    \n
    \n
    Product Type:
    \n \n All Product Type\n
    \n \n PA\n
    \n \n TVC\n
    \n \n FRC\n
    \n
    \n\n
    \n
    IFF status:
    \n \n All IFF status\n
    \n \n Completed\n
    \n \n Declined\n \n \n \n \n\n
    \n *The bold and starred code represents Servicing Agent\n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'flex' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n \n \n \n
    \n\n \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    {{ item }}
    \n
    \n
    \n\n \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n \n {{ item }}{{ i === 0 ? '*' : '' }}\n \n
    \n
    \n
    \n\n \n {{ 'sales-support-summary.product-type' | lang }}\n \n {{ element.productType }}\n \n \n\n \n {{ 'sales-support-summary.client-name' | lang }}\n \n {{ element.clientName }}\n \n \n \n {{ 'sales-support-summary.HKID-or-passport-no' | lang }}\n \n {{ element.hkidOrPassportNo }}\n \n \n \n {{ 'sales-support-summary.eIFF-expiry-date' | lang }}\n \n {{ element.iffExpiryDate }}\n \n \n \n \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n \n
    \n \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n \n
    \n
    \n \n \n \n
    \n \n {{ 'sales-support-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'sales-support-summary.decline-reason' | lang }}\n \n
    {{ item }}
    \n
    \n
    \n \n \n \n \n \n \n
    \n {{ 'sales-support-summary.eMPF-ref' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n {{ 'sales-support-summary.district-code' | lang }}\n \n
    {{ item }}
    \n
    \n
    \n \n {{ 'sales-support-summary.agent-code' | lang }}\n \n
    \n \n {{ item }}{{ i === 0 ? '*' : '' }}\n \n
    \n
    \n
    \n \n {{ 'sales-support-summary.employer-name' | lang }}\n \n {{ getCompanyName(element) }}\n \n \n \n {{\n 'sales-support-summary.business-registration-number' | lang\n }}\n \n {{ element.businessRefNo }}\n \n \n \n {{ 'sales-support-summary.eIFF-expiry-date' | lang }}\n \n {{ element.iffExpiryDate }}\n \n \n \n \n
    \n {{ 'sales-support-summary.eIFF-status' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n \n
    \n {{ 'sales-support-summary.application-status-on-eMPF-portal' | lang }}\n \n
    \n
    \n \n \n \n
    \n \n {{ 'sales-support-summary.split-case' | lang }}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'sales-support-summary.decline-reason' | lang }}\n \n
    {{ item }}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-void-eiff-popup',\n templateUrl: './void-eiff-popup.component.html',\n styleUrls: ['./void-eiff-popup.component.scss'],\n})\nexport class VoidEiffPopupComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef) {}\n\n ngOnInit(): void {}\n\n cancel() {\n this.dialogRef.close({ agree: false });\n }\n\n confirm() {\n this.dialogRef.close({ agree: true });\n }\n}\n","
    \n
    \n The record will be voided, are you sure to continue?\n
    \n {{ 'common.cancel' | lang }}\n {{ 'common.confirm' | lang }}\n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { AgentConfirmationComponent } from './agent-confirmation/agent-confirmation.component';\nimport { SplitAgentNotificationInfoResolveService } from './agent-confirmation/split-agent-notification-info-resolve/split-agent-notification-info-resolve.service';\nimport { CaseDetailsComponent } from './case-details/case-details.component';\nimport { CaseSummaryComponent } from './case-summary/case-summary.component';\nimport { ErSendIffInBatchSummaryComponent } from './er-send-iff-in-batch-summary/er-send-iff-in-batch-summary.component';\nimport { ProductTypeSummaryComponent } from './product-type-summary/product-type-summary.component';\nimport { SendIffInBatchSummaryComponent } from './send-iff-in-batch-summary/send-iff-in-batch-summary.component';\nimport { CaseDetailsErComponent } from './case-details-er/case-details-er.component';\nimport { SalesJourneyGuard } from './salesjourney.guard';\nimport { SuperAdminComponent } from './super-admin/super-admin.component';\nimport { EditAgentDetailsComponent } from './edit-agent-details/edit-agent-details.component';\nimport { PaperSummaryComponent } from './paper-summary/paper-summary.component';\nimport { WsmCaseSummaryComponent } from './wsm-case-summary/wsm-case-summary.component';\nimport { IffDeclinedDashboardComponent } from './iff-declined-dashboard/iff-declined-dashboard.component';\nimport { SelectProductTypeComponent } from './iff-paper-form/select-product-type/select-product-type.component';\nimport { IndividualsComponent } from './iff-paper-form/individuals/individuals.component';\nimport { EmployerComponent } from './iff-paper-form/employer/employer.component';\nimport { SalesSupportSummaryComponent } from './sales-support-summary/sales-support-summary/sales-support-summary.component';\nimport { MdIffSummaryComponent } from './md-iff-summary/md-iff-summary.component';\nimport { EmpfCaseDetailsComponent } from './empf-case-details/empf-case-details.component';\nimport { ErEmpfCaseDetailsComponent } from './er-empf-case-details/er-empf-case-details.component';\nimport { IndividualComponent } from './generate-md/individual/individual.component';\nimport { EmployerForMdComponent } from './generate-md/employer-for-md/employer-for-md.component';\nimport { SelectProductTypeForMdComponent } from './generate-md/select-product-type-for-md/select-product-type-for-md.component';\nimport { MdIffSelectProductTypeComponent } from './md-iff-summary/md-iff-select-product-type/md-iff-select-product-type.component';\n\nconst routes: Routes = [\n {\n path: 'salesjourney',\n component: AdminLayoutComponent,\n canActivate: [SalesJourneyGuard],\n children: [\n {\n path: 'product-type-summary/select-product-type',\n component: ProductTypeSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'product-type-summary/case-summary',\n component: CaseSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'split-agent-notification/:id',\n component: AgentConfirmationComponent,\n resolve: {\n splitAgentNotificationInfo: SplitAgentNotificationInfoResolveService,\n },\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'case-details/:salesJourneySummariesId/:empfRefNo',\n component: CaseDetailsComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_USER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'send-iff-in-batch-summary',\n component: SendIffInBatchSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'er-send-iff-in-batch-summary',\n component: ErSendIffInBatchSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'case-details-er/:salesJourneySummariesId/:empfRefNo',\n component: CaseDetailsErComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_USER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'super-admin',\n component: SuperAdminComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_USER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'edit-agent-details/:mdNo',\n component: EditAgentDetailsComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'app-paper-summary',\n component: PaperSummaryComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_BRANCH_LEVEL]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'wsm-case-summary',\n component: WsmCaseSummaryComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_USER]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'iff-declined-dashboard',\n component: IffDeclinedDashboardComponent,\n data: {\n roles: {\n [PermissionItem.CUSTOMER_MEMBER]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'iff-paper-form/select-product-type',\n component: SelectProductTypeComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'iff-paper-form/individuals',\n component: IndividualsComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'iff-paper-form/employer',\n component: EmployerComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'sales-support-summary',\n component: SalesSupportSummaryComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'md-iff-summary/select-product-type',\n component: MdIffSelectProductTypeComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'support-md-iff-summary',\n component: MdIffSummaryComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'md-iff-summary',\n component: MdIffSummaryComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'empf-case-details/:no',\n component: EmpfCaseDetailsComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'er-empf-case-details/:no',\n component: ErEmpfCaseDetailsComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n [PermissionItem.SALES_JOURNEY_SUPER_ADMIN]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'generate-md/select-product-type',\n component: SelectProductTypeForMdComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'generate-md/individual',\n component: IndividualComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'generate-md/employer',\n component: EmployerForMdComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_AGENT]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [SalesJourneyGuard],\n})\nexport class SalesjourneyRoutingModule {}\n","import { CanActivate } from '@angular/router';\nimport { Injectable } from '@angular/core';\n\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\n\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { IffService } from './service/iff.service';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\n\n@Injectable()\nexport class SalesJourneyGuard implements CanActivate {\n private agentCodeConversion = `/ext/eb-ssms/agent-service/api/v1/agent-code-conversion`;\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private authenticationService: AuthenticationService,\n private iffService: IffService,\n private alert: CdsAlertService,\n private agentChannelService: AgentChannelService\n ) {}\n\n canActivate(): boolean {\n this.authenticationService.currentUserValue().then(res => {\n const servicingAgentId = res.id + '';\n this.iffService.getAgentCode(servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n const servicingAgentCode = res.data ? res.data.agentCode : undefined;\n if (servicingAgentCode) {\n this.cdHttpServeService\n .post<\n {\n agentCode: string;\n inputAgentType: string;\n channel: string;\n servicingAgentCode: string;\n commissionAgentCode: string;\n }[]\n >(this.agentCodeConversion, [servicingAgentCode])\n .subscribe(res => {\n this.agentChannelService.channel = res.data[0].channel as AgentChannel;\n this.agentChannelService.agentCode = res.data[0].agentCode;\n });\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n\n return true;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsStepperModule } from '@cds/ng-web-components/stepper';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsCheckboxListModule, CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { SharedModule } from '../../shared/shared.module';\nimport { AdviseEmpfrefComponent } from './case-summary/advise-empfref/advise-empfref.component';\nimport { AdviseEmpfstatusComponent } from './case-summary/advise-empfstatus/advise-empfstatus.component';\nimport { AdviseIffstatusComponent } from './case-summary/advise-iffstatus/advise-iffstatus.component';\nimport { CaseSummaryComponent } from './case-summary/case-summary.component';\nimport { ProductTypeSummaryComponent } from './product-type-summary/product-type-summary.component';\nimport { SalesjourneyRoutingModule } from './salesjourney-routing.module';\nimport { DeclarationIffComponent } from './case-summary/declaration-iff/declaration-iff.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n// import { ComponentsModule } from 'src/app/components/components.module';\nimport { EmpfDeclarationFormComponent } from './empf-declaration-form/empf-declaration-form.component';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { EmpfDeclarationConfirmationComponent } from './empf-declaration-confirmation/empf-declaration-confirmation.component';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { ExitIffWarnPopupComponent } from './case-summary/declaration-iff/exit-iff-warn-popup/exit-iff-warn-popup.component';\nimport { EMPFRefNoUsedComponent } from './case-summary/declaration-iff/e-mpf-ref-no-used/e-mpf-ref-no-used.component';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { IffSubmissionSuccPopupComponent } from './case-summary/declaration-iff/iff-submission-succ-popup/iff-submission-succ-popup.component';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { DisplayDetailsByProductTypeComponent } from './case-summary/display-details-by-product-type/display-details-by-product-type.component';\nimport { AgentConfirmationComponent } from './agent-confirmation/agent-confirmation.component';\nimport { SplitAgentNotificationInfoErrorComponent } from './agent-confirmation/split-agent-notification-info-error/split-agent-notification-info-error.component';\nimport { CaseDetailsComponent } from './case-details/case-details.component';\nimport { DeclarationIffErComponent } from './case-summary/declaration-iff-er/declaration-iff-er.component';\nimport { SplitAgentNotificationInfoSuccessComponent } from './agent-confirmation/split-agent-notification-info-success/split-agent-notification-info-success.component';\nimport { GgiDeclarationPopupComponent } from './case-summary/ggi-declaration-popup/ggi-declaration-popup.component';\nimport { SendIffInBatchSummaryComponent } from './send-iff-in-batch-summary/send-iff-in-batch-summary.component';\nimport { SubmitSuccessComponent } from './send-iff-in-batch-summary/submit-success/submit-success.component';\nimport { ErSendIffInBatchSummaryComponent } from './er-send-iff-in-batch-summary/er-send-iff-in-batch-summary.component';\nimport { ErSubmitSuccessComponent } from './er-send-iff-in-batch-summary/er-submit-success/er-submit-success.component';\nimport { CaseDetailsErComponent } from './case-details-er/case-details-er.component';\nimport { DifferentAgentStatusComponent } from './different-agent-status/different-agent-status.component';\nimport { AdviseTransferStatusComponent } from './case-summary/advise-transfer-status/advise-transfer-status.component';\nimport { ResendEiffComponent } from './resend-eiff/resend-eiff.component';\nimport { ResendEiffSubmitSuccessComponent } from './resend-eiff/resend-eiff-submit-success/resend-eiff-submit-success.component';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { SuperAdminComponent } from './super-admin/super-admin.component';\nimport { EditAgentDetailsComponent } from './edit-agent-details/edit-agent-details.component';\nimport { LeastOneWarningComponent } from './edit-agent-details/least-one-warning/least-one-warning.component';\nimport { AddNewCommissionPopupComponent } from './edit-agent-details/add-new-commission-popup/add-new-commission-popup.component';\nimport { PaperSummaryComponent } from './paper-summary/paper-summary.component';\nimport { WsmCaseSummaryComponent } from './wsm-case-summary/wsm-case-summary.component';\nimport { AddNewCaseComponent } from './wsm-case-summary/add-new-case/add-new-case.component';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { IffDeclinedDashboardComponent } from './iff-declined-dashboard/iff-declined-dashboard.component';\nimport { CdsPieChartModule } from '@cds/ng-charts/pie';\nimport { RegulatedActivitiesComponent } from './regulated-activities/regulated-activities.component';\nimport { ResolvePopupComponent } from './iff-declined-dashboard/resolve-popup/resolve-popup.component';\nimport { SelectProductTypeComponent } from './iff-paper-form/select-product-type/select-product-type.component';\nimport { IndividualsComponent } from './iff-paper-form/individuals/individuals.component';\nimport { ResetWarningComponent } from './iff-paper-form/reset-warning/reset-warning.component';\nimport { EmployerComponent } from './iff-paper-form/employer/employer.component';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { SalesSupportSummaryComponent } from './sales-support-summary/sales-support-summary/sales-support-summary.component';\nimport { VoidEiffPopupComponent } from './sales-support-summary/void-eiff-popup/void-eiff-popup.component';\nimport { MdIffSummaryComponent } from './md-iff-summary/md-iff-summary.component';\nimport { IffCompletionStepsPopupComponent } from './iff-completion-steps-popup/iff-completion-steps-popup.component';\nimport { IffStatusFlowPopupComponent } from './iff-status-flow-popup/iff-status-flow-popup.component';\nimport { EmpfAppStatusPopupComponent } from './empf-app-status-popup/empf-app-status-popup.component';\nimport { EmpfAgentIndComponent } from './md-iff-summary/empf-agent-ind/empf-agent-ind.component';\nimport { EmpfAgentErComponent } from './md-iff-summary/empf-agent-er/empf-agent-er.component';\nimport { EmpfSalessupportErComponent } from './md-iff-summary/empf-salessupport-er/empf-salessupport-er.component';\nimport { EmpfSalessupportIndComponent } from './md-iff-summary/empf-salessupport-ind/empf-salessupport-ind.component';\nimport { MdiffSalessupportIndComponent } from './md-iff-summary/mdiff-salessupport-ind/mdiff-salessupport-ind.component';\nimport { MdiffSalessupportErComponent } from './md-iff-summary/mdiff-salessupport-er/mdiff-salessupport-er.component';\nimport { MdiffAgentErComponent } from './md-iff-summary/mdiff-agent-er/mdiff-agent-er.component';\nimport { MdiffAgentIndComponent } from './md-iff-summary/mdiff-agent-ind/mdiff-agent-ind.component';\nimport { AddMpfReferenceNumberPopupComponent } from './add-mpf-reference-number-popup/add-mpf-reference-number-popup.component';\nimport { EmpfCaseDetailsComponent } from './empf-case-details/empf-case-details.component';\nimport { NewResendEiffComponent } from './new-resend-eiff/new-resend-eiff.component';\nimport { SentEiffPopupComponent } from './new-resend-eiff/sent-eiff-popup/sent-eiff-popup.component';\nimport { AddMdReferenceNumberPopupComponent } from './add-md-reference-number-popup/add-md-reference-number-popup.component';\nimport { ErEmpfCaseDetailsComponent } from './er-empf-case-details/er-empf-case-details.component';\nimport { CdsAccordionModule } from '@cds/ng-web-components/accordion';\nimport { EmpfAgentSepComponent } from './md-iff-summary/empf-agent-sep/empf-agent-sep.component';\nimport { MdiffAgentSepComponent } from './md-iff-summary/mdiff-agent-sep/mdiff-agent-sep.component';\nimport { EmpfSalessupportSepComponent } from './md-iff-summary/empf-salessupport-sep/empf-salessupport-sep.component';\nimport { MdiffSalessupportSepComponent } from './md-iff-summary/mdiff-salessupport-sep/mdiff-salessupport-sep.component';\nimport { IndividualComponent } from './generate-md/individual/individual.component';\nimport { HasBeenSentCustomerPopupComponent } from './generate-md/has-been-sent-customer-popup/has-been-sent-customer-popup.component';\nimport { PendingSplitAgentConfirPopupComponent } from './generate-md/pending-split-agent-confir-popup/pending-split-agent-confir-popup.component';\nimport { EmployerForMdComponent } from './generate-md/employer-for-md/employer-for-md.component';\nimport { SelectProductTypeForMdComponent } from './generate-md/select-product-type-for-md/select-product-type-for-md.component';\nimport { MdIffSelectProductTypeComponent } from './md-iff-summary/md-iff-select-product-type/md-iff-select-product-type.component';\nimport { ProductTypeCountDetailsPopupComponent } from './md-iff-summary/product-type-count-details-popup/product-type-count-details-popup.component';\nimport { EmpfSuperadminErComponent } from './md-iff-summary/empf-superadmin-er/empf-superadmin-er.component';\nimport { EmpfSuperadminIndComponent } from './md-iff-summary/empf-superadmin-ind/empf-superadmin-ind.component';\nimport { EmpfSuperadminSepComponent } from './md-iff-summary/empf-superadmin-sep/empf-superadmin-sep.component';\nimport { MdiffSuperadminErComponent } from './md-iff-summary/mdiff-superadmin-er/mdiff-superadmin-er.component';\nimport { MdiffSuperadminIndComponent } from './md-iff-summary/mdiff-superadmin-ind/mdiff-superadmin-ind.component';\nimport { MdiffSuperadminSepComponent } from './md-iff-summary/mdiff-superadmin-sep/mdiff-superadmin-sep.component';\n\n@NgModule({\n declarations: [\n ProductTypeSummaryComponent,\n CaseSummaryComponent,\n AdviseEmpfrefComponent,\n AdviseIffstatusComponent,\n AdviseEmpfstatusComponent,\n DisplayDetailsByProductTypeComponent,\n DeclarationIffComponent,\n EmpfDeclarationFormComponent,\n EmpfDeclarationConfirmationComponent,\n ExitIffWarnPopupComponent,\n EMPFRefNoUsedComponent,\n IffSubmissionSuccPopupComponent,\n AgentConfirmationComponent,\n SplitAgentNotificationInfoErrorComponent,\n CaseDetailsComponent,\n DeclarationIffErComponent,\n SplitAgentNotificationInfoSuccessComponent,\n GgiDeclarationPopupComponent,\n SendIffInBatchSummaryComponent,\n SubmitSuccessComponent,\n ErSendIffInBatchSummaryComponent,\n ErSubmitSuccessComponent,\n CaseDetailsErComponent,\n DifferentAgentStatusComponent,\n AdviseTransferStatusComponent,\n ResendEiffComponent,\n ResendEiffSubmitSuccessComponent,\n SuperAdminComponent,\n EditAgentDetailsComponent,\n LeastOneWarningComponent,\n AddNewCommissionPopupComponent,\n PaperSummaryComponent,\n WsmCaseSummaryComponent,\n AddNewCaseComponent,\n IffDeclinedDashboardComponent,\n RegulatedActivitiesComponent,\n ResolvePopupComponent,\n SelectProductTypeComponent,\n IndividualsComponent,\n ResetWarningComponent,\n EmployerComponent,\n SalesSupportSummaryComponent,\n VoidEiffPopupComponent,\n MdIffSummaryComponent,\n IffCompletionStepsPopupComponent,\n IffStatusFlowPopupComponent,\n EmpfAppStatusPopupComponent,\n EmpfAgentIndComponent,\n EmpfAgentErComponent,\n EmpfSalessupportErComponent,\n EmpfSalessupportIndComponent,\n MdiffSalessupportIndComponent,\n MdiffSalessupportErComponent,\n MdiffAgentErComponent,\n MdiffAgentIndComponent,\n AddMpfReferenceNumberPopupComponent,\n EmpfCaseDetailsComponent,\n NewResendEiffComponent,\n SentEiffPopupComponent,\n AddMdReferenceNumberPopupComponent,\n ErEmpfCaseDetailsComponent,\n EmpfAgentSepComponent,\n MdiffAgentSepComponent,\n EmpfSalessupportSepComponent,\n MdiffSalessupportSepComponent,\n IndividualComponent,\n IndividualComponent,\n HasBeenSentCustomerPopupComponent,\n PendingSplitAgentConfirPopupComponent,\n EmployerForMdComponent,\n SelectProductTypeForMdComponent,\n MdIffSelectProductTypeComponent,\n ProductTypeCountDetailsPopupComponent,\n EmpfSuperadminErComponent,\n EmpfSuperadminIndComponent,\n EmpfSuperadminSepComponent,\n MdiffSuperadminErComponent,\n MdiffSuperadminIndComponent,\n MdiffSuperadminSepComponent,\n ],\n imports: [\n CommonModule,\n SalesjourneyRoutingModule,\n FormsModule,\n // ComponentsModule,\n\n ReactiveFormsModule,\n CdsRadioModule,\n CdsButtonModule,\n CdsDatepickerModule,\n CdsDropdownModule,\n CdsIconModule,\n CdsLinkModule,\n CdsLanguageModule,\n CdsPaginationModule,\n CdsStepperModule,\n CdsTableModule,\n CdsTextfieldModule,\n CdsCheckboxModule,\n CdsAssistiveTextModule,\n SharedModule,\n MatSelectModule,\n CdsProgressModule,\n CdsTooltipModule,\n CdsSortModule,\n CdsPieChartModule,\n CdsSearchModule,\n CdsFileUploadModule,\n CdsAccordionModule,\n CdsCheckboxListModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SalesjourneyModule {\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SalesjourneyService {\n constructor(private agentChannelService: AgentChannelService) {}\n\n isScbBrokerCorporateChannel() {\n if (this.agentChannelService.channel && [AgentChannel.SCB, AgentChannel.BROKER, AgentChannel.CORPORATE].includes(this.agentChannelService.channel)) {\n return true;\n }\n return false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { AgentDetailInfo } from './../service/model/agent-info-response.model';\nimport { LanguageChangeService } from 'src/app/shared/language-change.service';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { Component, OnInit, ViewChild, ViewChildren, QueryList, AfterViewInit } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdRadioComponent, CdRadioConfig } from 'src/app/shared/cd-radio/cd-radio.component';\nimport { SubmitSuccessComponent } from './submit-success/submit-success.component';\nimport { CaseSummaryDS, PreferredLanguageType } from '../case-summary/case-summary.model';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { agentCodeRemovePrefix0, pageToTop } from 'src/app/utils/utils';\nimport { HideTextType } from 'src/app/shared/hide-text/hide-text.pipe';\nimport { AdviseEmpfrefComponent } from '../case-summary/advise-empfref/advise-empfref.component';\nimport { IffService } from '../service/iff.service';\nimport { TempCacheService } from 'src/app/shared/temp-cache/temp-cache.service';\nimport { AgentChannel } from 'src/app/core/models/enum/agent-channel.enum';\nimport { DeliveryChannelType } from 'src/app/core/models/enum/delivery-channel-type.enum';\nimport { MemberContactData } from './send-iff-in-batch-summary.model';\nimport { RegulatedActivitiesComponent } from '../regulated-activities/regulated-activities.component';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { AgentChannelService } from 'src/app/core/services/agent-channel.service';\n\n@Component({\n selector: 'app-send-iff-in-batch-summary',\n templateUrl: './send-iff-in-batch-summary.component.html',\n styleUrls: ['./send-iff-in-batch-summary.component.scss'],\n})\nexport class SendIffInBatchSummaryComponent implements OnInit, AfterViewInit {\n @ViewChild('intermediaryContact') intermediaryContact?: CdRadioComponent;\n @ViewChildren('itemDeliveryChannel')\n deliveryChannelList?: QueryList;\n @ViewChildren('itemPreferredLanguage')\n preferredLanguageList?: QueryList;\n @ViewChild('splitAgentPreferredLanguage') splitAgentPreferredLanguage?: CdRadioComponent;\n PreferredLanguageType = PreferredLanguageType;\n @ViewChildren('regulatedActivities')\n regulatedActivitiesList?: QueryList;\n\n dataList: CaseSummaryDS[] = [];\n frControl = new FormControl(undefined);\n regulatedControl = new FormControl(undefined);\n currentStep = 1;\n currentStep2FrControl = new FormControl(false);\n intermediaryContactMethodConfig: CdRadioConfig = {\n options: [\n {\n label: this.cdsLangService.translate('sendIffInBatchSummary.contactMethodEmail'),\n value: DeliveryChannelType.Email,\n disable: true,\n },\n {\n label: this.cdsLangService.translate('sendIffInBatchSummary.contactMethodPhone'),\n value: DeliveryChannelType.SMS,\n disable: true,\n },\n ],\n };\n intermediaryContactMethodValue?: DeliveryChannelType;\n splitAgent = '';\n secondAgent?: AgentDetailInfo;\n HideTextType = HideTextType;\n DeliveryChannelType = DeliveryChannelType;\n secondReqControl = new FormControl(false);\n primaryReqControl = new FormControl(false);\n multipleFrControl = new FormControl(false);\n private servicingAgentId = '';\n servicingAgentCode?: string;\n\n private addDelegationValidate = '/ext/eb-ssms/customer-service/add-delegation/validate';\n private searchAgentinfoUrl = `/ext/eb-ssms/agent-service/agent/information`;\n splitAgentCodeOneErr = false;\n _isDisableContinue = false;\n private empfRefNo?: string;\n\n splitAgentPreferredPreferred?: string;\n splitAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n\n constructor(\n private router: Router,\n private cdsPopup: CdsPopupService,\n public cdsLangService: CdsLangService,\n public languageChangeService: LanguageChangeService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private authenticationService: AuthenticationService,\n private notifyService: NotifyService,\n private iffService: IffService,\n private route: ActivatedRoute,\n private tempCacheService: TempCacheService,\n public agentChannelService: AgentChannelService\n ) {}\n\n ngAfterViewInit(): void {\n pageToTop();\n }\n\n ngOnInit(): void {\n this.languageChangeService.lanSubject.subscribe(() => {\n if (this.secondAgent) {\n this.refreshIntermediaryContact(this.secondAgent);\n }\n\n if (this.regulatedActivitiesList) {\n this.regulatedActivitiesList.forEach(d => {\n d.refreshConfig();\n });\n }\n });\n\n this.empfRefNo = this.route.snapshot.paramMap.get('empfRefNo') || undefined;\n if (this.empfRefNo) {\n const data = this.tempCacheService.getItem(`case-summary-ee-${this.empfRefNo}`);\n if (data) {\n this.dataList = [data as CaseSummaryDS];\n }\n } else {\n const data = localStorage.getItem('case-summary-selected-data');\n if (data) {\n this.dataList = JSON.parse(data);\n }\n }\n\n if (this.dataList.length > 0) {\n const customerIdList: string[] = [];\n this.dataList.forEach(element => {\n if (element.customerId) {\n customerIdList.push(element.customerId);\n }\n element.rmReferralCode = new FormControl('', [Validators.required, this.rmReferralCodeVali]);\n element.inputCustomerId = new FormControl('', [this.inputCustomerIdVali]);\n element.sourceCode = new FormControl('', [this.sourceCodeVali]);\n element.campaignCode = new FormControl('', [this.campaignCodeVali]);\n });\n this.postMemberContacts(customerIdList);\n\n if (this.dataList.length === 1 && this.dataList[0].SplitCase) {\n const salesJourneySummaryId = this.dataList[0].salesJourneySummaryId;\n if (salesJourneySummaryId) {\n this.getAgentCode(salesJourneySummaryId).then(agentCodeList => {\n if (agentCodeList && agentCodeList.length > 0) {\n this.dataList[0].secondAgentCode = agentCodeList[0];\n this.splitAgent = agentCodeList[0];\n }\n });\n }\n }\n }\n\n this.regulatedControl.valueChanges.subscribe((val: boolean) => {\n this.currentStep2FrControl.setValue(val);\n this.secondReqControl.setValue(val);\n });\n\n this.frControl.valueChanges.subscribe((val: boolean) => {\n this.primaryReqControl.setValue(val);\n this.multipleFrControl.setValue(val);\n this.regulatedControl.setValue(undefined);\n if (!val && this.splitAgent) {\n this.regulatedControl.setValue(false);\n }\n });\n\n this.authenticationService.currentUserValue().then(res => {\n this.servicingAgentId = res.id + '';\n\n this.iffService.getAgentCode(this.servicingAgentId).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.servicingAgentCode = res.data.agentCode;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n }\n\n rmReferralCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = input.length >= 6 && input.length <= 8;\n return isValid ? null : { lengthError: true };\n };\n\n inputCustomerIdVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = ((input.length >= 6 && input.length <= 8) || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n sourceCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n campaignCodeVali = (control: AbstractControl): ValidationErrors | null => {\n let input = control.value || '';\n input = input.trim();\n const isValid = (input.length === 10 || input.length === 0) && /^[A-Za-z0-9-]*$/.exec(input);\n return isValid ? null : { lengthError: true };\n };\n\n get dbsInputHasErrors() {\n if (!this.isChannelDBS) {\n return false;\n }\n return !this.dataList.every(item => {\n return !(\n (item.rmReferralCode && item.rmReferralCode.dirty && item.rmReferralCode.errors) ||\n (item.campaignCode && item.campaignCode.dirty && item.campaignCode.errors) ||\n (item.sourceCode && item.sourceCode.dirty && item.sourceCode.errors) ||\n (item.inputCustomerId && item.inputCustomerId.dirty && item.inputCustomerId.errors)\n );\n });\n }\n\n getAgentCode(salesJourneySummaryId: string) {\n return new Promise(resolve => {\n if (salesJourneySummaryId) {\n this.cdHttpServeService.post('/ext/eb-ssms-sales-journey-service/iffByRecordList/empfSplitAgentCd', { salesJourneySummaryId }).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n resolve(res.data);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n });\n }\n\n goCaseSummary() {\n localStorage.removeItem('case-summary-search-params');\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n\n goBackWithData() {\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n\n submit() {\n let isToAgentConfirmation = false;\n const data = this.dataList.map(element => {\n let deliveryChannel = '';\n if (element.deliveryChannel) {\n deliveryChannel = element.deliveryChannel === DeliveryChannelType.Email ? 'E' : element.deliveryChannel === DeliveryChannelType.SMS ? 'M' : '';\n }\n const agentInfos: any[] = [\n {\n agentIdentityId: this.servicingAgentId,\n regulatedAct: this.primaryReqControl.value,\n primaryAgent: true,\n agentNotificationChannel: deliveryChannel,\n },\n ];\n\n if (this.secondAgent && this.secondAgent.agentId) {\n const a: any = {\n agentid: this.secondAgent.agentId,\n regulatedAct: this.secondReqControl.value,\n primaryAgent: false,\n };\n isToAgentConfirmation = a.regulatedAct;\n agentInfos.push(a);\n if (this.regulatedControl.value) {\n a.agentNotificationChannel =\n this.intermediaryContactMethodValue === DeliveryChannelType.Email\n ? 'E'\n : this.intermediaryContactMethodValue === DeliveryChannelType.SMS\n ? 'M'\n : '';\n if (this.intermediaryContactMethodValue === DeliveryChannelType.SMS) {\n a['smsLanguage'] = this.splitAgentPreferredPreferred === PreferredLanguageType.English ? 0 : 1;\n }\n }\n }\n\n const result: any = {\n salesJourneySummaryId: element.salesJourneySummaryId,\n empfRefNo: element.eMPFRef,\n caseSplit: agentInfos.length > 1,\n emailAddr: element.emailAddr,\n countryCallingCode: element.countryCallingCode,\n mobile: element.phoneNumber,\n clientCommunicationChannel:\n element.deliveryChannel === DeliveryChannelType.Email ? 'E' : element.deliveryChannel === DeliveryChannelType.SMS ? 'M' : '',\n agentInfos,\n dbs:\n element.rmReferralCode && element.rmReferralCode.value\n ? {\n dbsRmReferralCd: element.rmReferralCode.value,\n dbsCustomerId: element.inputCustomerId?.value,\n dbsCampaignCd: element.campaignCode?.value,\n dbsSourceCd: element.sourceCode?.value,\n }\n : undefined,\n };\n\n if (element.deliveryChannel === DeliveryChannelType.SMS) {\n result['smsLanguage'] = element.preferredLanguage === PreferredLanguageType.English ? 0 : 1;\n }\n\n if (!result.mobile) {\n delete result.mobile;\n delete result.countryCallingCode;\n }\n if (!result.emailAddr) {\n delete result.emailAddr;\n }\n if (!this.isChannelDBS) {\n delete result.dbs;\n }\n return result;\n });\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/iffByRecordList/submissions`, data).subscribe({\n next: res => {\n if (res.result === 0) {\n let msg = '';\n if (isToAgentConfirmation) {\n msg = 'sendIffInBatchSummary.popupScreenTitleForSplitAgent';\n } else {\n msg = 'sendIffInBatchSummary.popupScreenTitleCustomer';\n }\n const ref = this.cdsPopup.open(SubmitSuccessComponent, {\n data: {\n message: this.cdsLangService.translate(msg),\n },\n });\n ref.afterClosed().subscribe(agree => {\n if (agree) {\n localStorage.removeItem('case-summary-search-params');\n this.router.navigate(['/salesjourney/product-type-summary/case-summary']);\n }\n });\n } else {\n this.alert.error('Error!', res.message);\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.notifyService.screenLoadingSubject.next(false);\n this.alert.error('Error!', err);\n },\n });\n }\n\n get isDisableRegulated() {\n return !this.frControl.value || this.splitAgent.length === 0;\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n stepOneContinue() {\n if (this.isDisableContinue || this.dbsInputHasErrors) {\n return;\n }\n if (this.isChannelDBS) {\n if (this.dataList[0].rmReferralCode?.errors) {\n this.dataList[0].rmReferralCode?.markAsDirty();\n return;\n }\n }\n if (!this.splitAgent) {\n this.secondAgent = undefined;\n this.currentStep = 3;\n pageToTop();\n return;\n } else if (this.splitAgent === this.servicingAgentCode) {\n this.splitAgentCodeOneErr = true;\n return;\n }\n\n this._isDisableContinue = true;\n this.cdHttpServeService\n .post<{\n agentCode: string;\n name: string;\n chineseName: string;\n errorCode?: number;\n }>(this.addDelegationValidate, {\n agentCode: agentCodeRemovePrefix0(this.splitAgent),\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.splitAgentCodeOneErr = true;\n } else {\n this.splitAgentCodeOneErr = false;\n this.goStep2();\n }\n this._isDisableContinue = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this._isDisableContinue = false;\n },\n });\n }\n\n multipleContinue() {\n if (this.isDisableContinue || this.dbsInputHasErrors) {\n return;\n }\n\n if (this.isChannelDBS) {\n let isStop = false;\n for (let i = 0; i < this.dataList.length; i++) {\n if (this.dataList[i].rmReferralCode?.errors) {\n this.dataList[i].rmReferralCode?.markAsDirty();\n isStop = true;\n }\n }\n if (isStop) {\n return;\n }\n }\n\n this.currentStep = 12;\n pageToTop();\n }\n\n goStep2() {\n this.cdHttpServeService\n .get(this.searchAgentinfoUrl, {\n agentInfo: agentCodeRemovePrefix0(this.splitAgent),\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.refreshIntermediaryContact(res.data);\n this.currentStep = 2;\n pageToTop();\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n this._isDisableContinue = false;\n },\n });\n }\n\n refreshIntermediaryContact(secondAgent: AgentDetailInfo) {\n this.secondAgent = secondAgent;\n let shortEmail = '';\n if (this.secondAgent.emailAddress) {\n const ea = this.secondAgent.emailAddress;\n const endIndex = ea.indexOf('@');\n shortEmail = ea.substring(0, 4) + '*****' + ea.substring(endIndex);\n }\n\n let shortPhone = '';\n if (this.secondAgent.mobileNumber) {\n const mn = this.secondAgent.mobileNumber;\n shortPhone = mn.substring(0, 4) + '****';\n }\n\n this.intermediaryContactMethodConfig = {\n options: [\n {\n label: this.cdsLangService.translate('sendIffInBatchSummary.contactMethodEmail') + (this.secondAgent.emailAddress ? `(${shortEmail})` : ''),\n value: DeliveryChannelType.Email,\n disable: !this.secondAgent.emailAddress,\n },\n {\n label: this.cdsLangService.translate('sendIffInBatchSummary.contactMethodPhone') + (this.secondAgent.mobileNumber ? `(${shortPhone})` : ''),\n value: DeliveryChannelType.SMS,\n disable: !this.secondAgent.mobileNumber,\n },\n ],\n };\n\n if (this.intermediaryContactMethodValue === undefined) {\n if (this.secondAgent.emailAddress) {\n this.intermediaryContactMethodValue = DeliveryChannelType.Email;\n } else if (this.secondAgent.mobileNumber) {\n this.intermediaryContactMethodValue = DeliveryChannelType.SMS;\n }\n this.intermediaryContactMethodValueChange(this.intermediaryContactMethodValue);\n }\n\n this.intermediaryContact?.refreshConfig();\n }\n\n getAgentName(agent?: AgentDetailInfo) {\n if (!agent) {\n return '';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return agent.agentName || agent.agentNameTC;\n } else {\n return agent.agentNameTC || agent.agentName;\n }\n }\n\n get disabledStepTwoContinue() {\n return !(\n this.intermediaryContactMethodValue === DeliveryChannelType.Email ||\n (this.intermediaryContactMethodValue === DeliveryChannelType.SMS && this.splitAgentPreferredPreferred)\n );\n }\n\n stepTwoContinue() {\n if (this.disabledStepTwoContinue) {\n return;\n }\n\n this.currentStep = 3;\n pageToTop();\n }\n\n stepThreeBack() {\n if (!this.secondAgent) {\n this.currentStep = 1;\n pageToTop();\n } else {\n this.currentStep = 2;\n pageToTop();\n }\n }\n\n stepTwoBack() {\n this.currentStep = 1;\n pageToTop();\n }\n\n getClientName(item: CaseSummaryDS | null) {\n if (!item) {\n return 'N/A';\n }\n if (this.cdsLangService.currentLang === 'en') {\n return item.ClientName || item.ClientNameTC;\n } else {\n return item.ClientNameTC || item.ClientName;\n }\n }\n\n get getSingleSelected() {\n return this.dataList.length > 0 ? this.dataList[0] : null;\n }\n\n get getSingleSelectedDeliveryChannel() {\n if (!this.getSingleSelected) {\n return '';\n }\n if (this.getSingleSelected.deliveryChannel === DeliveryChannelType.Email) {\n return this.getSingleSelected.emailAddr;\n } else {\n return this.getSingleSelected.displayPhoneNumber;\n }\n }\n\n get getSingleSelectedPreferredLanguageType() {\n if (!this.getSingleSelected) {\n return '';\n }\n return this.getSingleSelected.preferredLanguage;\n }\n\n postMemberContacts(customerIdList: string[]) {\n this.cdHttpServeService.post(`/ext/eb-ssms-sales-journey-service/iffByRecordList/contacts/member`, customerIdList).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.dataList.forEach(item => {\n const a = res.data.find(d => d.memberId === item.customerId);\n if (a) {\n item.countryCallingCode = a.countryCallingCode;\n item.displayPhoneNumber = a.displayPhoneNumber;\n item.emailAddr = a.emailAddr;\n item.memberId = a.memberId;\n item.phoneNumber = a.phoneNumber;\n }\n item.deliveryChannelConfig = {\n options: [\n {\n label: 'common.email',\n value: DeliveryChannelType.Email,\n disable: true,\n },\n {\n label: 'common.sms',\n value: DeliveryChannelType.SMS,\n disable: true,\n },\n ],\n };\n if (item.phoneNumber) {\n item.deliveryChannelConfig.options[1].disable = false;\n item.deliveryChannel = DeliveryChannelType.SMS;\n }\n if (item.emailAddr) {\n item.deliveryChannelConfig.options[0].disable = false;\n item.deliveryChannel = DeliveryChannelType.Email;\n }\n\n item.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n });\n\n if (this.deliveryChannelList) {\n this.deliveryChannelList.forEach(d => {\n d.refreshConfig();\n });\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n itemDeliveryChannelChange(item: CaseSummaryDS) {\n item.preferredLanguage = undefined;\n if (item.deliveryChannel === DeliveryChannelType.SMS) {\n item.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n } else if (item.deliveryChannel === DeliveryChannelType.Email) {\n item.preferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n }\n if (this.preferredLanguageList) {\n this.preferredLanguageList.forEach(d => {\n d.refreshConfig();\n });\n }\n }\n\n get isDisableContinue() {\n return (\n this._isDisableContinue ||\n !this.dataList.every(item => {\n return item.deliveryChannel === DeliveryChannelType.Email || (item.deliveryChannel === DeliveryChannelType.SMS && item.preferredLanguage);\n }) ||\n (this.frControl.value !== true && this.frControl.value !== false) ||\n (this.frControl.value === true && this.splitAgent && this.regulatedControl.value !== true && this.regulatedControl.value !== false)\n );\n }\n\n intermediaryContactMethodValueChange(value?: DeliveryChannelType) {\n this.splitAgentPreferredPreferred = undefined;\n if (value === DeliveryChannelType.SMS) {\n this.splitAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: false,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: false,\n },\n ],\n };\n } else if (value === DeliveryChannelType.Email) {\n this.splitAgentPreferredLanguageConfig = {\n options: [\n {\n label: 'common.chinese',\n value: PreferredLanguageType.Chinese,\n disable: true,\n },\n {\n label: 'common.english',\n value: PreferredLanguageType.English,\n disable: true,\n },\n ],\n };\n }\n if (this.splitAgentPreferredLanguage) {\n this.splitAgentPreferredLanguage.refreshConfig();\n }\n }\n\n splitAgentChange(val: string) {\n if (val.length === 0) {\n this.splitAgentCodeOneErr = false;\n this.regulatedControl.setValue(undefined);\n } else {\n if (!this.frControl.value) {\n this.regulatedControl.setValue(false);\n }\n }\n }\n\n getIntermediaryContactMethod(agent?: AgentDetailInfo) {\n if (this.intermediaryContactMethodValue === DeliveryChannelType.Email) {\n return agent?.emailAddress;\n } else {\n return agent?.mobileNumber;\n }\n }\n\n get isChannelDBS() {\n return this.agentChannelService.channel === AgentChannel.DBS;\n }\n\n get isDisabled() {\n if (this.agentChannelService.channel === AgentChannel.DBS) {\n return true;\n }\n if (this.agentChannelService.channel === AgentChannel.CORPORATE && this.agentChannelService.agentCode?.startsWith('400')) {\n return true;\n }\n return false;\n }\n}\n","
    \n
    \n
    \n \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n
    \n Send IFF by SSMS in Batch Summary\n
    \n
    1\" class=\"l-mt-2\">\n Total {{ dataList.length }} records\n
    \n
    1\" class=\"alert-warning\">\n
    \n \n
    \n
    \n Only non-split cases can be handled in batch\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eMPFRef' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.productType' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.clientName' | lang }}\n
    \n
    \n
    \n
    \n {{ 'case-details.HKIDPassportNo' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.deliveryChannel' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n
    \n For DBS\n
    \n
    \n
    \n
    \n
    \n
    \n {{ item.eMPFRef }}\n
    \n
    \n
    \n
    \n {{ item.ProductType }}\n
    \n
    \n
    \n
    \n {{ getClientName(item) }}\n
    \n
    \n
    \n
    \n {{ item.hkidOrPassportNo }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n RM Referral Code\n
    \n \n
    \n Please input valid RM Referral Code\n \n \n Please input valid RM Referral Code\n \n \n
    \n
    \n
    \n
    \n Customer ID (Optional)\n
    \n \n
    \n Please input valid Customer ID\n \n\n Please input valid Customer ID asdfsdf\n \n
    \n
    \n
    \n
    \n Campaign Code (Optional)\n
    \n \n
    \n Please input valid Campaign Code\n \n
    \n
    \n
    \n
    \n Source Code (Optional)\n
    \n \n
    \n Please input valid Source Code\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n {{ 'sendIffInBatchSummary.splitAgent' | lang }}\n
    \n
    \n
    \n Split Agent Code (optional):\n
    \n
    \n
    \n
    \n {{ 'iff.secondAgentCode' | lang }} :\n
    \n
    \n {{ dataList[0].secondAgentCode }}\n
    \n
    \n \n
    \n {{ 'sendIffInBatchSummary.invalidAgentCode' | lang }}\n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{\n 'common.continue' | lang\n }}\n 1\" [disabled]=\"isDisableContinue || dbsInputHasErrors\" (click)=\"multipleContinue()\">{{\n 'common.continue' | lang\n }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n Contact Info of split agent\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.MPFIntermediaryCode' | lang : { p1: 'sendIffInBatchSummary.2nd' | lang } }} :\n
    \n
    \n {{ secondAgent?.agentCode }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.MPFIntermediaryName' | lang : { p1: 'sendIffInBatchSummary.2nd' | lang } }} :\n
    \n
    \n {{ getAgentName(secondAgent) }}\n
    \n \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n {{ 'sendIffInBatchSummary.makeTheDeclaration' | lang : { p1: 'sendIffInBatchSummary.2nd' | lang } }}\n
    \n
    \n \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}:\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'common.continue' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.miDeclarationConfirmation' | lang }}\n
    \n
    \n \n
      \n
    • \n {{ 'sendIffInBatchSummary.inOne' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inTwo' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inThree1' | lang }}\n {{ 'sendIffInBatchSummary.inThree2' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eMPFRef' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.productType' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.clientName' | lang }}\n
    \n
    \n
    \n
    \n {{ 'case-details.HKIDPassportNo' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.deliveryChannel' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.preferredLanguage' | lang }}\n
    \n
    \n
    \n
    \n For DBS\n
    \n
    \n
    \n
    \n
    \n
    \n {{ item.eMPFRef }}\n
    \n
    \n
    \n
    \n {{ item.ProductType }}\n
    \n
    \n
    \n
    \n {{ getClientName(item) }}\n
    \n
    \n
    \n
    \n {{ item.hkidOrPassportNo }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.email' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ item.emailAddr }}\n
    \n
    \n
    \n
    \n
    \n {{ 'common.sms' | lang }}\n
    \n
    \n \n
    \n
    \n
    \n {{ item.displayPhoneNumber }}\n
    \n
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n /\n
    \n
    \n
    \n
    \n
    \n
    \n RM Referral Code\n
    \n
    \n {{ item.rmReferralCode.value || '-' }}\n
    \n
    \n
    \n
    \n Customer ID (Optional)\n
    \n
    \n {{ item.campaignCode.value || '-' }}\n
    \n
    \n
    \n
    \n Campaign Code (Optional)\n
    \n
    \n {{ item.sourceCode.value || '-' }}\n
    \n
    \n
    \n
    \n Source Code (Optional)\n
    \n
    \n {{ item.inputCustomerId.value || '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n {{ 'common.back' | lang }}\n
    \n
    \n {{ 'sendIffInBatchSummary.confirmAndSubmit' | lang }}\n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n Send IFF by eMPF record\n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.miDeclarationConfirmation' | lang }}\n
    \n
    \n
    \n \n
      \n
    • \n {{ 'sendIffInBatchSummary.inOne' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inTwo' | lang }}\n
    • \n
    • \n {{ 'sendIffInBatchSummary.inThree1' | lang }}\n {{ 'sendIffInBatchSummary.inThree2' | lang }}\n
    • \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.eMPFReferenceNo' | lang }}:\n
    \n
    \n
    \n {{ getSingleSelected?.eMPFRef }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.clientName' | lang }}:\n
    \n
    \n
    \n
    \n {{ getClientName(getSingleSelected) }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.emailAndPhone' | lang }}*:\n
    \n
    \n
    \n
    \n {{ getSingleSelectedDeliveryChannel }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.receivingLanguage' | lang }}:\n
    \n
    \n
    \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n RM Referral Code:\n
    \n
    \n
    \n
    \n {{ dataList.length > 0 ? dataList[0].rmReferralCode?.value || '-' : '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Customer ID:\n
    \n
    \n
    \n
    \n {{ dataList.length > 0 ? dataList[0].inputCustomerId?.value || '-' : '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Campaign Code:\n
    \n
    \n
    \n
    \n {{ dataList.length > 0 ? dataList[0].campaignCode?.value || '-' : '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n Source Code:\n
    \n
    \n
    \n
    \n {{ dataList.length > 0 ? dataList[0].sourceCode?.value || '-' : '-' }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'sendIffInBatchSummary.2ndMPFIntermediary' | lang }}:\n
    \n
    \n
    \n
    \n {{ secondAgent.agentCode }} {{ getAgentName(secondAgent) }}\n
    \n
    \n {{ 'sendIffInBatchSummary.contactMethod' | lang }}:\n {{\n (intermediaryContactMethodValue === DeliveryChannelType.Email\n ? 'sendIffInBatchSummary.contactMethodEmail'\n : 'sendIffInBatchSummary.contactMethodPhone'\n ) | lang\n }}\n ({{\n getIntermediaryContactMethod(secondAgent) || ''\n | hideText : (intermediaryContactMethodValue === DeliveryChannelType.Email ? HideTextType.EMAIL : HideTextType.PHONE)\n }})\n
    \n
    \n {{ 'common.language-of' | lang : { p1: 'sendIffInBatchSummary.2ndMPFIntermediary' | lang } }} : \n
    \n {{ 'common.chinese' | lang }}\n
    \n
    \n {{ 'common.english' | lang }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.back.to' | lang }}\n
    \n
    \n {{ 'sendIffInBatchSummary.confirmAndSubmit' | lang }}\n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-submit-success',\n templateUrl: './submit-success.component.html',\n styleUrls: ['./submit-success.component.scss'],\n})\nexport class SubmitSuccessComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CDS_POPUP_DATA)\n public data: {\n message: string;\n }\n ) {}\n\n ngOnInit(): void {}\n\n gotIt() {\n this.dialogRef.close(true);\n }\n}\n","
    \n
    \n \n
    \n
    \n {{ data.message }}\n
    \n
    \n {{ 'sendIffInBatchSummary.noChanges' | lang }}\n
    \n
    \n {{ 'common.mingBai' | lang }}\n
    \n
    \n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { catchError, timeout } from 'rxjs/operators';\nimport { Observable, of, Subject } from 'rxjs';\nimport { EmpfDetailsResponse } from './model/empf-details.model';\nimport { TransferDetailsResponse } from './model/transfer-details.model';\nimport { CaseDetailRequest } from './model/case-detail-request.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CaseDetailsService {\n empfDetailsUrl = `${environment.apiPrefix}/ext/eb-ssms-sales-journey-service//memberSalesJourneySummaries/empfDetails`;\n transferDetailsUrl = `${environment.apiPrefix}/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries/transferDetails`;\n\n constructor(private httpClient: HttpClient) {}\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n empfDetailsSubject = new Subject();\n transferDetailsSubject = new Subject();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorCaseDetailSubject = new Subject();\n\n getEmpfDetails(caseDetailRequest: CaseDetailRequest) {\n this.httpClient\n .post(this.empfDetailsUrl, caseDetailRequest, this.httpOptions)\n .pipe(timeout(10000), catchError(this.handleError()))\n .subscribe((resp: EmpfDetailsResponse) => {\n this.empfDetailsSubject.next(resp);\n });\n }\n\n getTransferDetails(caseDetailRequest: CaseDetailRequest) {\n this.httpClient\n .post(this.transferDetailsUrl, caseDetailRequest, this.httpOptions)\n .pipe(timeout(10000), catchError(this.handleError()))\n .subscribe((resp: TransferDetailsResponse) => {\n this.transferDetailsSubject.next(resp);\n });\n }\n\n handleError(result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n this.errorCaseDetailSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ValidateEmpfRefNoRequest } from 'src/app/views/salesjourney/service/model/validate-empf-ref-no-request.model';\nimport { environment } from 'src/environments/environment';\nimport { catchError, timeout } from 'rxjs/operators';\nimport { Observable, of, Subject } from 'rxjs';\nimport { ValidateEmpfRefNoResponse } from './model/validate-empf-ref-no-response.model';\nimport { AgentSubmissionRequest } from './model/agent-submission-request.model';\nimport { AgentSubmissionResponse } from './model/agent-submission-response.model';\nimport { AgentInfoResponse, MultiAgentInfosResponse } from './model/agent-info-response.model';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IffService {\n validateEmpfRefNoUrl = `${environment.apiPrefix}/ext/eb-ssms-sales-journey-service/generateGeneralLink/validateEmpfRefNo/flow2`;\n agentSubmissionUrl = `${environment.apiPrefix}/ext/eb-ssms-sales-journey-service/generateGeneralLink/primaryAgentSubmission`;\n checkAgentUrl = `${environment.apiPrefix}/ext/eb-ssms/agent-service/agent/information`;\n checkMultiAgentsUrl = `${environment.apiPrefix}/ext/eb-ssms/agent-service/agent/infos/agentCd`;\n constructor(private httpClient: HttpClient, private cdHttpServeService: CdHttpServeService) {}\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n\n validateEmpfRefNoSubject = new Subject();\n agentSubmissionSubject = new Subject();\n agentInfoDataSubject = new Subject();\n multiAgentInfosSubject = new Subject();\n thirdAgentInfoDataSubject = new Subject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n errorIffSubject = new Subject();\n\n validateEmpfRefNo(validateEmpfRefNoRequest: ValidateEmpfRefNoRequest) {\n this.httpClient\n .post(this.validateEmpfRefNoUrl, validateEmpfRefNoRequest, this.httpOptions)\n .pipe(timeout(10000), catchError(this.handleError('validate Empf Ref No got error')))\n .subscribe((resp: ValidateEmpfRefNoResponse) => {\n this.validateEmpfRefNoSubject.next(resp);\n });\n }\n\n agentSubmission(agentSubmissionRequest: AgentSubmissionRequest) {\n this.httpClient\n .post(this.agentSubmissionUrl, agentSubmissionRequest, this.httpOptions)\n .pipe(timeout(1000 * 60), catchError(this.handleError('agent submission got error')))\n .subscribe((resp: AgentSubmissionResponse) => {\n this.agentSubmissionSubject.next(resp);\n });\n }\n\n getAgentInfo(agentcode: string) {\n this.httpClient\n .get(this.checkAgentUrl, { params: { agentInfo: agentcode } })\n .pipe(timeout(5000), catchError(this.handleError('Get Agent(split case) got error')))\n .subscribe(resp => {\n this.agentInfoDataSubject.next(resp);\n });\n }\n\n getThirdAgentInfo(agentcode: string) {\n this.httpClient\n .get(this.checkAgentUrl, { params: { agentInfo: agentcode } })\n .pipe(timeout(5000), catchError(this.handleError('Get third Agent(split case) got error')))\n .subscribe(resp => {\n this.thirdAgentInfoDataSubject.next(resp);\n });\n }\n\n getMultiAgentInfos(agentcodes: string[]) {\n this.httpClient\n .post(this.checkMultiAgentsUrl, agentcodes)\n .pipe(timeout(5000), catchError(this.handleError('Get multi Agent information(for ER split case) got error')))\n .subscribe(resp => {\n this.multiAgentInfosSubject.next(resp);\n });\n }\n\n handleError(operation = 'operation', result?: T) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error: any): Observable => {\n console.info(`${operation} failed :${error.message}`);\n this.errorIffSubject.next(`${error.message}`);\n return of(result as T);\n };\n }\n\n getAgentCode(identityId: string) {\n return this.cdHttpServeService.get<{ agentCode: string }>('/ext/eb-ssms/agent-service/agent/getAgentCode', { identityId });\n }\n}\n","export class AgentSubmissionRequest {\n empfRefNo?: string;\n productType?: string;\n domainType?: string;\n companyName?: string;\n companyNameChn?: string;\n idType?: '0' | '1';\n hkidOrPassportNo?: string;\n businessRefNo?: string;\n channel?: string;\n countryCallingCode?: string;\n mobileNo?: string;\n emailAddr?: string;\n caseSplit?: boolean;\n agentInfos?: AgentInfo[];\n dbs?: {\n dbsRmReferralCd: string;\n dbsCustomerId: string;\n dbsCampaignCd: string;\n dbsSourceCd: string;\n };\n smsLanguage?: 0 | 1;\n intraGroup?: boolean;\n}\n\nexport class AgentInfo {\n agentIdentityId?: string;\n agentid?: string;\n regulatedAct?: boolean;\n agentNotificationChannel?: string | null;\n primaryAgent?: boolean;\n smsLanguage?: 0 | 1;\n}\n","export class ValidateEmpfRefNoRequest {\n empfRefNo?: string;\n clientType?: 'member' | 'employer';\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, AfterViewInit, OnDestroy, HostListener, ViewChild, ElementRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { ActionIcons } from '@cds/ng-themes';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { AdviseEmpfrefComponent } from '../case-summary/advise-empfref/advise-empfref.component';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { pageToTop } from 'src/app/utils/utils';\nimport {\n SuperAdminEEReqeuestParams,\n SuperAdminERReqeuestParams,\n SuperAdminEERecordItem,\n SuperAdminERRecordItem,\n SuperAdminRecordItem,\n} from './super-admin.model';\nimport { SalesJourneyProdType } from '../case-summary/case-summary.model';\nimport { EEProdType } from '../iff-paper-form/individuals/individuals.model';\n\n@Component({\n selector: 'app-super-admin',\n templateUrl: './super-admin.component.html',\n styleUrls: ['./super-admin.component.scss'],\n})\nexport class SuperAdminComponent implements OnInit, AfterViewInit, OnDestroy {\n SalesJourneyProdType = SalesJourneyProdType;\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n prodTypeFormControl: FormControl = new FormControl(SalesJourneyProdType.Individual);\n prodTypeDropdownConfig: CdsDropdownConfig = {\n options: [\n {\n label: 'Individual(PA,TVC,FRC)',\n value: SalesJourneyProdType.Individual,\n },\n { label: 'Corperate(ER)', value: SalesJourneyProdType.Corperate },\n { label: 'SEP', value: SalesJourneyProdType.SEP },\n ],\n color: 'ml',\n };\n requestParams!: SuperAdminEEReqeuestParams | SuperAdminERReqeuestParams;\n requestParamsForPageChange?: SuperAdminEEReqeuestParams | SuperAdminERReqeuestParams;\n totalElements = 0;\n isLoading = false;\n currentPageNumOrigin = 1;\n allPageData: SuperAdminEERecordItem[][] | SuperAdminERRecordItem[][] = [];\n infoIcon = ActionIcons.info_1;\n iconConfig: CdsIconConfig = {\n size: 'sm',\n color: 'default',\n };\n eeDisplayedColumns = ['empfRefNo', 'agentCd', 'productType', 'hkidOrPassportNo', 'memberAccountCd', 'clientPhoneNo', 'clientEmailAddr'];\n erDisplayedColumns = ['empfRefNo', 'agentCd', 'productType', 'employerName', 'brNo', 'employerAccountCd', 'apPhoneNo', 'apEmailAddr'];\n\n totalPages = 0;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private router: Router,\n private route: ActivatedRoute,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private notifyService: NotifyService\n ) {}\n\n ngOnInit(): void {\n this.initRequestParams();\n if (this.route.snapshot.paramMap.get('productType') === 'ER') {\n this.prodTypeFormControl.setValue('ER');\n } else if (this.route.snapshot.paramMap.get('productType') === EEProdType.SEP) {\n this.prodTypeFormControl.setValue('SEP');\n }\n this.prodTypeChange(this.prodTypeFormControl.value);\n }\n\n private resizeListener = () => {\n const isMobile = window.matchMedia('only screen and (max-width: 1023px)').matches || window.screen.width < 1023;\n if (isMobile) {\n this.notifyService.notifyHideNavigationLang();\n }\n };\n\n ngAfterViewInit(): void {\n pageToTop();\n this.notifyService.notifyHideNavigationLang();\n window.addEventListener('resize', this.resizeListener);\n }\n\n ngOnDestroy(): void {\n this.notifyService.notifyDisplayNavigationLang();\n window.removeEventListener('resize', this.resizeListener);\n }\n\n onDisplayAdviseRef() {\n this.cdsPopup.open(AdviseEmpfrefComponent, {\n size: 'lg',\n });\n }\n\n pageChange(num: number): void {\n if (this.requestParamsForPageChange) {\n this.requestParamsForPageChange.page = num;\n this.search(this.requestParamsForPageChange);\n }\n }\n\n goCaseDetails(item: SuperAdminRecordItem) {\n const queryParams = {\n from: 'superAdmin',\n productType: this.prodTypeFormControl.value,\n };\n this.router.navigate([\n '/salesjourney',\n this.prodTypeFormControl.value === SalesJourneyProdType.Corperate ? 'case-details-er' : 'case-details',\n item.salesJourneySummaryId,\n item.empfRefNo,\n queryParams,\n ]);\n }\n\n private initRequestParams() {\n this.requestParams = {\n page: 1,\n size: 50,\n empfRefNo: '',\n hkidOrPassportNo: '',\n memberAccountCd: '',\n agentCd: '',\n clientPhoneNo: '',\n clientEmailAddr: '',\n productTypes: [],\n identityId: '',\n domain: this.prodTypeFormControl.value,\n brNo: '',\n employerAccountCd: '',\n employerName: '',\n apPhoneNo: '',\n apEmailAddr: '',\n };\n }\n\n prodTypeChange(value: SalesJourneyProdType) {\n this.prodTypeFormControl.setValue(value);\n this.reset();\n this.requestParams.domain = value;\n if (this.requestParams.domain === SalesJourneyProdType.Individual) {\n delete this.requestParams.productTypes;\n } else if (this.requestParams.domain === SalesJourneyProdType.SEP) {\n this.requestParams.productTypes = ['SEP'];\n } else if (this.requestParams.domain === SalesJourneyProdType.Corperate) {\n this.requestParams.productTypes = ['ER'];\n }\n\n const params = this.getFilterParams();\n this.search(params);\n }\n\n private getFilterParams() {\n const params: any = {};\n for (const key in this.requestParams) {\n if (Object.prototype.hasOwnProperty.call(this.requestParams, key)) {\n const val = (this.requestParams as any)[key];\n if (val !== undefined && val !== null && val !== '' && !(Object.prototype.toString.call(val) === '[object Array]' && val.length === 0)) {\n if (typeof val === 'string') {\n params[key] = val.trim();\n } else {\n params[key] = val;\n }\n }\n }\n }\n\n return params;\n }\n\n private reset() {\n this.initRequestParams();\n }\n\n private search(params: any) {\n this.requestParamsForPageChange = params;\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: SuperAdminEERecordItem[] | SuperAdminERRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>(\n !this.isERReqeuestParams(params)\n ? '/ext/eb-ssms-sales-journey-service/memberSalesJourneySummaries/superAdmin'\n : '/ext/eb-ssms-sales-journey-service/employerSalesJourneySummaries/superAdmin',\n params\n )\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onDocumentEnter(): void {\n this.onClickSearch();\n }\n\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n this.requestParams.page = 1;\n this.requestParams.size = 50;\n const params = this.getFilterParams();\n this.search(params);\n }\n\n onClickReset() {\n this.reset();\n\n if (this.requestParams.domain === SalesJourneyProdType.Individual) {\n delete this.requestParams.productTypes;\n } else if (this.requestParams.domain === SalesJourneyProdType.SEP) {\n this.requestParams.productTypes = ['SEP'];\n } else if (this.requestParams.domain === SalesJourneyProdType.Corperate) {\n this.requestParams.productTypes = ['ER'];\n }\n\n const params = this.getFilterParams();\n this.search(params);\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n get isDisableSearch() {\n if (!this.isERReqeuestParams(this.requestParams)) {\n return (\n this.requestParams.empfRefNo === '' &&\n this.requestParams.hkidOrPassportNo === '' &&\n this.requestParams.memberAccountCd === '' &&\n this.requestParams.agentCd === '' &&\n this.requestParams.clientPhoneNo === '' &&\n this.requestParams.clientEmailAddr === ''\n );\n } else {\n return (\n this.requestParams.empfRefNo === '' &&\n this.requestParams.brNo === '' &&\n this.requestParams.employerAccountCd === '' &&\n this.requestParams.employerName === '' &&\n this.requestParams.agentCd === '' &&\n this.requestParams.apPhoneNo === '' &&\n this.requestParams.apEmailAddr === ''\n );\n }\n }\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get eeCurrentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex] as SuperAdminEERecordItem[];\n }\n\n get erCurrentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex] as SuperAdminERRecordItem[];\n }\n\n isERReqeuestParams(params: SuperAdminEEReqeuestParams | SuperAdminERReqeuestParams): params is SuperAdminERReqeuestParams {\n return params.domain === SalesJourneyProdType.Corperate;\n }\n}\n","
    \n
    \n eIFF Summary\n
    \n\n
    \n
    \n Choose product type\n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n Search record\n
    \n\n
    \n
    \n eMPF Reference #\n \n
    \n\n \n
    \n BR Number\n \n
    \n\n
    \n Employer Account Code\n \n
    \n\n
    \n Employer Name\n \n
    \n
    \n\n \n
    \n HKID/ Passport No.\n \n
    \n\n
    \n Member Account Code\n \n
    \n
    \n\n
    \n Agent Code\n \n
    \n\n \n
    \n Client’s Phone Number\n \n
    \n\n
    \n Client’s Email address\n \n
    \n
    \n\n \n
    \n Authorized Person’s Phone Number\n \n
    \n\n
    \n Authorized Person’s Email address\n \n
    \n
    \n\n
    \n Search\n Reset\n
    \n
    \n\n
    \n Record list\n
    \n\n
    \n Total {{ totalElements | number }} records\n
    \n\n
    \n *The bold and starred code represents Servicing Agent\n
    \n\n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n \n
    \n eMPF Reference #\n \n
    \n
    \n \n \n \n
    \n\n \n Agent Code\n \n
    \n \n {{ item }}{{ i === 0 ? '*' : '' }}\n \n
    \n
    \n
    \n\n \n Product Type\n \n {{ element.productType }}\n \n \n\n \n Client HKID/ Passport No.\n \n {{ element.hkidOrPassportNo }}\n \n \n\n \n \n \n \n\n \n Client's phone No.\n \n {{ element.clientPhoneNo }}\n \n \n\n \n Client's email address\n \n {{ element.clientEmailAddr }}\n \n \n
    \n\n \n \n \n \n \n
    \n eMPF Reference #\n \n
    \n
    \n \n \n \n
    \n\n \n Agent Code\n \n
    \n \n {{ item }}{{ i === 0 ? '*' : '' }}\n \n
    \n
    \n
    \n\n \n Product Type\n \n {{ element.productType }}\n \n \n\n \n Employer Name\n \n {{ element.employerName }}\n \n \n\n \n BR Number\n \n {{ element.brNo }}\n \n \n\n \n \n \n \n\n \n Authorized Person’s Phone Number\n \n {{ element.apPhoneNo }}\n \n \n\n \n Authorized Person’s Email address\n \n {{ element.apEmailAddr }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { WillBeLostComponent } from 'src/app/shared/will-be-lost/will-be-lost.component';\n\n@Component({\n selector: 'app-add-new-case',\n templateUrl: './add-new-case.component.html',\n styleUrls: ['./add-new-case.component.scss'],\n})\nexport class AddNewCaseComponent implements OnInit {\n resetDatePicker = false;\n currentStep = 0;\n meetingDateMin = new Date(new Date().getTime() - 14 * 24 * 60 * 60 * 1000);\n employerAccountCodeErrCodeList: number[] = [];\n duplicateMeetingDates: string[] = [];\n successCases: string[] = [];\n failCases: string[] = [];\n\n form = new FormGroup({\n bookingReferenceNo: new FormControl('', [Validators.required]),\n employerAccountCode: new FormControl('', [Validators.required]),\n meetingDates: new FormArray([]),\n });\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdHttpServeService: CdHttpServeService,\n private notifyService: NotifyService,\n private alert: CdsAlertService,\n private cdsPopup: CdsPopupService\n ) {}\n\n ngOnInit(): void {\n this.addNewMeetingDate();\n }\n\n asFormGroup(agent: AbstractControl) {\n return agent as FormGroup;\n }\n\n backToEdit() {\n this.currentStep = 0;\n }\n\n onAddNewMeetingDate() {\n if (this.isDisableAddNewMeetingDate) {\n return;\n }\n this.addNewMeetingDate();\n }\n\n private addNewMeetingDate() {\n this.meetingDateList.push(\n new FormGroup({\n date: new FormControl('', [Validators.required, this.meetingDateValidation.bind(this)]),\n })\n );\n }\n\n meetingDateValidation(option: AbstractControl): ValidationErrors | null {\n if (!option.value) {\n return null;\n }\n const temp = option.value.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n return { formatError: true };\n }\n\n if (selectedDate.getTime() < this.meetingDateMin.getTime() - 24 * 60 * 60 * 1000) {\n return { formatError: true };\n }\n return null;\n }\n\n get selectedMeetingDates() {\n const all: string[] = [];\n for (let i = 0; i < this.meetingDateList.length; i++) {\n all.push(this.meetingDateList.at(i).value.date);\n }\n return all;\n }\n\n isLocalDuplicate(meetingDate: string) {\n if (!meetingDate) {\n return false;\n }\n return this.selectedMeetingDates.indexOf(meetingDate) !== this.selectedMeetingDates.lastIndexOf(meetingDate);\n }\n\n deleteItem(i: number) {\n this.meetingDateList.removeAt(i);\n }\n\n get isDisableAddNewMeetingDate() {\n if (this.currentStep !== 0) {\n return true;\n }\n return this.meetingDateList.length >= 20;\n }\n\n get meetingDateList() {\n return this.form.controls['meetingDates'] as FormArray;\n }\n\n reset() {\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'md',\n });\n\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.agree) {\n this.employerAccountCodeErrCodeList = [];\n this.form.reset();\n this.bookingReferenceNo.setValue('');\n this.employerAccountCode.setValue('');\n for (let i = this.meetingDateList.length - 1; i >= 0; i--) {\n this.meetingDateList.removeAt(i);\n }\n this.addNewMeetingDate();\n this.onResetDatePicker();\n }\n });\n }\n\n private onResetDatePicker() {\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n get bookingReferenceNo() {\n return this.form.get('bookingReferenceNo') as FormControl;\n }\n\n get employerAccountCode() {\n return this.form.get('employerAccountCode') as FormControl;\n }\n\n add() {\n this.bookingReferenceNo.markAsDirty();\n this.employerAccountCode.markAsDirty();\n for (let i = 0; i < this.meetingDateList.length; i++) {\n this.meetingDateList.at(i).get('date')?.markAsDirty();\n }\n\n for (let i = 0; i < this.meetingDateList.length; i++) {\n if (this.isLocalDuplicate(this.meetingDateList.at(i).get('date')?.value)) {\n return;\n }\n }\n\n if (this.form.valid) {\n this.notifyService.screenLoadingSubject.next(true);\n this.employerAccountCodeErrCodeList = [];\n this.duplicateMeetingDates = [];\n const meetingDates = [];\n for (let i = 0; i < this.meetingDateList.length; i++) {\n meetingDates.push(this.meetingDateList.at(i).value.date);\n }\n this.cdHttpServeService\n .post<{ code: number; meetingDates?: string[] }[]>('/ext/eb-ssms-sales-journey-service/validateEmployerAcctCd', {\n employerAcctCd: this.employerAccountCode.value,\n meetingDates: meetingDates,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (res.data && res.data.length > 0) {\n this.employerAccountCodeErrCodeList = res.data.map(item => {\n if (item.code === 3) {\n this.duplicateMeetingDates = item.meetingDates || [];\n }\n return item.code;\n });\n } else {\n this.currentStep = 1;\n }\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n }\n\n onClose() {\n this.dialogRef.close({ agree: false });\n }\n\n employerAccountCodeChange(event: string) {\n if (event === '') {\n this.employerAccountCodeErrCodeList = [];\n }\n }\n\n confirm() {\n const params = [];\n this.successCases = [];\n this.failCases = [];\n for (let i = 0; i < this.meetingDateList.length; i++) {\n params.push({\n bookingRefNo: this.bookingReferenceNo.value,\n employerAcctCd: this.employerAccountCode.value,\n meetingDate: this.meetingDateList.at(i).get('date')?.value,\n });\n }\n\n this.notifyService.screenLoadingSubject.next(true);\n this.cdHttpServeService\n .post<{\n successCases: {\n bookingRefNo: string;\n employerAcctCd: string;\n meetingDate: string;\n }[];\n failCases: {\n bookingRefNo: string;\n employerAcctCd: string;\n meetingDate: string;\n }[];\n }>('/ext/eb-ssms-sales-journey-service/addWsmSummaries', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.successCases = res.data.successCases.map(item => item.meetingDate);\n this.failCases = res.data.failCases.map(item => item.meetingDate);\n this.currentStep = 2;\n }\n this.notifyService.screenLoadingSubject.next(false);\n },\n error: err => {\n this.alert.error('Error!', err);\n this.notifyService.screenLoadingSubject.next(false);\n },\n });\n }\n\n gotIt() {\n this.dialogRef.close({ agree: true });\n this.currentStep = 0;\n }\n}\n","
    \n
    \n
    \n Add New Case\n
    \n
    \n *Random check will be performed after input\n
    \n
    \n
    \n
    \n {{ 'wsm-case-summary.booking-reference-no' | lang }}\n
    \n
    \n \n {{\n 'common.please-input' | lang : { p1: 'wsm-case-summary.booking-reference-no' | lang }\n }}\n
    \n
    \n
    \n
    \n
    \n {{ 'wsm-case-summary.employer-account-code' | lang }}\n
    \n
    \n 0\"\n [group]=\"form\"\n [controlName]=\"'employerAccountCode'\"\n (valueChange)=\"employerAccountCodeChange($event)\"\n [placeholder]=\"'common.input' | lang : { p1: 'wsm-case-summary.employer-account-code' | lang }\">\n {{\n 'common.please-input' | lang : { p1: 'wsm-case-summary.employer-account-code' | lang }\n }}\n\n \n {{\n 'common.invalid' | lang : { p1: 'wsm-case-summary.employer-account-code' | lang }\n }}\n \n {{\n 'wsm-case-summary.non-servicing-error' | lang\n }}\n \n \n\n \n Duplicate Record\n \n
    \n
    \n
    \n
    \n
    Meeting Date*
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n {{ 'common.plsSelect' | lang : { p1: 'Meeting Date' } }}\n Duplicate Record\n \n Duplicate Record\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Add New\n
    \n
    \n
    \n
    \n\n
    \n {{ 'common.reset1' | lang }}\n {{ 'common.add' | lang }}\n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n
    \n New Case Confirmation\n
    \n
    \n Please confirm the below information. Random check will be performed after input.\n
    \n
    \n
    \n {{ 'wsm-case-summary.booking-reference-no' | lang }}:\n
    \n
    \n {{ form.get('bookingReferenceNo')?.value }}\n
    \n
    \n\n
    \n
    \n {{ 'wsm-case-summary.employer-account-code' | lang }}:\n
    \n
    \n {{ form.get('employerAccountCode')?.value }}\n
    \n
    \n\n
    \n
    Meeting Date*
    \n
    \n
    \n
    \n \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n {{ asFormGroup(meetingDate).get('date')?.value }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n {{ 'common.backToEdit' | lang }}\n {{ 'common.confirm' | lang }}\n
    \n\n
    \n \n
    \n\n\n
    \n
    \n
    \n Your changes has been updated successfully.\n
    \n
    \n Please find the below information of failed and successful upload cases.\n
    \n
    \n
    \n {{ 'wsm-case-summary.booking-reference-no' | lang }}:\n
    \n
    \n {{ form.get('bookingReferenceNo')?.value }}\n
    \n
    \n\n
    \n
    \n {{ 'wsm-case-summary.employer-account-code' | lang }}:\n
    \n
    \n {{ form.get('employerAccountCode')?.value }}\n
    \n
    \n\n
    \n
    \n
    \n Failed Cases:\n
    \n
    Meeting Date*
    \n
    \n
    \n \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n {{ meetingDate }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Successful Cases:\n
    \n
    Meeting Date*
    \n
    \n
    \n \n
    \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n {{ meetingDate }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n\n
    \n {{ 'common.gotItWithExclamation' | lang }}\n
    \n\n
    \n \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { getFilterParams } from 'src/app/utils/utils';\nimport { AddNewCaseComponent } from './add-new-case/add-new-case.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport { WsmCaseSummaryService } from './wsm-case-summary.service';\nimport { WsmCaseSummaryRecordItem, WsmCaseSummaryReqeuestParams } from './wsm-case-summary.model';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\n\n@Component({\n selector: 'app-wsm-case-summary',\n templateUrl: './wsm-case-summary.component.html',\n styleUrls: ['./wsm-case-summary.component.scss'],\n})\nexport class WsmCaseSummaryComponent implements OnInit {\n @ViewChild('tableBox', { static: false })\n tableBox?: ElementRef;\n requestParams!: WsmCaseSummaryReqeuestParams;\n requestParamsForPageChange?: WsmCaseSummaryReqeuestParams;\n resetDatePicker = false;\n expiryDateFromValError = false;\n expiryDateToValError = false;\n meetingDateFromValError = false;\n meetingDateToValError = false;\n totalElements = 0;\n isLoading = false;\n currentPageNumOrigin = 1;\n allPageData: WsmCaseSummaryRecordItem[][] = [];\n agentDisplayedColumns = ['employerAcctCd', 'bookingRefNo', 'meetingDate', 'expiryDate', 'wsmStatus'];\n superAdminDisplayedColumns = ['employerAcctCd', 'branchCd', 'agentCd', 'bookingRefNo', 'meetingDate', 'expiryDate', 'wsmStatus'];\n displayedColumns = this.agentDisplayedColumns;\n searchBranchCodeList: string[] = [];\n totalPages = 0;\n expiryDateFromMax: Date = new Date('9000/01/01');\n expiryDateToMin: Date = new Date('2000/01/01');\n meetingDateFromMax: Date = new Date('9000/01/01');\n meetingDateToMin: Date = new Date('2000/01/01');\n isSuperAdmin = false;\n branchCodeInput = '';\n resetTable = false;\n abmOptionList: CdsOption[] = [];\n abmStatusoptionsOrigin: CdMultidropdownTopping[] = [];\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private cdsPopup: CdsPopupService,\n private permissionService: PermissionService,\n public wsmCaseSummaryService: WsmCaseSummaryService\n ) {}\n\n ngOnInit(): void {\n this.initRequestParams();\n this.requestParams.page = 1;\n this.requestParams.size = 50;\n this.getABMList();\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SALES_JOURNEY_SUPER_ADMIN).then(hasPermission => {\n this.hasSalesJourneySuperAdminWCallBack(hasPermission);\n });\n }\n\n getABMList() {\n this.cdHttpServeService.get<{ abm: string }[]>('/ext/eb-ssms-sales-journey-service/agent-branch/abm/list', {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.forEach(e => {\n this.abmOptionList.push({ label: e.abm, value: e.abm });\n });\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n hasSalesJourneySuperAdminWCallBack(hasPermission: boolean) {\n this.isSuperAdmin = hasPermission;\n if (this.isSuperAdmin) {\n this.displayedColumns = this.superAdminDisplayedColumns;\n const params = getFilterParams(this.requestParams);\n this.search(params);\n } else {\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_USER).then(hasPermission => {\n this.hasSalesJourneySuperAdminRCallBack(hasPermission);\n });\n }\n }\n\n hasSalesJourneySuperAdminRCallBack(hasPermission: boolean) {\n this.isSuperAdmin = hasPermission;\n if (this.isSuperAdmin) {\n this.displayedColumns = this.superAdminDisplayedColumns;\n const params = getFilterParams(this.requestParams);\n this.search(params);\n } else {\n const params = getFilterParams(this.requestParams);\n this.search(params);\n }\n }\n\n get currentPageIndex() {\n return this.currentPageNumOrigin - 1;\n }\n\n get currentPageData() {\n if (this.allPageData.length === 0) {\n return [];\n }\n return this.allPageData[this.currentPageIndex];\n }\n\n get checkIsHaveScroll() {\n if (this.tableBox) {\n return this.tableBox.nativeElement.scrollWidth > this.tableBox.nativeElement.clientWidth;\n }\n return false;\n }\n\n private initRequestParams() {\n this.branchCodeInput = '';\n this.requestParams = {\n page: 1,\n size: 50,\n bookingRefNo: '',\n employerAcctCd: '',\n branchCodes: [],\n ABMs: [],\n agentCd: '',\n meetingDateFrom: '',\n meetingDateTo: '',\n expiryDateFrom: '',\n expiryDateTo: '',\n sort: '',\n };\n }\n\n addToSearchAgentCodeList() {\n if (this.branchCodeInput) {\n if (!this.searchBranchCodeList.includes(this.branchCodeInput)) {\n this.searchBranchCodeList.push(this.branchCodeInput);\n this.branchCodeInput = '';\n }\n }\n }\n\n removeToSearchBranchCodeList(item: string) {\n this.searchBranchCodeList = this.searchBranchCodeList.filter(val => val !== item);\n }\n\n meetingDateFromValueChange(val: string) {\n if (val === '') {\n this.meetingDateFromValError = false;\n this.meetingDateToMin = new Date('2000/01/01');\n return;\n }\n this.requestParams.meetingDateFrom = val;\n const temp = this.requestParams.meetingDateFrom.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.meetingDateFromValError = true;\n return;\n }\n if (this.requestParams.meetingDateTo) {\n const tempTo = this.requestParams.meetingDateTo.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.meetingDateFromValError = true;\n return;\n }\n }\n\n this.meetingDateFromValError = false;\n this.meetingDateToMin = selectedDate;\n }\n\n meetingDateToValueChange(val: string) {\n if (val === '') {\n this.meetingDateToValError = false;\n this.meetingDateFromMax = new Date('9000/01/01');\n return;\n }\n this.requestParams.meetingDateTo = val;\n const temp = this.requestParams.meetingDateTo.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.meetingDateToValError = true;\n return;\n }\n if (this.requestParams.meetingDateFrom) {\n const tempFrom = this.requestParams.meetingDateFrom.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.meetingDateToValError = true;\n return;\n }\n }\n\n this.meetingDateToValError = false;\n this.meetingDateFromMax = selectedDate;\n }\n\n expiryDateFromValueChange(val: string) {\n if (val === '') {\n this.expiryDateFromValError = false;\n this.expiryDateToMin = new Date('2000/01/01');\n return;\n }\n this.requestParams.expiryDateFrom = val;\n const temp = this.requestParams.expiryDateFrom.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.expiryDateFromValError = true;\n return;\n }\n if (this.requestParams.expiryDateTo) {\n const tempTo = this.requestParams.expiryDateTo.split('/');\n const tempToDate = new Date([tempTo[1], tempTo[0], tempTo[2]].join('/'));\n if (selectedDate > tempToDate) {\n this.expiryDateFromValError = true;\n return;\n }\n }\n\n this.expiryDateFromValError = false;\n this.expiryDateToMin = selectedDate;\n }\n\n expiryDateToValueChange(val: string) {\n if (val === '') {\n this.expiryDateToValError = false;\n this.expiryDateFromMax = new Date('9000/01/01');\n return;\n }\n this.requestParams.expiryDateTo = val;\n const temp = this.requestParams.expiryDateTo.split('/');\n const selectedDate = new Date([temp[1], temp[0], temp[2]].join('/'));\n if (selectedDate.toString() === 'Invalid Date') {\n this.expiryDateToValError = true;\n return;\n }\n if (this.requestParams.expiryDateFrom) {\n const tempFrom = this.requestParams.expiryDateFrom.split('/');\n const tempFromDate = new Date([tempFrom[1], tempFrom[0], tempFrom[2]].join('/'));\n if (selectedDate < tempFromDate) {\n this.expiryDateToValError = true;\n return;\n }\n }\n\n this.expiryDateToValError = false;\n this.expiryDateFromMax = selectedDate;\n }\n\n onClickSearch() {\n if (this.isDisableSearch || this.isLoading) {\n return;\n }\n this.requestParams.page = 1;\n this.requestParams.size = 50;\n const params = getFilterParams(this.requestParams);\n params['branchCodes'] = [...this.searchBranchCodeList];\n this.search(params);\n this.onResetTable();\n }\n\n onClickReset() {\n this.reset();\n\n const params = getFilterParams(this.requestParams);\n params['branchCodes'] = [...this.searchBranchCodeList];\n this.search(params);\n this.onResetTable();\n }\n\n private reset() {\n this.expiryDateFromValError = false;\n this.expiryDateToValError = false;\n this.meetingDateFromValError = false;\n this.meetingDateToValError = false;\n this.searchBranchCodeList = [];\n this.abmStatusoptionsOrigin = [];\n this.initRequestParams();\n this.onResetDatePicker();\n this.expiryDateFromMax = new Date('9000/01/01');\n this.expiryDateToMin = new Date('2000/01/01');\n this.meetingDateFromMax = new Date('9000/01/01');\n this.meetingDateToMin = new Date('2000/01/01');\n }\n\n get isDisableSearch() {\n if (this.isSuperAdmin) {\n return (\n this.requestParams.bookingRefNo === '' &&\n this.requestParams.employerAcctCd === '' &&\n this.requestParams.meetingDateFrom === '' &&\n this.requestParams.meetingDateTo === '' &&\n this.requestParams.expiryDateFrom === '' &&\n this.requestParams.expiryDateTo === '' &&\n this.searchBranchCodeList.length === 0 &&\n this.abmStatusoptionsOrigin.length === 0 &&\n this.requestParams.agentCd === ''\n );\n } else {\n return (\n this.requestParams.bookingRefNo === '' &&\n this.requestParams.employerAcctCd === '' &&\n this.requestParams.meetingDateFrom === '' &&\n this.abmStatusoptionsOrigin.length === 0 &&\n this.requestParams.meetingDateTo === '' &&\n this.requestParams.expiryDateFrom === '' &&\n this.requestParams.expiryDateTo === ''\n );\n }\n }\n\n addCasePage() {\n this.cdsPopup\n .open(AddNewCaseComponent, {\n size: 'lg',\n })\n .afterClosed()\n .subscribe(({ agree }) => {\n if (agree) {\n this.ngOnInit();\n }\n });\n }\n\n pageChange(num: number): void {\n if (this.requestParamsForPageChange) {\n this.requestParamsForPageChange.page = num;\n this.search(this.requestParamsForPageChange);\n }\n }\n\n search(params: any) {\n params['callType'] = this.isSuperAdmin ? 'superAdmin' : 'agent';\n if (this.abmStatusoptionsOrigin.length > 0) {\n params.ABMs = this.abmStatusoptionsOrigin.map(item => item.value);\n }\n this.requestParamsForPageChange = params;\n this.isLoading = true;\n this.cdHttpServeService\n .post<{\n content: WsmCaseSummaryRecordItem[];\n totalElements: number;\n number: number;\n totalPages: number;\n }>('/ext/eb-ssms-sales-journey-service/wsmSummaries', params)\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n res.data.content = res.data.content || [];\n this.currentPageNumOrigin = res.data.number;\n this.allPageData[this.currentPageIndex] = res.data.content;\n this.totalElements = res.data.totalElements;\n this.totalPages = res.data.totalPages;\n }\n this.isLoading = false;\n },\n error: err => {\n this.alert.error('Error!', err);\n this.isLoading = false;\n },\n });\n }\n\n private onResetTable() {\n this.resetTable = true;\n this.requestParams.sort = '';\n setTimeout(() => {\n this.resetTable = false;\n }, 0);\n }\n\n private onResetDatePicker() {\n this.resetDatePicker = true;\n setTimeout(() => {\n this.resetDatePicker = false;\n }, 0);\n }\n\n onSortChange(event: Sort) {\n if (event.direction === '') {\n this.requestParams.sort = '';\n } else {\n this.requestParams.sort = `${event.active} ${event.direction}`;\n }\n\n this.requestParams.page = 1;\n this.requestParams.size = 50;\n const params = getFilterParams(this.requestParams);\n this.search(params);\n }\n}\n","
    \n
    \n
    \n Worksite Marketing Case Summary Page\n
    \n
    \n
    \n
    \n Lorem ipsum dolor sit amet. Qui autem impedit est tenetur reiciendis et sunt rerum qui quisquam animi et repudiandae rerum ab cumque dolore ut\n accusamus ipsum. Doloribus aliquid quo delectus atque aut corporis eius eum maiores optio in autem consequatur quo quidem officiis.\n
    \n\n
    \n Search record\n
    \n\n
    \n \n
    \n {{ 'wsm-case-summary.employer-account-code' | lang }}\n \n
    \n
    \n {{ 'wsm-case-summary.booking-reference-no' | lang }}\n \n
    \n\n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n\n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n\n
    \n Search\n Reset\n
    \n
    \n\n \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n \n \n {{ 'common.invalidDate' | lang }}\n
    \n
    \n
    \n
    \n {{ 'sales-support-summary.abm' | lang }}\n \n
    \n
    \n {{ 'wsm-case-summary.employer-account-code' | lang }}\n \n
    \n
    \n {{ 'wsm-case-summary.branch-code' | lang }}\n
    \n \n
    \n Add\n
    \n
    \n
    \n
    \n {{ 'wsm-case-summary.agent-code' | lang }}\n \n
    \n
    \n {{ 'wsm-case-summary.booking-reference-no' | lang }}\n \n
    \n
    \n Search\n Reset\n
    \n
    \n
    \n\n
    0\" class=\"l-d-f l-ai-cen l-fw-w\">\n
    \n District Code:\n
    \n
    \n
    \n {{ item }}\n
    \n \n
    \n
    \n\n
    \n
    \n
    \n Record list\n
    \n
    \n Total {{ totalElements | number }} records\n
    \n
    \n Add Case\n
    \n
    \n
    \n \n
    \n \n
    0 ? 'unset' : 'none'\" class=\"row l-plr-0\">\n
    \n \n \n \n \n {{\n 'wsm-case-summary.employer-account-code' | lang\n }}\n \n \n {{ element.employerAcctCd }}\n \n \n \n \n {{ 'wsm-case-summary.branch-code' | lang }}\n \n \n {{ element.branchCd }}\n \n \n \n \n {{ 'wsm-case-summary.agent-code' | lang }}\n \n \n {{ element.agentCd }}\n \n \n \n \n {{ 'wsm-case-summary.booking-reference-no' | lang }}\n \n \n {{ element.bookingRefNo }}\n \n \n \n \n {{ 'wsm-case-summary.meeting-date' | lang }}\n \n \n {{ element.meetingDate }}\n \n \n \n \n {{ 'wsm-case-summary.expiry-date' | lang }}\n \n \n {{ element.expiryDate }}\n \n \n \n \n {{ 'wsm-case-summary.status' | lang }}\n \n \n \n \n \n\n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WsmCaseSummaryService {\n constructor() {}\n\n getWSMStatusData(wsmStatus: number) {\n const result = {\n color: '',\n text: '',\n };\n\n switch (wsmStatus) {\n case 10:\n result.color = '#00A758';\n result.text = 'common.active';\n break;\n\n case 90:\n result.color = '#8E90A2';\n result.text = 'common.expired';\n break;\n\n case 91:\n result.color = '#D03A39';\n result.text = 'common.cancelled';\n break;\n\n default:\n break;\n }\n\n return result;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { AgentPerformanceHeadDTO, AgentPerformanceHeadSearchDTO } from 'src/app/views/shk/shk';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport moment from 'moment';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { ColumnConfig, SortMode } from 'src/app/shared/data-table';\nimport { finalize } from 'rxjs';\nimport { ShkService } from 'src/app/views/shk/shk.service';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport { ColumnSort, I18N_KEY } from '../../employer/employer';\nimport { DateTime } from 'luxon';\nimport { ColumnItem, Sort } from 'src/app/components/table/table-expand';\nimport { Router } from '@angular/router';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { numberStringValidator } from 'src/app/shared/validators/validators';\nimport { dateValidator } from 'src/app/core/validators';\n\n@Component({\n selector: 'app-agent-performance-head-enrolment',\n templateUrl: './agent-performance-head-enrolment.component.html',\n styleUrls: ['./agent-performance-head-enrolment.component.scss'],\n})\nexport class AgentPerformanceHeadEnrolmentComponent implements OnInit {\n constructor(private service: ShkService, private router: Router) {}\n\n periodConfig: CdsDropdownConfig = {\n label: 'Period',\n placeholder: 'Select Period',\n options: [\n { label: 'Last 7 days', value: 6 },\n { label: 'Last 30 days', value: 29 },\n { label: 'Last 60 days', value: 59 },\n { label: 'Last 90 days', value: 89 },\n ],\n };\n showDatePicker = true;\n\n I18N_KEY = I18N_KEY;\n\n _valid = false;\n\n form = new FormGroup({\n agentCode: new FormControl('', [numberStringValidator()]),\n period: new FormControl(''),\n assignmentDateFrom: new FormControl('', [dateValidator()]),\n assignmentDateTo: new FormControl('', [dateValidator()]),\n });\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n exportButtonConfig: CdsButtonConfig = {\n size: 'lg',\n style: 'secondary',\n };\n searchDTO: AgentPerformanceHeadSearchDTO = {\n page: 0,\n size: 10,\n period: 6,\n sort: 'agentCode,desc',\n };\n\n columnsConfig: ColumnConfig[] = [\n { key: 'agentCode', title: 'Agent Code', sort: SortMode.DEFAULT },\n { key: 'agentName', title: 'Agent Name', sort: SortMode.DEFAULT },\n { key: 'outStanding', title: 'Outstanding', sort: SortMode.DEFAULT },\n { key: 'initialContact', title: 'Initial Contact', sort: SortMode.DEFAULT },\n { key: 'scheduleMeetUp', title: 'Schedule Meet Up', sort: SortMode.DEFAULT },\n { key: 'canNotReachClient', title: 'Cannot Reach Client', sort: SortMode.DEFAULT },\n { key: 'rejectedByClient', title: 'Rejected by Client', sort: SortMode.DEFAULT },\n { key: 'completed', title: 'Completed', sort: SortMode.DEFAULT },\n { key: 'total', title: 'Total', sort: SortMode.DEFAULT },\n { key: 'transferToGs', title: 'Transfer to GS (exclude Auto rollover)', sort: SortMode.DEFAULT },\n ];\n\n expandColumnsConfig: ColumnConfig[] = [\n { key: 'noOfContact', title: 'No. of Contact' },\n { key: 'noOfCases', title: 'No. of Cases' },\n ];\n\n EXCEL_COLUMNS: string[] = [\n 'Agent Code',\n 'Agent Name',\n 'Agent Chinese Name',\n 'No. of contact=1',\n 'No. of contact=2',\n 'No. of contact=3',\n 'No. of contact=4',\n 'No. of contact=5',\n 'Outstanding',\n 'Initial Contact',\n 'Scheule meet up',\n 'Cannot reach client',\n 'Rejected by client',\n 'Completed',\n 'Total',\n 'Transfer to GS (exclude Auto rollover)',\n ];\n _progress = false;\n\n dataList: AgentPerformanceHeadDTO[] = [];\n\n exportDataList: AgentPerformanceHeadDTO[] = [];\n\n columnSort: ColumnSort = {\n key: 'agentCode',\n value: SortMode.UP,\n };\n\n Sort = Sort;\n\n _pageCount: IPaginationCount = { current: 1, count: 1 };\n _size = 10;\n totalCount = 0;\n\n ngOnInit(): void {\n this.inputChange('6', 'period');\n this.loadTable();\n }\n\n exportData() {\n const params: AgentPerformanceHeadSearchDTO = this.getRequestParams(true);\n this._progress = true;\n this.service\n .getAgentPerformanceHeadEnrolmentList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n const excelData = this.createExcelData(data.data);\n aoaToSheet(\n {\n fileName: `\"agent-performance-head \"${moment().format('YYYYMMDD_HHMMSS')}`,\n fileType: FileType.CSV,\n },\n excelData\n );\n }\n });\n }\n\n createExcelData(data: AgentPerformanceHeadDTO[]) {\n const excelData: any[] = [];\n excelData.push(this.EXCEL_COLUMNS);\n data.forEach(item => {\n const temp = [];\n const expandData = this.getExpandData(item.contactMap);\n temp.push(item.agentCode);\n temp.push(item.agentName || '');\n temp.push(item.agentNameChi || '');\n temp.push(expandData[0].noOfCases);\n temp.push(expandData[1].noOfCases);\n temp.push(expandData[2].noOfCases);\n temp.push(expandData[3].noOfCases);\n temp.push(expandData[4].noOfCases);\n temp.push(item.outStanding);\n temp.push(item.initialContact);\n temp.push(item.scheduleMeetUp);\n temp.push(item.canNotReachClient);\n temp.push(item.rejectedByClient);\n temp.push(item.completed);\n temp.push(item.total);\n excelData.push(temp);\n });\n return excelData;\n }\n\n frontReloadTable(dataList: AgentPerformanceHeadDTO[]) {\n this.exportDataList = [...dataList];\n }\n\n loadTable() {\n // request all Data on one time, frontend pagination and sorting\n const params: AgentPerformanceHeadSearchDTO = this.getRequestParams();\n this._progress = true;\n this.service\n .getAgentPerformanceHeadEnrolmentList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._progress = false;\n this.totalCount = data.data.length;\n this.dataList = data.data.slice((this._pageCount.current - 1) * this._size, this._pageCount.current * this._size);\n this._pageCount.count = data.data.length % this._size == 0 ? data.data.length / this._size : Math.trunc(data.data.length / this._size) + 1;\n }\n });\n }\n\n getRequestParams(isExport = false) {\n const params: AgentPerformanceHeadSearchDTO = { ...this.searchDTO };\n params.page = (this._pageCount.current as number) - 1;\n params.assignmentDateToShow = undefined;\n params.assignmentDateFromShow = undefined;\n params.period = undefined;\n params.size = this._size;\n if (isExport) {\n // get all data\n params.size = 100000;\n }\n return params;\n }\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n inputChange(val: string, label: string) {\n console.log(this.form);\n if (val == undefined) {\n return;\n }\n if (typeof val === 'object') {\n return;\n }\n switch (label) {\n case 'agentCode':\n this.searchDTO.agentCode = val;\n break;\n case 'period':\n this.searchDTO.assignmentDateFrom = String(moment().subtract(val, 'days').format('YYYY-MM-DD'));\n this.searchDTO.assignmentDateTo = String(moment().format('YYYY-MM-DD'));\n this.searchDTO.assignmentDateFromShow = String(moment().subtract(val, 'days').format('DD/MM/YYYY'));\n this.searchDTO.assignmentDateToShow = String(moment().format('DD/MM/YYYY'));\n // this.loadTable()\n break;\n case 'assignmentDateFrom':\n this.searchDTO.period = undefined;\n this.searchDTO.assignmentDateFrom = moment(val, 'DD/MM/YYYY').format('YYYY-MM-DD');\n break;\n case 'assignmentDateTo':\n this.searchDTO.period = undefined;\n this.searchDTO.assignmentDateTo = moment(val, 'DD/MM/YYYY').format('YYYY-MM-DD');\n break;\n default:\n break;\n }\n this.validating();\n }\n validating() {\n if (!!this.searchDTO.agentCode || !!this.searchDTO.assignmentDateFrom || !!this.searchDTO.assignmentDateTo) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n // if (!!this.searchDTO.agentCode || !!this.searchDTO.assignmentDateFrom || !!this.searchDTO.assignmentDateTo) {\n // this.searchButtonConfig = {\n // size: 'sm',\n // disabled: false,\n // };\n // this.resetButtonConfig = {\n // size: 'sm',\n // style: 'secondary',\n // disabled: false,\n // };\n // } else {\n // this.searchButtonConfig = {\n // size: 'sm',\n // disabled: true,\n // };\n // this.resetButtonConfig = {\n // size: 'sm',\n // style: 'secondary',\n // disabled: true,\n // };\n // }\n }\n\n async validFn() {\n return this._valid && this.form.valid;\n }\n\n search() {\n this.validFn().then(r => {\n if (r) {\n this._pageCount = { current: 1, count: 1 };\n this.loadTable();\n }\n });\n }\n\n reset() {\n this.searchDTO = {\n page: 0,\n size: this._size,\n sort: 'agentCode,desc',\n };\n\n this._pageCount = { current: 1, count: 1 };\n\n // reload datepicker dom to clear the selected date\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.validating();\n this.loadTable();\n });\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n sortChange(columnItem: ColumnItem) {\n if (columnItem.sort !== Sort.DEFAULT) {\n this.searchDTO.sort = `${columnItem.prop},${columnItem.sort}`;\n } else {\n this.searchDTO.sort = 'agentCode,desc';\n }\n this.loadTable();\n }\n\n expandRow(index: number) {\n if (this.dataList && this.dataList[index]) {\n this.dataList[index].expandData = this.getExpandData(this.dataList[index].contactMap);\n }\n }\n\n getExpandData(contactMap: any): any[] {\n return ['1', '2', '3', '4', '5'].map(key => {\n return {\n noOfContact: key,\n noOfCases: contactMap && contactMap[key] ? contactMap[key] : 0,\n };\n });\n }\n}\n","
    \n \n
    \n
    \n
    \n {{ 'list.search-record' | lang }}\n
    \n
    \n\n
    \n
    \n \n {{ form.get('agentCode')?.errors?.['invalidNumberString'] }}\n
    \n
    \n \n
    \n
    \n
    \n \n \n \n {{ 'create.dateError' | lang }} \n
    \n
    -
    \n
    \n \n \n \n\n {{ 'create.dateError' | lang }} \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n {{ 'common.recordList' | lang }}\n
    \n
    \n Total {{ totalCount }} records\n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n\n
    \n
    Contact Details
    \n
    \n \n \n
    \n
    \n
    \n\n\n {{ element['agentName'] }}\n  {{ element['agentNameChi'] }} \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { AgentPerformanceHeadDTO, AgentPerformanceHeadSearchDTO } from 'src/app/views/shk/shk';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport moment from 'moment';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { ColumnConfig, SortMode } from 'src/app/shared/data-table';\nimport { finalize } from 'rxjs';\nimport { ShkService } from 'src/app/views/shk/shk.service';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport { ColumnSort, I18N_KEY } from '../../employer/employer';\nimport { DateTime } from 'luxon';\nimport { ColumnItem, Sort } from 'src/app/components/table/table-expand';\nimport { Router } from '@angular/router';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { numberStringValidator } from 'src/app/shared/validators/validators';\nimport { dateValidator } from 'src/app/core/validators';\n\n@Component({\n selector: 'app-agent-performance-head',\n templateUrl: './agent-performance-head.component.html',\n styleUrls: ['./agent-performance-head.component.scss'],\n})\nexport class AgentPerformanceHeadComponent implements OnInit {\n constructor(private service: ShkService, private router: Router) {}\n\n periodConfig: CdsDropdownConfig = {\n label: 'Period',\n placeholder: 'Select Period',\n options: [\n { label: 'Last 7 days', value: 6 },\n { label: 'Last 30 days', value: 29 },\n { label: 'Last 60 days', value: 59 },\n { label: 'Last 90 days', value: 89 },\n ],\n };\n showDatePicker = true;\n\n I18N_KEY = I18N_KEY;\n\n _valid = false;\n\n form = new FormGroup({\n agentCode: new FormControl('', [numberStringValidator()]),\n period: new FormControl(''),\n assignmentDateFrom: new FormControl('', [dateValidator()]),\n assignmentDateTo: new FormControl('', [dateValidator()]),\n });\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n exportButtonConfig: CdsButtonConfig = {\n size: 'lg',\n style: 'secondary',\n };\n searchDTO: AgentPerformanceHeadSearchDTO = {\n page: 0,\n size: 10,\n period: 6,\n sort: 'agentCode,desc',\n };\n\n columnsConfig: ColumnConfig[] = [\n { key: 'agentCode', title: 'Agent Code', sort: SortMode.DEFAULT },\n { key: 'agentName', title: 'Agent Name', sort: SortMode.DEFAULT },\n { key: 'outStanding', title: 'Outstanding', sort: SortMode.DEFAULT },\n { key: 'initialContact', title: 'Initial Contact', sort: SortMode.DEFAULT },\n { key: 'scheduleMeetUp', title: 'Schedule Meet Up', sort: SortMode.DEFAULT },\n { key: 'canNotReachClient', title: 'Cannot Reach Client', sort: SortMode.DEFAULT },\n { key: 'rejectedByClient', title: 'Rejected by Client', sort: SortMode.DEFAULT },\n { key: 'completed', title: 'Completed', sort: SortMode.DEFAULT },\n { key: 'total', title: 'Total', sort: SortMode.DEFAULT },\n { key: 'transferToGs', title: 'Transfer to GS (exclude Auto rollover)', sort: SortMode.DEFAULT },\n ];\n\n expandColumnsConfig: ColumnConfig[] = [\n { key: 'noOfContact', title: 'No. of Contact' },\n { key: 'noOfCases', title: 'No. of Cases' },\n ];\n\n EXCEL_COLUMNS: string[] = [\n 'Agent Code',\n 'Agent Name',\n 'Agent Chinese Name',\n 'No. of contact=1',\n 'No. of contact=2',\n 'No. of contact=3',\n 'No. of contact=4',\n 'No. of contact=5',\n 'Outstanding',\n 'Initial Contact',\n 'Scheule meet up',\n 'Cannot reach client',\n 'Rejected by client',\n 'Completed',\n 'Total',\n 'Transfer to GS (exclude Auto rollover)',\n ];\n _progress = false;\n\n dataList: AgentPerformanceHeadDTO[] = [];\n\n exportDataList: AgentPerformanceHeadDTO[] = [];\n\n columnSort: ColumnSort = {\n key: 'agentCode',\n value: SortMode.UP,\n };\n\n Sort = Sort;\n\n _pageCount: IPaginationCount = { current: 1, count: 1 };\n _size = 10;\n totalCount = 0;\n\n ngOnInit(): void {\n this.inputChange('6', 'period');\n this.loadTable();\n }\n\n exportData() {\n const params: AgentPerformanceHeadSearchDTO = this.getRequestParams(true);\n this._progress = true;\n this.service\n .getAgentPerformanceHeadList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n const excelData = this.createExcelData(data.data);\n aoaToSheet(\n {\n fileName: `\"agent-performance-head \"${moment().format('YYYYMMDD_HHMMSS')}`,\n fileType: FileType.CSV,\n },\n excelData\n );\n }\n });\n }\n\n createExcelData(data: AgentPerformanceHeadDTO[]) {\n const excelData: any[] = [];\n excelData.push(this.EXCEL_COLUMNS);\n data.forEach(item => {\n const temp = [];\n const expandData = this.getExpandData(item.contactMap);\n temp.push(item.agentCode);\n temp.push(item.agentName || '');\n temp.push(item.agentNameChi || '');\n temp.push(expandData[0].noOfCases);\n temp.push(expandData[1].noOfCases);\n temp.push(expandData[2].noOfCases);\n temp.push(expandData[3].noOfCases);\n temp.push(expandData[4].noOfCases);\n temp.push(item.outStanding);\n temp.push(item.initialContact);\n temp.push(item.scheduleMeetUp);\n temp.push(item.canNotReachClient);\n temp.push(item.rejectedByClient);\n temp.push(item.completed);\n temp.push(item.total);\n temp.push(item.transferToGs);\n excelData.push(temp);\n });\n return excelData;\n }\n\n frontReloadTable(dataList: AgentPerformanceHeadDTO[]) {\n this.exportDataList = [...dataList];\n }\n\n loadTable() {\n // request all Data on one time, frontend pagination and sorting\n const params: AgentPerformanceHeadSearchDTO = this.getRequestParams();\n this._progress = true;\n this.service\n .getAgentPerformanceHeadList(params)\n .pipe(\n finalize(() => {\n this._progress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this._progress = false;\n this.totalCount = data.data.length;\n this.dataList = data.data.slice((this._pageCount.current - 1) * this._size, this._pageCount.current * this._size);\n this._pageCount.count = data.data.length % this._size == 0 ? data.data.length / this._size : Math.trunc(data.data.length / this._size) + 1;\n }\n });\n }\n\n getRequestParams(isExport = false) {\n const params: AgentPerformanceHeadSearchDTO = { ...this.searchDTO };\n params.page = (this._pageCount.current as number) - 1;\n params.assignmentDateToShow = undefined;\n params.assignmentDateFromShow = undefined;\n params.period = undefined;\n params.size = this._size;\n if (isExport) {\n // get all data\n params.size = 100000;\n }\n return params;\n }\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n inputChange(val: string, label: string) {\n console.log(this.form);\n if (val == undefined) {\n return;\n }\n if (typeof val === 'object') {\n return;\n }\n switch (label) {\n case 'agentCode':\n this.searchDTO.agentCode = val;\n break;\n case 'period':\n this.searchDTO.assignmentDateFrom = String(moment().subtract(val, 'days').format('YYYY-MM-DD'));\n this.searchDTO.assignmentDateTo = String(moment().format('YYYY-MM-DD'));\n this.searchDTO.assignmentDateFromShow = String(moment().subtract(val, 'days').format('DD/MM/YYYY'));\n this.searchDTO.assignmentDateToShow = String(moment().format('DD/MM/YYYY'));\n // this.loadTable()\n break;\n case 'assignmentDateFrom':\n this.searchDTO.period = undefined;\n this.searchDTO.assignmentDateFrom = moment(val, 'DD/MM/YYYY').format('YYYY-MM-DD');\n break;\n case 'assignmentDateTo':\n this.searchDTO.period = undefined;\n this.searchDTO.assignmentDateTo = moment(val, 'DD/MM/YYYY').format('YYYY-MM-DD');\n break;\n default:\n break;\n }\n this.validating();\n }\n validating() {\n if (!!this.searchDTO.agentCode || !!this.searchDTO.assignmentDateFrom || !!this.searchDTO.assignmentDateTo) {\n this._valid = true;\n } else {\n this._valid = false;\n }\n // if (!!this.searchDTO.agentCode || !!this.searchDTO.assignmentDateFrom || !!this.searchDTO.assignmentDateTo) {\n // this.searchButtonConfig = {\n // size: 'sm',\n // disabled: false,\n // };\n // this.resetButtonConfig = {\n // size: 'sm',\n // style: 'secondary',\n // disabled: false,\n // };\n // } else {\n // this.searchButtonConfig = {\n // size: 'sm',\n // disabled: true,\n // };\n // this.resetButtonConfig = {\n // size: 'sm',\n // style: 'secondary',\n // disabled: true,\n // };\n // }\n }\n\n async validFn() {\n return this._valid && this.form.valid;\n }\n\n search() {\n this.validFn().then(r => {\n if (r) {\n this._pageCount = { current: 1, count: 1 };\n this.loadTable();\n }\n });\n }\n\n reset() {\n this.searchDTO = {\n page: 0,\n size: this._size,\n sort: 'agentCode,desc',\n };\n\n this._pageCount = { current: 1, count: 1 };\n\n // reload datepicker dom to clear the selected date\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.validating();\n this.loadTable();\n });\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n sortChange(columnItem: ColumnItem) {\n if (columnItem.sort !== Sort.DEFAULT) {\n this.searchDTO.sort = `${columnItem.prop},${columnItem.sort}`;\n } else {\n this.searchDTO.sort = 'agentCode,desc';\n }\n this.loadTable();\n }\n\n expandRow(index: number) {\n if (this.dataList && this.dataList[index]) {\n this.dataList[index].expandData = this.getExpandData(this.dataList[index].contactMap);\n }\n }\n\n getExpandData(contactMap: any): any[] {\n return ['1', '2', '3', '4', '5'].map(key => {\n return {\n noOfContact: key,\n noOfCases: contactMap && contactMap[key] ? contactMap[key] : 0,\n };\n });\n }\n}\n","
    \n \n
    \n
    \n
    \n {{ 'list.search-record' | lang }}\n
    \n
    \n\n
    \n
    \n \n {{ form.get('agentCode')?.errors?.['invalidNumberString'] }}\n
    \n
    \n \n
    \n
    \n
    \n \n \n \n {{ 'create.dateError' | lang }} \n
    \n
    -
    \n
    \n \n \n \n\n {{ 'create.dateError' | lang }} \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n {{ 'common.recordList' | lang }}\n
    \n
    \n Total {{ totalCount }} records\n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n\n
    \n
    Contact Details
    \n
    \n \n \n
    \n
    \n
    \n\n\n {{ element['agentName'] }}\n  {{ element['agentNameChi'] }} \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsRadioConfig } from '@cds/ng-core/radio';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { finalize, Subscription } from 'rxjs';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ContinuePopupComponent } from 'src/app/shared/continue-popup/continue-popup.component';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { agentCodeListValidator } from 'src/app/shared/validators/validators';\nimport {\n AgentReassignmentMemberCountRequet,\n AgentReassignmentMemberProcessRequet,\n Employer,\n MemberListTypeE,\n RelatedMemberRequest,\n RelatedMemberResponse,\n} from '../shk';\nimport { ShkService } from '../shk.service';\nimport { CdMultidropdownTopping } from 'src/app/shared/cd-multidropdown/cd-multidropdown.model';\n\n@Component({\n selector: 'app-agent-reassignment',\n templateUrl: './agent-reassignment.component.html',\n styleUrls: ['./agent-reassignment.component.scss'],\n})\nexport class AgentReassignmentComponent implements OnInit {\n customerOption: CdMultidropdownTopping[] = [];\n memberOption: CdMultidropdownTopping[] = [];\n\n formGroup = new FormGroup({});\n\n iconConfig: CdsIconConfig = {\n color: '#00A758',\n };\n\n selectIconConfig: CdsIconConfig = {\n color: '#EC6453',\n };\n\n radioConfig: CdsRadioConfig = {\n options: [\n {\n label: 'Both Terminated and Enrolled Members',\n value: MemberListTypeE.BOTH,\n },\n {\n label: 'Only Terminated Members',\n value: MemberListTypeE.ONLY_TERMINATED,\n },\n {\n label: 'Only Enrolled Members',\n value: MemberListTypeE.ONLY_ENROLLED,\n },\n ],\n };\n\n get resetDisabled() {\n if (this.formGroup && this.formGroup.dirty) {\n return false;\n }\n return true;\n }\n\n get processDisabled() {\n if (this.memberOption.length == 0) {\n return true;\n }\n if (this.formGroup && this.formGroup.valid) {\n return false;\n }\n return true;\n }\n\n resetBtuuonConfig: CdsButtonConfig = {\n style: 'secondary',\n };\n\n isLoading = false;\n\n subscription?: Subscription;\n\n transferNum = 0;\n\n get originAgentCodeControl() {\n return this.formGroup.get('originAgentCode') as FormControl;\n }\n\n get originAgentCode() {\n return this.originAgentCodeControl?.value as string;\n }\n\n get employerAccountNameControl() {\n return this.formGroup.get('employerAccountName') as FormControl;\n }\n get memberNameControl() {\n return this.formGroup.get('memberName') as FormControl;\n }\n\n get companyList() {\n return (this.employerAccountNameControl?.value || []) as CdMultidropdownTopping[];\n }\n\n get selectMemberList() {\n return (this.memberNameControl?.value || []) as CdMultidropdownTopping[];\n }\n\n get memberListControl() {\n return this.formGroup.get('memberList') as FormControl;\n }\n\n get memberType() {\n return this.memberListControl?.value as MemberListTypeE;\n }\n\n get newAgentCodeControl() {\n return this.formGroup.get('newAgentCode') as FormControl;\n }\n\n get newAgentCode() {\n return this.newAgentCodeControl?.value as string;\n }\n\n constructor(private service: ShkService, private toastAlert: ToastAlertService, private cdsPopup: CdsPopupService, private langService: CdsLangService) {}\n\n ngOnInit(): void {\n this.initForm();\n this.disableControls();\n }\n\n initForm() {\n this.formGroup = new FormGroup(\n {\n originAgentCode: new FormControl('', {\n validators: [agentCodeListValidator(), Validators.required],\n initialValueIsDefault: true,\n }),\n employerAccountName: new FormControl([], {\n validators: [Validators.required],\n initialValueIsDefault: true,\n }),\n memberName: new FormControl([], {\n initialValueIsDefault: true,\n }),\n memberList: new FormControl('', {\n validators: [Validators.required],\n initialValueIsDefault: true,\n }),\n newAgentCode: new FormControl('', {\n validators: [agentCodeListValidator(), Validators.required],\n initialValueIsDefault: true,\n }),\n },\n { validators: this.agentCodeDuplicateValidator }\n );\n }\n\n disableControls() {\n this.newAgentCodeControl.disable();\n }\n\n selectAll() {\n const control = this.formGroup.get('employerAccountName');\n let value: CdMultidropdownTopping[] = [];\n if (!this.ifSelectAll(this.companyList?.length)) {\n value = [...this.customerOption];\n }\n control?.setValue(value);\n this.employerAccountNameChange();\n }\n\n ifSelectAll = (selectedLength?: number) => {\n if (!selectedLength) {\n return false;\n }\n if (selectedLength === this.customerOption.length) {\n return true;\n } else {\n return false;\n }\n };\n\n originAgentCodeChange(value: string) {\n this.employerAccountNameControl.reset();\n if (this.originAgentCodeControl.invalid) {\n this.setMultidropdown([]);\n } else {\n this.checkAgentCode(\n this.originAgentCodeControl,\n value,\n () => {\n this.getEmployer(value);\n },\n () => {\n this.setMultidropdown([]);\n }\n );\n }\n }\n\n newAgentCodeChange(value: string) {\n if (this.newAgentCodeControl.valid) {\n this.checkAgentCode(this.newAgentCodeControl, value);\n }\n }\n\n checkAgentCode(control: AbstractControl, value: string, passFun?: any, notPassFun?: any) {\n this.isLoading = true;\n this.service\n .agentReassignmentCheckAgentCode(value)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n if (res.data === true) {\n control.setErrors(null);\n if (passFun && typeof passFun === 'function') {\n passFun();\n }\n } else {\n control.setErrors({ agentCodeInvalid: true });\n if (notPassFun && typeof notPassFun === 'function') {\n notPassFun();\n }\n }\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n getEmployer(value: string) {\n this.isLoading = true;\n this.service\n .getAgentReassignmentSelectEmployer(value)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data) {\n this.setMultidropdown(res.data);\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n setMultidropdown(value: Employer[]) {\n this.customerOption = value.map(item => {\n return {\n label: item.employerCode + ' - ' + (item.employerName ?? ''),\n value: item.employerCode,\n };\n });\n\n this.employerAccountNameControl.setValue([]);\n this.employerAccountNameChange();\n }\n setMemberMultidropdown(value: RelatedMemberResponse[]) {\n if (value.length > 0) {\n this.memberOption = value.map(item => {\n return {\n label: item.member_name,\n value: item.id,\n };\n });\n } else {\n this.memberOption = [];\n this.memberNameControl.reset();\n this.memberNameControl.setValue([]);\n }\n }\n\n //value: CdMultidropdownTopping[]\n employerAccountNameChange() {\n this.transferNum = 0;\n this.newAgentCodeControl.disable();\n this.newAgentCodeControl.reset();\n this.memberListControl.reset();\n this.memberOption = [];\n this.memberNameControl?.reset();\n this.setMemberMultidropdown([]);\n }\n\n memberListChange() {\n if (this.companyList.length > 0) {\n this.newAgentCodeControl.enable();\n this.getMemberList();\n } else {\n this.newAgentCodeControl.reset();\n this.newAgentCodeControl.disable();\n }\n this.setMemberMultidropdown([]);\n this.memberNameControl.reset();\n this.memberNameControl.setValue([]);\n this.memberOption = [];\n }\n\n getMemberList() {\n const employerCodesStr = this.companyList\n .map(item => {\n return item.value;\n })\n .join(',');\n const params: RelatedMemberRequest = {\n employerCodes: employerCodesStr,\n chooseType: this.memberType,\n agentCodes: this.originAgentCode,\n };\n this.isLoading = true;\n this.service\n .getRelatedMember(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data !== undefined) {\n this.transferNum = res.data.length;\n if (this.transferNum === 0) {\n this.newAgentCodeControl.reset();\n this.newAgentCodeControl.disable();\n this.setMemberMultidropdown([]);\n } else {\n this.setMemberMultidropdown(res.data);\n this.newAgentCodeControl.enable();\n }\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n getMemberCount() {\n const employerCodesStr = this.companyList\n .map(item => {\n return item.value;\n })\n .join(',');\n const params: AgentReassignmentMemberCountRequet = {\n employerCodes: employerCodesStr,\n chooseMember: this.memberType,\n agentCodes: this.originAgentCode,\n };\n this.isLoading = true;\n this.service\n .getAgentReassignmentMemberCount(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data !== undefined) {\n this.transferNum = res.data;\n if (this.transferNum === 0) {\n this.newAgentCodeControl.reset();\n this.newAgentCodeControl.disable();\n } else {\n this.newAgentCodeControl.enable();\n }\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n submit() {\n if (this.processDisabled) {\n return;\n }\n\n const originAgentCodeStr = this.originAgentCode.split(',').join(', ');\n const companyListStr = this.companyList\n .map(item => {\n return item.label;\n })\n .join(', ');\n const newAgentCodeStr = this.newAgentCode.split(',').join(', ');\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: {\n title: 'Below changes will be updated',\n message: `${this.transferNum} employees handled by agent ${originAgentCodeStr} from ${companyListStr} will be transferred to agent ${newAgentCodeStr}.`,\n cancelButtonName: 'Back to Edit',\n continueButtonName: 'Confirm',\n },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doSubmit();\n }\n });\n }\n\n doSubmit() {\n const agentCodes = this.originAgentCode.split(',');\n const employerCodes = this.companyList.map(item => {\n return item.value as string;\n });\n let memberIds: string[] = [];\n if (this.selectMemberList.length != 0) {\n memberIds = this.selectMemberList.map(item => {\n return item.value as string;\n });\n } else {\n memberIds = this.memberOption.map(item => {\n return item.value as string;\n });\n }\n\n const newAgentCodes = this.newAgentCode.split(',');\n const params: AgentReassignmentMemberProcessRequet = {\n memberIds,\n employerCodes,\n chooseType: this.memberType,\n agentCodes,\n newAgentCodes,\n };\n this.isLoading = true;\n this.service\n .getAgentReassignmentProcess(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0 && res.data === true) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n\n this.cdsPopup\n .open(ContinuePopupComponent, {\n size: 'sm',\n data: { message: this.langService.translate('common.action.cancel') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.doReset();\n }\n });\n }\n\n doReset() {\n this.transferNum = 0;\n this.setMultidropdown([]);\n this.setMemberMultidropdown([]);\n this.formGroup.reset();\n this.formGroup.markAsPristine();\n this.formGroup.markAsUntouched();\n this.disableControls();\n }\n\n popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.message.update.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.doReset();\n });\n }\n\n agentCodeDuplicateValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const originControl = control.get('originAgentCode');\n const newControl = control.get('newAgentCode');\n\n if (originControl?.valid && newControl?.valid) {\n const originList = originControl.value.split(',');\n const newList = newControl.value.split(',');\n const mergeList = [...originList, ...newList];\n if (new Set(mergeList).size !== mergeList.length) {\n return { agentCodeDuplicated: true };\n }\n }\n\n return null;\n };\n\n memberChange(value: CdMultidropdownTopping[]) {\n if (value.length > 0) {\n this.transferNum = value.length;\n } else {\n this.getMemberList();\n }\n }\n}\n","\n\n
    \n
    \n Agent Case Re-assignment\n
    \n\n
    \n
    \n {{ 'agent.reassignment-remarks' | lang }}\n
    \n
    \n {{ 'agent.reassignment-remarks-content1' | lang }}\n
    \n
    \n {{ 'agent.reassignment-remarks-content2' | lang }}\n
    \n
    \n\n
    \n
    \n
    \n \n
    Agent From
    \n
    \n
    \n
    \n
    \n
    1
    \n
    Input Original Agent Code
    \n
    \n
    \n \n
    \n Missing Agent Code.\n {{ originAgentCodeControl.errors?.['agentCodeListInvalid'] | lang }}\n Invalid Agent Code.\n
    \n
    \n
    *Outstanding case(s) can be reassigned to multiple agents, pls use comma as separator.
    \n
    E.g. From 123456 -> To 456789,654321
    \n
    \n
    \n
    \n
    \n
    \n
    2
    \n
    Select Employer Account Name & Company Name
    \n
    \n
    \n \n\n
    \n \n \n \n \n Apply to all Related Employer Account\n
    \n
    \n
    \n
    \n
    \n
    3
    \n
    Choose the Member List
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    4
    \n
    Choose Specific Member Name
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n A total of\n {{ transferNum }} \n employees to be transferred\n
    \n\n
    \n
    \n \n
    Agent To
    \n
    \n
    \n
    \n
    \n
    5
    \n
    Input New Agent Code
    \n
    \n
    \n \n
    \n Missing Agent Code.\n {{ newAgentCodeControl.errors?.['agentCodeListInvalid'] | lang }}\n Invalid Agent Code.\n
    \n
    \n Duplicated with Original Agent Code.\n
    \n
    \n
    *Outstanding case(s) can be reassigned to multiple agents, pls use comma as separator.
    \n
    E.g. From 123456 -> To 456789,654321
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n Reset\n Process\n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, HostListener, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator, idValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { AddressTypeE } from 'src/app/views/agent-list/agent-list';\nimport { AutoRollover, AutoRolloverSearchRequest, AutoRolloverStatsE } from '../../shk';\nimport { ShkService } from '../../shk.service';\n\n@Component({\n selector: 'app-auto-rollover-list',\n templateUrl: './auto-rollover-list.component.html',\n styleUrls: ['./auto-rollover-list.component.scss'],\n})\nexport class AutoRolloverListComponent implements OnInit, AfterViewInit {\n searchDTO: AutoRolloverSearchRequest = {\n page: 0,\n size: 10,\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'createdAt',\n title: 'Create Date',\n sticky: true,\n },\n {\n key: 'erAccountNo',\n title: 'Trustee Employer Account Code',\n sticky: true,\n },\n {\n key: 'empfMemberAccountNumber',\n title: 'eMPF Member Account Number',\n sticky: true,\n },\n {\n key: 'status',\n title: 'Status',\n sticky: true,\n },\n { key: 'hkidNo', title: 'Hong Kong ID Number' },\n { key: 'passportNumber', title: 'Passport Number' },\n { key: 'firstName', title: 'First Name' },\n { key: 'lastName', title: 'Last Name' },\n { key: 'chineseFirstName', title: 'Chinese First Name' },\n { key: 'chineseLastName', title: 'Chinese Last Name' },\n { key: 'transactionDate', title: 'Transaction Date' },\n { key: 'dealingDate', title: 'Dealing Date' },\n // { key: 'transactionId', title: 'Transaction ID (PK)' },\n // { key: 'nationality1FullName', title: 'Nationality 1' },\n // { key: 'nationality2FullName', title: 'Nationality 2' },\n // { key: 'nationality3FullName', title: 'Nationality 3' },\n { key: 'gender', title: 'Gender' },\n { key: 'dateOfBirth', title: 'Date of Birth' },\n // { key: 'bankruptcy', title: 'Bankruptcy' },\n // { key: 'bankruptcyReceivedDate', title: 'Bankruptcy Received Date' },\n // { key: 'bankruptcyDate', title: 'Bankruptcy Date' },\n // { key: 'dischargeDate', title: 'Discharge Date' },\n // { key: 'bankruptcyNumber', title: 'Bankruptcy number' },\n // { key: 'oroContact', title: 'ORO contact' },\n // { key: 'primaryMobileNumber', title: 'Primary Mobile Number' },\n // { key: 'secondaryMobileNumber', title: 'Secondary Mobile Number' },\n // { key: 'primaryContactNumber', title: 'Primary Contact Number' },\n // { key: 'secondaryContactNumber', title: 'Secondary Contact Number' },\n // { key: 'faxNumber', title: 'Fax Number' },\n // { key: 'emailAddress', title: 'Email Address' },\n // { key: 'addressType', title: 'Address Type' },\n // { key: 'addressLine1Room', title: 'Room' },\n // { key: 'addressLine2Floor', title: 'Block' },\n // { key: 'addressLine3Block', title: 'Floor' },\n // { key: 'addressLine4Building', title: 'Building' },\n // { key: 'addressLine5Street', title: 'Street' },\n // { key: 'addressLine6District', title: 'District' },\n // { key: 'addressLine7City', title: 'City' },\n // { key: 'addressLine8CountryFullName', title: 'Country' },\n // { key: 'postalCode', title: 'Postal Code' },\n // { key: 'tinCountry1FullName', title: 'Country Identification No.' },\n // { key: 'tinNo1', title: 'Identification No.' },\n // {\n // key: 'noTinReason1',\n // title: 'Reason without tax identification number',\n // },\n // {\n // key: 'furtherTinReason1',\n // title: 'Further reason tax identification number',\n // },\n // { key: 'tinCountry2FullName', title: 'Country Identification No.' },\n // { key: 'tinNo2', title: 'Identification No.' },\n // {\n // key: 'noTinReason2',\n // title: 'Reason without tax identification number',\n // },\n // {\n // key: 'furtherTinReason2',\n // title: 'Further reason tax identification number',\n // },\n // { key: 'tinCountry3FullName', title: 'Country Identification No.' },\n // { key: 'tinNo3', title: 'Identification No.' },\n // {\n // key: 'noTinReason3',\n // title: 'Reason without tax identification number',\n // },\n // {\n // key: 'furtherTinReason3',\n // title: 'Further reason tax identification number',\n // },\n // { key: 'tinCountry4FullName', title: 'Country Identification No.' },\n // { key: 'tinNo4', title: 'Identification No.' },\n // {\n // key: 'noTinReason4',\n // title: 'Reason without tax identification number',\n // },\n // {\n // key: 'furtherTinReason4',\n // title: 'Further reason tax identification number',\n // },\n // { key: 'tinCountry5FullName', title: 'Country Identification No.' },\n // { key: 'tinNo5', title: 'Identification No.' },\n // {\n // key: 'noTinReason5',\n // title: 'Reason without tax identification number',\n // },\n // {\n // key: 'furtherTinReason5',\n // title: 'Further reason tax identification number',\n // },\n // { key: 'effectiveDate', title: 'Effective Date' },\n // { key: 'expiredDate', title: 'Expired Date' },\n { key: 'crsReceivedDate', title: 'CRS Received Date' },\n { key: 'accountOpenDate', title: 'Account Open Date' },\n { key: 'companyName', title: 'Company Name' },\n { key: 'chineseCompanyName', title: 'Chinese Company Name' },\n { key: 'memberType', title: 'Indicator for Member Type' },\n ];\n\n AddressTypeE = AddressTypeE;\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n showDatePicker = true;\n\n isLoading = false;\n\n numberOfElements = 0;\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n dataSource: AutoRollover[] = [];\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n selectAll = false;\n\n isIndeterminate = false;\n\n isMobile = false;\n\n scrollBarWidth = '15px';\n\n selectStatus?: AutoRolloverStatsE;\n\n AutoRolloverStatsE = AutoRolloverStatsE;\n\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n statusConfig: CdsDropdownConfig = {\n label: 'Status',\n placeholder: 'Select Status',\n options: [\n { label: 'New', value: 'New' },\n { label: 'Ready', value: 'Ready' },\n { label: 'Submitted', value: 'Submitted' },\n { label: 'Hold', value: 'Hold' },\n { label: 'Completed', value: 'Completed' },\n { label: 'Error', value: 'Error' },\n ],\n };\n\n get allAvailableData() {\n return this.dataSource.filter(item => item.status === this.selectStatus);\n }\n\n get selectData() {\n return this.dataSource.filter(item => item.checked);\n }\n\n get empfMemberAccountNumberControl() {\n return this.form?.get('empfMemberAccountNumber');\n }\n\n get hkidControl() {\n return this.form?.get('hkid');\n }\n\n get passportControl() {\n return this.form?.get('passport');\n }\n\n get createStartDateControl() {\n return this.form?.get('createStartDate');\n }\n\n get createEndDateControl() {\n return this.form?.get('createEndDate');\n }\n\n get createStartDateValue() {\n return this.createStartDateControl?.value;\n }\n\n get createEndDateValue() {\n return this.createEndDateControl?.value;\n }\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n constructor(\n private service: ShkService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private toastAlert: ToastAlertService,\n private elemRef: ElementRef,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.permissionCheck();\n this.initForm();\n this.loadTable();\n }\n\n ngAfterViewInit(): void {\n this.onResize();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n empfMemberAccountNumber: new FormControl('', [idValidator('common.please-input-a-valid-value')]),\n createStartDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n createEndDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n hkid: new FormControl('', [idValidator('common.please-input-a-valid-value')]),\n passport: new FormControl('', [idValidator('common.please-input-a-valid-value')]),\n status: new FormControl(),\n },\n { validators: startAndEndDateValidator('create.dateError', 'createStartDate', 'createEndDate') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n getRequestParams() {\n const params: AutoRolloverSearchRequest = {\n ...this.form.value,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n params.createStartDate = params.createStartDate ? this.dateTrans(params.createStartDate) : '0001-01-01';\n params.createEndDate = params.createEndDate ? this.dateTrans(params.createEndDate) : moment().format('YYYY-MM-DD');\n params.sort = 'createdAt,desc';\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n loadTable() {\n const params: AutoRolloverSearchRequest = this.getRequestParams();\n this.isLoading = true;\n this.selectStatus = undefined;\n this.isIndeterminate = false;\n this.selectAll = false;\n this.service\n .getAutoRolloverList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.numberOfElements = data.data.totalElements;\n\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n this.selectStatusRefresh();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable();\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n handleChange(newValue: boolean) {\n if (this.selectAll !== newValue) {\n this.selectAll = newValue;\n this.allAvailableData.forEach(item => {\n item.checked = this.selectAll;\n });\n if (!newValue) {\n this.selectStatusRefresh();\n }\n this.updateIndeterminate();\n }\n this.onResize();\n }\n\n selectStatusRefresh() {\n const readyAmount = this.dataSource.filter(item => item.status === AutoRolloverStatsE.READY).length;\n const holdAmount = this.dataSource.filter(item => item.status === AutoRolloverStatsE.HOLD).length;\n if (readyAmount > 0 && holdAmount === 0) {\n this.selectStatus = AutoRolloverStatsE.READY;\n } else if (readyAmount === 0 && holdAmount > 0) {\n this.selectStatus = AutoRolloverStatsE.HOLD;\n } else {\n this.selectStatus = undefined;\n }\n }\n\n updateIndeterminate(): void {\n this.isIndeterminate = this.allAvailableData.length > 0 && this.allAvailableData.some(item => item.checked) && !this.selectAll;\n }\n\n trigger(index: number, value: boolean) {\n this.dataSource[index].checked = value;\n if (value) {\n this.selectStatus = this.dataSource[index].status;\n } else if (this.allAvailableData.length === 0 || this.allAvailableData.every(item => !item.checked)) {\n this.selectStatusRefresh();\n }\n this.selectAll = this.allAvailableData.length > 0 && this.allAvailableData.every(item => item.checked);\n this.updateIndeterminate();\n this.onResize();\n }\n\n isDisabled(selectStatus: AutoRolloverStatsE, status: AutoRolloverStatsE) {\n if (selectStatus === undefined && (status === AutoRolloverStatsE.READY || status === AutoRolloverStatsE.HOLD)) {\n return false;\n }\n return selectStatus !== status;\n }\n\n changeStatus(isHold: boolean) {\n const ids: string[] = this.selectData.map(item => item.id);\n this.isLoading = true;\n this.service\n .changeMemberStatus(isHold, ids)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n addressTypeRender = (value: keyof typeof AddressTypeE) => {\n return AddressTypeE[value] || '';\n };\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.message.update.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n permissionCheck() {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SHK_AUTO_ROLLOVER_OPS_STAFF).then(hasPermission => {\n if (hasPermission) {\n this.columnsConfig = [\n {\n key: 'select',\n title: '',\n sticky: true,\n },\n ...this.columnsConfig,\n ];\n }\n });\n }\n\n onCanDelegateAmtToggle(event: MouseEvent) {\n if (event.target) {\n event.target.dispatchEvent(new Event('click'));\n }\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n\n const contentWidth = this.elemRef.nativeElement.getElementsByClassName('auto-rollover-container')[0].offsetWidth;\n const screenWidth = document.body.clientWidth;\n\n this.scrollBarWidth = screenWidth - contentWidth - (this.isMobile ? 0 : 80) + 'px';\n }\n}\n","
    \n
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n
    \n \n\n \n {{ empfMemberAccountNumberControl?.errors?.['idInvalid'] | lang }}\n
    \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    -
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    \n
    \n \n\n
    \n {{ hkidControl?.errors?.['idInvalid'] | lang }}\n
    \n
    \n
    \n \n\n
    \n {{ passportControl?.errors?.['idInvalid'] | lang }}\n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ numberOfElements | number }} records
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n \n
    \n
    \n \n
    {{ element.title }}
    \n
    \n \n
    {{ element.title }}
    \n
    \n \n
    \n
    English Name
    \n
    First Name
    \n
    \n
    \n \n
    \n
    \n
    Last Name
    \n
    \n
    \n \n
    \n
    Chinese Name
    \n
    First Name
    \n
    \n
    \n \n
    \n
    \n
    Last Name
    \n
    \n
    \n \n\n \n \n {{ element['createdAt'] | date : 'dd/MM/yyyy' }}\n \n\n \n
    \n
    {{ element.erAccountNo }}
    \n
    \n
    \n\n \n
    \n
    {{ element.empfMemberAccountNumber }}
    \n
    \n
    \n\n \n \n \n {{ element.hkidNo }}({{ element.hkidCheckDigit }})\n \n \n \n \n \n {{ element['transactionDate'] | date : 'dd/MM/yyyy' }}\n \n \n {{ element['dealingDate'] | date : 'dd/MM/yyyy' }}\n \n \n {{ element['dateOfBirth'] | date : 'dd/MM/yyyy' }}\n \n \n \n {{ element['crsReceivedDate'] | date : 'dd/MM/yyyy' }}\n \n \n {{ element['accountOpenDate'] | date : 'dd/MM/yyyy' }}\n \n\n \n
    \n (+{{ element.primaryMobileNumberCountryCode }}){{ element.primaryMobileNumber }}\n
    \n
    \n \n
    Invalid
    \n
    \n
    \n\n \n
    \n (+{{ element.primaryContactNumberCountryCode }}){{ element.primaryContactNumber }}\n
    \n
    \n \n
    Invalid
    \n
    \n
    \n\n \n
    \n (+{{ element.secondaryMobileNumberCountryCode }}){{ element.secondaryMobileNumber }}\n
    \n
    \n \n
    Invalid
    \n
    \n
    \n\n \n
    \n (+{{ element.secondaryContactNumberCountryCode }}){{ element.secondaryContactNumber }}\n
    \n
    \n \n
    Invalid
    \n
    \n
    \n\n \n
    \n {{ element.emailAddress }}\n
    \n
    \n \n
    Invalid
    \n
    \n
    \n\n \n
    \n (+{{ element.faxNumberCountryCode }}){{ element.faxNumber }}\n
    \n
    \n\n \n
    \n {{ addressTypeRender | fn : element.addressType }}\n
    \n
    \n\n \n
    \n
    {{ element.noTinReason1 }}
    \n \n
    \n
    \n\n \n
    \n
    {{ element.noTinReason2 }}
    \n \n
    \n
    \n\n \n
    \n
    {{ element.noTinReason3 }}
    \n \n
    \n
    \n\n \n
    \n
    {{ element.noTinReason4 }}
    \n \n
    \n
    \n\n \n
    \n
    {{ element.noTinReason5 }}
    \n \n
    \n
    \n\n \n
    \n
    {{ element.companyName }}
    \n
    \n
    \n\n \n
    \n
    {{ element.chineseCompanyName }}
    \n
    \n
    \n\n \n
    \n
    {{ element.firstName }}
    \n
    \n
    \n\n \n
    \n
    {{ element.lastName }}
    \n
    \n
    \n\n \n
    \n
    {{ element.chineseFirstName }}
    \n
    \n
    \n\n \n
    \n
    {{ element.chineseLastName }}
    \n
    \n
    \n\n \n
    \n
    {{ element.passportNumber }}
    \n
    \n
    \n\n \n
    \n
    {{ element.memberType }}
    \n
    \n
    \n \n
    \n
    \n\n\n
    0\" [style.right]=\"scrollBarWidth\" [style.left]=\"isMobile ? 0 : '80px'\">\n
    \n Please select record(s) to\n holdunhold\n
    \n
    \n
    \n {{ selectData.length }} item(s) selected\n
    \n Hold\n Unhold\n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, HostListener, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { dateValidator, idValidator, startAndEndDateValidator } from 'src/app/shared/validators/validators';\nimport { AutoRollover, AutoRolloverSearchRequest, AutoRolloverStatsE } from '../../shk';\nimport { ShkService } from '../../shk.service';\n\n@Component({\n selector: 'app-auto-rollover-payment-list',\n templateUrl: './auto-rollover-payment-list.component.html',\n styleUrls: ['./auto-rollover-payment-list.component.scss'],\n})\nexport class AutoRolloverPaymentListComponent implements OnInit, AfterViewInit {\n searchDTO: AutoRolloverSearchRequest = {\n page: 0,\n size: 10,\n };\n\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n\n nowTimeInstr = DateTime.now().toFormat('dd/MM/yyyy');\n\n maxTime = this.getNowTime();\n\n maxTimeInStr = DateTime.fromJSDate(this.maxTime).toFormat('dd/MM/yyyy');\n\n columnsConfig: ColumnConfig[] = [\n {\n key: 'createdAt',\n title: 'Create Date',\n sticky: true,\n },\n {\n key: 'erAccountNo',\n title: 'Trustee Employer Account Code',\n sticky: true,\n },\n {\n key: 'empfMemberAccountNumber',\n title: 'eMPF Member Account Number',\n sticky: true,\n },\n {\n key: 'status',\n title: 'Status',\n sticky: true,\n },\n { key: 'paymentReceivedDate', title: 'Transaction Date' },\n { key: 'dealingDate', title: 'Dealing Date' },\n { key: 'firstName', title: 'First Name' },\n { key: 'lastName', title: 'Last Name' },\n { key: 'hkidNo', title: 'Hong Kong ID Number' },\n { key: 'passportNumber', title: 'Passport Number' },\n // { key: 'ermc', title: 'ERMC' },\n // { key: 'ervc1', title: 'ERVC1' },\n // { key: 'ervc2', title: 'ERVC2' },\n // { key: 'eemc', title: 'EEMC' },\n // { key: 'eevc', title: 'EEVC' },\n // { key: 'er_ex_orso', title: 'ER Ex-ORSO' },\n // { key: 'ee_ex_orso', title: 'EE Ex-ORSO' },\n // { key: 'former_mc', title: 'Former MC' },\n // { key: 'former_vc', title: 'Former VC' },\n // { key: 'paymentAmount', title: 'Total Amount' },\n ];\n\n searchButtonConfig: CdsButtonConfig = {\n size: 'sm',\n };\n\n resetButtonConfig: CdsButtonConfig = {\n size: 'sm',\n style: 'secondary',\n };\n\n showDatePicker = true;\n\n isLoading = false;\n\n numberOfElements = 0;\n\n dataSource: AutoRollover[] = [];\n\n selectStatus?: AutoRolloverStatsE;\n\n AutoRolloverStatsE = AutoRolloverStatsE;\n\n selectAll = false;\n\n isIndeterminate = false;\n\n isMobile = false;\n\n scrollBarWidth = '15px';\n\n form: FormGroup = new FormGroup({});\n\n formReady = false;\n\n statusConfig: CdsDropdownConfig = {\n label: 'Status',\n placeholder: 'Select Status',\n options: [\n { label: 'New', value: 'New' },\n { label: 'Ready', value: 'Ready' },\n { label: 'Pending', value: 'Pending' },\n { label: 'Submitted', value: 'Submitted' },\n { label: 'Hold', value: 'Hold' },\n { label: 'Completed', value: 'Completed' },\n { label: 'Error', value: 'Error' },\n ],\n };\n\n get allAvailableData() {\n return this.dataSource.filter(item => item.status === this.selectStatus);\n }\n\n get selectData() {\n return this.dataSource.filter(item => item.checked);\n }\n\n get empfMemberAccountNumberControl() {\n return this.form?.get('empfMemberAccountNumber');\n }\n\n get hkidControl() {\n return this.form?.get('hkid');\n }\n\n get passportControl() {\n return this.form?.get('passport');\n }\n\n get createStartDateControl() {\n return this.form?.get('createStartDate');\n }\n\n get createEndDateControl() {\n return this.form?.get('createEndDate');\n }\n\n get createStartDateValue() {\n return this.createStartDateControl?.value;\n }\n\n get createEndDateValue() {\n return this.createEndDateControl?.value;\n }\n\n get searchButtonDisabled() {\n return !this.form?.valid || !this.form.dirty;\n }\n\n get resetButtonDisabled() {\n return !this.form?.dirty;\n }\n\n constructor(\n private service: ShkService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService,\n private toastAlert: ToastAlertService,\n private elemRef: ElementRef,\n private permissionService: PermissionService\n ) {}\n\n ngOnInit(): void {\n this.permissionCheck();\n this.initForm();\n this.loadTable();\n }\n\n ngAfterViewInit(): void {\n this.onResize();\n }\n\n initForm() {\n this.form?.markAsUntouched();\n this.form?.markAsPristine();\n\n this.form = new FormGroup(\n {\n empfMemberAccountNumber: new FormControl('', [idValidator('common.please-input-a-valid-value')]),\n createStartDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n createEndDate: new FormControl('', [dateValidator('create.dateError', '', this.nowTimeInstr)]),\n hkid: new FormControl('', [idValidator('common.please-input-a-valid-value')]),\n passport: new FormControl('', [idValidator('common.please-input-a-valid-value')]),\n status: new FormControl(),\n },\n { validators: startAndEndDateValidator('create.dateError', 'createStartDate', 'createEndDate') }\n );\n this.formReady = false;\n setTimeout(() => {\n this.formReady = true;\n });\n }\n\n getRequestParams() {\n const params: AutoRolloverSearchRequest = {\n ...this.form.value,\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n };\n params.createStartDate = params.createStartDate ? this.dateTrans(params.createStartDate) : '0001-01-01';\n params.createEndDate = params.createEndDate ? this.dateTrans(params.createEndDate) : moment().format('YYYY-MM-DD');\n params.sort = 'createdAt,desc';\n return params;\n }\n\n dateTrans(date: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n\n return date;\n }\n\n loadTable() {\n const params: AutoRolloverSearchRequest = this.getRequestParams();\n this.isLoading = true;\n this.selectStatus = undefined;\n this.isIndeterminate = false;\n this.selectAll = false;\n this.service\n .getAutoRolloverPaymentList(params)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.isLoading = false;\n this.dataSource = data.data.empty ? [] : data.data.content;\n this.numberOfElements = data.data.totalElements;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.data.totalElements,\n };\n this.selectStatusRefresh();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getTime(dateStr: string) {\n return moment(dateStr, 'DD/MM/YYYY').toDate();\n }\n\n search() {\n if (this.searchButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n this.loadTable();\n }\n\n reset() {\n if (this.resetButtonDisabled) {\n return;\n }\n this.pageConfig = {\n ...this.pageConfig,\n current: 1,\n };\n\n this.initForm();\n\n this.showDatePicker = false;\n setTimeout(() => {\n this.showDatePicker = true;\n this.loadTable();\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable();\n }\n\n handleChange(newValue: boolean) {\n if (this.selectAll !== newValue) {\n this.selectAll = newValue;\n this.allAvailableData.forEach(item => {\n item.checked = this.selectAll;\n });\n if (!newValue) {\n this.selectStatusRefresh();\n }\n this.updateIndeterminate();\n }\n this.onResize();\n }\n\n selectStatusRefresh() {\n const readyAmount = this.dataSource.filter(item => item.status === AutoRolloverStatsE.READY).length;\n const holdAmount = this.dataSource.filter(item => item.status === AutoRolloverStatsE.HOLD).length;\n if (readyAmount > 0 && holdAmount === 0) {\n this.selectStatus = AutoRolloverStatsE.READY;\n } else if (readyAmount === 0 && holdAmount > 0) {\n this.selectStatus = AutoRolloverStatsE.HOLD;\n } else {\n this.selectStatus = undefined;\n }\n }\n\n updateIndeterminate(): void {\n this.isIndeterminate = this.allAvailableData.length > 0 && this.allAvailableData.some(item => item.checked) && !this.selectAll;\n }\n\n trigger(index: number, value: boolean) {\n this.dataSource[index].checked = value;\n if (value) {\n this.selectStatus = this.dataSource[index].status;\n } else if (this.allAvailableData.length === 0 || this.allAvailableData.every(item => !item.checked)) {\n this.selectStatusRefresh();\n }\n this.selectAll = this.allAvailableData.length > 0 && this.allAvailableData.every(item => item.checked);\n this.updateIndeterminate();\n this.onResize();\n }\n\n isDisabled(selectStatus: AutoRolloverStatsE, status: AutoRolloverStatsE) {\n if (selectStatus === undefined && (status === AutoRolloverStatsE.READY || status === AutoRolloverStatsE.HOLD)) {\n return false;\n }\n return selectStatus !== status;\n }\n\n getNowTime() {\n return moment().toDate();\n }\n\n getMaxFromDate = (toDateStr?: string) => {\n if (!toDateStr) {\n return this.getNowTime();\n }\n return moment(toDateStr, 'DD/MM/YYYY').toDate();\n };\n\n getMinToDate = (fromDateStr = '01/01/0000') => {\n return moment(fromDateStr, 'DD/MM/YYYY').toDate();\n };\n\n changeStatus(isHold: boolean) {\n const ids: string[] = this.selectData.map(item => item.id);\n this.isLoading = true;\n this.service\n .changePaymentStatus(isHold, ids)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: this.langService.translate('common.action.message.update.success.italic'),\n buttonName: this.langService.translate('common.gotItWithExclamation'),\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.loadTable();\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n permissionCheck() {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SHK_AUTO_ROLLOVER_OPS_STAFF).then(hasPermission => {\n if (hasPermission) {\n this.columnsConfig = [\n {\n key: 'select',\n title: '',\n sticky: true,\n },\n ...this.columnsConfig,\n ];\n }\n });\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n\n const contentWidth = this.elemRef.nativeElement.getElementsByClassName('auto-rollover-container')[0].offsetWidth;\n const screenWidth = document.body.clientWidth;\n\n this.scrollBarWidth = screenWidth - contentWidth - (this.isMobile ? 0 : 80) + 'px';\n }\n}\n","
    \n
    \n
    \n {{ 'list.serach-record' | lang }}\n
    \n
    \n
    \n \n\n \n {{ empfMemberAccountNumberControl?.errors?.['idInvalid'] | lang }}\n
    \n
    \n\n
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    -
    \n
    \n \n \n \n\n
    \n {{ 'create.dateError' | lang }}\n
    \n
    \n
    \n
    \n \n\n
    \n {{ hkidControl?.errors?.['idInvalid'] | lang }}\n
    \n
    \n
    \n \n\n
    \n {{ passportControl?.errors?.['idInvalid'] | lang }}\n
    \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    {{ 'common.recordList' | lang }}
    \n
    Total {{ numberOfElements | number }} records
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n \n
    \n
    \n \n
    {{ element.title }}
    \n
    \n \n
    {{ element.title }}
    \n
    \n\n \n \n {{ element['createdAt'] | date : 'dd/MM/yyyy' }}\n \n\n \n \n \n\n \n
    \n
    {{ element.erAccountNo }}
    \n
    \n
    \n\n \n
    \n
    {{ element.empfMemberAccountNumber }}
    \n
    \n
    \n\n
    {{ element.firstName }}
    \n
    {{ element.lastName }}
    \n \n
    \n {{ element.hkidNo }}({{ element.hkidCheckDigit }})\n
    \n
    \n
    {{ element.passportNumber }}
    \n \n {{ element['paymentReceivedDate'] | date : 'dd/MM/yyyy' }}\n \n \n {{ element['dealingDate'] | date : 'dd/MM/yyyy' }}\n \n \n \n
    \n
    \n\n\n
    0\" [style.right]=\"scrollBarWidth\" [style.left]=\"isMobile ? 0 : '80px'\">\n
    \n Please select record(s) to\n holdunhold\n
    \n
    \n
    \n {{ selectData.length }} item(s) selected\n
    \n Hold\n Unhold\n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from 'src/app/views/layout/admin-layout/admin-layout.component';\nimport { AgentReassignmentComponent } from './agent-reassignment/agent-reassignment.component';\nimport { AutoRolloverListComponent } from './auto-rollover/auto-rollover-list/auto-rollover-list.component';\nimport { AutoRolloverPaymentListComponent } from './auto-rollover/auto-rollover-payment-list/auto-rollover-payment-list.component';\nconst routes: Routes = [\n {\n path: 'shk',\n component: AdminLayoutComponent,\n children: [\n {\n path: 'auto-rollover/list',\n component: AutoRolloverListComponent,\n data: {\n title: 'rollover.list-title',\n roles: {\n SHK_AUTO_ROLLOVER_OPS_STAFF: PermissionAccess.R,\n },\n },\n },\n {\n path: 'auto-rollover-payment/list',\n component: AutoRolloverPaymentListComponent,\n data: {\n title: 'rollover.payment-list-title',\n roles: {\n SHK_AUTO_ROLLOVER_OPS_STAFF: PermissionAccess.R,\n },\n },\n },\n {\n path: 'agent-reassignment',\n component: AgentReassignmentComponent,\n data: {\n title: 'agent.reassignment-title',\n roles: {\n SHK_AGENT_ASSIGNMENT_REASSIGN: PermissionAccess.W,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ShkRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ShkRoutingModule } from './shk-routing.module';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { AutoRolloverListComponent } from './auto-rollover/auto-rollover-list/auto-rollover-list.component';\nimport { AutoRolloverPaymentListComponent } from './auto-rollover/auto-rollover-payment-list/auto-rollover-payment-list.component';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { AgentReassignmentComponent } from './agent-reassignment/agent-reassignment.component';\nimport { CdsRadioModule } from '@cds/ng-web-components/radio';\nimport { AgentPerformanceHeadComponent } from './agent-performance-head/agent-performance-head.component';\nimport { AgentPerformanceHeadEnrolmentComponent } from './agent-performance-head-enrolment/agent-performance-head-enrolment.component';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\n\n@NgModule({\n declarations: [\n AutoRolloverListComponent,\n AutoRolloverPaymentListComponent,\n AgentReassignmentComponent,\n AgentPerformanceHeadComponent,\n AgentPerformanceHeadEnrolmentComponent,\n ],\n imports: [\n CommonModule,\n ShkRoutingModule,\n CdsDatepickerModule,\n FormsModule,\n ReactiveFormsModule,\n CdsLanguageModule,\n CdsTextfieldModule,\n CdsDropdownModule,\n CdsButtonModule,\n CdsIconModule,\n CdsTableModule,\n CdsCheckboxModule,\n CdsPaginationModule,\n CdsPopupModule,\n CdsProgressModule,\n SharedModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsRadioModule,\n CdsTooltipModule,\n CdsTabsModule,\n CdsFileUploadModule,\n CdsSortModule,\n ],\n})\nexport class ShkModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filterParams } from 'src/app/core/models/request';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport {\n AgentPerformanceHeadDTO,\n AgentPerformanceHeadSearchDTO,\n AgentReassignmentMemberCountRequet,\n AgentReassignmentMemberProcessRequet,\n AutoRollover,\n AutoRolloverSearchRequest,\n Employer,\n RelatedMemberResponse,\n RelatedMemberRequest,\n} from './shk';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ShkService {\n private customer_url = `${environment.apiPrefix}/ext/eb-ssms/customer-service/`;\n private autoRolloverListUrl = this.customer_url + 'shkp/auto-rollover/member-record/list';\n private autoRolloverPaymentListUrl = this.customer_url + 'shkp/auto-rollover/transfer-record/list';\n private autoRolloverPaymentHoldUrl = this.customer_url + 'shkp/auto-rollover/transfer-record/hold';\n private autoRolloverPaymentUnholdUrl = this.customer_url + 'shkp/auto-rollover/transfer-record/unHold';\n private autoRolloverMemberHoldUrl = this.customer_url + 'shkp/auto-rollover/member-record/hold';\n private autoRolloverMemberUnholdUrl = this.customer_url + 'shkp/auto-rollover/member-record/unHold';\n private agentReassignmentSelectEmployer = this.customer_url + 'shkp/agent-reassignment/selectEmployer';\n private agentReassignmentCheckAgentCodeUrl = this.customer_url + 'shkp/agent-reassignment/checkAgentCode';\n private agentReassignmentMemberCount = this.customer_url + 'shkp/agent-reassignment/memberCount';\n private agentReassignmentProcess = this.customer_url + 'shkp/agent-reassignment/process';\n private agentPerformanceHeadUrl = this.customer_url + 'shkp/terminated-members/headList';\n private agentPerformanceEnrolmentHeadUrl = this.customer_url + 'shkp/enrolment-members/headList';\n private getRelatedMemberUrl = this.customer_url + 'shkp/agent-reassignment/getRelatedMembers';\n\n constructor(private http: HttpClient) {}\n\n getAutoRolloverList(params: AutoRolloverSearchRequest): Observable> {\n return this.http.get>(this.autoRolloverListUrl, {\n params: filterParams(params),\n });\n }\n\n getAutoRolloverPaymentList(params: AutoRolloverSearchRequest): Observable> {\n return this.http.get>(this.autoRolloverPaymentListUrl, {\n params: filterParams(params),\n });\n }\n\n changeMemberStatus(isHold: boolean, ids: string[]) {\n return this.http.post>(`${isHold ? this.autoRolloverMemberHoldUrl : this.autoRolloverMemberUnholdUrl}`, { ids });\n }\n //http://localhost:8082/shkp/agent-reassignment/selectEmployer\n getAgentReassignmentSelectEmployer(agentCodes: string): Observable> {\n return this.http.get>(this.agentReassignmentSelectEmployer, {\n params: { agentCodes },\n });\n }\n //http://localhost:8082/shkp/agent-reassignment/getRelatedMembers\n getRelatedMember(params: RelatedMemberRequest): Observable> {\n return this.http.get>(this.getRelatedMemberUrl, {\n params: filterParams(params),\n });\n }\n\n agentReassignmentCheckAgentCode(agentCodes: string): Observable> {\n return this.http.get>(this.agentReassignmentCheckAgentCodeUrl, {\n params: { agentCodes },\n });\n }\n\n getAgentReassignmentMemberCount(params: AgentReassignmentMemberCountRequet): Observable> {\n return this.http.get>(this.agentReassignmentMemberCount, {\n params: { ...params },\n });\n }\n\n //'http://localhost:8082/shkp/agent-reassignment/process'\n getAgentReassignmentProcess(params: AgentReassignmentMemberProcessRequet) {\n return this.http.post>(this.agentReassignmentProcess, params);\n }\n\n getAgentPerformanceHeadList(params: AgentPerformanceHeadSearchDTO) {\n const requestParams: AgentPerformanceHeadSearchDTO = {\n ...params,\n // sort: columnSort ? `${columnSort.key},${columnSort.value}` : '',\n };\n return this.http.get>(this.agentPerformanceHeadUrl, {\n params: filterParams(requestParams),\n });\n }\n getAgentPerformanceHeadEnrolmentList(params: AgentPerformanceHeadSearchDTO) {\n const requestParams: AgentPerformanceHeadSearchDTO = {\n ...params,\n // sort: columnSort ? `${columnSort.key},${columnSort.value}` : '',\n };\n //http://localhost:8082/shkp/enrolment-members/allList\n return this.http.get>(this.agentPerformanceEnrolmentHeadUrl, {\n params: filterParams(requestParams),\n });\n }\n changePaymentStatus(isHold: boolean, ids: string[]) {\n return this.http.post>(`${isHold ? this.autoRolloverPaymentHoldUrl : this.autoRolloverPaymentUnholdUrl}`, { ids });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { IPageableRequest } from 'src/app/core/models/request';\n\nexport const I18N_KEY = {\n INVALID_DATE: 'common.invalidDate',\n INVALID_DESCRIPTION: 'employer.invalid-description',\n INVALID_DESCRIPTION_CHINESE: 'employer.invalid-description-chinese',\n INVALID_USERNAME: 'employer.invalid-username',\n INVALID_AGENT_CODE: 'agent.invalide-agent-code',\n};\n\nexport interface AutoRolloverSearchRequest extends IPageableRequest {\n empfMemberAccountNumber?: string;\n createStartDate?: string;\n createEndDate?: string;\n hkid?: string;\n passport?: string;\n sort?: string;\n}\n\nexport interface AutoRollover {\n id: string;\n trusteeEmployerAccountNumber?: string;\n empfMemberAccountNumber?: string;\n status?: AutoRolloverStatsE;\n hkidNo?: string;\n passport?: string;\n firstName?: string;\n lastName?: string;\n chineseFirstName?: string;\n chineseLastName?: string;\n transactionId?: string;\n transactionDate?: string;\n dealingDate?: string;\n nationality1?: string;\n nationality2?: string;\n nationality3?: string;\n gender?: string;\n dateOfBirth?: string;\n bankruptcy?: string;\n bankruptcyDate?: string;\n bankruptcyNumber?: string;\n ordContact?: string;\n primaryMobileNumber?: string;\n secondaryMobileNumber?: string;\n primaryContactNumber?: string;\n secondaryContactNumber?: string;\n faxNumber?: string;\n emailAddress?: string;\n addressType?: string;\n addressLine1Room?: string;\n addressLine2Floor?: string;\n addressLine3Block?: string;\n addressLine4Building?: string;\n addressLine5Street?: string;\n addressLine6District?: string;\n addressLine7City?: string;\n addressLine8Country?: string;\n postalCode?: string;\n tax1CountryIdentificationNo?: string;\n tax1IdentificationNo?: string;\n tax1ReasonWithoutTaxIdentificationNumber?: string;\n tax1FurtherReasonTaxIdentificationNumber?: string;\n tax2CountryIdentificationNo?: string;\n tax2IdentificationNo?: string;\n tax2ReasonWithoutTaxIdentificationNumber?: string;\n tax2FurtherReasonTaxIdentificationNumber?: string;\n tax3CountryIdentificationNo?: string;\n tax3IdentificationNo?: string;\n tax3ReasonWithoutTaxIdentificationNumber?: string;\n tax3FurtherReasonTaxIdentificationNumber?: string;\n effectiveDate?: string;\n expiredDate?: string;\n crsReceivedDate?: string;\n accountOpenDate?: string;\n companyName?: string;\n checked?: boolean;\n}\n\nexport enum AutoRolloverStatsE {\n NEW = 'New',\n READY = 'Ready',\n SUBMITTED = 'Submitted',\n HOLD = 'Hold',\n COMPLETED = 'Completed',\n ERROR = 'Error',\n}\n\nexport enum MemberListTypeE {\n BOTH = 'both',\n ONLY_TERMINATED = 'terminated',\n ONLY_ENROLLED = 'enrolment',\n}\n\nexport interface Employer {\n employerCode: string;\n employerName: string;\n}\n\nexport interface RelatedMemberRequest {\n employerCodes: string;\n chooseType: string;\n agentCodes: string;\n}\n\nexport interface RelatedMemberResponse {\n id: string;\n member_name: string;\n member_type: string;\n}\n\nexport interface AgentReassignmentMemberCountRequet {\n employerCodes: string;\n chooseMember: string;\n agentCodes: string;\n}\n\nexport interface AgentReassignmentMemberProcessRequet {\n memberIds: string[];\n employerCodes: string[];\n chooseType: MemberListTypeE;\n agentCodes: string[];\n newAgentCodes: string[];\n}\n\nexport interface PaymentConfirmSearchDTO extends IPageableRequest {\n period?: number;\n feedReceiveDateFrom?: string;\n feedReceiveDateFromShow?: string;\n feedReceiveDateTo?: string;\n feedReceiveDateToShow?: string;\n}\n\nexport interface PaymentConfirmDTO {\n id?: string;\n feedReceiveDate?: string;\n noOfRecord?: string;\n amount?: string;\n reissueAmount?: string;\n status?: string;\n}\n\nexport interface AgentPerformanceHeadSearchDTO extends IPageableRequest {\n agentCode?: string;\n period?: number;\n assignmentDateFrom?: string;\n assignmentDateFromShow?: string;\n assignmentDateTo?: string;\n assignmentDateToShow?: string;\n}\nexport interface AgentPerformanceHeadDTO {\n agentCode?: string;\n agentName?: string;\n agentNameChi?: string;\n outStanding?: string;\n initialContact?: string;\n scheduleMeetUp?: string;\n canNotReachClient?: string;\n rejectedByClient?: string;\n completed?: string;\n total?: string;\n transferToGs?: string;\n firstName?: string;\n lastName?: string;\n chineseFirstName?: string;\n chineseLastName?: string;\n contactMap?: any;\n expandData?: any;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { AuditLogService } from './audit-log.service';\n\nimport { dateRangeInCompleteValidator, dateRangeInvalidValidator, dateValidator, uuidValidator } from 'src/app/core/validators';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { aoaToSheet, FileType } from 'src/app/utils/xlsx';\nimport {\n AccountTypeOptions,\n AUDIT_HISTORY_COLUMNS,\n EXCEL_COLUMNS,\n FILE_NAME,\n I18N_KEY,\n PAGE_SIZE,\n ServiceOptions,\n SubServiceOptions,\n} from './audit-history.config';\nimport { CdPopupService, CdPopupSize, MatDialogRef } from 'src/app/shared/cd-popup';\n\n@Component({\n styleUrls: ['./audit-history.component.scss'],\n selector: 'app-audit-history',\n templateUrl: './audit-history.component.html',\n})\nexport class AuditHistoryComponent implements OnInit {\n isShowSearchDatePicker = true; // Fix DatePicker Bug\n serviceOptions = ServiceOptions;\n subServiceOptions = SubServiceOptions;\n accountTypesOptions = AccountTypeOptions;\n previousSearchParams: any;\n isDownLoading = false;\n isDataLoading = false;\n pageConfig: PageConfig = {};\n dataDisplayed: any[] = [];\n columnsConfig: Array = AUDIT_HISTORY_COLUMNS;\n formGroup = new FormGroup(\n {\n startDate: new FormControl(null, [\n dateValidator({\n error: I18N_KEY.DATE_INVALID,\n }),\n ]),\n endDate: new FormControl(null, [\n dateValidator({\n error: I18N_KEY.DATE_INVALID,\n }),\n ]),\n service: new FormControl(null),\n serviceSection: new FormControl(null),\n accountType: new FormControl(null),\n accountCode: new FormControl(null, [\n uuidValidator({\n error: I18N_KEY.ACCOUNT_CODE_INVALID,\n }),\n ]),\n },\n [\n dateRangeInCompleteValidator('startDate', 'endDate', { error: I18N_KEY.DATE_RANGE_INCOMPLETE }),\n dateRangeInvalidValidator('startDate', 'endDate', { error: I18N_KEY.DATE_RANGE_INVALID }),\n ]\n );\n\n get startDate() {\n return this.formGroup.get('startDate') as FormControl;\n }\n\n get endDate() {\n return this.formGroup.get('endDate') as FormControl;\n }\n\n get service() {\n return this.formGroup.get('service') as FormControl;\n }\n\n get serviceSection() {\n return this.formGroup.get('serviceSection') as FormControl;\n }\n\n get accountType() {\n return this.formGroup.get('accountType') as FormControl;\n }\n\n get accountCode() {\n return this.formGroup.get('accountCode') as FormControl;\n }\n\n get searchDisabled() {\n let tag = true;\n const controlValues = this.formGroup.value;\n const keys = Object.keys(controlValues);\n keys.forEach((key: string) => {\n if (controlValues[key]) {\n tag = false;\n }\n });\n return !this.service.value || tag || this.formGroup.invalid || this.isDataLoading;\n }\n\n get getTotalCount() {\n return this.pageConfig.totalCount || 0;\n }\n\n get downloadDisabled() {\n return !this.previousSearchParams || this.isDownLoading || !this.getTotalCount;\n }\n constructor(private toast: CdsToastService, private auditLogService: AuditLogService, private cdsPopup: CdPopupService) {}\n\n ngOnInit() {\n // this.search();\n }\n\n search() {\n this.previousSearchParams = null;\n this.pageConfig = {\n pageSize: PAGE_SIZE,\n current: 1,\n };\n this.getData();\n }\n\n getData() {\n this.isDataLoading = true;\n const params = this.createParams();\n this.auditLogService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDataLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.previousSearchParams = params;\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.totalElements,\n };\n const tempData = res.data.content || [];\n this.dataDisplayed = this.createDisplayData(tempData);\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createDisplayData(data: any[]) {\n return data.map((item: any) => {\n const before = item.before || {};\n const after = item.after || {};\n const fields = Object.keys({\n ...before,\n ...after,\n });\n const beforeArr: string[] = [];\n const afterArr: string[] = [];\n fields.forEach(key => {\n beforeArr.push(before[key] === undefined ? '' : JSON.stringify(before[key]));\n afterArr.push(after[key] === undefined ? '' : JSON.stringify(after[key]));\n });\n if (this.previousSearchParams.service === 'eb-ssms-commission-service') {\n const temp = item.section_key ? item.section_key.split(':') : '';\n return {\n ...item,\n sub_section: item.sub_section ? item.sub_section.split(':')[0] : '',\n action: item.action,\n originalValue: beforeArr,\n changedValue: afterArr,\n section_key: temp ? `${temp[0]}${temp[0] ? ' ' : ''}#${temp[1] ? temp[1] : ''}` : '',\n fields,\n createBy: item.createBy ? item.createBy.split(':')[0] : '',\n };\n }\n return {\n ...item,\n originalValue: beforeArr,\n changedValue: afterArr,\n fields,\n createBy: item.createBy,\n };\n });\n }\n\n createParams() {\n const params: any = {\n page: (this.pageConfig.current || 1) - 1,\n size: PAGE_SIZE,\n };\n if (this.previousSearchParams) {\n return { ...this.previousSearchParams, ...params };\n }\n const formValue = this.getFormValue();\n if (formValue.startDate) {\n formValue.startDate = moment(formValue.startDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (formValue.endDate) {\n formValue.endDate = moment(formValue.endDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (formValue.accountType && formValue.accountCode) {\n formValue.customerId = `${formValue.accountType}-${formValue.accountCode}`;\n }\n return { ...params, ...formValue };\n }\n\n getFormValue() {\n const valueTemp: any = {};\n const value = this.formGroup.value;\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n const inputValue = value[key] ? value[key].trim() : '';\n if (inputValue) {\n valueTemp[key] = inputValue;\n }\n });\n return valueTemp;\n }\n\n popupInfo() {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: I18N_KEY.POPUP_INFO,\n },\n size: CdPopupSize.SMALL,\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n reset() {\n this.previousSearchParams = null;\n this.formGroup.reset();\n this.isShowSearchDatePicker = false;\n this.pageConfig = {};\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n\n this.pageConfig = {\n current: 1,\n pageSize: PAGE_SIZE,\n totalCount: 0,\n };\n this.dataDisplayed = [];\n }\n\n pageChange(ev: any) {\n if (this.pageConfig.current !== ev.current) {\n this.pageConfig.current = ev.current;\n this.getData();\n }\n }\n\n download() {\n if (this.downloadDisabled) {\n return;\n }\n this.isDownLoading = true;\n const params = {\n ...this.previousSearchParams,\n current: 1,\n size: this.getTotalCount,\n };\n this.auditLogService\n .getData(params)\n .pipe(\n finalize(() => {\n this.isDownLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n const data = this.createDisplayData(res.data.content || []);\n const excelData = this.createExcelData(data);\n aoaToSheet(\n {\n fileName: `${FILE_NAME} ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.CSV,\n },\n excelData\n );\n } else {\n this.toast.error(res.message);\n }\n });\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n excelData.push(EXCEL_COLUMNS);\n data.forEach(item => {\n if (item.fields && item.fields.length > 0) {\n item.fields.forEach((key: string, index: number) => {\n const temp = [];\n if (index === 0) {\n temp.push(moment(item.updatedAt).format('DD/MM/YYYY HH:mm:ss'));\n temp.push(item.sub_section);\n temp.push(item.action);\n temp.push(item.section_key);\n } else {\n temp.push('');\n temp.push('');\n temp.push('');\n temp.push('');\n }\n temp.push(key);\n temp.push(item.originalValue ? item.originalValue[index] : '');\n temp.push(item.changedValue ? item.changedValue[index] : '');\n temp.push(item.createBy);\n excelData.push(temp);\n });\n } else {\n const temp = [];\n temp.push(moment(item.updatedAt).format('DD/MM/YYYY HH:mm:ss'));\n temp.push(item.sub_section);\n temp.push(item.action);\n temp.push(item.section_key);\n temp.push(item.fields);\n temp.push(item.originalValue);\n temp.push(item.changedValue);\n temp.push(item.createBy);\n excelData.push(temp);\n }\n });\n return excelData;\n }\n}\n"," \n
    \n
    \n
    \n
    \n {{ 'commission.pool.common.searchRecord' | lang }}\n
    \n
    \n
    \n \n \n \n \n {{ startDate.errors['error'] | lang }}\n {{ formGroup.errors['error'] | lang }}\n \n
    -
    \n
    \n \n \n \n \n {{ endDate.errors['error'] | lang }}\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n \n {{ accountCode.errors['error'] | lang }}\n
    \n
    \n
    \n \n {{ 'common.search' | lang }}\n \n \n {{ 'common.reset' | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {{ 'common.download' | lang }}\n \n \n \n
    \n \n \n
    \n {{ element.updatedAt | ssmsDate : 'dd/MM/yyyy HH:mm:ss' }}\n
    \n
    \n \n
    \n {{ field }}\n
    \n
    \n \n
    \n {{ originalV || ' ' }}\n
    \n
    \n \n
    \n {{ changedV || ' ' }}\n
    \n
    \n \n
    \n
    \n
    \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ColumnConfig } from 'src/app/shared/data-table';\n\nexport const PAGE_SIZE = 10;\nexport const FILE_NAME = 'Audit History Report';\n\nexport const I18N_KEY = {\n DATE_INVALID: 'setting.auditHistory.date.invalid',\n DATE_RANGE_INVALID: 'setting.auditHistory.dateRange.invalid',\n DATE_RANGE_INCOMPLETE: 'commission.common.dateRangeError',\n ACCOUNT_CODE_INVALID: 'setting.auditHistory.accountCode.invalid',\n COMMON_GOT: 'common.gotItWithExclamation',\n POPUP_INFO: 'setting.auditHistory.accountCodeInfo',\n};\n\nexport const SubServiceOptions: any[] = [\n { label: 'COMMISSION_SCALE_MANAGEMENT', value: 'COMMISSION_SCALE_MANAGEMENT' },\n { label: 'COMM_INFO_MAIN_COMM_SUMMARY', value: 'COMM_INFO_MAIN_COMM_SUMMARY' },\n { label: 'COMMISSION_SCHEME_MASTER_RECORD', value: 'COMMISSION_SCHEME_MASTER_RECORD' },\n { label: 'COMM_INFO_AGENT_CHANGE', value: 'COMM_INFO_AGENT_CHANGE' },\n { label: 'COMM_INFO_MAIN_PARTIES_OTHERS', value: 'COMM_INFO_MAIN_PARTIES_OTHERS' },\n { label: 'COMM_INFO_SCALE_RECORD', value: 'COMM_INFO_SCALE_RECORD' },\n { label: 'COMM_ADJ_APPEAL', value: 'COMM_ADJ_APPEAL' },\n { label: 'SYS_COMMISSION_DEFAULT_SCALE', value: 'SYS_COMMISSION_DEFAULT_SCALE' },\n { label: 'CALENDAR_COMMISSION_EVENT', value: 'CALENDAR_COMMISSION_EVENT' },\n { label: 'SHK_AGENT_ASSIGNMENT_AGENT', value: 'SHK_AGENT_ASSIGNMENT_AGENT' },\n { label: 'SHK_AUTO_ROLLOVER_OPS_STAFF', value: 'SHK_AUTO_ROLLOVER_OPS_STAFF' },\n { label: 'SHK_AUTO_ROLLOVER_FIN_STAFF', value: 'SHK_AUTO_ROLLOVER_FIN_STAFF' },\n { label: 'SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF', value: 'SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF' },\n { label: 'SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER', value: 'SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER' },\n { label: 'SHK_AGENT_ASSIGNMENT_MAPPING', value: 'SHK_AGENT_ASSIGNMENT_MAPPING' },\n { label: 'SHK_AGENT_ASSIGNMENT_REASSIGN', value: 'SHK_AGENT_ASSIGNMENT_REASSIGN' },\n];\n\nexport const AccountTypeOptions: any[] = [\n { label: 'ORSO-ER', value: 'ORSO-ER' },\n { label: 'ORSO-EE', value: 'ORSO-EE' },\n { label: 'Macau-ER (PPS)', value: 'Macau-ER (PPS)' },\n { label: 'Macau-EE (PPS)', value: 'Macau-EE (PPS)' },\n { label: 'Macau-ER (CPF)', value: 'Macau-ER (CPF)' },\n { label: 'Macau-EE (CPF)', value: 'Macau-EE (CPF)' },\n { label: 'Macau-PAP', value: 'Macau-PAP' },\n { label: 'MPF-ER', value: 'MPF-ER' },\n { label: 'MPF-EE', value: 'MPF-EE' },\n { label: 'MPF-SEP', value: 'MPF-SEP' },\n { label: 'MPF-SEP (AGENT)', value: 'MPF-SEP (AGENT)' },\n { label: 'MPF-TVC', value: 'MPF-TVC' },\n { label: 'MPF-FRC', value: 'MPF-FRC' },\n { label: 'MPF-PAP', value: 'MPF-PAP' },\n];\n\nexport const ServiceOptions: any[] = [\n { label: 'Commission Service', value: 'eb-ssms-commission-service' },\n { label: 'Customer Service', value: 'eb-ssms-customer-service' },\n { label: 'Payment Service', value: 'payment-service' },\n];\n\nexport const AUDIT_HISTORY_COLUMNS: Array = [\n { key: 'updatedAt', title: 'setting.auditHistory.updatedTime' },\n { key: 'sub_section', title: 'setting.auditHistory.subService' },\n { key: 'action', title: 'setting.auditHistory.action' },\n { key: 'section_key', title: 'setting.auditHistory.sectionKey' },\n { key: 'fields', title: 'setting.auditHistory.fields' },\n { key: 'originalValue', title: 'setting.auditHistory.originalValue' },\n { key: 'changedValue', title: 'setting.auditHistory.changedValue' },\n { key: 'createBy', title: 'setting.auditHistory.createdBy' },\n];\nexport const EXCEL_COLUMNS: Array = [\n 'Update Time',\n 'Service Section',\n 'Action',\n 'Customer_ID&Section Key',\n 'Fields',\n 'Original Value',\n 'Changed Value',\n 'Created By',\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\n\nimport { AuditHistoryComponent } from './audit-history.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n CdsDatepickerModule,\n CdsLanguageModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsPopupModule,\n ],\n declarations: [AuditHistoryComponent],\n})\nexport class AuditHistoryModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { BasicResponse } from '../../../core/models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuditLogService {\n constructor(private http: HttpClient) {}\n\n getData(params: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.notificationServiceExt}${'/audit/history/logs'}`, { params: params });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\n\nimport { CdPopupService, CdPopupSize, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { EventTypeKey } from 'src/app/views/system/calendar/shared/calendar.model';\nimport { CalendarService } from 'src/app/views/system/calendar/shared/calendar.service';\nimport { ReportNoEventComponent } from '../shared/report-no-event/report-no-event.component';\nimport { ApproveCommissionEventComponent } from '../shared/approve-commission-event/approve-commission-event.component';\nimport { ReviewDividendRateComponent } from '../shared/review-dividend-rate/review-dividend-rate.component';\n\n@Component({\n selector: 'app-approve-event',\n templateUrl: './approve-event.component.html',\n styleUrls: ['./approve-event.component.scss'],\n})\nexport class ApproveEventComponent implements OnInit {\n constructor(private dialogRef: MatDialogRef, private cdsPopup: CdPopupService, public calendarService: CalendarService) {}\n\n ngOnInit(): void {}\n\n approveEvent(event: any) {\n if (event.eventType === EventTypeKey.COMMISSION) {\n this.approveCommissionEvent(event);\n }\n if (event.eventType === EventTypeKey.PROC_DATE) {\n this.approveReportNo(event);\n }\n if (event.eventType === EventTypeKey.DIVIDEND_RECORD_DATE) {\n this.approveDividend(event);\n }\n }\n\n approveDividend(event: any): void {\n const popupRef: MatDialogRef = this.cdsPopup.open(ReviewDividendRateComponent, {\n size: CdPopupSize.LARGE,\n data: { data: event },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data && data.isChange) {\n if (data.eventType == EventTypeKey.DIVIDEND_RECORD_DATE) {\n this.calendarService.approvalEvents = this.calendarService.approvalEvents.filter(\n item => item.eventType !== data.event.eventType && item.year !== data.year\n );\n this.calendarService.reviewItems();\n } else {\n this.calendarService.approvalEvents = this.calendarService.approvalEvents.filter(item => item.eventType !== data.event.eventType);\n }\n }\n this.isClose();\n });\n }\n\n approveCommissionEvent(event: any) {\n const popupRef: MatDialogRef = this.cdsPopup.open(ApproveCommissionEventComponent, {\n size: CdPopupSize.LARGE,\n data: {\n data: event,\n reviewId: event.reviewId,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data && data.isChange) {\n this.calendarService.approvalEvents = this.calendarService.approvalEvents.filter(item => item.eventType !== data.event.eventType);\n }\n this.isClose();\n });\n }\n\n approveReportNo(event: any) {\n const popupRef: MatDialogRef = this.cdsPopup.open(ReportNoEventComponent, {\n size: CdPopupSize.LARGE,\n panelClass: ['calendar-popup-bg'],\n data: {\n event,\n isReview: false,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data && data.isChange) {\n this.calendarService.approvalEvents = this.calendarService.approvalEvents.filter(item => item.eventType !== EventTypeKey.PROC_DATE);\n }\n this.isClose();\n });\n }\n\n isClose() {\n if (!this.calendarService.approvalEvents.length) {\n this.dialogRef.close();\n }\n }\n}\n","\n
    {{ 'calendar.approveEvent.list' | lang }}
    \n \n
    \n \n
    \n
    \n
    \n
    {{ 'calendar.event.name' | lang }}
    \n
    \n
    \n
    {{ event.title }}
    \n
    \n
    {{ 'common.record.time.update' | lang }}: {{ event.createTime | date : 'dd/MM/yyyy' }}
    \n
    \n
    \n
    \n
    \n {{ 'calendar.event.added' | lang }}\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, ChangeDetectionStrategy, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { trigger, style, state, transition, animate, AnimationTriggerMetadata } from '@angular/animations';\nimport { map } from 'rxjs';\n\nimport { CalendarEvent } from 'angular-calendar';\nimport { startOfDay, endOfDay, isSameDay, isSameMonth } from 'date-fns';\n\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\n\nimport { EventItem, Category, EventType, CalendarEventNew, EventTypeKey, EventTypeCheck } from '../shared/calendar.model';\nimport { CalendarService } from '../shared/calendar.service';\nimport { MONTH_OPTS } from 'src/app/config/month.config';\nimport { CdPopupService, MatDialogRef, CdPopupSize } from 'src/app/shared/cd-popup';\nimport { COLORS, CATEGORY } from '../shared/calendar.config';\n\nimport { EventAddComponent } from '../event-add/event-add.component';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { ReportNoEventComponent } from '../shared/report-no-event/report-no-event.component';\nimport { ApproveEventComponent } from '../approve-event/approve-event.component';\nimport { DeclinedCommissionEventComponent } from '../declined-commission-event/declined-commission-event.component';\nimport { Router } from '@angular/router';\nimport { EventDetailsComponent } from '../event-details/event-details.component';\n\nexport const collapseAnimation: AnimationTriggerMetadata = trigger('collapse', [\n state(\n 'void',\n style({\n height: 0,\n overflow: 'hidden',\n 'padding-top': 0,\n 'padding-bottom': 0,\n })\n ),\n state(\n '*',\n style({\n height: '*',\n overflow: 'hidden',\n 'padding-top': '*',\n 'padding-bottom': '*',\n })\n ),\n transition('* => void', animate('300ms ease-out')),\n transition('void => *', animate('300ms ease-in')),\n]);\n\n@Component({\n selector: 'app-calendar-component',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n animations: [collapseAnimation],\n})\nexport class CalendarComponent implements OnInit {\n hasReviewPermission = false;\n hasApprovePermission = false;\n hasEditPermission = false;\n checkdEvents: Array = CATEGORY;\n\n eventTypes: Array;\n\n monthCfg: CdsDropdownConfig;\n mh = new Date().getMonth();\n yearCfg!: CdsDropdownConfig;\n yr = new Date().getFullYear();\n\n viewDate: Date;\n\n events: CalendarEventNew[] = [];\n eventDisplay: CalendarEventNew[] = [];\n\n activeDayIsOpen = false;\n\n constructor(\n private cdPopup: CdPopupService,\n public calendarService: CalendarService,\n private permissionService: PermissionService,\n private ref: ChangeDetectorRef,\n private router: Router\n ) {\n this.eventTypes = this.calendarService.createEventTypes(CATEGORY);\n const date = new Date();\n this.viewDate = date;\n this.mh = date.getMonth();\n this.yr = date.getFullYear();\n this.monthCfg = {\n options: MONTH_OPTS,\n };\n }\n\n ngOnInit(): void {\n this.setPermission();\n this.getEvents();\n }\n\n setPermission() {\n const arr = [\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SYS_CALENDAR_REVIEWER),\n this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SYS_CALENDAR_APPROVE),\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SYS_CALENDAR),\n ];\n Promise.all(arr).then(accessArr => {\n this.hasReviewPermission = accessArr[0];\n this.hasApprovePermission = accessArr[1];\n this.hasEditPermission = accessArr[2];\n this.setReportNoReviewEvents();\n this.setApproveEvents();\n this.setDeclineEvents();\n this.listDividendRateRview();\n });\n }\n\n listDividendRateRview() {\n this.calendarService.reviewItems();\n }\n\n setReportNoReviewEvents() {\n if (this.hasReviewPermission) {\n this.calendarService.setReportNoReviewEvents(() => {\n this.ref.detectChanges();\n });\n }\n }\n\n setDeclineEvents() {\n if (this.hasEditPermission) {\n this.calendarService.setDeclineEvents(() => {\n this.ref.detectChanges();\n });\n }\n }\n\n setApproveEvents() {\n if (this.hasApprovePermission) {\n this.calendarService.setApproveEvents(() => {\n this.ref.detectChanges();\n });\n }\n }\n\n getEvents() {\n this.calendarService\n .getEvents()\n .pipe(\n map((data: Array>>) => {\n return data\n .map((result: BasicResponse | any>) => {\n const res = { ...result };\n res.data = res.data.events || res.data || [];\n return res;\n })\n .filter((result: BasicResponse>) => {\n return result.data && result.data.length;\n })\n .reduce((pre: Array, cur: BasicResponse>) => {\n return pre.concat(cur.data as Array);\n }, []);\n })\n )\n .subscribe((data: Array) => {\n this.yearCfg = {\n placeholder: '',\n options: this.createYearOpts(data),\n };\n const eventDisplay = this.createCalendarEvent(data);\n this.eventDisplay = this.sortEvents(eventDisplay);\n this.filter();\n });\n }\n\n createYearOpts(data: Array) {\n const currentYear = new Date().getFullYear();\n const nextYear = new Date().getFullYear() + 1;\n const year = [currentYear, nextYear];\n data.forEach(item => {\n const eventEndYear = new Date(item.eventEndDate).getFullYear();\n const eventStartYear = new Date(item.eventStartDate ? item.eventStartDate : item.eventEndDate).getFullYear();\n if (!year.includes(eventStartYear) && eventStartYear > 1990) {\n year.push(eventStartYear);\n }\n if (!year.includes(eventEndYear) && eventEndYear > 1990) {\n year.push(eventEndYear);\n }\n });\n const yearOpts = year\n .sort((a, b) => b - a)\n .map(item => {\n return {\n label: item.toString(),\n value: item,\n };\n });\n return yearOpts;\n }\n\n createCalendarEvent(data: any): Array {\n const temp: Array = [];\n if (data && data.length > 0) {\n data.forEach((item: EventItem) => {\n const event = this.createEventItem(item);\n if (event) {\n temp.push(event);\n }\n });\n }\n return temp;\n }\n\n createEventItem(data: EventItem): CalendarEventNew | undefined {\n const temp = this.eventTypes.find((item: EventType) => item.key === data.eventType);\n if (temp === undefined) {\n return undefined;\n }\n let start;\n if (data.eventType === EventTypeKey.COMMISSION) {\n start = startOfDay(new Date(data.eventEndDate));\n } else {\n start = startOfDay(new Date(data.eventStartDate as string));\n }\n const editable = temp.editable;\n return {\n eventId: data.eventId,\n sequence: temp.sequence || 0,\n id: data.eventId,\n eventType: temp.key,\n start,\n end: endOfDay(new Date(data.eventEndDate)),\n title: temp.title,\n editable,\n color: COLORS[temp.color],\n allDay: true,\n eventStr: data.eventEndDate,\n };\n }\n\n eventCheckChange(list: EventTypeCheck) {\n this.checkdEvents = this.checkdEvents.map(category => {\n category.children = category.children.map(child => {\n return child.key === list.key ? list : child;\n });\n return category;\n });\n this.filter();\n }\n\n sortEvents(data: Array) {\n return data.sort((a, b) => a.sequence - b.sequence);\n }\n\n mounthChange(mh: number) {\n this.viewDate = new Date(this.viewDate.getFullYear(), mh, 1);\n this.closeOpenMonthViewDay();\n }\n\n yearChange(yr: number) {\n this.viewDate = new Date(yr, this.viewDate.getMonth(), 1);\n this.closeOpenMonthViewDay();\n }\n\n dayClicked({ date, events }: { date: Date; events: CalendarEvent[] }): void {\n if (!isSameMonth(date, this.viewDate)) {\n return;\n }\n if ((isSameDay(this.viewDate, date) && this.activeDayIsOpen === true) || events.length === 0) {\n this.activeDayIsOpen = false;\n this.viewDate = date;\n return;\n }\n this.viewDate = date;\n this.activeDayIsOpen = true;\n }\n\n filter() {\n const temp: Array = [];\n let events: Array = [];\n this.checkdEvents.forEach((value: any) => {\n value.children.forEach((list: any) => {\n list.checked && temp.push(list.key);\n });\n });\n if (this.eventDisplay && this.eventDisplay.length) {\n events = this.eventDisplay.filter((item: any) => {\n return temp.includes(item.eventType);\n });\n }\n this.events = events;\n this.ref.detectChanges();\n }\n\n reviewEvent(): void {\n const popupRef: MatDialogRef = this.cdPopup.open(ReportNoEventComponent, {\n size: CdPopupSize['LARGE'],\n panelClass: ['calendar-popup-bg'],\n data: {\n event: this.calendarService.reviewEvents,\n isReview: true,\n },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data && data.isChange) {\n this.ref.detectChanges();\n this.setApproveEvents();\n }\n });\n }\n\n addNewEvent(): void {\n const popupRef: MatDialogRef = this.cdPopup.open(EventAddComponent, { size: CdPopupSize['LARGE'] });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm) {\n this.setApproveEvents();\n }\n });\n }\n\n approvalEvent() {\n const lenth = this.calendarService.approvalEvents.length;\n const popupRef: MatDialogRef = this.cdPopup.open(ApproveEventComponent, {\n size: CdPopupSize.LARGE,\n panelClass: ['calendar-popup-bg'],\n });\n popupRef.afterClosed().subscribe(() => {\n if (lenth !== this.calendarService.approvalEvents.length) {\n this.ref.detectChanges();\n this.getEvents();\n this.setDeclineEvents();\n }\n });\n }\n\n declineEvent() {\n if (!this.calendarService.declineEvents) {\n return;\n }\n const popupRef: MatDialogRef = this.cdPopup.open(DeclinedCommissionEventComponent, {\n size: CdPopupSize.LARGE,\n data: { event: this.calendarService.declineEvents },\n });\n popupRef.afterClosed().subscribe(data => {\n if (data) {\n this.setApproveEvents();\n }\n });\n }\n\n editEventPop(event: CalendarEventNew): void {\n if (event.eventType === EventTypeKey.DIVIDEND_RECORD_DATE) {\n this.router.navigate(['/employer/fund-benifit'], { queryParams: { index: 1 } });\n return;\n }\n const popupRef: MatDialogRef = this.cdPopup.open(EventDetailsComponent, {\n size: CdPopupSize.LARGE,\n data: { event: event },\n });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n closeOpenMonthViewDay() {\n this.mh = this.viewDate.getMonth();\n this.yr = this.viewDate.getFullYear();\n this.activeDayIsOpen = false;\n }\n}\n","
    \n
    \n \n Events pending approval \n here.\n
    \n
    \n
    \n
    \n \n Update on declined cases, please review the events \n here.\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n {{ 'calendar.action.add' | lang }}\n
    \n\n \n \n
    \n \n
    \n {{ 'calendar.action.review' | lang }}\n
    \n \n 0\">\n
    \n
    \n \n
    \n {{ 'calendar.action.review' | lang }}({{ this.calendarService.reviewItems() }})\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 } from '@angular/core';\n\nimport { CALENDAR_TAB } from './shared/calendar.config';\nimport { CalendarService } from './shared/calendar.service';\nimport { Tab } from 'src/app/core/models/enum';\n\n@Component({\n selector: 'app-day-card',\n templateUrl: './day-card.component.html',\n styleUrls: ['./day-card.component.scss'],\n})\nexport class DayCardComponent implements OnInit {\n tab: Array = CALENDAR_TAB;\n\n constructor(public calendarService: CalendarService) {}\n\n ngOnInit(): void {}\n\n tabClick(i: Tab) {\n this.tab.forEach((j: Tab) => {\n const item: Tab = j;\n if (item.value == i.value) {\n item.selected = true;\n } else {\n item.selected = false;\n }\n });\n }\n}\n","
    \n
    \n
    \n
    \n {{ 'calendar.page.title' | lang }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    {{ item.label | lang }}
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n
    \n
    \n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatSelectInfiniteScrollModule } from 'ng-mat-select-infinite-scroll';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDatepickerModule } from '@cds/ng-web-components/datepicker';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsNavigationModule } from '@cds/ng-web-components/navigation';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\n\nimport { CalendarModule as CM, DateAdapter } from 'angular-calendar';\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { DayCardComponent } from './day-card.component';\nimport { CalendarComponent } from './calendar/calendar.component';\nimport { EventDetailsComponent } from './event-details/event-details.component';\nimport { EventEditListComponent } from './event-edit-list/event-edit-list.component';\nimport { EventCheckComponent } from './shared/event-check/event-check.component';\nimport { EventAddComponent } from './event-add/event-add.component';\nimport { ReportNoEventComponent } from './shared/report-no-event/report-no-event.component';\nimport { ApproveEventComponent } from './approve-event/approve-event.component';\nimport { ApproveCommissionEventComponent } from './shared/approve-commission-event/approve-commission-event.component';\nimport { UpdateCommissionEventComponent } from './shared/update-commission-event/update-commission-event.component';\nimport { DeclinedCommissionEventComponent } from './declined-commission-event/declined-commission-event.component';\nimport { ReviewDividendRateComponent } from './shared/review-dividend-rate/review-dividend-rate.component';\n\n@NgModule({\n declarations: [\n DayCardComponent,\n CalendarComponent,\n EventDetailsComponent,\n EventEditListComponent,\n EventCheckComponent,\n EventAddComponent,\n ReportNoEventComponent,\n ApproveEventComponent,\n ApproveCommissionEventComponent,\n UpdateCommissionEventComponent,\n DeclinedCommissionEventComponent,\n ReviewDividendRateComponent,\n ],\n imports: [\n CM.forRoot({\n provide: DateAdapter,\n useFactory: adapterFactory,\n }),\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n // CalendarRoutingModule,\n CdsButtonModule,\n CdsTextfieldModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsNavigationModule,\n CdsPaginationModule,\n CdsTableModule,\n CdsCheckboxModule,\n CdsSearchModule,\n CdsPopupModule,\n CdsFormFieldModule,\n CdsAssistiveTextModule,\n CdsDropdownModule,\n CdsProgressModule,\n CdsSortModule,\n CdsDatepickerModule,\n\n MatTreeModule,\n MatSelectModule,\n MatSelectInfiniteScrollModule,\n MatMenuModule,\n MatDatepickerModule,\n MatAutocompleteModule,\n\n SharedModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class DayCardModule {\n constructor() {}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CalendarService } from 'src/app/views/system/calendar/shared/calendar.service';\nimport { CdPopupService, MatDialogRef, CDS_POPUP_DATA } from 'src/app/shared/cd-popup';\nimport { I18N_KEY_FOR_API_RES } from '../shared/calendar.config';\n\n@Component({\n selector: 'app-declined-commission-event',\n templateUrl: './declined-commission-event.component.html',\n styleUrls: ['./declined-commission-event.component.scss'],\n})\nexport class DeclinedCommissionEventComponent implements OnInit {\n commissionEventInitValue: number[][] = [];\n\n saveParams: any; // call api params\n disabled = false; // for confirms button\n\n constructor(\n private dialogRef: MatDialogRef,\n private ref: ChangeDetectorRef,\n private cdsPopup: CdPopupService,\n public calendarService: CalendarService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n event: any;\n }\n ) {}\n\n ngOnInit(): void {\n const events = this.data.event.events;\n this.initPreviousDeclineData(events);\n }\n\n initPreviousDeclineData(data: any[]) {\n this.saveParams = [];\n if (data && data.length > 0) {\n data.forEach(item => {\n this.saveParams.push({\n eventEndDate: item.eventDate,\n });\n const data = new Date(item.eventDate);\n const eventMonth = data.getMonth();\n const eventDay = data.getDate();\n if (!this.commissionEventInitValue[eventMonth]) {\n this.commissionEventInitValue[eventMonth] = [];\n }\n this.commissionEventInitValue[eventMonth].push(eventDay);\n this.commissionEventInitValue[eventMonth].sort((a, b) => a - b);\n });\n }\n }\n\n commissionChange($event: any) {\n this.disabled = $event.invalid;\n this.saveParams = [];\n $event.value.forEach((item: string) => {\n this.saveParams.push({\n eventEndDate: `${this.calendarService.nextYear}-${item}`,\n });\n });\n this.ref.detectChanges();\n }\n\n cancle() {\n this.dialogRef.close();\n }\n\n reSubmit() {\n if (this.disabled) {\n return;\n }\n this.calendarService.addCommissionEvents(this.saveParams).subscribe(res => {\n if (res.result == ResponseResult.SUCCESS) {\n this.calendarService.declineEvents = null;\n const popupRef: MatDialogRef = this.cdsPopup.openCommon();\n popupRef.afterClosed().subscribe(() => {\n this.dialogRef.close({\n isChange: true,\n });\n });\n } else {\n this.cdsPopup.openCommon({\n data: {\n message: I18N_KEY_FOR_API_RES[res.message] || res.message,\n },\n });\n }\n });\n }\n}\n","\n \n \n
    \n
    Edit Declined Event
    \n {{ 'common.fillIn' | lang }}\n
    \n
    Event Name
    \n
    Commission End
    \n
    \n
    \n {{ 'calendar.event.year' | lang }}\n {{ calendarService.nextYear }}\n
    \n
    \n \n
    \n
    \n
    \n \n {{ 'common.cancel' | lang }}\n {{ 'common.resubmit' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\n\nimport { EventTypeKey } from 'src/app/views/system/calendar/shared/calendar.model';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CalendarService } from 'src/app/views/system/calendar/shared/calendar.service';\n\nimport { CATEGORY, I18N_KEY_FOR_API_RES, I18N_KEY } from '../shared/calendar.config';\nimport { CdPopupService, CdPopupType, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\n\n@Component({\n selector: 'app-event-add',\n templateUrl: './event-add.component.html',\n styleUrls: ['./event-add.component.scss'],\n})\nexport class EventAddComponent implements OnInit {\n dropdownConfig!: CdsDropdownConfig;\n eventTypeSelected = new FormControl('');\n eventTypeKey = EventTypeKey;\n\n saveParams: any; // call api params\n disabled = true; // for confirms button\n isLastTwoMonths = false;\n\n hasNextYearCommissionEvent = false;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdsPopup: CdPopupService,\n private ref: ChangeDetectorRef,\n public calendarService: CalendarService,\n private toastAlert: ToastAlertService\n ) {}\n\n ngOnInit() {\n this.eventTypeSelected.valueChanges.subscribe(() => {\n this.disabled = true;\n });\n this.initDropOpts();\n this.setLastTwoMonths();\n this.getNextYearCommissionEvents();\n }\n\n setLastTwoMonths() {\n const currentMonth = new Date().getMonth() + 1;\n this.isLastTwoMonths = currentMonth === 11 || currentMonth === 12;\n }\n\n getNextYearCommissionEvents() {\n this.calendarService.getNextYearCommissionEvents().subscribe(res => {\n res.forEach(item => {\n if (item.data) {\n this.hasNextYearCommissionEvent = true;\n }\n });\n });\n // this.calendarService\n // .getDeclineCommissionEvents({\n // year: this.calendarService.nextYear,\n // status: EventStatus.REJECTED,\n // })\n // .subscribe(res => {\n // if (res.data) {\n // this.hasNextYearCommissionEvent = true;\n // }\n // });\n }\n\n typeChange(val: string) {\n if (val === EventTypeKey.DIVIDEND_RECORD_DATE) {\n this.calendarService.loadDividendRate();\n }\n }\n\n initDropOpts() {\n this.dropdownConfig = {\n placeholder: I18N_KEY.EVENT_CHOOSE_NAME,\n options: this.calendarService\n .createEventTypes(CATEGORY)\n .filter(item => {\n // return item.addable && ((!this.hasNextYearCommissionEvent && this.isLastTwoMonths) || item.key !== EventTypeKey.COMMISSION);\n return item.addable;\n })\n .map(item => {\n return {\n label: item.title,\n value: item.key,\n };\n }),\n };\n }\n\n dividendRateDisabled() {\n return this.calendarService.mothList.filter(x => !x.recordDate || x.status === 'Approved').length > 0;\n }\n\n commissionChange($event: any) {\n this.disabled = $event.invalid;\n this.saveParams = [];\n $event.value.forEach((item: string) => {\n this.saveParams.push({\n eventEndDate: `${this.calendarService.nextYear}-${item}`,\n });\n });\n this.ref.detectChanges();\n }\n\n onSubmitDividend() {\n this.calendarService.saveDividendRate().subscribe(res => {\n if (res.data) {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: I18N_KEY_FOR_API_RES[res.message] || res.message,\n },\n });\n popupRef.afterClosed().subscribe(() => {\n if (res.result == ResponseResult.SUCCESS) {\n this.dialogRef.close({\n isChange: true,\n });\n }\n });\n } else {\n this.toastError(res.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n onSubmit() {\n if (this.disabled) {\n return;\n }\n this.calendarService.addCommissionEvents(this.saveParams).subscribe(res => {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: I18N_KEY_FOR_API_RES[res.message] || res.message,\n },\n });\n popupRef.afterClosed().subscribe(() => {\n if (res.result == ResponseResult.SUCCESS) {\n this.dialogRef.close({\n isChange: true,\n });\n }\n });\n });\n }\n\n cancle() {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n type: CdPopupType.CONTINUE,\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n },\n });\n popupRef.afterClosed().subscribe(res => {\n if (res.continue) {\n this.dialogRef.close();\n }\n });\n }\n}\n","\n \n
    \n
    \n {{ 'calendar.action.add' | lang }}\n
    \n {{ 'common.fillIn' | lang }}\n
    \n
    \n {{ 'calendar.action.chooseName' | lang }}*\n
    \n \n
    \n
    \n
    {{ 'calendar.addCommissionDuplited' | lang }}
    \n
    {{ 'calendar.addCommissionLimit' | lang }}
    \n
    \n {{ 'calendar.event.year' | lang }}\n {{ calendarService.nextYear }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n {{ 'dividend-rate.event-year' | lang }}\n
    \n {{ calendarService.nextYear }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'dividend-rate.month' | lang }}\n \n {{ 'dividend-rate.record-date' | lang }}\n
    \n {{ item.month }}\n \n {{ item.monthName }}\n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'common.cancel' | lang }}\n {{ 'common.confirm' | lang }}\n \n \n {{ 'common.cancel' | lang }}\n {{ 'common.confirm' | lang }}\n \n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit, Inject } from '@angular/core';\nimport { FormGroup, FormControl, FormBuilder, AbstractControl } from '@angular/forms';\n\nimport moment from 'moment';\n\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\n\nimport { I18N_KEY } from '../shared/calendar.config';\nimport { CdPopupService, MatDialogRef, CDS_POPUP_DATA, CdPopupType } from 'src/app/shared/cd-popup';\nimport { requiredValidator, dateValidator } from 'src/app/core/validators';\n@Component({\n selector: 'app-event-details',\n templateUrl: './event-details.component.html',\n styleUrls: ['./event-details.component.scss'],\n})\nexport class EventDetailsComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n hasPermission = false;\n isEditAble = true;\n isShowDatePicker = true;\n formGroup: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private cdsPopup: CdPopupService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n event: any;\n },\n private permissionService: PermissionService\n ) {\n const { end, editable } = data.event;\n this.isEditAble = editable;\n this.formGroup = this.fb.group({\n eventDate: new FormControl(\n {\n value: moment(end, 'DD/MM/YYYY').format('DD/MM/YYYY'),\n disabled: !this.isEditAble,\n },\n {\n initialValueIsDefault: true,\n validators: [requiredValidator({ error: I18N_KEY.DATE_REQUIRED }), dateValidator({ error: I18N_KEY.INVALID_DATE_FORMAT })],\n }\n ),\n });\n }\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SYS_CALENDAR).then(hasPermission => {\n this.hasPermission = hasPermission;\n });\n }\n\n get eventDate() {\n return this.formGroup.get('eventDate') as AbstractControl;\n }\n\n get saveDisabled() {\n return !this.isEditAble || this.eventDate.invalid || this.eventDate.value === moment(this.data.event.end, 'DD/MM/YYYY').format('DD/MM/YYYY');\n }\n\n get resetDisabled() {\n return this.eventDate.value === moment(this.data.event.end, 'DD/MM/YYYY').format('DD/MM/YYYY');\n }\n\n reset() {\n if (this.resetDisabled) {\n return;\n }\n this.isShowDatePicker = false;\n setTimeout(() => {\n this.isShowDatePicker = true; // fix datePicker bug\n });\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n type: CdPopupType.CONTINUE,\n data: {\n message: I18N_KEY.COMMON_ACTION_CANCLE,\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.continue) {\n this.formGroup.reset();\n }\n });\n }\n\n onSubmit() {\n if (this.saveDisabled) {\n return;\n }\n }\n}\n","\n \n \n
    \n
    \n {{ 'calendar.action.details' | lang }}\n
    \n {{ 'common.fillIn' | lang }}\n\n
    \n
    \n {{ 'calendar.event.name' | lang }}\n
    \n
    \n {{ data.event.title | lang }}\n
    \n
    \n\n
    \n
    \n {{ 'calendar.event.date' | lang }}\n *\n
    \n
    \n \n \n
    \n \n {{ eventDate.errors?.['error'] | lang}}\n \n
    \n
    \n
    \n {{ eventDate.value }}\n
    \n
    \n
    \n
    \n \n {{ 'common.reset' | lang }}\n {{ 'common.save' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormControl, AbstractControl } from '@angular/forms';\n\nimport { EventItem, EventType, QueryEventParams, EventTableItem, EventTypeKey, DividendRate } from 'src/app/views/system/calendar/shared/calendar.model';\nimport moment from 'moment';\nimport { CalendarService } from 'src/app/views/system/calendar/shared/calendar.service';\nimport {\n CATEGORY,\n I18N_KEY,\n EVENT_TABLE_COLUMNS_NORMAL,\n EVENT_TABLE_COLUMNS_PROC_DATE,\n EVENT_TABLE_COLUMNS_COMMISSION,\n EVENT_TABLE_DIVIDEND_RATE,\n} from '../shared/calendar.config';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { finalize, map } from 'rxjs';\nimport { ReportNoValidator, dateFormRangeValidator } from '../shared/calendar.validators';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { EventAddComponent } from '../event-add/event-add.component';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { FileType, aoaToSheet } from 'src/app/utils/xlsx';\nimport { CdPopupService, CdPopupSize, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { dateValidator } from 'src/app/core/validators';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { DividendRateSearch } from 'src/app/views/employer/employer';\n\n@Component({\n selector: 'app-event-edit-list',\n templateUrl: './event-edit-list.component.html',\n styleUrls: ['./event-edit-list.component.scss'],\n})\nexport class EventEditListComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n\n eventTypes!: Array;\n eventTypeSelect!: EventType;\n eventTypeKey = EventTypeKey;\n\n searchForm = new FormGroup(\n {\n fromDate: new FormControl('', [dateValidator({ error: I18N_KEY.INVALID_DATE_FROM_FORMAT })]),\n toDate: new FormControl('', [dateValidator({ error: I18N_KEY.INVALID_DATE_TO_FORMAT })]),\n reportNo: new FormControl('', [ReportNoValidator(I18N_KEY.INVALID_REPORT_NO)]),\n },\n { validators: dateFormRangeValidator(I18N_KEY.INVALID_DATE_FORM) }\n );\n isShowSearchDatePicker = true;\n\n yearCodeConfig: CdsDropdownConfig = {\n label: 'Calendar Year',\n placeholder: 'Select Calendar Year',\n options: [],\n };\n\n searchDTO: DividendRateSearch = {};\n\n dividendList: DividendRate[] = [];\n\n fundCodeConfig: CdsDropdownConfig = {\n label: 'Fund Code',\n placeholder: 'Select Fund Code',\n options: [\n {\n label: 'SHK150 Manulife MPF Retirement Income Fund',\n value: 1,\n },\n ],\n };\n\n _fundCode = 1;\n\n get fromDate() {\n return this.searchForm.get('fromDate') as AbstractControl;\n }\n\n get toDate() {\n return this.searchForm.get('toDate') as AbstractControl;\n }\n\n get reportNo() {\n return this.searchForm.get('reportNo') as AbstractControl;\n }\n\n get isSearchDisabled() {\n return this.searchForm.invalid || (!this.fromDate.value && !this.toDate.value && !this.reportNo.value);\n }\n\n loading = false;\n pageConfig: PageConfig = {\n pageSize: 20,\n };\n dataDisplayed: any[] = [];\n columnsConfig: Array = [{ key: 'date', title: 'EventDate' }];\n\n get isResetDisable() {\n return this.fromDate.value || this.toDate.value || (this.eventTypeSelect.key === EventTypeKey.PROC_DATE && this.reportNo.value);\n }\n\n approveDeatil: any;\n\n get downloadDisabled() {\n return this.dataDisplayed.length <= 0 || this.isDownLoading;\n }\n\n isDownLoading = false;\n\n constructor(private cdsPopup: CdPopupService, private calendarService: CalendarService, private permissionService: PermissionService) {}\n\n ngOnInit(): void {\n this.eventTypes = this.calendarService.createEventTypes(CATEGORY);\n this.eventTypeChange(this.eventTypes[0]);\n }\n\n getEvents(): void {\n this.loading = true;\n const params = this.createParams();\n this.calendarService\n .getEvents(params)\n .pipe(\n map((data: Array | any>>) => {\n return data\n .map((result: BasicResponse | any>) => {\n const res = { ...result };\n if (this.eventTypeSelect.key === EventTypeKey.COMMISSION) {\n this.approveDeatil = res.data;\n res.data = res.data.events || [];\n }\n return res;\n })\n .filter((result: BasicResponse | any>) => {\n return result.data && result.data.length;\n })\n .reduce((pre: Array, cur: BasicResponse>) => {\n return pre.concat(cur.data as Array);\n }, []);\n })\n )\n .subscribe((data: Array) => {\n const tempData = this.createEvents(data);\n this.dataDisplayed = tempData;\n this.loading = false;\n });\n }\n\n createParams(): QueryEventParams {\n const obj: QueryEventParams = {};\n obj.eventType = this.eventTypeSelect.key;\n if (this.fromDate.value) {\n obj.eventStartDate = moment(this.fromDate.value, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (this.toDate.value) {\n obj.eventEndDate = moment(this.toDate.value, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (this.reportNo.value) {\n obj.reportNo = this.reportNo.value;\n }\n return obj;\n }\n\n createEvents(data: Array): Array {\n const tempData: Array = [];\n if (data && data.length) {\n data.forEach(item => {\n const { eventEndDate, eventDate } = item;\n const dateStr = eventDate ? eventDate : eventEndDate;\n const editable = this.eventTypeSelect.editable;\n tempData.push({\n eventDateStr: moment(new Date(dateStr), 'DD/MM/YYYY').format('DD/MM/YYYY'),\n actionDisplay: false,\n isChange: false,\n isShowDatePicker: true,\n editable,\n ...item,\n });\n });\n }\n return tempData;\n }\n\n sort(data: Array) {\n const temp = data.sort((a, b) => moment(b.eventEndDate, 'YYYY/MM/DD').diff(moment(a.eventEndDate, 'YYYY/MM/DD'), 'days'));\n return [...temp];\n }\n\n addNewEvent(): void {\n const popupRef: MatDialogRef = this.cdsPopup.open(EventAddComponent, { size: CdPopupSize['LARGE'] });\n popupRef.afterClosed().subscribe(() => {});\n }\n\n eventTypeChange(eventType: EventType): void {\n if (this.eventTypeSelect === eventType) {\n return;\n }\n this.eventTypeSelect = eventType;\n this.searchForm.reset();\n\n let columnsConfig: Array = EVENT_TABLE_COLUMNS_NORMAL;\n if (eventType.key == EventTypeKey.PROC_DATE) {\n columnsConfig = EVENT_TABLE_COLUMNS_PROC_DATE;\n }\n if (eventType.key == EventTypeKey.COMMISSION) {\n columnsConfig = EVENT_TABLE_COLUMNS_COMMISSION;\n }\n if (eventType.key == EventTypeKey.DIVIDEND_RECORD_DATE) {\n columnsConfig = EVENT_TABLE_DIVIDEND_RATE;\n this.yearsInit();\n }\n this.columnsConfig = columnsConfig;\n this.getEvents();\n }\n\n yearsInit() {\n this.loading = true;\n this.calendarService\n .getDividendYearList()\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe(res => {\n if (res.data) {\n const _list: CdsOption[] = [];\n res.data.forEach(x => {\n _list.push({\n label: x,\n value: x,\n });\n });\n this.yearCodeConfig.options = _list;\n this.yearCodeConfig = { ...this.yearCodeConfig };\n if (_list.length > 0) {\n this.searchDTO.year = _list[0].value;\n }\n }\n });\n }\n\n selectedChange(val: string, type: string) {\n switch (type) {\n case 'year':\n this.searchDTO.year = val;\n break;\n default:\n }\n this.loadTable();\n }\n\n loadTable() {\n if (!this.searchDTO.year) {\n return;\n }\n const params: DividendRateSearch = this.getRequestParams();\n this.loading = true;\n this.calendarService\n .getDividendEventList(params)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0) {\n this.dividendList = data.data ? data.data : [];\n }\n });\n }\n\n getRequestParams() {\n const params: DividendRateSearch = { ...this.searchDTO };\n return params;\n }\n\n search() {\n if (this.isSearchDisabled) {\n return;\n }\n this.getEvents();\n }\n\n reset() {\n this.isShowSearchDatePicker = false;\n setTimeout(() => {\n this.isShowSearchDatePicker = true; // Fix DatePicker Bug\n });\n this.searchForm.reset();\n this.getEvents();\n }\n\n pageChange() {\n document.getElementsByClassName('cds-navigation-content')[0].scrollTo({\n top: 240,\n behavior: 'smooth',\n });\n }\n\n download() {\n if (this.downloadDisabled) {\n return;\n }\n\n this.isDownLoading = true;\n const fileName = this.eventTypeSelect.fileName;\n\n const excelData = this.createExcelData(this.dataDisplayed);\n this.isDownLoading = false;\n\n aoaToSheet(\n {\n fileName: `${fileName} ${moment().format('YYYYMMDD_HHmmss')}`,\n fileType: FileType.CSV,\n },\n excelData\n );\n }\n\n createExcelData(data: any[]) {\n const excelData: any[] = [];\n const fileHeader = 'Report Date:';\n let excelColumns = ['Event Date'];\n if (this.eventTypeSelect.key == EventTypeKey.PROC_DATE) {\n excelColumns = ['Proc Date', 'Report No.'];\n } else if (this.eventTypeSelect.key == EventTypeKey.COMMISSION) {\n excelColumns = ['From', 'To'];\n } else if (this.eventTypeSelect.key == EventTypeKey.HOLIDAY) {\n excelColumns = ['Holiday Date'];\n } else if (this.eventTypeSelect.key == EventTypeKey.A_C_MONTH_END) {\n excelColumns = ['A/C Month End Date'];\n }\n\n excelData.push([`${fileHeader}${moment().format('YYYY-MM-DD HH:MM:SS')}`]);\n excelData.push(excelColumns);\n data.forEach(item => {\n const temp = [];\n if (this.eventTypeSelect.key == EventTypeKey.PROC_DATE) {\n temp.push(item.eventEndDate);\n temp.push(item.reportNo);\n } else if (this.eventTypeSelect.key == EventTypeKey.COMMISSION) {\n temp.push(item.eventStartDate);\n temp.push(item.eventEndDate);\n } else if (this.eventTypeSelect.key == EventTypeKey.HOLIDAY || this.eventTypeSelect.key == EventTypeKey.A_C_MONTH_END) {\n temp.push(item.eventEndDate);\n }\n\n excelData.push(temp);\n });\n return excelData;\n }\n}\n","
    \n
    \n
    \n {{ 'calendar.event.list' | lang }}\n
    \n \n
    \n
    \n \n
    \n {{ 'calendar.action.add' | lang }}\n
    \n
    \n
    \n
    \n
    {{ 'calendar.action.choose' | lang }}
    \n
    \n
    \n
    {{ item.title | lang }}
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n {{ fromDate.errors?.['error'] | lang }}\n \n \n {{ searchForm.errors?.['error'] | lang }}\n \n
    \n
    -
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n {{ toDate.errors?.['error'] | lang }}\n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n {{reportNo.errors?.['error'] | lang}}\n \n
    \n
    \n
    \n \n {{ 'common.search' | lang }}\n \n \n {{ 'common.reset' | lang }}\n \n
    \n \n {{ 'calendar.download' | lang }}\n
    \n
    \n
    \n
    \n\n \n

    \n \n {{ 'calendar.request.time' | lang }}\n {{ approveDeatil.createTime | ssmsDate }},{{ 'calendar.request.by' | lang }} {{ approveDeatil.createUser }}|\n \n {{ 'calendar.approve.time' | lang }}\n {{ approveDeatil.approveTime | ssmsDate }},{{ 'calendar.approve.by' | lang }} {{ approveDeatil.approveUser }}\n

    \n
    \n\n \n \n
    \n {{ element['eventDateStr'] }}\n
    \n
    \n \n
    \n {{ element['eventStartDate'] ? element['eventStartDate'] : '/' }}\n
    \n
    \n\n \n
    \n {{ element.month }}\n
    \n
    \n \n {{ element.recordDate | ssmsDate }}\n \n \n \n\n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n \n \n
    \n {{ element.month }}\n
    \n
    \n \n {{ element.recordDate | ssmsDate }}\n \n \n
    \n
    \n\n\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\n\nimport { CdPopupService, CdPopupSize, MatDialogRef, CDS_POPUP_DATA, CdPopupType } from 'src/app/shared/cd-popup';\n\nimport { CalendarService } from 'src/app/views/system/calendar/shared/calendar.service';\n\nimport { I18N_KEY, I18N_KEY_FOR_API_RES } from '../calendar.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { MONTH_OPTS } from 'src/app/config/month.config';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\n@Component({\n selector: 'app-approve-commission-event',\n templateUrl: './approve-commission-event.component.html',\n styleUrls: ['./approve-commission-event.component.scss'],\n})\nexport class ApproveCommissionEventComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n nextYear = new Date().getFullYear() + 1;\n commissionEventInitValue: number[][] = [];\n monthConfig = MONTH_OPTS;\n commitId = '';\n\n eventType: string;\n\n constructor(\n private dialogRef: MatDialogRef,\n private cdPopup: CdPopupService,\n private calendarService: CalendarService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n data: any;\n }\n ) {\n const dataTemp = this.data.data;\n this.eventType = dataTemp.title;\n this.commissionEventInitValue = [];\n dataTemp.events.map((item: any) => {\n const data = new Date(item.eventDate);\n const eventMonth = data.getMonth();\n const eventDay = data.getDate();\n if (!this.commissionEventInitValue[eventMonth]) {\n this.commissionEventInitValue[eventMonth] = [];\n }\n this.commitId = item.commitId;\n this.commissionEventInitValue[eventMonth].push(eventDay);\n this.commissionEventInitValue[eventMonth].sort((a, b) => a - b);\n });\n }\n\n ngOnInit() {}\n\n onSubmit() {\n this.approveRequest(true);\n }\n\n decline() {\n const popupRef: MatDialogRef = this.cdPopup.openCommon({\n size: CdPopupSize.MEDIUM,\n type: CdPopupType.CONTINUE,\n isShowClose: false,\n data: {\n message: I18N_KEY.CALENDAR_DECLINE_MSG,\n continue: I18N_KEY.CALENDAR_DECLINE,\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.continue) {\n this.approveRequest(false);\n }\n });\n }\n\n approveRequest(isApprove: boolean) {\n this.calendarService\n .reviewCommissionEvents({\n commitId: this.commitId,\n isApprove,\n })\n .subscribe(res => {\n if (res.result == ResponseResult.SUCCESS) {\n const popupRef: MatDialogRef = this.cdPopup.openCommon();\n popupRef.afterClosed().subscribe(() => {\n this.dialogRef.close({\n isChange: true,\n event: this.data.data,\n });\n });\n } else {\n this.cdPopup.openCommon({\n data: {\n message: I18N_KEY_FOR_API_RES[res.message] || res.message,\n },\n });\n }\n });\n }\n}\n","\n \n
    \n
    \n {{ 'calendar.event.approval' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n {{ 'common.alert' | lang }}\n
    \n
    \n {{ 'calendar.approve.alert' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'calendar.event.name' | lang }}\n
    \n
    {{ eventType | lang }}
    \n
    \n
    \n {{ 'calendar.event.year' | lang }}\n {{ nextYear }}\n
    \n
    \n
    \n
    \n
    \n
    {{ 'calendar.event.date' | lang }}*
    \n
    {{ 'calendar.event.date' | lang }}*
    \n
    \n
    \n \n \n
    \n
    \n {{ monthConfig[index].label | lang }}\n
    \n
    \n {{ myForm[0] }}\n
    \n
    \n {{ myForm[1] }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'common.decline' | lang }}\n {{ 'common.approve' | lang }}\n \n \n
    \n","import { Category, EventTypeKey } from 'src/app/views/system/calendar/shared/calendar.model';\nimport { EventColor } from 'calendar-utils';\nimport { Tab } from 'src/app/core/models/enum';\n\nexport const COLORS: Record = {\n green: {\n primary: '#06874e',\n secondary: '#06874e',\n },\n blue: {\n primary: '#1e1ee5',\n secondary: '#1e1ee5',\n },\n greenLight: {\n primary: '#00a758',\n secondary: '#00A758',\n },\n red: {\n primary: '#EC6453',\n secondary: '#EC6453',\n },\n turquoise: {\n primary: '#06c7ba',\n secondary: '#06c7ba',\n },\n gold: {\n primary: '#f49600',\n secondary: '#f49600',\n },\n};\n\nexport const CALENDAR_TAB: Array = [\n {\n label: 'calendar.tab.title',\n value: 'calendar',\n selected: true,\n },\n {\n label: 'eventList.tab.title',\n value: 'event',\n selected: false,\n },\n];\n\nexport const CATEGORY: Array = [\n {\n title: 'Accounting',\n color: 'cds-green',\n children: [\n {\n key: EventTypeKey.A_C_MONTH_END,\n color: 'greenLight',\n title: 'A/C Month end',\n editable: false,\n addable: false,\n checked: true,\n sequence: 1,\n fileName: 'Calendar_ACMonthEnd_report',\n },\n ],\n },\n {\n title: 'Commission',\n color: 'cds-turquoise',\n children: [\n {\n key: EventTypeKey.COMMISSION,\n color: 'turquoise',\n title: 'Commission End',\n editable: false,\n addable: true,\n checked: true,\n sequence: 3,\n fileName: 'Calendar_CommissionEnd_report',\n },\n ],\n },\n {\n title: 'Holiday',\n color: 'cds-coral',\n children: [\n {\n key: EventTypeKey.HOLIDAY,\n color: 'red',\n title: 'Holiday',\n editable: false,\n addable: false,\n checked: true,\n sequence: 5,\n fileName: 'Calendar_Holiday_report',\n },\n ],\n },\n {\n title: 'Proc date',\n color: 'cds-blue light-1',\n children: [\n {\n key: EventTypeKey.PROC_DATE,\n color: 'blue',\n title: 'Proc date',\n editable: false,\n addable: false,\n checked: true,\n sequence: 2,\n fileName: 'Calendar_ProcDate_report',\n },\n ],\n },\n {\n title: 'Dividend (Income Fund SHK150)',\n color: 'cds-coral',\n children: [\n {\n key: EventTypeKey.DIVIDEND_RECORD_DATE,\n color: 'red',\n title: 'Dividend Record Date',\n editable: true,\n addable: true,\n checked: true,\n sequence: 6,\n fileName: 'DIVIDEND_RECORD_DATE',\n },\n ],\n },\n];\n\nexport const I18N_KEY = {\n INVALID_DATE_FORMAT: 'calendar.date.Format',\n DATE_REQUIRED: 'calendar.date.required',\n INVALID_DATE_FROM_FORMAT: 'calendar.dateFrom.dateFormat',\n INVALID_DATE_TO_FORMAT: 'calendar.dateTo.dateFormat',\n INVALID_REPORT_NO: 'calendar.report.no',\n INVALID_DATE_FORM: 'calendar.dateFrom.dateRange',\n INVALID_COMMISSION_DATE_FORMAT: 'calendar.commission.dateFormat',\n INVALID_COMMISSION_DATE_ERROR: 'calendar.commission.dateError',\n INVALID_COMMISSION_DATE_EQUEAL: 'calendar.commission.dateEqueal',\n COMMON_ACTION_SUCCESS: 'common.action.success',\n COMMON_ACTION_CANCLE: 'common.action.cancel',\n COMMON_GOT: 'common.gotIt',\n COMMON_CANCEL: 'common.cancel',\n COMMON_DELETE: 'common.delete',\n COMMON_CONTINUE: 'common.continue',\n EVENT_DELETE_CONFIRM: 'calendar.action.deleteConfirm',\n SUCCESS: 'common.action.success',\n INVALID_FORMAT: 'calendar.action.invaidFormat',\n INVALID_DATE_RANGE: 'calendar.action.invaidDateRange',\n ALREADY_EXISTS: 'calendar.action.exists',\n EVENT_CHOOSE_NAME: 'calendar.action.chooseName',\n CALENDAR_DECLINE_MSG: 'calendar.decline.message',\n CALENDAR_DECLINE: 'calendar.action.declineConfirm',\n EVENT_RETURN_CONFIRM: 'calendar.returnConfirm',\n CALENDAR_CONFIRM: 'common.confirm',\n NORMAL_WORKING_DAY: 'calendar.event.normalWorkDay',\n};\n\nexport const I18N_KEY_FOR_API_RES: Record = {\n SUCCESS: 'common.action.success',\n INVALID_FORMAT: 'calendar.action.invaidFormat',\n INVALID_DATE_RANGE: 'calendar.action.invaidDateRange',\n ALREADY_EXISTS: 'calendar.action.exists',\n};\n\nexport const EVENT_TABLE_COLUMNS_NORMAL = [{ key: 'eventDateStr', title: 'EventDate' }];\n\nexport const EVENT_TABLE_COLUMNS_PROC_DATE = [\n { key: 'eventDateStr', title: 'Process Date' },\n { key: 'reportNo', title: 'Report No.' },\n];\n\nexport const EVENT_TABLE_COLUMNS_COMMISSION = [\n { key: 'eventStartDate', title: 'From' },\n { key: 'eventEndDate', title: 'To' },\n];\n\nexport const EVENT_TABLE_DIVIDEND_RATE = [\n { key: 'month', title: 'Month' },\n { key: 'recordDate', title: 'Record Date' },\n { key: 'status', title: 'Status' },\n];\n","import { CalendarEvent } from 'angular-calendar';\n\nexport enum EventTypeKey {\n A_C_MONTH_END = 'A_C_MONTH_END',\n PROC_DATE = 'PROC_DATE',\n COMMISSION = 'COMMISSION',\n HOLIDAY = 'HOLIDAY',\n DIVIDEND_RECORD_DATE = 'DIVIDEND_RECORD_DATE',\n}\n\nexport enum EventStatus {\n REJECTED = 'REJECTED',\n PENDING_REVIEW = 'PENDING_REVIEW',\n PENDING_APPROVE = 'PENDING_APPROVE',\n APPROVED = 'APPROVED',\n REVOKED = 'REVOKED',\n REJECTED_WITHDRAW = 'REJECTED_WITHDRAW',\n}\n\nexport interface Category {\n title: string;\n color: string;\n children: Array;\n}\n\nexport interface EventType {\n key: string;\n color: string;\n title: string;\n editable: boolean;\n addable: boolean;\n fileName?: string;\n sequence?: number;\n}\n\nexport interface EventTypeCheck extends EventType {\n checked: boolean;\n}\n\nexport interface CalendarEventNew extends CalendarEvent {\n eventId: string;\n eventType: string;\n editable: boolean;\n sequence: number;\n eventStr: string;\n}\n\nexport interface DayCardEvent {\n id: string;\n type: string;\n from: string;\n to?: string;\n reportNo?: string;\n actionDisplay: boolean;\n}\n\nexport interface QueryEventParams {\n eventId?: string;\n eventType?: string;\n reportNo?: string;\n eventStartDate?: string;\n eventEndDate?: string;\n}\n\nexport interface DividendRateRequest {\n year?: string;\n}\n\nexport interface DividendRateApprove {\n ids: string[];\n}\n\nexport interface DividendRateDoSubmit {\n year?: string;\n list?: DividendRate[];\n}\n\nexport interface DividendRateAdd {\n id?: string;\n month?: string;\n monthName?: string;\n recordDate?: string;\n}\n\nexport interface DividendRate {\n id?: string;\n year?: string;\n month?: string;\n recordDate?: string;\n status?: string;\n monthName?: string;\n dividendRate?: string;\n}\n\nexport interface AddEventItem {\n eventType?: string;\n eventDate?: string;\n eventStartDate?: string;\n eventId?: string;\n eventEndDate: string;\n}\n\nexport interface EventItem extends AddEventItem {\n eventId: string;\n reportNo?: number;\n}\n\nexport interface EventTableItem extends EventItem {\n errorMsg?: string;\n actionDisplay?: boolean;\n eventDateStr: string;\n isChange?: boolean;\n editable: boolean;\n isShowDatePicker?: boolean;\n}\n\nexport interface ReviewEventParam {\n commitId: string;\n isApprove: boolean;\n}\n\nexport interface GetReviewEventParam {\n year: string;\n isApprove?: boolean;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { forkJoin, map, Observable } from 'rxjs';\nimport moment from 'moment';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\n\nimport { environment } from 'src/environments/environment';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\nimport {\n EventItem,\n AddEventItem,\n QueryEventParams,\n Category,\n EventTypeCheck,\n EventTypeKey,\n ReviewEventParam,\n EventStatus,\n DividendRate,\n DividendRateDoSubmit,\n DividendRateApprove,\n} from './calendar.model';\nimport { CATEGORY, COLORS } from './calendar.config';\nimport { deepCopy } from 'src/app/utils/copy';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CalendarService {\n nextYear = new Date().getFullYear() + 1;\n reviewEvents: any;\n declineEvents: any;\n approvalEvents: any[] = [];\n\n _crrentYear = this.nextYear + '';\n mothList: DividendRate[] = [];\n\n constructor(private http: HttpClient, private toast: CdsToastService) {\n this.initDividend();\n }\n\n // get approved events\n getEvents(paramsObj?: any) {\n const arr = [];\n switch ((paramsObj as QueryEventParams)?.eventType) {\n case EventTypeKey.A_C_MONTH_END:\n arr.push(this.getReportingEvents(paramsObj));\n break;\n case EventTypeKey.PROC_DATE:\n arr.push(this.getAccountingEvents(paramsObj));\n break;\n case EventTypeKey.COMMISSION:\n arr.push(this.getCommissionEvents(paramsObj));\n break;\n case EventTypeKey.HOLIDAY:\n arr.push(this.getReportingEvents(paramsObj));\n break;\n case EventTypeKey.DIVIDEND_RECORD_DATE:\n arr.push(this.getDividendRateEvents(paramsObj));\n break;\n default:\n arr.push(this.getCommissionEvents(paramsObj));\n arr.push(this.getReportingEvents(paramsObj));\n arr.push(this.getAccountingEvents(paramsObj));\n arr.push(this.getDividendRateEvents(paramsObj));\n }\n return forkJoin(arr);\n }\n\n getCommissionEvents(params?: any): Observable> {\n return this.http.get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-event`, { params: params }).pipe(\n map(res => {\n if (res.data && res.data.events && res.data.events.length) {\n res.data.events = res.data.events.map((item: any) => {\n item.eventType = EventTypeKey.COMMISSION;\n return item;\n });\n }\n return res;\n })\n );\n }\n\n initDividend() {\n const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n const list: DividendRate[] = [];\n months.forEach((x, index) => {\n list.push({\n month: String(index + 1).padStart(2, '0'),\n monthName: x,\n recordDate: '',\n });\n });\n this.mothList = list;\n }\n\n getMinDate(mon?: string) {\n return moment(this.nextYear + '-' + mon, 'YYYY-MM');\n }\n\n getMaxDate(mon?: string) {\n return moment(this.nextYear + '-' + mon, 'YYYY-MM')\n .add(1, 'M')\n .add(-1, 'd');\n }\n\n reviewItems() {\n return this.approvalEvents.filter(x => x.eventType == EventTypeKey.DIVIDEND_RECORD_DATE).length;\n }\n\n approveReviewDividendRate(params?: any) {\n return this.http\n .get>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/approveReview`, { params: params })\n .pipe(\n map(res => {\n if (res.result !== ResponseResult.SUCCESS) {\n this.toast.error(res.message);\n return res;\n }\n if (res.data && res.data.length > 0) {\n const _map = res.data.reduce((group: { [x: string]: any[] }, i: { year: any }) => {\n const year = String(i.year) || '';\n if (!group[year]) {\n group[year] = [];\n }\n group[year].push(i);\n return group;\n }, {} as Record);\n const _res = [];\n for (const [year, value] of Object.entries(_map)) {\n _res.push({\n year: year,\n eventType: EventTypeKey.DIVIDEND_RECORD_DATE,\n items: value,\n });\n }\n res.data = _res;\n return res;\n }\n return res;\n })\n );\n }\n\n loadDividendRate() {\n this.initDividend();\n return this.http\n .get>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/editReview`, {\n params: {\n year: this.nextYear,\n },\n })\n .subscribe(res => {\n if (res.data && res.data.length > 0) {\n this.mothList.forEach(x => {\n res.data?.forEach(i => {\n if (x.month == i.month && i.recordDate) {\n x.recordDate = this.formatDate2(i.recordDate);\n x.id = i.id;\n }\n });\n });\n }\n });\n }\n\n formatDate(date?: string) {\n if (date) {\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return '';\n }\n\n formatDate2(date?: string) {\n if (date) {\n return moment(date, 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n return '';\n }\n\n doApproveDividendRate(event: any) {\n const params: DividendRateApprove = {\n ids: event.items.map((x: DividendRate) => x.id),\n };\n return this.http.post>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/doApprove`, params);\n }\n\n doDeclineDividendRate(event: any) {\n const params: DividendRateApprove = {\n ids: event.items.map((x: DividendRate) => x.id),\n };\n return this.http.post>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/doDecline`, params);\n }\n\n saveDividendRate() {\n const params: DividendRateDoSubmit = {\n year: this._crrentYear,\n list: deepCopy(this.mothList),\n };\n params.list?.forEach(x => {\n x.recordDate = this.formatDate(x.recordDate);\n x.year = this._crrentYear;\n x.month = x.month?.padStart(2, '0');\n });\n return this.http.post>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/doSubmit`, params);\n }\n\n getDividendYearList() {\n return this.http.get>>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-rate/yearList`);\n }\n\n getDividendEventList(param: any) {\n return this.http.get>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/eventPage`, {\n params: param,\n });\n }\n\n getDividendRateEvents(params?: any): Observable> {\n return this.http\n .get>(`${environment.apiPrefix}${environment.paymentServiceExt}/dividend-calendar/calendarList`, { params: params })\n .pipe(\n map(res => {\n if (res.data) {\n res.data = res.data.map((item: any) => {\n return {\n ...item,\n eventType: EventTypeKey.DIVIDEND_RECORD_DATE,\n eventId: item.id,\n eventEndDate: item.recordDate,\n };\n });\n }\n return res;\n })\n );\n }\n\n getReportingEvents(params?: any): Observable>> {\n return this.http.get>>(`${environment.apiPrefix}${environment.reportingServiceExt}/system-event`, { params: params });\n }\n\n getAccountingEvents(params?: any): Observable>> {\n return this.http.get>>(`${environment.apiPrefix}${environment.accountingServiceExt}/accounting/list`, { params: params });\n }\n\n setReportNoReviewEvents(cb: () => void) {\n const response = this.http.get>(`${environment.apiPrefix}${environment.accountingServiceExt}/accounting/reportNo/review-list`, {\n params: { year: this.nextYear },\n });\n response.subscribe(res => {\n if (res.result === ResponseResult.SUCCESS && res.data) {\n this.reviewEvents = res.data;\n cb();\n }\n });\n }\n\n // Report Events Review API\n reviewReportNoEvents(flowId: any) {\n return this.http.get>(`${environment.apiPrefix}${environment.accountingServiceExt}/accounting/reportNo/review/${flowId}`);\n }\n\n setApproveEvents(cb: () => void) {\n this.getApproveEvents()\n .pipe(\n map((data: any) => {\n return data\n .filter((result: BasicResponse) => {\n return result.data;\n })\n .reduce((pre: Array, cur: BasicResponse>) => {\n return pre.concat(cur.data as Array);\n }, []);\n })\n )\n .subscribe(data => {\n this.approvalEvents = data.map((item: any) => {\n return this.createApproveEvents(item);\n });\n cb();\n });\n }\n\n getApproveEvents() {\n const arr = [];\n arr.push(this.getApproveCommissionEvents({ year: this.nextYear, status: EventStatus.PENDING_APPROVE }));\n arr.push(this.getApproveReportNoEvents({ year: this.nextYear }));\n arr.push(this.approveReviewDividendRate());\n return forkJoin(arr);\n }\n\n getApproveCommissionEvents(params: any): Observable> {\n return this.http\n .get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-event/review/list`, {\n params: { ...params },\n })\n .pipe(\n map(res => {\n if (res.result !== ResponseResult.SUCCESS) {\n this.toast.error(res.message);\n return res;\n }\n if (res.data) {\n res.data = [\n {\n eventType: EventTypeKey.COMMISSION,\n ...res.data,\n },\n ];\n }\n return res;\n })\n );\n }\n\n getApproveReportNoEvents(params: any) {\n return this.http.get>(`${environment.apiPrefix}${environment.accountingServiceExt}/accounting/reportNo/approve-list`, { params }).pipe(\n map(res => {\n if (res.result !== ResponseResult.SUCCESS) {\n this.toast.error(res.message);\n return res;\n }\n if (res.data) {\n res.data = [\n {\n eventType: EventTypeKey.PROC_DATE,\n ...res.data,\n },\n ];\n }\n return res;\n })\n );\n }\n\n createApproveEvents(reviewEventItem: any) {\n const eventTypes = this.createEventTypes(CATEGORY);\n const eventType = eventTypes.find(item => item.key === reviewEventItem.eventType) || eventTypes[0];\n return {\n ...reviewEventItem,\n title: eventType.title,\n color: COLORS[eventType.color],\n };\n }\n\n // Report Events Approve API\n approveReportNoEvents(flowId: any) {\n return this.http.get>(`${environment.apiPrefix}${environment.accountingServiceExt}/accounting/reportNo/approve/${flowId}`);\n }\n\n // Commission Events Approve or Decline API\n reviewCommissionEvents(params: ReviewEventParam): Observable>> {\n return this.http.post>>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-event/review`, params);\n }\n\n setDeclineEvents(cb: () => void) {\n const request = this.getDeclineCommissionEvents({ year: this.nextYear, status: EventStatus.REJECTED });\n request.subscribe(res => {\n if (res.data) {\n const eventTypes = this.createEventTypes(CATEGORY);\n const eventType = eventTypes.find(i => i.key === res.data.eventType);\n res.data.declineTime = moment(res.data.events[0].actionTime).format('DD-MM-yyyy');\n res.data.title = eventType?.title;\n this.declineEvents = res.data;\n cb();\n }\n });\n }\n\n getDeclineCommissionEvents(params: any): Observable> {\n return this.http\n .get>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-event/review/list`, {\n params: { ...params },\n })\n .pipe(\n map(res => {\n if (res.result !== ResponseResult.SUCCESS) {\n this.toast.error(res.message);\n return res;\n }\n if (res.data) {\n res.data.eventType = EventTypeKey.COMMISSION;\n }\n return res;\n })\n );\n }\n\n // add commission events\n addCommissionEvents(params: Array): Observable>> {\n return this.http.post>>(`${environment.apiPrefix}${environment.commissionServiceExt}/commission-event`, params);\n }\n\n getNextYearCommissionEvents() {\n const arr = [];\n arr.push(\n this.getCommissionEvents({\n eventStartDate: `${this.nextYear}-01-01`,\n eventEndDate: `${this.nextYear}-12-31`,\n }).pipe(\n map(res => {\n if (!res.data || !res.data.events) {\n res.data = null;\n }\n return res;\n })\n )\n );\n // arr.push(this.getApproveCommissionEvents({ year: this.nextYear, status: EventStatus.PENDING_APPROVE }));\n arr.push(this.getDeclineCommissionEvents({ year: this.nextYear, status: EventStatus.REJECTED }));\n return forkJoin(arr);\n }\n\n createEventTypes(category: Array): Array {\n const tempArr: Array = [];\n return category.reduce((pre, cur: Category) => {\n return pre.concat(cur.children);\n }, tempArr);\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport moment from 'moment';\nimport { I18N_KEY } from './calendar.config';\n\n// Report No. must be number\nexport function ReportNoValidator(key: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const reg = /(^-?[1-9]([0-9]*)$|^-?[0-9]$)/;\n if (!control.value || reg.test(control.value)) {\n return null;\n }\n return { error: key };\n };\n}\n\n// from date must < to date\nexport function dateFormRangeValidator(key: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const fromDate = control.get('fromDate');\n const toDate = control.get('toDate');\n if (fromDate && toDate && fromDate.value && toDate.value) {\n if (moment(fromDate.value, 'DD/MM/YYYY') > moment(toDate.value, 'DD/MM/YYYY')) {\n return { error: key };\n }\n }\n return null;\n };\n}\n\n//commission event\nexport function commissionDateValiate(days: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (value === '') {\n return { error: I18N_KEY.DATE_REQUIRED };\n }\n const reg = /(^-?[1-9]([0-9]*)$|^-?[0-9]$)/;\n if (!reg.test(value)) {\n return { error: I18N_KEY.INVALID_COMMISSION_DATE_FORMAT };\n }\n if (value < 1 || value > days) {\n return { error: I18N_KEY.INVALID_COMMISSION_DATE_ERROR };\n }\n return null;\n };\n}\n\n//commission event of every month\nexport function commissionDateGroupValiate(control: AbstractControl): ValidationErrors | null {\n const eventDateOne = control.get('eventDateOne')?.value;\n const eventDateTwo = control.get('eventDateTwo')?.value;\n if (eventDateOne && eventDateTwo && eventDateOne === eventDateTwo) {\n return { error: I18N_KEY.INVALID_COMMISSION_DATE_EQUEAL };\n }\n return null;\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Category, EventTypeCheck } from 'src/app/views/system/calendar/shared/calendar.model';\n\n@Component({\n selector: 'app-event-check',\n templateUrl: './event-check.component.html',\n styleUrls: ['./event-check.component.scss'],\n})\nexport class EventCheckComponent implements OnInit {\n @Input() data!: Array;\n @Output() eventChange = new EventEmitter();\n constructor() {}\n\n ngOnInit(): void {}\n\n change(checked: boolean, list: EventTypeCheck): void {\n list.checked = checked;\n this.eventChange.emit(list);\n }\n}\n","\n
    \n
    \n {{ item.title | lang }}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { CdPopupService, MatDialogRef, CDS_POPUP_DATA } from 'src/app/shared/cd-popup';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { I18N_KEY } from '../calendar.config';\nimport { CalendarService } from '../calendar.service';\n\n@Component({\n selector: 'app-report-no-event',\n templateUrl: './report-no-event.component.html',\n styleUrls: ['./report-no-event.component.scss'],\n})\nexport class ReportNoEventComponent implements OnInit {\n permissionAccess = PermissionAccess;\n permissionItem = PermissionItem;\n\n event: any;\n isReview = true;\n dataDisplayed: any[] = [];\n pageConfig: PageConfig = {\n pageSize: 10,\n };\n loading = false;\n columnsConfig: Array = [\n { key: 'eventDate', title: 'Process Date' },\n { key: 'reportNo', title: 'Report No.' },\n ];\n constructor(\n public calendarService: CalendarService,\n @Inject(CDS_POPUP_DATA) public data: { isReview: boolean; event: any },\n private dialogRef: MatDialogRef,\n private cdPopup: CdPopupService\n ) {}\n\n ngOnInit(): void {\n this.isReview = this.data.isReview;\n this.event = this.data.event;\n this.dataDisplayed = this.data.event.items || [];\n this.dataDisplayed.sort((a, b) => a.reportNo - b.reportNo);\n }\n\n review() {\n this.calendarService.reviewReportNoEvents(this.data.event.flowId).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.requestPop();\n this.calendarService.reviewEvents = null;\n } else {\n this.requestPop(res.message);\n }\n });\n }\n\n approve() {\n this.calendarService.approveReportNoEvents(this.data.event.flowId).subscribe(res => {\n this.requestPop(res.result === ResponseResult.SUCCESS ? '' : res.message);\n });\n }\n\n cancle() {\n this.dialogRef.close();\n }\n\n requestPop(message?: string) {\n const popupRef: MatDialogRef = this.cdPopup.openCommon({\n data: {\n message: message || I18N_KEY.COMMON_ACTION_SUCCESS,\n },\n });\n popupRef.afterClosed().subscribe(() => {\n if (!message) {\n this.dialogRef.close({\n isChange: true,\n event: this.data.event,\n isReviewMode: this.isReview,\n });\n }\n });\n }\n}\n","\n \n
    \n
    \n {{ 'calendar.event.review' | lang }}\n
    \n
    \n {{ 'calendar.event.approval' | lang }}\n
    \n
    \n
    Item(s) summary:
    \n
    \n
    \n \n {{ event.firstDate | ssmsDate }}\n \n
    1st date of report no.
    \n
    \n
    \n {{ event.lastDate | ssmsDate }}\n
    Last date of report no.
    \n
    \n
    \n {{ event.publicHolidayCnt }}\n
    Number of public holiday
    \n
    \n
    \n {{ event.nonWorkingDayCnt }}\n
    Number of non working day
    \n
    \n
    \n {{ event.workingDayCnt }}\n
    Total number of working day
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {{ 'common.alert' | lang }}\n
    \n
    \n {{ 'calendar.approve.alert' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    Event Name
    \n
    Proc Date
    \n
    \n
    \n
    \n \n \n {{ element['eventDate'] | ssmsDate }}\n \n \n
    \n
    \n
    \n
    \n \n {{ 'common.cancel' | lang }}\n \n {{ 'common.review' | lang }}\n \n \n {{ 'common.approve' | lang }}\n \n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\n\nimport { CdPopupService, CdPopupSize, MatDialogRef, CDS_POPUP_DATA, CdPopupType } from 'src/app/shared/cd-popup';\n\nimport { CalendarService } from 'src/app/views/system/calendar/shared/calendar.service';\n\nimport { I18N_KEY, I18N_KEY_FOR_API_RES } from '../calendar.config';\n\n@Component({\n selector: 'app-review-dividend-rate',\n templateUrl: './review-dividend-rate.component.html',\n styleUrls: ['./review-dividend-rate.component.scss'],\n})\nexport class ReviewDividendRateComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n private cdPopup: CdPopupService,\n public calendarService: CalendarService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n data: any;\n }\n ) {}\n\n ngOnInit(): void {}\n\n onSubmit() {\n this.calendarService.doApproveDividendRate(this.data.data).subscribe(res => {\n if (res.data) {\n const popupRef: MatDialogRef = this.cdPopup.openCommon();\n popupRef.afterClosed().subscribe(() => {\n this.dialogRef.close({\n isChange: true,\n event: this.data.data,\n });\n });\n } else {\n this.cdPopup.openCommon({\n data: {\n message: I18N_KEY_FOR_API_RES[res.message] || res.message,\n },\n });\n }\n });\n }\n\n decline() {\n const popupRef: MatDialogRef = this.cdPopup.openCommon({\n size: CdPopupSize.MEDIUM,\n type: CdPopupType.CONTINUE,\n isShowClose: false,\n data: {\n message: I18N_KEY.CALENDAR_DECLINE_MSG,\n continue: I18N_KEY.CALENDAR_DECLINE,\n },\n });\n popupRef.afterClosed().subscribe(confirm => {\n if (confirm.continue) {\n this.calendarService.doDeclineDividendRate(this.data.data).subscribe(res => {\n if (res.data) {\n const popupRef: MatDialogRef = this.cdPopup.openCommon();\n popupRef.afterClosed().subscribe(() => {\n this.dialogRef.close({\n isChange: true,\n event: this.data.data,\n });\n });\n } else {\n this.cdPopup.openCommon({\n data: {\n message: I18N_KEY_FOR_API_RES[res.message] || res.message,\n },\n });\n }\n });\n }\n });\n }\n}\n","\n \n
    \n
    \n {{ 'calendar.event.approval' | lang }}\n
    \n
    \n
    \n \n
    \n
    \n {{ 'common.alert' | lang }}\n
    \n
    \n {{ 'calendar.approve.alert' | lang }}\n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'calendar.event.name' | lang }}\n
    \n
    {{ 'dividend-rate.dividend' | lang }}
    \n
    \n
    \n {{ 'calendar.event.year' | lang }}\n {{ data.data.year }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'dividend-rate.month' | lang }}\n \n {{ 'dividend-rate.record-date' | lang }}\n
    \n {{ item.month }}\n \n {{ item.recordDate | date : 'MMMM' }}\n \n {{ item.recordDate | ssmsDate }}\n
    \n
    \n
    \n
    \n
    \n \n {{ 'common.decline' | lang }}\n {{ 'common.approve' | lang }}\n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormArray } from '@angular/forms';\n\nimport { commissionDateValiate, commissionDateGroupValiate } from '../calendar.validators';\nimport { MONTH_OPTS } from 'src/app/config/month.config';\n\n@Component({\n selector: 'app-update-commission-event',\n templateUrl: './update-commission-event.component.html',\n styleUrls: ['./update-commission-event.component.scss'],\n})\nexport class UpdateCommissionEventComponent implements OnInit {\n @Output() valueChange = new EventEmitter();\n // @Input() hasNextYearCommissionEvent: boolean = true;\n @Input()\n set commissionEventInitValue(value: number[][]) {\n this._commissionEventInitValue = value;\n this.initFormArray();\n }\n get commissionEventInitValue() {\n return this._commissionEventInitValue;\n }\n\n private _commissionEventInitValue: number[][] = [];\n monthConfig = MONTH_OPTS;\n\n formGroup = this.fb.group({\n formArray: this.fb.array([]),\n });\n\n constructor(private fb: FormBuilder) {\n this.monthConfig.forEach(item => {\n this.formArray.push(\n this.fb.group(\n {\n eventDateOne: new FormControl('', commissionDateValiate(item.days)),\n eventDateTwo: new FormControl('', commissionDateValiate(item.days)),\n },\n {\n validators: commissionDateGroupValiate,\n }\n )\n );\n });\n }\n\n ngOnInit() {\n this.formArray.valueChanges.subscribe(value => {\n this.valueChange.emit({\n value: value.reduce((prev: string[], item: number[], index: number) => {\n const month = this.monthConfig[index].month;\n const valid = this.formArray.controls[index].valid;\n const temp: string[] = [];\n if (valid) {\n Object.values(item).forEach(str => {\n temp.push(`${month}-${this.transformDay(str.toString())}`);\n });\n }\n return temp.concat(prev);\n }, []),\n invalid: this.formArray.invalid,\n });\n });\n }\n\n initFormArray() {\n this._commissionEventInitValue.forEach((item, index) => {\n if (item && Array.isArray(item)) {\n const temp = item.sort((a, b) => a - b);\n const control = this.formArray.get(index.toString());\n if (control) {\n control.setValue({\n eventDateOne: temp[0] ? temp[0].toString() : '',\n eventDateTwo: temp[1] ? temp[1].toString() : '',\n });\n }\n }\n });\n }\n\n transformDay(str: string) {\n if (str.length > 1) {\n return str;\n }\n return `0${str}`;\n }\n\n get formArray() {\n return this.formGroup.controls['formArray'] as FormArray;\n }\n}\n","
    \n
    \n
    \n
    {{ 'calendar.event.date' | lang }}*
    \n
    {{ 'calendar.event.date' | lang }}*
    \n
    \n
    \n \n \n
    \n
    \n {{ monthConfig[index].label | lang }}\n
    \n
    \n \n
    \n \n {{ formArray.controls[index].get('eventDateOne')?.errors?.['error'] | lang }}\n \n \n {{ formArray.controls[index].errors?.['error'] | lang}}\n \n
    \n
    \n
    \n \n
    \n \n {{ formArray.controls[index].get('eventDateTwo')?.errors?.['error'] | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { ReportingRolePermissionGroupList } from 'src/app/core/models/enum/reporting-role.enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { ReportingRoleServiceService } from 'src/app/core/services/reporting-role-service.service';\n\n@Component({\n selector: 'app-reporting-role-create',\n templateUrl: './reporting-role-create.component.html',\n styleUrls: ['./reporting-role-create.component.scss'],\n})\nexport class ReportingRoleCreateComponent implements OnInit {\n rolePermissionGroupList = ReportingRolePermissionGroupList;\n isLoading = false;\n constructor(private router: Router, private reportingRoleServiceService: ReportingRoleServiceService, private toast: CdsToastService) {}\n\n ngOnInit() {}\n\n back() {\n this.router.navigate(['/system/reporting-role-list']);\n }\n\n save(param: any) {\n this.isLoading = true;\n this.reportingRoleServiceService\n .createRole(param)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.router.navigate(['/system/reporting-role-info'], {\n queryParams: { roleId: res.data?.roleId },\n });\n } else {\n this.toast.error(`Create role failed:${res.message}`);\n }\n });\n }\n}\n","\n\n
    \n \n
    \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { checkPermissionAccess } from 'src/app/utils/permission-utils';\nexport const enum PermissionCheckedStatus {\n TOTAL,\n PARTIALLY,\n NONE,\n}\n@Component({\n selector: 'app-reporting-role-form',\n templateUrl: './reporting-role-form.component.html',\n styleUrls: ['./reporting-role-form.component.scss'],\n})\nexport class ReportingRoleFormComponent implements OnInit {\n @Input() roleNameIn = '';\n @Input() rolePermissionGroup: any;\n @Input() roleHasPermission: any;\n @Output() save = new EventEmitter();\n @Output() delete = new EventEmitter();\n\n checkedPermission: any = {};\n permissionAccess = PermissionAccess;\n dispalyData: any[] = [];\n roleName = new FormControl('', [Validators.required, Validators.minLength(3)]);\n accessColumns: any[] = ['expand', 'permissionName', 'read', 'noAccess'];\n constructor() {}\n\n ngOnInit() {\n if (this.rolePermissionGroup) {\n for (const [key, value] of this.rolePermissionGroup) {\n this.dispalyData.push({\n permissionItem: key,\n expand: true,\n });\n value.forEach((p: any) => {\n this.dispalyData.push({\n parentId: key,\n permissionItem: p,\n });\n });\n }\n }\n if (this.roleNameIn) {\n this.roleName.setValue(this.roleNameIn);\n this.roleName.markAsDirty();\n }\n if (this.roleHasPermission) {\n this.checkedPermission = { ...this.roleHasPermission };\n }\n }\n\n get saveDisable() {\n return !this.roleName.dirty || this.roleName.invalid;\n }\n\n onDelete() {\n this.delete.emit();\n }\n\n onSave() {\n this.save.emit({\n roleName: this.roleName.value.trim(),\n permissions: this.checkedPermission,\n });\n }\n\n hiddenRow(row: any) {\n if (row.expand !== undefined) {\n return false;\n }\n const groupRow = this.dispalyData.find((item: any) => item.permissionItem === row.parentId);\n return !groupRow.expand;\n }\n\n getGroupStatus(espectAccess: PermissionAccess | null, groupId: string) {\n let totalPermission = 0;\n let selectPermission = 0;\n this.dispalyData.forEach(item => {\n if (item.parentId && item.parentId === groupId) {\n totalPermission++;\n const checkpermission = this.checkedPermission[item.permissionItem];\n if ((!espectAccess && !checkpermission) || (espectAccess && checkpermission && checkPermissionAccess(espectAccess, checkpermission))) {\n selectPermission++;\n }\n }\n });\n if (totalPermission === selectPermission) {\n return PermissionCheckedStatus.TOTAL;\n }\n if (selectPermission > 0) {\n return PermissionCheckedStatus.PARTIALLY;\n }\n return PermissionCheckedStatus.NONE;\n }\n\n isGroupCheck(espectAccess: PermissionAccess | null, groupId: string) {\n return this.getGroupStatus(espectAccess, groupId) === PermissionCheckedStatus.TOTAL;\n }\n\n isCheck(iExpectAccess: PermissionAccess | null, iPermissionItem: PermissionItem): boolean {\n const checkpermission = this.checkedPermission[iPermissionItem];\n return (!iExpectAccess && !checkpermission) || (iExpectAccess && checkpermission && checkPermissionAccess(iExpectAccess, checkpermission));\n }\n\n isPartially(iExpectAccess: PermissionAccess | null, iGroupId: string): boolean {\n return this.getGroupStatus(iExpectAccess, iGroupId) === PermissionCheckedStatus.PARTIALLY;\n }\n\n private setPermissionAccess(iExpectAccess: PermissionAccess | null, isChecked: boolean): PermissionAccess | null {\n if (isChecked) {\n return iExpectAccess;\n }\n if (iExpectAccess == PermissionAccess.E) {\n return PermissionAccess.W;\n }\n if (iExpectAccess == PermissionAccess.W) {\n return PermissionAccess.R;\n }\n return null;\n }\n\n changeGroup(isChecked: boolean, iExpectAccess: PermissionAccess | null, row: any) {\n const groupAccess = this.setPermissionAccess(iExpectAccess, isChecked);\n this.dispalyData.forEach(p => {\n if (p.parentId && p.parentId === row.permissionItem) {\n if (!groupAccess) {\n delete this.checkedPermission[p.permissionItem];\n } else {\n const toPermission = this.checkedPermission[p.permissionItem];\n if (!toPermission || !isChecked || !checkPermissionAccess(groupAccess, toPermission)) {\n this.checkedPermission[p.permissionItem] = groupAccess;\n }\n }\n }\n });\n }\n\n changePermission(isChecked: boolean, iExpectAccess: PermissionAccess | null, row: any) {\n if (row.permissionItem) {\n const selectAccess = this.setPermissionAccess(iExpectAccess, isChecked);\n if (!selectAccess) {\n delete this.checkedPermission[row.permissionItem];\n } else {\n this.checkedPermission[row.permissionItem] = selectAccess;\n }\n }\n }\n}\n","
    \n \n \n \n
    input is required
    \n
    Must be at least 3 characters long.
    \n
    \n
    \n
    \n \n {{ 'common.delete' | lang }}\n \n
    \n
    \n
    \n
    \n {{ 'role.accessRight' | lang }}\n
    \n

    {{ 'role.accessRight.notes' | lang }}

    \n
    \n \n \n \n\n \n \n \n \n \n \n \n\n \n {{ 'role.form.header.siteArea' | lang }} \n \n
    \n {{ permission.permissionItem }}\n
    \n
    \n
    \n\n \n \n {{ 'role.form.header.read' | lang }}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {{ 'role.form.header.noAccess' | lang }}\n \n \n
    \n \n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'common.save' | lang }}\n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { ReportingRolePermissionGroupList } from 'src/app/core/models/enum/reporting-role.enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { ReportingRoleServiceService } from 'src/app/core/services/reporting-role-service.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ConfirmPopupComponent } from 'src/app/shared/confirm-popup/confirm-popup.component';\n\n@Component({\n selector: 'app-reporting-role-info',\n templateUrl: './reporting-role-info.component.html',\n styleUrls: ['./reporting-role-info.component.scss'],\n})\nexport class ReportingRoleInfoComponent implements OnInit {\n rolePermissionGroupList = ReportingRolePermissionGroupList;\n roleId = '';\n roleName = '';\n roleHasPermission = {};\n tab = [\n {\n label: 'role.edit.tab.nameAccessRight',\n selected: false,\n },\n {\n label: 'role.edit.tab.assignUsers',\n selected: true,\n },\n ];\n tabSelected: any;\n isLoading = false;\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private cdsPopup: CdsPopupService,\n private reportingRoleServiceService: ReportingRoleServiceService,\n private toast: CdsToastService\n ) {}\n\n ngOnInit() {\n this.roleId = this.route.snapshot.queryParams['roleId'] || '';\n if (!this.roleId) {\n this.back();\n return;\n }\n this.getRoleInfo();\n this.tabClick(this.tab[0]);\n }\n\n getRoleInfo() {\n this.isLoading = true;\n this.reportingRoleServiceService\n .getRoleInfo(this.roleId)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.initInfo(res.data);\n }\n });\n }\n\n initInfo(info: any) {\n if (info) {\n this.roleName = info.roleName;\n this.roleHasPermission = info.permissions || {};\n }\n }\n\n back() {\n this.router.navigate(['/system/reporting-role-list']);\n }\n\n save(param: any) {\n this.isLoading = true;\n param.roleId = this.roleId;\n this.reportingRoleServiceService\n .updateRoleInfo(param)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.initInfo(res.data);\n } else {\n this.toast.error(`Create role failed:${res.message}`);\n }\n });\n }\n\n tabClick(tab: any) {\n this.tab.forEach((item: any) => {\n item.selected = false;\n });\n tab.selected = true;\n this.tabSelected = tab;\n }\n\n deleteConfirm() {\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: { title: 'role.confrim.delete' },\n })\n .afterClosed()\n .subscribe(result => {\n if (result.agree) {\n this.delete();\n }\n });\n }\n\n delete() {\n this.isLoading = false;\n this.reportingRoleServiceService\n .deleteRole(this.roleId)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.popupWithRedirect();\n } else {\n this.toast.error('Operation failed: ' + res.message);\n }\n });\n }\n private popupWithRedirect() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n title: 'common.action.changeSuccess',\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate(['/system/reporting-role-list']);\n });\n }\n}\n","\n\n
    \n
    \n
    \n
    {{ item.label | lang }}
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { ReportingRoleServiceService } from 'src/app/core/services/reporting-role-service.service';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\n\n@Component({\n selector: 'app-reporting-role',\n templateUrl: './reporting-role.component.html',\n styleUrls: ['./reporting-role.component.scss'],\n})\nexport class ReportingRoleComponent implements OnInit {\n permissionAccess = PermissionAccess.W;\n permissionItem = PermissionItem.SYS_ROLE_MANAGE;\n\n loading = false;\n dataDisplayed: any[] = [];\n columnsConfig: Array = [\n { key: 'roleName', title: 'role.list.table.role' },\n { key: 'userCounts', title: 'role.list.table.noUser' },\n ];\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 3,\n totalCount: 0,\n };\n\n get total() {\n return this.pageConfig.totalCount || 0;\n }\n\n constructor(private router: Router, private reportingRoleServiceService: ReportingRoleServiceService, private toast: CdsToastService) {}\n\n ngOnInit() {\n this.getData();\n }\n\n getData() {\n this.loading = true;\n this.reportingRoleServiceService\n .getRoles({\n page: (this.pageConfig.current as number) - 1,\n size: this.pageConfig.pageSize as number,\n })\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n )\n .subscribe({\n next: res => {\n const data = res.data;\n if (res.result === ResponseResult.SUCCESS && data) {\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements,\n };\n this.dataDisplayed = data.content || [];\n } else {\n this.toast.error(res.message);\n }\n },\n });\n }\n\n create() {\n this.router.navigate(['/system/reporting-role-create']);\n }\n\n edit(role: any) {\n this.router.navigate(['/system/reporting-role-info'], {\n queryParams: { roleId: role.roleId },\n });\n }\n\n reloadTable(event: any) {\n if (this.pageConfig.current !== event.current) {\n this.pageConfig.current = event.current;\n this.getData();\n }\n }\n}\n","\n
    \n \n \n \n \n {{ 'reportingRole.create.title' | lang }}\n \n \n \n \n \n \n \n {{ element['roleName'] }}\n {{ element['roleName'] }}\n \n \n \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\n\nimport { RoleAssignUsersModule } from './role-assign-users/role-assign-users.module';\n\nimport { ReportingRoleComponent } from './reporting-role.component';\nimport { ReportingRoleCreateComponent } from './reporting-role-create/reporting-role-create.component';\nimport { ReportingRoleInfoComponent } from './reporting-role-info/reporting-role-info.component';\nimport { ReportingRoleFormComponent } from './reporting-role-form/reporting-role-form.component';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\n\n@NgModule({\n imports: [CommonModule, SharedModule, CdsLanguageModule, CdsCheckboxModule, CdsButtonModule, CdsTabsModule, RoleAssignUsersModule, CdsTableModule],\n declarations: [ReportingRoleComponent, ReportingRoleCreateComponent, ReportingRoleInfoComponent, ReportingRoleFormComponent],\n})\nexport class ReportingRoleModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, Validators } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { debounceTime, distinctUntilChanged, finalize, Subject } from 'rxjs';\nimport { AclUserType } from 'src/app/core/models/enum/acl-user-type.enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { ReportingRoleServiceService } from 'src/app/core/services/reporting-role-service.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ConfirmPopupComponent } from 'src/app/shared/confirm-popup/confirm-popup.component';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\n\nconst unSelectAclUserValidator = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n const input = control.value || '';\n if (typeof input !== 'string' && input.length > 2) {\n return null;\n }\n const isValid = input?.id;\n return isValid ? null : { unselectAclUser: true };\n };\n};\n\n@Component({\n selector: 'app-role-assign-users',\n templateUrl: './role-assign-users.component.html',\n styleUrls: ['./role-assign-users.component.scss'],\n})\nexport class RoleAssignUsersComponent implements OnInit {\n @Input() roleId = '';\n\n aclUserLoading = false;\n isLoading = false;\n\n aclNames: CdsOption[] = [];\n aclName = new FormControl(\n { value: '', disabled: this.aclUserLoading },\n {\n validators: [Validators.required, Validators.minLength(2), unSelectAclUserValidator()],\n }\n );\n\n aclUserType: AclUserType = AclUserType.INTERNAL_STAFF;\n aclUsetTypeDropdownConfig: CdsDropdownConfig = {\n options: [],\n };\n\n searchValue = '';\n searchParam$ = new Subject();\n lastSearchkey = '';\n loading = false;\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n dataDisplayed: any[] = [];\n columnsConfig: Array = [\n { key: 'userName', title: 'user.table.username' },\n { key: 'userEmail', title: 'user.table.email' },\n { key: 'delete', title: 'table.action' },\n ];\n\n constructor(private cdsPopup: CdsPopupService, private toast: CdsToastService, private reportingRoleServiceService: ReportingRoleServiceService) {\n for (const item in AclUserType) {\n this.aclUsetTypeDropdownConfig.options.push({\n label: item,\n value: item,\n });\n }\n this.searchParam$.pipe(debounceTime(500), distinctUntilChanged()).subscribe(key => {\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n this.loadTable(key);\n });\n }\n\n ngOnInit() {\n this.aclName.valueChanges.pipe(debounceTime(500), distinctUntilChanged()).subscribe(selectedValue => {\n if (!selectedValue?.id) {\n this.aclUserSearch(selectedValue);\n }\n });\n // this.loadTable();\n }\n\n aclUserFormReset(): void {\n if (this.aclName.touched || this.aclName.dirty) {\n this.aclName.reset();\n this.aclName.markAsPristine();\n this.aclName.markAsUntouched();\n }\n }\n\n private aclUserSearch(key: string) {\n if (!!key && key.trim().length > 1 && !this.aclUserLoading) {\n this.aclNames = [];\n this.aclUserLoading = true;\n const params = {\n searchString: key,\n userType: this.aclUserType,\n page: 0,\n size: 100,\n };\n this.reportingRoleServiceService\n .getAclUsers(params)\n .pipe(\n finalize(() => {\n this.aclUserLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data && res.data.content?.length > 0) {\n this.aclNames = res.data.content.map((e: any) => {\n let label = e.userName;\n if (e.agentKey) {\n label += '('.concat(e.agentKey, ')');\n }\n return {\n label: label,\n details: e.email,\n value: { id: e.id },\n };\n });\n }\n },\n error: err => {\n console.error(err);\n },\n });\n }\n }\n\n addRoleUserEnable() {\n return !!this.roleId && !this.isLoading && !!this.aclName?.value?.id;\n }\n\n addUserToRole() {\n if (!this.addRoleUserEnable()) {\n return;\n }\n this.aclUserLoading = true;\n this.reportingRoleServiceService\n .addUserToRole({\n userId: this.aclName.value.id,\n userType: this.aclUserType,\n roleId: this.roleId,\n })\n .pipe(\n finalize(() => {\n this.aclUserLoading = false;\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.popupWithReload();\n } else {\n this.toast.error(`Operation failed : ${res.message}`);\n }\n });\n }\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: 'common.action.success',\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.pageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n const searchKey = this.searchValue ? this.searchValue.trim() : '';\n this.loadTable(searchKey);\n });\n }\n\n search() {\n const searchKey = this.searchValue ? this.searchValue.trim() : '';\n this.searchParam$.next(searchKey);\n }\n\n loadTable(searchKey: string) {\n this.isLoading = true;\n this.reportingRoleServiceService\n .getIdentityByRoleId({\n page: (this.pageConfig.current as number) - 1,\n size: 10,\n roleId: this.roleId,\n userName: searchKey,\n })\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe(res => {\n this.lastSearchkey = searchKey;\n const tempData = res.data.content || [];\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: res.data.totalElements,\n };\n this.dataDisplayed = tempData.map((item: any) => {\n return {\n id: item.id,\n roleId: item.roleId,\n userId: item.userId,\n userEmail: item.identity.userEmail,\n userName: item.identity.userName,\n };\n });\n });\n }\n\n pageChange(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.loadTable(this.lastSearchkey);\n }\n\n deleteUserConfirm(id: string) {\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: { title: 'role.confrim.delete' },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.delete(id);\n } else {\n this.isLoading = false;\n }\n });\n }\n\n delete(id: string) {\n this.reportingRoleServiceService.deleteUser(id).subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.popupWithReload();\n } else {\n this.toast.error(`Operation failed : ${res.message}`);\n }\n });\n }\n}\n","
    \n
    \n
    \n {{ 'role.edit.tab.assignUsers' | lang }}\n
    \n

    {{ 'role.edit.tab.assignUsers.notes' | lang }}

    \n
    \n
    \n \n \n \n \n
    Minimum 2 characters.
    \n
    Minimum 2 characters.
    \n \n
    0 && aclName.errors?.['unselectAclUser']; else userNotFoundError\">please select user
    \n User not found \n
    \n
    \n
    \n \n \n \n \n Add User\n \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsFormFieldModule } from '@cds/ng-web-components/form-field';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { RoleAssignUsersComponent } from './role-assign-users.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdsSearchModule,\n CdsFormFieldModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsLanguageModule,\n CdsDropdownModule,\n CdsButtonModule,\n CdsLinkModule,\n SharedModule,\n ],\n declarations: [RoleAssignUsersComponent],\n exports: [RoleAssignUsersComponent],\n})\nexport class RoleAssignUsersModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-role-create',\n templateUrl: './role-create.component.html',\n})\nexport class RoleCreateComponent implements OnInit {\n constructor(private router: Router) {}\n\n ngOnInit() {}\n\n back() {\n this.router.navigate(['/system/role-list']);\n }\n}\n","\n\n
    \n
    \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { RoleService } from 'src/app/core/services/role.service';\n\n@Component({\n selector: 'app-role-info',\n styleUrls: ['./role-info.component.scss'],\n templateUrl: './role-info.component.html',\n})\nexport class RoleInfoComponent implements OnInit {\n roldError = false;\n isLoading = false;\n roleId = '';\n roleName = '';\n formPermissions = new Map();\n\n selectedTabIndex = 0;\n tab = ['role.edit.tab.nameAccessRight', 'role.edit.tab.assignUsers'];\n\n constructor(private router: Router, private roleService: RoleService, private route: ActivatedRoute) {}\n\n ngOnInit(): void {\n const roleId = this.route.snapshot?.queryParams['roleId'];\n if (!roleId) {\n this.back();\n return;\n }\n this.roleId = roleId;\n this.getRoleInfo();\n }\n\n getRoleInfo() {\n this.isLoading = true;\n this.roleService\n .getById(this.roleId)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe({\n next: res => {\n if (res.result === ResponseResult.SUCCESS && res.data) {\n this.roleName = res.data.roleName;\n this.formPermissions = res.data.permissions || new Map();\n } else {\n this.roldError = true;\n }\n },\n error: () => {\n this.roldError = true;\n },\n });\n }\n\n back() {\n this.router.navigate(['/system/role-list']);\n }\n\n tabChange(tabIndex: number) {\n if (tabIndex === this.selectedTabIndex) return;\n this.selectedTabIndex = tabIndex;\n }\n\n errorEvent() {\n this.roldError = true;\n }\n}\n"," \n
    \n
    \n \n
    \n
    \n
    \n \n {{ item | lang }}\n
    \n
    \n \n \n
    \n\n\n
    \n \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { finalize } from 'rxjs';\n\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { BTN_CONFIG_SECONDARY } from 'src/app/config/btn.config';\nimport { RoleService } from 'src/app/core/services/role.service';\nimport { ColumnConfig, PageConfig } from 'src/app/shared/data-table';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\n\n@Component({\n selector: 'app-role-list',\n templateUrl: './role-list.component.html',\n styleUrls: ['./role-list.component.scss'],\n})\nexport class RoleListComponent implements OnInit {\n permissionAccess = PermissionAccess.W;\n permissionItem = PermissionItem.SYS_ROLE_MANAGE;\n\n btnCfg: CdsButtonConfig = BTN_CONFIG_SECONDARY;\n loading = false;\n overlay = false;\n pageConfig: PageConfig = {\n current: 1,\n pageSize: 10,\n totalCount: 0,\n };\n dataDisplayed: any[] = [];\n columnsConfig: Array = [\n { key: 'roleName', title: 'role.list.table.role' },\n { key: 'userCounts', title: 'role.list.table.noUser' },\n ];\n\n constructor(private router: Router, private roleService: RoleService, private toast: CdsToastService) {}\n\n ngOnInit(): void {\n this.getData();\n }\n\n getData() {\n this.loading = true;\n this.roleService\n .findAll({\n page: (this.pageConfig.current as number) - 1,\n size: this.pageConfig.pageSize as number,\n })\n .pipe(\n finalize(() => {\n this.loading = false;\n this.overlay = true;\n })\n )\n .subscribe({\n next: res => {\n const data = res.data;\n if (res.result === ResponseResult.SUCCESS && data) {\n this.pageConfig = {\n ...this.pageConfig,\n totalCount: data.totalElements,\n };\n this.dataDisplayed = data.content || [];\n } else {\n this.toast.error(res.message);\n }\n },\n error: err => {\n console.error('Call role-list API error: ', err);\n },\n });\n }\n\n create() {\n this.router.navigate(['/system/role-create']);\n }\n\n edit(role: any) {\n this.router.navigate(['/system/role-info'], {\n queryParams: { roleId: role.roleId },\n });\n }\n\n reloadTable(event: any) {\n this.pageConfig = {\n ...this.pageConfig,\n current: event.current,\n };\n this.getData();\n }\n}\n"," \n\n
    \n \n \n \n \n {{ 'role.create.title' | lang }}\n \n \n \n \n \n \n \n {{ element['roleName'] }}\n {{ element['roleName'] }}\n \n \n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { PermissionCheckedStatus, PermissionDto, PermissionList, RoleAccessTableData } from 'src/app/config/role-access-table.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { RolePermissionGroup } from 'src/app/core/models/enum/role.enum';\nimport { checkPermissionAccess } from 'src/app/utils/permission-utils';\n\n@Component({\n selector: 'app-role-info-access-table',\n templateUrl: './role-info-access-table.component.html',\n})\nexport class RoleInfoAccessTableComponent implements OnInit {\n permissionAccess = PermissionAccess;\n accessColumns: string[] = ['expand', 'permissionName', 'execute', 'edit', 'read', 'noAccess'];\n dataSource = new RoleAccessTableData(PermissionList);\n @Input() readOnly = false;\n @Input() data: Map = new Map();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n private getGroupStatus(iExpectAccess: PermissionAccess | null, iGroupId: RolePermissionGroup): PermissionCheckedStatus {\n let total = 0;\n let select = 0;\n for (const p of this.dataSource.data.value) {\n if (p.parentId === iGroupId && p.permissionItem) {\n total++;\n const checkpermission = this.data?.get(p.permissionItem);\n if ((!iExpectAccess && !checkpermission) || (!!iExpectAccess && !!checkpermission && checkPermissionAccess(iExpectAccess, checkpermission))) {\n select++;\n }\n }\n }\n if (total == select) {\n return PermissionCheckedStatus.TOTAL;\n } else if (select > 0) {\n return PermissionCheckedStatus.PARTIALLY;\n }\n return PermissionCheckedStatus.NONE;\n }\n\n isCheck(iExpectAccess: PermissionAccess | null, iPermissionItem: PermissionItem): boolean {\n const checkpermission = this.data?.get(iPermissionItem);\n return (!iExpectAccess && !checkpermission) || (!!iExpectAccess && !!checkpermission && checkPermissionAccess(iExpectAccess, checkpermission));\n }\n\n isGroupCheck(iExpectAccess: PermissionAccess | null, iGroupId: RolePermissionGroup) {\n return this.getGroupStatus(iExpectAccess, iGroupId) === PermissionCheckedStatus.TOTAL;\n }\n\n isPartially(iExpectAccess: PermissionAccess | null, iGroupId: RolePermissionGroup): boolean {\n return this.getGroupStatus(iExpectAccess, iGroupId) === PermissionCheckedStatus.PARTIALLY;\n }\n\n private setPermissionAccess(iExpectAccess: PermissionAccess | null, isChecked: boolean): PermissionAccess | null {\n if (isChecked) {\n if (iExpectAccess == null) {\n return null;\n } else {\n return iExpectAccess;\n }\n } else if (iExpectAccess == PermissionAccess.E) {\n return PermissionAccess.W;\n } else if (iExpectAccess == PermissionAccess.W) {\n return PermissionAccess.R;\n }\n return null;\n }\n\n changeGroup(isChecked: boolean, iExpectAccess: PermissionAccess | null, row: PermissionDto) {\n const groupAccess = this.setPermissionAccess(iExpectAccess, isChecked);\n console.debug(`groupAccess=${groupAccess}`);\n this.dataSource.data.value.forEach(p => {\n if (p.parentId === row.groupItem && p.permissionItem) {\n if (!groupAccess) {\n this.data.delete(p.permissionItem);\n } else {\n const toPermission = this.data.get(p.permissionItem);\n if (!toPermission || !isChecked || !checkPermissionAccess(groupAccess, toPermission)) {\n this.data.set(p.permissionItem, groupAccess);\n }\n }\n }\n });\n }\n\n changePermission(isChecked: boolean, iExpectAccess: PermissionAccess | null, row: PermissionDto) {\n if (row.permissionItem) {\n const selectAccess = this.setPermissionAccess(iExpectAccess, isChecked);\n if (!selectAccess) {\n this.data.delete(row?.permissionItem);\n } else {\n this.data.set(row?.permissionItem, selectAccess);\n }\n }\n }\n\n //hidden permission item by 'expand' status of permission group\n hiddenRow(row: PermissionDto) {\n if (row.expand !== undefined) {\n return false;\n }\n const tableData = this.dataSource.data.value;\n const parentRow = tableData.filter(data => !data.parentId && data.groupItem === row.parentId)[0];\n return !parentRow.expand;\n }\n}\n","\n \n \n \n \n \n \n \n\n \n {{ 'role.form.header.siteArea' | lang }} \n \n
    \n {{ permission.groupItem }}\n
    \n \n
    \n {{ permission.permissionItem }}\n
    \n
    \n
    \n
    \n\n \n {{ 'role.form.header.execute' | lang }} \n \n \n \n \n \n \n \n \n \n\n \n \n {{ 'role.form.header.edit' | lang }}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {{ 'role.form.header.read' | lang }}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {{ 'role.form.header.noAccess' | lang }}\n \n \n
    \n \n \n
    \n \n \n \n \n
    \n
    \n\n \n \n \n {{ data | json }}\n
    \n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { IRoleInfo } from 'src/app/core/models/role';\nimport { RoleService } from 'src/app/core/services/role.service';\nimport { whitespaceValidator } from 'src/app/core/validators';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { ConfirmPopupComponent } from 'src/app/shared/confirm-popup/confirm-popup.component';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'app-role-info-form',\n templateUrl: './role-info-form.component.html',\n})\nexport class RoleInfoFormComponent implements OnInit {\n @Input() roleId = '';\n @Input() role = '';\n @Input() formPermissions = new Map();\n @Output() errorEvent = new EventEmitter();\n // formPermissions = new Map();\n form: FormGroup;\n isLoading = false;\n get roleName() {\n return this.form.get('roleName');\n }\n\n constructor(\n private router: Router,\n private roleService: RoleService,\n private toast: CdsToastService,\n private cdsPopup: CdsPopupService,\n private langService: CdsLangService\n ) {\n this.form = new FormGroup({\n roleName: new FormControl(environment.profile == 'dev' ? 'testa' : '', {\n validators: [Validators.required, Validators.minLength(3), whitespaceValidator()],\n updateOn: 'change',\n }),\n });\n }\n\n ngOnInit() {\n this.form.patchValue({ roleName: this.role });\n // if (this.roleId) {\n // return\n // this.isLoading = true;\n // this.roleService\n // .getById(this.roleId)\n // .pipe(finalize(() => (this.isLoading = false)))\n // .subscribe({\n // next: res => {\n // if (res.result === 0 && !!res.data) {\n // this.form.patchValue({ roleName: res.data.roleName });\n // this.formPermissions = res.data.permissions\n // ? res.data.permissions\n // : new Map();\n // console.debug(`formPermissions=`, this.formPermissions);\n // } else {\n // this.errorEvent.emit(true);\n // }\n // },\n // error: err => {\n // this.errorEvent.emit(true);\n // console.error('call role-query API error: ', err);\n // },\n // });\n // }\n }\n\n private popupWithRedirect() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: 'common.action.success',\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.router.navigate(['/system/role-list']);\n });\n }\n\n deleteRole() {\n if (this.submittable() && this.roleId != null && !this.isLoading) {\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: { title: 'role.confrim.delete' },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree && this.roleId != null) {\n console.log('into deleteRole(), roleId = ', this.roleId);\n this.roleService\n .deleteById(this.roleId)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithRedirect();\n } else {\n this.toast.error('Operation failed: ' + res.message);\n }\n },\n error: err => {\n this.toast.error('Operation failed: ' + err);\n console.error('Call role-delete API error: ', err);\n },\n });\n }\n });\n }\n }\n async saveRole() {\n if (this.submittable()) {\n this.isLoading = true;\n const data: IRoleInfo = {\n roleName: this.form.get('roleName')?.value,\n permissions: this.formPermissions,\n };\n if (this.roleId) {\n data.roleId = this.roleId;\n }\n this.roleService\n .saveOrUpdate(data)\n .pipe(finalize(() => (this.isLoading = false)))\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data?.roleId) {\n this.router.navigate(['/system/role-info'], {\n queryParams: { roleId: res.data?.roleId },\n });\n } else {\n this.toast.error('create role failed: ' + res.message);\n }\n },\n error: err => {\n this.toast.error(err);\n console.error('call role-query API error: ', err);\n },\n });\n }\n }\n\n submittable() {\n return !this.isLoading && this.form.valid;\n }\n}\n","\n
    \n \n
    \n
    \n \n \n \n
    input is required
    \n
    Must be at least 3 characters long.
    \n
    Begin or end with blank space is not allowed
    \n
    \n
    \n
    \n Delete\n
    \n
    \n\n
    \n {{ 'role.accessRight' | lang }}\n
    \n
    \n {{ 'role.accessRight.notes' | lang }}\n
    \n
    \n \n
    \n

    \n
    \n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, Validators } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { debounceTime, distinctUntilChanged, finalize } from 'rxjs';\nimport { AclUserType } from 'src/app/core/models/enum/acl-user-type.enum';\nimport { Identity } from 'src/app/core/models/identity';\nimport { IAclUserRequest } from 'src/app/core/models/role';\nimport { RoleService } from 'src/app/core/services/role.service';\nimport { AlertPopupComponent } from 'src/app/shared/alert-popup/alert-popup.component';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { UserPageableRequest } from '../../role.model';\nimport { ConfirmPopupComponent } from './../../../../../shared/confirm-popup/confirm-popup.component';\n\nconst unSelectAclUserValidator = () => {\n return (control: AbstractControl): ValidationErrors | null => {\n const input = control.value || '';\n if (typeof input !== 'string' && input.length > 2) {\n return null;\n }\n const isValid = input?.id;\n return isValid ? null : { unselectAclUser: true };\n };\n};\n\n@Component({\n selector: 'app-role-info-user',\n templateUrl: './role-info-user.component.html',\n})\nexport class RoleInfoUserComponent implements OnInit {\n @Input() roleId: string | null = '';\n isLoading = false;\n aclUserLoading = false;\n aclUserRespOptions: CdsOption[] = [];\n aclUserType: AclUserType = AclUserType.INTERNAL_STAFF;\n aclUsetTypeDropdownConfig: CdsDropdownConfig = {\n options: [],\n };\n\n dataSource: Identity[] = [];\n selectedRows = new Set();\n displayedColumns: string[] = ['username', 'email', 'userId'];\n pageCount: IPaginationCount = { count: 0, current: 0 };\n filterUser = '';\n\n aclNameFormControl = new FormControl(\n { value: '', disabled: this.aclUserLoading },\n {\n validators: [Validators.required, Validators.minLength(2), unSelectAclUserValidator()],\n }\n );\n\n constructor(private roleService: RoleService, private toast: CdsToastService, private cdsPopup: CdsPopupService, private langService: CdsLangService) {\n for (const item in AclUserType) {\n this.aclUsetTypeDropdownConfig.options.push({\n label: item,\n value: item,\n });\n }\n }\n\n ngOnInit(): void {\n this.aclNameFormControl.valueChanges.pipe(debounceTime(500), distinctUntilChanged()).subscribe(selectedValue => {\n if (!selectedValue?.id) {\n this.aclUserSearch(selectedValue);\n }\n });\n this.loadTable();\n }\n\n private popupWithReload() {\n this.cdsPopup\n .open(AlertPopupComponent, {\n size: 'sm',\n data: {\n message: 'common.action.success',\n },\n })\n .afterClosed()\n .subscribe(() => {\n this.reloadTable();\n });\n }\n\n addRoleUserEnable(): boolean {\n return !!this.roleId && !this.isLoading && !!this.aclNameFormControl?.value?.id;\n }\n\n aclUserFormReset(): void {\n if (this.aclNameFormControl?.touched || this.aclNameFormControl?.dirty) {\n this.aclNameFormControl.reset();\n this.aclNameFormControl.markAsPristine();\n this.aclNameFormControl.markAsUntouched();\n }\n }\n\n addUserToRole() {\n if (!!this.roleId && this.addRoleUserEnable()) {\n this.isLoading = true;\n this.roleService\n .addUserToRole({\n userId: this.aclNameFormControl.value.id,\n userType: this.aclUserType,\n roleId: this.roleId,\n })\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n } else {\n //FIXME convert result code to message\n this.toast.error(`Operation failed : ${res.message}`);\n }\n },\n error: err => {\n this.toast.error('Operation failed: ' + err);\n console.error(err);\n },\n });\n }\n }\n\n private aclUserSearch(key: string) {\n if (!!key && key.trim().length > 1 && !this.isLoading) {\n this.aclUserRespOptions = [];\n console.debug(`aclUserSearch=${key}`);\n this.aclUserLoading = true;\n const params: IAclUserRequest = {\n searchString: key,\n userType: this.aclUserType,\n page: 0,\n size: 100,\n };\n //\n this.roleService\n .searchAclUser(params)\n .pipe(\n finalize(() => {\n this.aclUserLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data && res.data.content?.length > 0) {\n this.aclUserRespOptions = res.data.content.map(e => {\n let label = e.userName;\n if (e.agentKey) {\n label += '('.concat(e.agentKey, ')');\n }\n return {\n label: label,\n details: e.email,\n value: { id: e.id },\n };\n });\n }\n },\n error: err => {\n console.error(err);\n },\n });\n }\n }\n\n private reloadTable() {\n this.aclUserRespOptions = [];\n this.aclUserFormReset();\n this.pageCount.current = 1;\n this.loadTable();\n }\n loadTable() {\n if (!this.isLoading) {\n this.isLoading = true;\n const req: UserPageableRequest = {\n page: this.pageCount.current - 1,\n size: 100,\n };\n const filter = this.filterUser?.trim();\n if (filter?.length > 0) {\n req.userName = filter;\n }\n this.roleService\n .getIdentityByRoleId(this.roleId || '', req)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0 && res.data) {\n if (res.data.content?.length > 0) {\n this.pageCount = {\n current: res.data.number + 1,\n count: res.data.totalPages,\n };\n this.dataSource = res.data.content;\n } else {\n this.pageCount = { current: 1, count: 0 };\n this.dataSource = [];\n }\n }\n },\n error: err => {\n console.error(err);\n },\n });\n }\n }\n\n deleteUser(userId: string) {\n this.dataSource = this.dataSource.filter(data => data.id !== userId);\n if (!this.isLoading) {\n this.isLoading = true;\n this.cdsPopup\n .open(ConfirmPopupComponent, {\n size: 'sm',\n data: { title: this.langService.translate('role.confrim.delete') },\n })\n .afterClosed()\n .subscribe(result => {\n if (result?.agree) {\n this.roleService\n .deleteByRoleUser(userId)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n })\n )\n .subscribe({\n next: res => {\n if (res.result === 0) {\n this.popupWithReload();\n }\n },\n error: err => {\n console.error(err);\n },\n });\n } else {\n this.isLoading = false;\n }\n });\n }\n }\n}\n","
    \n
    \n
    \n
    \n {{ 'role.edit.tab.assignUsers' | lang }}\n
    \n
    \n {{ 'role.edit.tab.assignUsers.notes' | lang }}\n
    \n
    \n
    \n
    \n \n \n \n
    Minimum 2 characters.
    \n
    Minimum 2 characters.
    \n \n
    0 && aclNameFormControl?.errors?.['unselectAclUser']; else userNotFoundError\">please select user
    \n User not found \n
    \n
    \n
    \n
    \n \n
    \n
    \n Add User\n
    \n
    \n
    \n
    \n
    \n
    \n
    {{ 'role.step2.userList' | lang }}
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n \n \n \n {{ 'user.table.username' | lang }}\n \n \n {{ element.identity.userName }}\n \n \n\n \n \n {{ 'user.table.email' | lang }}\n \n \n {{ element.identity.userEmail }}\n \n \n\n \n \n {{ 'table.action' | lang }}\n \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from 'src/app/views/layout/admin-layout/admin-layout.component';\nimport { RoleCreateComponent } from './role/role-create/role-create.component';\nimport { RoleInfoComponent } from './role/role-info/role-info.component';\nimport { RoleListComponent } from './role/role-list/role-list.component';\n\nimport { ReportingRoleComponent } from './reporting-role/reporting-role.component';\nimport { ReportingRoleCreateComponent } from './reporting-role/reporting-role-create/reporting-role-create.component';\nimport { ReportingRoleInfoComponent } from './reporting-role/reporting-role-info/reporting-role-info.component';\nimport { AuditHistoryComponent } from './audit-history/audit-history.component';\nimport { DayCardComponent } from './calendar/day-card.component';\n\nconst routes: Routes = [\n {\n path: 'system',\n component: AdminLayoutComponent,\n children: [\n {\n path: 'role-list',\n component: RoleListComponent,\n data: {\n roles: {\n SYS_ROLE_MANAGE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'role-create',\n component: RoleCreateComponent,\n data: {\n roles: {\n [PermissionItem.SYS_ROLE_MANAGE]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'role-info',\n component: RoleInfoComponent,\n data: {\n roles: {\n [PermissionItem.SYS_ROLE_MANAGE]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'reporting-role-list',\n component: ReportingRoleComponent,\n data: {\n roles: {\n SYS_ROLE_MANAGE: PermissionAccess.R,\n },\n },\n },\n {\n path: 'reporting-role-create',\n component: ReportingRoleCreateComponent,\n data: {\n roles: {\n [PermissionItem.SYS_ROLE_MANAGE]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'reporting-role-info',\n component: ReportingRoleInfoComponent,\n data: {\n roles: {\n [PermissionItem.SYS_ROLE_MANAGE]: PermissionAccess.W,\n },\n },\n },\n {\n path: 'calendar',\n component: DayCardComponent,\n data: {\n roles: {\n [PermissionItem.SYS_CALENDAR]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'audit-history',\n component: AuditHistoryComponent,\n data: {\n roles: {\n [PermissionItem.SYS_AUDIT_LOG]: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SystemRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsLinkModule } from '@cds/ng-web-components/link';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsSearchModule } from '@cds/ng-web-components/search';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { DataTableModule } from 'src/app/shared/data-table';\nimport { AppPaginationModule } from 'src/app/shared/pagination/pagination.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { RoleCreateComponent } from './role/role-create/role-create.component';\nimport { RoleInfoComponent } from './role/role-info/role-info.component';\nimport { RoleListComponent } from './role/role-list/role-list.component';\nimport { RoleInfoAccessTableComponent } from './role/shared/role-info-access-table/role-info-access-table.component';\nimport { RoleInfoFormComponent } from './role/shared/role-info-form/role-info-form.component';\nimport { RoleInfoUserComponent } from './role/shared/role-info-user/role-info-user.component';\nimport { SystemRoutingModule } from './system-routing.module';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\n\nimport { ReportingRoleModule } from './reporting-role/reporting-role.module';\nimport { AuditHistoryModule } from './audit-history/audit-history.module';\nimport { DayCardModule } from './calendar/day-card.module';\n@NgModule({\n declarations: [RoleInfoFormComponent, RoleInfoComponent, RoleInfoUserComponent, RoleListComponent, RoleCreateComponent, RoleInfoAccessTableComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n SystemRoutingModule,\n\n CdsDropdownModule,\n CdsButtonModule,\n CdsIconModule,\n CdsTableModule,\n CdsLinkModule,\n CdsSearchModule,\n CdsTabsModule,\n CdsCheckboxModule,\n CdsPaginationModule,\n CdsLanguageModule,\n CdsTextfieldModule,\n CdsAssistiveTextModule,\n CdsPopupModule,\n CdsProgressModule,\n\n SharedModule,\n DataTableModule,\n AppPaginationModule,\n ExpandTableModule,\n DayCardModule,\n ReportingRoleModule,\n AuditHistoryModule,\n ],\n})\nexport class SystemModule {}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { agentFollowUpStatusDropdownOptions, AgentFollowUpStatusE, noOfContactOptions, TerminationRecord } from '../../termination';\nimport { TerminationService } from '../../termination.service';\n\n@Component({\n selector: 'app-expand-item-mobile',\n templateUrl: './expand-item-mobile.component.html',\n styleUrls: ['./expand-item-mobile.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '-90deg',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class ExpandItemMobileComponent implements OnInit {\n noOfContactConfig: CdsDropdownConfig = {\n label: '',\n options: noOfContactOptions,\n };\n\n clearIconConfig: CdsIconConfig = {\n size: 'sm',\n color: '#8e90a2',\n };\n constructor(public service: TerminationService) {}\n\n @Input() expand = false;\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data: TerminationRecord = {};\n\n @Output() statusChange = new EventEmitter();\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detailClass = 'detail-collapsed';\n\n dropdownConfig: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions,\n };\n\n dropdownConfig2: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions.filter(item => item.value !== AgentFollowUpStatusE.COMPLETED),\n };\n\n ngOnInit(): void {}\n\n askedLientChange(value: boolean, data: TerminationRecord) {\n if (value !== data.askClient) {\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.askClient = value;\n if (!value && dataTmp.agentFollowUpStatus === AgentFollowUpStatusE.COMPLETED) {\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n }\n this.statusChange.emit(dataTmp);\n }\n }\n\n noOfContactChange(value: string, data: TerminationRecord) {\n if (!!value && value !== data.numberOfContact) {\n const dataTmp = deepCopy(data);\n dataTmp.numberOfContact = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n agentFollowUpStatusChange(value: AgentFollowUpStatusE, data: TerminationRecord) {\n if (!!value && value !== data.agentFollowUpStatus) {\n const dataTmp = deepCopy(data);\n dataTmp.agentFollowUpStatus = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n trigger() {\n this.expand = !this.expand;\n this._detailClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }\n\n clearDropdown(data: TerminationRecord) {\n if (!data.numberOfContact) return;\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.numberOfContact = '0';\n dataTmp.askClient = false;\n if (dataTmp.agentFollowUpStatus === AgentFollowUpStatusE.COMPLETED) {\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n }\n this.statusChange.emit(dataTmp);\n }\n\n clearDropdown2(data: TerminationRecord) {\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n this.statusChange.emit(dataTmp);\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    {{ 'termination.list.eMpfAcount' | lang }}:
    \n
    {{ data.empfMemberAccountNumber }}
    \n
    \n
    \n\n
    \n
    \n {{ 'termination.list.dateOfAssignment' | lang }}:\n {{ data.dateOfAssignment | date : 'dd/MM/yyyy' }}\n
    \n
    \n\n
    \n
    \n {{ 'termination.list.terminationDate' | lang }}:\n {{ data.terminationDate | date : 'dd/MM/yyyy' }}\n
    \n
    \n\n \n\n \n\n \n\n
    No. of Contact
    \n \n
    \n \n \n
    \n\n
    Asked Client?
    \n \n \n\n
    Agent Follow Up Status
    \n \n
    \n \n \n
    \n
    \n\n
    \n
    \n {{ 'termination.list.detailTitle' | lang }}\n
    \n\n \n\n \n\n \n \n\n \n \n
    \n {{ data.emailAddress }}\n \n Chinese\n \n English\n
    \n
    \n
    \n
    \n
    \n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport { CdsIconConfig } from '@cds/ng-core/icon';\nimport { deepCopy } from 'src/app/utils/copy';\nimport { agentFollowUpStatusDropdownOptions, AgentFollowUpStatusE, noOfContactOptions, TerminationRecord } from '../../termination';\nimport { TerminationService } from '../../termination.service';\n\n@Component({\n selector: 'app-expand-item',\n templateUrl: './expand-item.component.html',\n styleUrls: ['./expand-item.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'detail-expaned',\n style({\n height: '*',\n paddingTop: 'var(--cds-spacing-03)',\n paddingBottom: 'var(--cds-spacing-07)',\n borderBottom: '1px solid var(--cds-color-grey)',\n opacity: '1',\n })\n ),\n state(\n 'detail-collapsed',\n style({\n height: '0px',\n overflow: 'hidden',\n opacity: '0',\n })\n ),\n state(\n 'expanded',\n style({\n rotate: '90deg',\n })\n ),\n state(\n 'collapsed',\n style({\n rotate: '0deg',\n })\n ),\n transition('detail-expaned <=> detail-collapsed', [animate('0.3s ease-in-out')]),\n transition('expanded <=> collapsed', [animate('0.3s')]),\n ]),\n ],\n})\nexport class ExpandItemComponent implements OnInit {\n constructor(public service: TerminationService) {}\n\n @Input() expand = false;\n @Input() icon = 'action:button_right';\n @Input() color = '';\n @Input() mouseColor = '#EC6453';\n @Input() size = '32px';\n @Input() data: TerminationRecord = {};\n\n @Output() statusChange = new EventEmitter();\n\n _config: CdsIconConfig = {\n color: this.color,\n };\n _iconClass = 'collapsed';\n _detailClass = 'detail-collapsed';\n\n dropdownConfig: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions,\n };\n\n dropdownConfig2: CdsDropdownConfig = {\n label: '',\n options: agentFollowUpStatusDropdownOptions.filter(item => item.value !== AgentFollowUpStatusE.COMPLETED),\n };\n\n noOfContactConfig: CdsDropdownConfig = {\n label: '',\n options: noOfContactOptions,\n };\n\n clearIconConfig: CdsIconConfig = {\n size: 'sm',\n color: '#8e90a2',\n };\n\n ngOnInit(): void {}\n\n askedLientChange(value: boolean, data: TerminationRecord) {\n if (value !== data.askClient) {\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.askClient = value;\n if (!value && dataTmp.agentFollowUpStatus === AgentFollowUpStatusE.COMPLETED) {\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n }\n this.statusChange.emit(dataTmp);\n }\n }\n\n noOfContactChange(value: string, data: TerminationRecord) {\n if (!!value && value !== data.numberOfContact) {\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.numberOfContact = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n agentFollowUpStatusChange(value: AgentFollowUpStatusE, data: TerminationRecord) {\n if (!!value && value !== data.agentFollowUpStatus) {\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.agentFollowUpStatus = value;\n this.statusChange.emit(dataTmp);\n }\n }\n\n mouseenterFun() {\n this._config = {\n color: this.mouseColor,\n };\n }\n mouseleaveFun() {\n this._config = {\n color: this.color,\n };\n }\n trigger() {\n this.expand = !this.expand;\n this._detailClass = this.expand ? 'detail-expaned' : 'detail-collapsed';\n this._iconClass = this.expand ? 'expanded' : 'collapsed';\n }\n\n clearDropdown(data: TerminationRecord) {\n if (!data.numberOfContact) return;\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.numberOfContact = '0';\n dataTmp.askClient = false;\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n this.statusChange.emit(dataTmp);\n }\n\n clearDropdown2(data: TerminationRecord) {\n const dataTmp: TerminationRecord = deepCopy(data);\n dataTmp.agentFollowUpStatus = AgentFollowUpStatusE.OUTSTANDING;\n this.statusChange.emit(dataTmp);\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n {{ data.dateOfAssignment | date : 'dd/MM/yyyy' }}\n
    \n \n
    \n {{ data.autoRolloverDate | date : 'dd/MM/yyyy' }}\n
    \n
    \n {{ data.companyName }}{{ data.chineseCompanyName }}\n
    \n
    \n {{ data.empolyeeName }}\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n {{ 'termination.list.detailTitle' | lang }}\n
    \n \n \n \n \n
    \n {{ data.employeeMobileNo }}\n
    \n\n \n \n
    \n {{ data.emailAddress }}\n \n Chinese\n \n English\n
    \n
    \n
    \n \n
    \n
    \n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { CdsTextfieldConfig } from '@cds/ng-core/textfield';\nimport { Sort, SortDirection } from '@cds/ng-data-table/sort';\nimport { CdsToastService } from '@cds/ng-web-components/toast';\nimport { finalize } from 'rxjs';\nimport { IPaginationCount } from 'src/app/shared/pagination/pagination.dto';\nimport { ToastAlertService } from 'src/app/shared/toast-alert.service';\nimport { SortIconE, TerminationRecord } from '../termination';\nimport { TerminationService } from '../termination.service';\n\n@Component({\n selector: 'app-termination-list',\n templateUrl: './termination-list.component.html',\n styleUrls: ['./termination-list.component.scss'],\n})\nexport class TerminationListComponent implements OnInit {\n inProgress = false;\n\n inPutProgress = false;\n\n recordList: TerminationRecord[] = [];\n\n totalCount = 0;\n\n inputPageNum = 0;\n\n pageSize = 10;\n\n isMobile = false;\n\n sortIcon: SortIconE = SortIconE.SORT;\n\n txtfieldConfig: CdsTextfieldConfig = {\n type: 'number',\n };\n\n columList: string[] = [\n 'Date of assignment',\n 'Target Rollover Date',\n 'Company Name',\n 'Employee Name',\n 'No. of Contact',\n 'Ask Client',\n 'Agent Follow Up Status',\n ];\n\n sort: Sort = {\n active: 'createdAt',\n direction: '',\n };\n\n pageCount: IPaginationCount = { current: 1, count: 1 };\n\n askClientTip = 'Ask client any other Manulife agent assigned before?';\n\n constructor(private service: TerminationService, private toast: CdsToastService, private toastAlert: ToastAlertService) {}\n\n ngOnInit(): void {\n this.onResize();\n this.getList();\n }\n\n getList() {\n this.inProgress = true;\n this.service\n .getPageList(this.pageCount.current, this.pageSize, this.sort)\n .pipe(\n finalize(() => {\n this.inProgress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.inProgress = false;\n this.recordList = data.data.empty ? [] : this.service.recordListContentTrans(data.data.content);\n this.pageCount.current = data.data.number + 1;\n this.pageCount.count = data.data.totalPages;\n this.pageCount = { ...this.pageCount };\n this.totalCount = data.data.totalElements;\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n getSortIcon(name: string) {\n if (name === this.sort.active) {\n switch (this.sort.direction) {\n case 'asc':\n return SortIconE.UP;\n case 'desc':\n return SortIconE.DOWN;\n case '':\n return SortIconE.SORT;\n }\n }\n return SortIconE.SORT;\n }\n\n sortChange(active: string) {\n if (active === this.sort.active) {\n let direction: SortDirection = '';\n switch (this.sort.direction) {\n case 'asc':\n direction = 'desc';\n break;\n case 'desc':\n direction = '';\n break;\n case '':\n direction = 'asc';\n break;\n }\n\n this.sort.direction = direction;\n this.sort = { ...this.sort };\n } else {\n this.sort = {\n active,\n direction: 'asc',\n };\n }\n\n this.getList();\n }\n\n statusChange(data: TerminationRecord) {\n this.inPutProgress = true;\n const params: TerminationRecord = {\n id: data.id,\n agentFollowUpStatus: data.agentFollowUpStatus,\n numberOfContact: data.numberOfContact,\n askClient: data.askClient,\n };\n this.service\n .putTerminatedMember(params)\n .pipe(\n finalize(() => {\n this.inPutProgress = false;\n })\n )\n .subscribe(data => {\n if (data.result === 0 && data.data) {\n this.getList();\n } else {\n this.toastError(data.message);\n }\n });\n }\n\n toastError(errorMessage: string) {\n this.toastAlert.show('error', 'common.error', errorMessage, 5000);\n }\n\n pageChange(currentPage: number) {\n this.pageCount.current = currentPage;\n this.getList();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize() {\n if (window.innerWidth < 1024) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","
    \n \n
    \n {{ 'list.record-list' | lang }}\n
    \n
    \n Total {{ totalCount }} records\n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n {{ columList[0] }}\n \n
    \n \n
    \n {{ columList[1] }}\n \n
    \n
    \n {{ columList[2] }}\n \n
    \n
    \n {{ columList[3] }}\n \n
    \n \n
    \n {{ columList[4] }}\n
    \n
    \n {{ columList[5] }}\n \n
    \n
    \n {{ columList[6] }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n {{ 'agent.noResultFound' | lang }}\n
    \n\n
    \n \n
    \n\n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PermissionAccess } from 'src/app/core/models/enum/permission.enum';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { TerminationListComponent } from './termination-list/termination-list.component';\n\nconst routes: Routes = [\n {\n path: 'termination',\n component: AdminLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n {\n path: 'list',\n component: TerminationListComponent,\n data: {\n title: 'termination.title',\n roles: {\n SHK_AGENT_ASSIGNMENT_AGENT: PermissionAccess.R,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TerminationRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TerminationListComponent } from './termination-list/termination-list.component';\nimport { TerminationRoutingModule } from './termination-routing.module';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsPaginationModule } from '@cds/ng-web-components/pagination';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsPopupModule } from '@cds/ng-web-components/popup';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsSortModule } from '@cds/ng-data-table/sort';\nimport { CdsCheckboxModule } from '@cds/ng-web-components/checkbox';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { CdsTextareaModule } from '@cds/ng-web-components/textarea';\nimport { CdsTooltipModule } from '@cds/ng-web-components/tooltip';\nimport { CdAccordionModule } from 'src/app/components/accordion/cd-accordion.module';\nimport { RowItemModule } from 'src/app/components/row-item/row-item.module';\nimport { ExpandTableModule } from 'src/app/components/table/expand-table.module';\nimport { ExpandItemComponent } from './termination-list/expand-item/expand-item.component';\nimport { ExpandItemMobileComponent } from './termination-list/expand-item-mobile/expand-item-mobile.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [TerminationListComponent, ExpandItemComponent, ExpandItemMobileComponent],\n imports: [\n CommonModule,\n TerminationRoutingModule,\n CdsTextfieldModule,\n CdsLanguageModule,\n CdsIconModule,\n CdsButtonModule,\n CdsPaginationModule,\n FormsModule,\n CdsPopupModule,\n HttpClientModule,\n CdsProgressModule,\n CdsTableModule,\n CdsSortModule,\n CdsCheckboxModule,\n CdsTabsModule,\n CdsTableModule,\n CdsDropdownModule,\n CdsTooltipModule,\n CdsIconModule,\n ReactiveFormsModule,\n CdsTextareaModule,\n ExpandTableModule,\n CdAccordionModule,\n RowItemModule,\n SharedModule,\n ],\n})\nexport class TerminationModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Sort } from '@cds/ng-data-table/sort';\nimport { Observable } from 'rxjs';\nimport { BasicResponse, PageResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { TerminationRecord } from './termination';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TerminationService {\n private getPageListUrl = `${environment.apiPrefix}/ext/eb-ssms/customer-service/shkp/terminated-members`;\n\n //private getPageListUrl = `http://localhost:8082/shkp/terminated-members`;\n constructor(private http: HttpClient) {}\n\n getPageList(page: number, size: number, sort: Sort): Observable> {\n let sortParam = '';\n\n const params: {\n page: number;\n size: number;\n sort?: string;\n } = {\n page: page - 1,\n size,\n };\n\n if (sort.active) {\n if (sort.direction) {\n sortParam = `${sort.active},${sort.direction}`;\n } else {\n sortParam = 'createdAt,desc';\n }\n params.sort = sortParam;\n }\n\n return this.http.get>(this.getPageListUrl, {\n params,\n });\n }\n\n putTerminatedMember(data: TerminationRecord): Observable> {\n return this.http.put>(this.getPageListUrl, data);\n }\n\n recordListContentTrans(content: TerminationRecord[]) {\n return content.map(item => {\n const firstName = item.firstName || '';\n const lastName = item.lastName || '';\n const chineseFirstName = item.chineseFirstName || '';\n const chineseLastName = item.chineseLastName || '';\n const empolyeeName = `${firstName || ''} ${lastName || ''} ${chineseLastName || ''}${chineseFirstName || ''}`;\n\n let employeeMobileNo = '';\n if (!item.primaryMobileNumberCountryCode) {\n employeeMobileNo = `${item.primaryMobileNumber || ''}`;\n } else {\n employeeMobileNo = `(+${item.primaryMobileNumberCountryCode})${item.primaryMobileNumber || ''}`;\n }\n\n return {\n ...item,\n empolyeeName,\n employeeMobileNo,\n };\n });\n }\n\n getUrlContent(data: TerminationRecord, type: string) {\n if (type === 'en' && data.emailEngContent) {\n const content = (data as any)['emailEngContent'];\n return encodeURIComponent(content);\n //return encodeURIComponent(\"Mr/Ms. xxx, My name is [Name of agent] (Agent code: [Agent code]) and I am from Manulife. I am notified by SHKP MPF about your termination. Manulife is appointed by SHKP MPF to assist you to handle your accrued benefits arrangement. I am your servicing representative.I have tried to connect with you but fail. You may visit our website to understand Manulife Global Select MPF Scheme. Welcome to contact me anytime if there is any question. I will contact you again later.For details please visit: https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html xxx先生/女士,我是您的宏利服務代表[代理人姓名] (代理人編號: [Agent code])。 新地強積金通知我有關您的終止事宜。宏利獲新地強積金委任,協助你處理累算權益安排。 我曾嘗試與您聯繫,可惜未能成功。您可以按以下連結了解宏利環球精選強積金計劃。 如有任何問題,歡迎隨時與我聯繫。\\n我稍後會再次與您聯繫。\\n詳情請查看:https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html\");\n }\n if (type === 'zh' && data.emailChiContent) {\n const content = (data as any)['emailChiContent'];\n return encodeURIComponent(content);\n //return encodeURIComponent(\"Mr/Ms. xxx, My name is [Name of agent] (Agent code: [Agent code]) and I am from Manulife. I am notified by SHKP MPF about your termination. Manulife is appointed by SHKP MPF to assist you to handle your accrued benefits arrangement. I am your servicing representative.I have tried to connect with you but fail. You may visit our website to understand Manulife Global Select MPF Scheme. Welcome to contact me anytime if there is any question. I will contact you again later.For details please visit: https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html xxx先生/女士,我是您的宏利服務代表[代理人姓名] (代理人編號: [Agent code])。 新地強積金通知我有關您的終止事宜。宏利獲新地強積金委任,協助你處理累算權益安排。 我曾嘗試與您聯繫,可惜未能成功。您可以按以下連結了解宏利環球精選強積金計劃。 如有任何問題,歡迎隨時與我聯繫。\\n我稍後會再次與您聯繫。\\n詳情請查看:https://www.manulife.com.hk/zh-hk/individual/products/mpf/manulife-global-select-scheme/personal-account.html\");\n }\n return '';\n }\n\n redirectToWhatsapp(data: TerminationRecord) {\n // data.emailContent = `感謝您表達對宏利強積金個人帳戶的興趣。\n\n // 我們誠邀您整合個人帳戶至宏利,宏利提供全面的基金平台作強積金投資。只需簡單幾步,您便可開立宏利個人帳戶及/或轉移強積金資產,以便管理。\n\n // https://www.manulife-campaign.com.hk/redirect/tc/pa_consolidation/1047/email?data=b5ztG8zZlWUGBit2Jn25QeYfYPD%2BhN97IWJl6t9C3Eua1V8TfS6Qjux26adBIxkWWLQMv%2FDkyBFIJNoAMTZANw%3D%3D;\n\n // Thank you for your interest in the Manulife Personal Account.\n\n // We cordially invite you to consolidate personal accounts with Manulife. Manulife provides a comprehensive fund platform for MPF investment. With just a few steps, you can open a Manulife Personal Account and/or transfer MPF assets for easy management.\n\n // https://www.manulife-campaign.com.hk/redirect/en/pa_consolidation/1048/email?data=MdgePgh7afB9mokk%2BxaTmMggBYFf2SdLdJCcGClzrnk5fPu%2BANuuL0gFCzVD%2FGAo1gDsDU%2FYBX%2FudlvalvMRLA%3D%3D`;\n\n const content = (data as any)['whatAppContent'];\n const text = encodeURIComponent(content);\n\n const url = `https://wa.me/${data.primaryMobileNumberCountryCode}${data.primaryMobileNumber}?text=${text}`;\n console.log('url:', url);\n window.open(url, '_blank');\n }\n\n redirectToEmail(data: TerminationRecord, type: string) {\n let subject = '';\n if (type === 'en') {\n subject = 'SHKP MPF ESS accrued benefit transfer arrangement';\n }\n if (type === 'zh') {\n subject = '新地強積金僱主營辦計劃累算權益轉移安排';\n }\n\n const body = this.getUrlContent(data, type);\n const url = `mailto:${data.emailAddress}?subject=${subject}&body=${body}`;\n console.log('url:->>>>>' + url);\n\n window.open(url, '_blank');\n }\n}\n","import { CdsOption } from '@cds/ng-core/configuration';\nimport { IPageableRequest } from 'src/app/core/models/request';\n\nexport interface TerminationRecord {\n id?: string;\n dateOfAssignment?: string;\n terminationDate?: string;\n terminationDateStart?: string;\n terminationDateEnd?: string;\n companyName?: string;\n chineseCompanyName?: string;\n empolyeeName?: string;\n empfMemberAccountNumber?: string;\n age?: number;\n gender?: string;\n employeeMobileNo?: string;\n emailAddress?: string;\n chineseFirstName?: string;\n chineseLastName?: string;\n firstName?: string;\n lastName?: string;\n primaryMobileNumber?: string;\n primaryMobileNumberCountryCode?: string;\n agent?: string;\n passportNumber?: string;\n dateOfBirth?: string;\n transferAmount?: string;\n autoRolloverDate?: string;\n agentName?: string;\n trusteeEmployerAccountNumber?: string;\n servicingAgentName?: string;\n servicingAgentCode?: string;\n preassignedAgentName?: string;\n preassignedAgentCode?: string;\n agentFollowUpStatus?: AgentFollowUpStatusE;\n accountStatus?: string;\n emailChiContent?: string;\n emailEngContent?: string;\n // wahtsAppContent?\n whatAppContent?: string;\n numberOfContact?: string;\n askClient?: boolean;\n}\n\nexport interface TerminationSearchRequest extends IPageableRequest {\n trusteeEmployerAccountNumber?: string;\n companyName?: string;\n terminationDateStart?: string;\n totalLives?: string;\n terminationDateEnd?: string;\n agentCode?: string;\n agentFollowUpStatus?: AgentFollowUpStatusE;\n accountStatus?: string;\n sort?: string;\n id?: string;\n}\n\nexport enum SortE {\n ASC = 'asc',\n DESC = 'desc',\n DEFAULT = '',\n}\n\nexport enum SortIconE {\n UP = 'arrow:up',\n DOWN = 'arrow:down',\n SORT = 'arrow:sort',\n}\n\nexport enum AgentFollowUpStatusE {\n OUTSTANDING = 'OUTSTANDING',\n INITIAL_CONTACT = 'INITIAL_CONTACT',\n SCHEDULE_MEET_UP = 'SCHEDULE_MEET_UP',\n CANNOT_REACH_CLIENT = 'CANNOT_REACH_CLIENT',\n REJECTED_BY_CLIENT = 'REJECTED_BY_CLIENT',\n COMPLETED = 'COMPLETED',\n}\n\nexport const agentFollowUpStatusDropdownOptions: CdsOption[] = [\n // {\n // label: 'Outstanding',\n // value: AgentFollowUpStatusE.OUTSTANDING,\n // },\n {\n label: 'Initial Contact',\n value: AgentFollowUpStatusE.INITIAL_CONTACT,\n },\n {\n label: 'Schedule Meet Up',\n value: AgentFollowUpStatusE.SCHEDULE_MEET_UP,\n },\n {\n label: 'Cannot Reach Client',\n value: AgentFollowUpStatusE.CANNOT_REACH_CLIENT,\n },\n {\n label: 'Reject By Client',\n value: AgentFollowUpStatusE.REJECTED_BY_CLIENT,\n },\n {\n label: 'Completed',\n value: AgentFollowUpStatusE.COMPLETED,\n },\n];\n\nexport enum AccountStatusE {\n PENDING = 'PENDING',\n GS = 'GS',\n TRANSFERRED_TO_OTHER_TRUSTEES_WITH_DRAWL = 'TRANSFERRED_TO_OTHER_TRUSTEES_WITH_DRAWL',\n}\n\nexport const accountStatusDropdownOptions: CdsOption[] = [\n {\n label: 'Pending',\n value: AccountStatusE.PENDING,\n },\n {\n label: 'Transferred to GS',\n value: AccountStatusE.GS,\n },\n {\n label: 'Transferred to other Trustee / Withdrawal ',\n value: AccountStatusE.TRANSFERRED_TO_OTHER_TRUSTEES_WITH_DRAWL,\n },\n];\n\nexport const noOfContactOptions: CdsOption[] = [\n { label: '1', value: '1' },\n { label: '2', value: '2' },\n { label: '3', value: '3' },\n { label: '4', value: '4' },\n { label: '5', value: '5' },\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UploadAbmListPopupService {\n constructor(private http: HttpClient) {}\n\n uploadFile(file: File) {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post>(`${environment.apiPrefix}/ext/eb-ssms/agent-service/agent-branch/portfolio/upload`, formData);\n }\n}\n","import { RouterModule, Routes } from '@angular/router';\nimport { AdminLayoutComponent } from '../layout/admin-layout/admin-layout.component';\nimport { NgModule } from '@angular/core';\nimport { UploadCenterComponent } from './upload-center/upload-center.component';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum';\nimport { UploadCustomerDataComponent } from './upload-customer-data/upload-customer-data.component';\n\nconst routes: Routes = [\n {\n path: 'upload-center',\n component: AdminLayoutComponent,\n children: [\n {\n path: '',\n component: UploadCenterComponent,\n data: {\n roles: {\n [PermissionItem.SALES_JOURNEY_SALES_SUPPORT]: PermissionAccess.R,\n },\n },\n },\n {\n path: 'customer-data',\n component: UploadCustomerDataComponent,\n data: {\n roles: {\n [PermissionItem.COMM_INFO_MAIN_COMM_SUMMARY]: PermissionAccess.W,\n },\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class UploadCenterRoutingModule {}\n","import { SharedModule } from 'src/app/shared/shared.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UploadCenterComponent } from './upload-center/upload-center.component';\nimport { UploadCenterRoutingModule } from './upload-center-routing.module';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { UploadDocumentComponent } from './upload-document/upload-document.component';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { UploadCustomerDataModule } from './upload-customer-data/upload-customer-data.module';\n\n@NgModule({\n declarations: [UploadCenterComponent, UploadDocumentComponent],\n imports: [\n CommonModule,\n CdsIconModule,\n CdsLanguageModule,\n CdsTableModule,\n CdsFileUploadModule,\n SharedModule,\n UploadCenterRoutingModule,\n UploadCustomerDataModule,\n ],\n})\nexport class UploadCenterModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CdsOption } from '@cds/ng-core/configuration';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { UploadDocumentComponent } from '../upload-document/upload-document.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { UploadCenterConfig } from 'src/app/core/models/upload-center/upload-center.model';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { PermissionAccess } from 'src/app/core/models/enum';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-upload-center',\n templateUrl: './upload-center.component.html',\n styleUrls: ['./upload-center.component.scss'],\n})\nexport class UploadCenterComponent implements OnInit {\n formControl: FormControl = new FormControl();\n options: CdsOption[] = [];\n uploadCenterConfigs: UploadCenterConfig[] = [];\n currentSelectedConfig?: UploadCenterConfig;\n isRefrushCdSearch = false;\n\n constructor(\n private cdsPopup: CdsPopupService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private permissionService: PermissionService,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.getCampaignByAgentcode().then(() => {\n const isOpenUploadABMList = this.route.snapshot.paramMap.get('isOpenUploadABMList') || false;\n const abm = this.options.find(item => item.value === 'ABM List');\n if (isOpenUploadABMList && abm) {\n this.formControl.setValue(abm);\n const configItem = this.uploadCenterConfigs.find(item => item.configName === 'ABM List');\n this.currentSelectedConfig = configItem;\n this.refrushCdSearch();\n this.uploadFile();\n }\n });\n }\n\n private refrushCdSearch() {\n this.isRefrushCdSearch = true;\n setTimeout(() => {\n this.isRefrushCdSearch = false;\n }, 0);\n }\n\n search(option: CdsOption) {\n this.currentSelectedConfig = undefined;\n if (typeof option === 'string' && !this.uploadCenterConfigs.some(item => item.configName === option)) {\n this.formControl.setValue(option);\n return;\n }\n let val = '';\n if (typeof option === 'string' && this.uploadCenterConfigs.some(item => item.configName === option)) {\n val = option;\n this.formControl.setValue(val);\n } else {\n val = option.value;\n }\n const configItem = this.uploadCenterConfigs.find(item => item.configName === val);\n this.currentSelectedConfig = configItem;\n }\n\n uploadFile() {\n this.cdsPopup.open(UploadDocumentComponent, {\n size: 'lg',\n data: {\n currentSelectedConfig: this.currentSelectedConfig,\n },\n });\n }\n\n getCampaignByAgentcode() {\n return new Promise((resolve, reject) => {\n this.cdHttpServeService.get(`/ext/eb-ssms-sales-journey-service/api/v1/uploadCenter/configs`, {}).subscribe({\n next: async res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n reject();\n } else {\n this.uploadCenterConfigs = res.data;\n const tempOptions = await Promise.all(\n this.uploadCenterConfigs.map(async item => {\n const hasPermission = await this.permissionService.hasPermission(PermissionAccess.R, item.configRole);\n if (hasPermission) {\n return {\n label: item.configName,\n value: item.configName,\n };\n }\n return undefined;\n })\n );\n this.options = tempOptions.filter(Boolean) as CdsOption[];\n resolve();\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n reject();\n },\n });\n });\n }\n}\n","
    \n
    \n Upload Center\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n File Locator\n
    \n
    \n
    \n
    \n
    \n 1\n
    \n
    \n
    \n Input Location Name\n
    \n
    \n\n
    \n \n
    \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n Upload\n
    \n
    \n\n
    \n
    \n
    \n 2\n
    \n
    \n
    \n Upload File\n
    \n
    \n\n
    \n
    \n Upload File\n
    \n
    \n \n
    \n
    \n Download File Template\n
    \n
    \n
    \n
    \n
    \n latest file name: “01_Campaigns_Campaign List_E101”\n
    \n
    \n Last updated: 9:05am 25/05/2022 (HKT), by Jacky Chan\n
    \n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, AsyncValidator, ValidationErrors } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\n\nimport { CommissionAgentService } from 'src/app/core/services/commission/commission-agent.service';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\n@Injectable({ providedIn: 'root' })\nexport class ServiceAgentAsyncValidator implements AsyncValidator {\n constructor(private commissionAgentService: CommissionAgentService) {}\n\n validate(control: AbstractControl): Observable {\n const value = control.value.trim();\n if (!value || !control.dirty) {\n return of(null);\n }\n return this.commissionAgentService.getAgentByCode(value).pipe(\n map(res => {\n if (res && res.result === ResponseResult.SUCCESS) {\n return null;\n }\n return { error: 'common.business.servicingAgent.invalid' };\n }),\n catchError(() => of(null))\n );\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\nimport moment from 'moment';\nimport { finalize } from 'rxjs';\nimport { AccountTypesCommissionpool } from 'src/app/core/models/enum';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\nimport { agentCodeValidator, dateValidator, numberValidator, requiredValidator } from 'src/app/core/validators';\nimport { CdPopupService, MatDialogRef } from 'src/app/shared/cd-popup';\nimport { ServiceAgentAsyncValidator } from './service-agent-async.validators';\nimport { UploadCustomerDataService } from './upload-customer-data.service';\n\n@Component({\n selector: 'app-upload-customer-data',\n templateUrl: './upload-customer-data.component.html',\n styleUrls: ['./upload-customer-data.component.scss'],\n})\nexport class UploadCustomerDataComponent implements OnInit {\n accountTypeConfig: CdsDropdownConfig = {\n placeholder: 'commission.common.accountType.placeholder',\n options: AccountTypesCommissionpool,\n };\n\n formGroup: FormGroup = new FormGroup({\n accountType: new FormControl('', {\n initialValueIsDefault: true,\n }),\n accountCode: new FormControl('', {\n initialValueIsDefault: true,\n validators: [\n requiredValidator({\n error: 'common.business.acconutCode.placeholder',\n }),\n numberValidator({\n error: 'Employer/Member Account Code is invalid',\n }),\n ],\n }),\n commencementDate: new FormControl('', {\n initialValueIsDefault: true,\n validators: [\n requiredValidator({\n error: 'Please input Commencement Date',\n }),\n dateValidator({\n error: 'common.business.date.invalid',\n }),\n ],\n }),\n firstContributionMonth: new FormControl('', {\n initialValueIsDefault: true,\n validators: [\n dateValidator({\n error: 'common.business.date.invalid',\n }),\n ],\n }),\n servicingAgents: new FormControl('', {\n initialValueIsDefault: true,\n validators: [\n requiredValidator({\n error: 'common.business.servicingAgent.placehold',\n }),\n agentCodeValidator({\n error: 'commission.common.agentCode.invalid',\n }),\n ],\n asyncValidators: [this.serviceAgentAsyncValidator.validate.bind(this.serviceAgentAsyncValidator)],\n }),\n name: new FormControl('', {\n initialValueIsDefault: true,\n validators: [\n requiredValidator({\n error: 'common.business.nameAccount.placehold',\n }),\n ],\n }),\n });\n\n get accountType() {\n return this.formGroup.get('accountType') as FormControl;\n }\n\n get accountCode() {\n return this.formGroup.get('accountCode') as FormControl;\n }\n\n get commencementDate() {\n return this.formGroup.get('commencementDate') as FormControl;\n }\n\n get firstContributionMonth() {\n return this.formGroup.get('firstContributionMonth') as FormControl;\n }\n\n get servicingAgents() {\n return this.formGroup.get('servicingAgents') as FormControl;\n }\n\n get name() {\n return this.formGroup.get('name') as FormControl;\n }\n\n get disabled() {\n let tag = true;\n const controls = this.formGroup.controls;\n const keys = Object.keys(controls);\n const isRequired = !this.name.value || !this.servicingAgents.value || !this.accountCode.value || !this.accountType.value || !this.commencementDate.value;\n keys.forEach((key: string) => {\n const defaultValue = (controls[key] as FormControl).defaultValue;\n const controlValue = (controls[key] as FormControl).value;\n const value = controlValue.trim();\n if (defaultValue !== value) {\n tag = false;\n }\n });\n return isRequired || tag || this.formGroup.invalid || this.isCreating;\n }\n\n formControl: FormControl = new FormControl();\n\n file!: File;\n uploading = false;\n errorMessage = '';\n isCreating = false;\n\n constructor(\n private serviceAgentAsyncValidator: ServiceAgentAsyncValidator,\n private uploadCustomerDataService: UploadCustomerDataService,\n private cdsPopup: CdPopupService\n ) {}\n\n ngOnInit() {}\n\n createPool() {\n if (this.isCreating) {\n return;\n }\n this.isCreating = true;\n const params = this.createParams();\n this.uploadCustomerDataService\n .addCommissionEvents(params)\n .pipe(\n finalize(() => {\n this.isCreating = false;\n })\n )\n .subscribe(res => {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: res.result == ResponseResult.SUCCESS ? 'common.action.success' : res.message,\n },\n });\n popupRef.afterClosed().subscribe(() => {});\n });\n }\n\n reset() {\n this.formGroup.reset();\n }\n\n createParams() {\n const value = { ...this.formGroup.value };\n const params: any = {};\n const keys: string[] = Object.keys(value);\n keys.forEach(key => {\n if (value[key]) {\n params[key] = value[key];\n }\n });\n if (params.commencementDate) {\n params.commencementDate = moment(params.commencementDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n if (params.firstContributionMonth) {\n params.firstContributionMonth = moment(params.firstContributionMonth, 'DD/MM/YYYY').format('YYYY-MM-DD');\n }\n return params;\n }\n\n fileChange(event: any) {\n this.file = event?.target?.files[0];\n if (\n !this.file ||\n !this.file.size ||\n !this.file.type ||\n !this.file.name ||\n this.file.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n ) {\n this.errorMessage = 'Invalid file selected.';\n return;\n }\n if (this.file.size > 10485760) {\n this.errorMessage = 'Upload file size not exceeding 10MB';\n return;\n }\n this.errorMessage = '';\n this.upload();\n }\n\n upload() {\n this.uploading = true;\n this.uploadCustomerDataService\n .uploadFile(this.file)\n .pipe(\n finalize(() => {\n this.uploading = false;\n })\n )\n .subscribe(res => {\n if (res.result == ResponseResult.SUCCESS) {\n const popupRef: MatDialogRef = this.cdsPopup.openCommon({\n data: {\n message: 'common.action.success',\n },\n });\n popupRef.afterClosed().subscribe(() => {});\n } else {\n this.errorMessage = res.message;\n }\n });\n }\n}\n","\n\n
    \n
    \n
    Upload Customer Data(Create Commission Pool in batches)
    \n \n \n
    \n \n {{ errorMessage | lang }}\n \n
    \n
    \n
    \n
    \n
    \n
    Create MPF Comm Pool for PTW period
    \n \n \n \n \n \n \n \n \n \n {{ accountCode.errors['error'] | lang }}\n \n \n\n \n \n \n \n \n {{ commencementDate.errors['error'] | lang }}\n \n\n \n \n \n \n \n {{\n firstContributionMonth.errors['error'] | lang\n }}\n \n\n \n \n \n \n {{ servicingAgents.errors['error'] | lang }}\n \n \n\n \n \n \n \n {{ name.errors['error'] | lang }}\n \n \n\n
    \n {{ 'commission.createPool' | lang }} \n {{ 'common.reset' | lang }} \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UploadCustomerDataComponent } from './upload-customer-data.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsFileUploadModule } from '@cds/ng-experimental/file-upload';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, SharedModule, CdsFileUploadModule],\n declarations: [UploadCustomerDataComponent],\n exports: [UploadCustomerDataComponent],\n})\nexport class UploadCustomerDataModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BasicResponse } from 'src/app/core/models/response/response';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UploadCustomerDataService {\n constructor(private http: HttpClient) {}\n\n addCommissionEvents(params: any): Observable> {\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}/customer-manual/add`, params);\n }\n\n uploadFile(file: File) {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post>(`${environment.apiPrefix}${environment.commissionServiceExt}${'/customer-manual/upload'}`, formData);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CDS_POPUP_DATA, CdsPopupService } from '@cds/ng-web-components/popup';\nimport { UploadCenterConfig } from 'src/app/core/models/upload-center/upload-center.model';\nimport { NotifyService } from 'src/app/core/services/notify.service';\nimport { WillBeLostComponent } from 'src/app/shared/will-be-lost/will-be-lost.component';\nimport { UploadAbmListPopupService } from '../upload-abm-list-popup/upload-abm-list-popup.service';\nimport { finalize } from 'rxjs';\nimport { UploadCenterService } from 'src/app/core/services/upload-center/upload-center.service';\nimport { CdPopupService } from 'src/app/shared/cd-popup';\nimport { ResponseResult } from 'src/app/core/models/response/response-result';\n\n@Component({\n selector: 'app-upload-document',\n templateUrl: './upload-document.component.html',\n styleUrls: ['./upload-document.component.scss'],\n})\nexport class UploadDocumentComponent implements OnInit {\n formGroup!: FormGroup;\n addedCaseNum = 0;\n removedCaseNum = 0;\n skipData = [];\n step = 1;\n displayedColumns = ['no', 'action', 'branchCode', 'districtName', 'abm'];\n\n get fileUploadInfoList() {\n return this.formGroup.get('fileUploadInfoList') as FormArray;\n }\n\n tranToFormGroup(uploadinfo: AbstractControl) {\n return uploadinfo as FormGroup;\n }\n\n getFileControl(uploadinfo: AbstractControl) {\n return this.tranToFormGroup(uploadinfo).get('fileControl') as FormControl;\n }\n\n getErrorMessage(uploadinfo: AbstractControl) {\n return this.tranToFormGroup(uploadinfo).get('errorMessage')?.value;\n }\n\n constructor(\n public dialogRef: MatDialogRef,\n private cdsPopup: CdsPopupService,\n @Inject(CDS_POPUP_DATA)\n public data: {\n currentSelectedConfig: UploadCenterConfig;\n },\n private notifyService: NotifyService,\n private uploadAbmListPopupService: UploadAbmListPopupService,\n private uploadCenterService: UploadCenterService,\n private cdPopupService: CdPopupService\n ) {}\n\n ngOnInit(): void {\n this.formGroup = new FormGroup(\n {\n fileUploadInfoList: new FormArray([]),\n },\n [\n (control: AbstractControl): ValidationErrors | null => {\n const fileUploadInfoList = control.get('fileUploadInfoList') as FormArray;\n const atLeastOneFile = fileUploadInfoList.controls.some(item => item.get('file')?.value);\n const noError = fileUploadInfoList.controls.every(item => !item.get('errorMessage')?.value);\n if (atLeastOneFile && noError) {\n return null;\n } else {\n return { invalid: true };\n }\n },\n ]\n );\n this.addItem();\n }\n\n addItem() {\n const fileControl = new FormControl();\n const errorMessage = new FormControl('');\n const file = new FormControl();\n this.fileUploadInfoList.push(\n new FormGroup({\n fileControl: fileControl,\n errorMessage: errorMessage,\n file: file,\n })\n );\n fileControl.valueChanges.subscribe((value: string) => {\n if (value === null) {\n errorMessage.setValue('');\n file.reset();\n }\n });\n }\n\n removeItem(index: number) {\n this.fileUploadInfoList.removeAt(index);\n }\n\n fileChange(event: any, uploadinfo: AbstractControl) {\n const info = this.tranToFormGroup(uploadinfo);\n const file = info.get('file');\n const errorMessage = info.get('errorMessage');\n if (file && errorMessage) {\n file.setValue(event?.target?.files[0]);\n if (file.value.size > 8 * 1024 * 1024) {\n errorMessage.setValue('Your file is exceeding the file size limit of 8MB.');\n } else if (!this.fileNameVerify(file)) {\n errorMessage.setValue('Invalid file name.');\n } else {\n errorMessage.setValue('');\n if (this.fileUploadInfoList.length < this.data.currentSelectedConfig.filesCount) {\n this.addItem();\n }\n }\n }\n }\n\n private fileNameVerify(file: AbstractControl) {\n if (file.value.name) {\n if (this.data.currentSelectedConfig.configName === 'ABM List') {\n return /^branch_portfolio_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n } else if (this.data.currentSelectedConfig.configName === '01_Campaigns_Campaign List') {\n return /^prestige_club_member_master_\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/.test(file.value.name.split('.')[0]);\n }\n }\n return false;\n }\n\n cancel() {\n if (this.formGroup.invalid) {\n this.dialogRef.close({ agree: false });\n return;\n }\n const popupRef: MatDialogRef = this.cdsPopup.open(WillBeLostComponent, {\n size: 'sm',\n });\n popupRef.afterClosed().subscribe(({ agree }) => {\n if (agree) {\n this.dialogRef.close({ agree: false });\n }\n });\n }\n\n upload() {\n if (this.formGroup.valid) {\n this.notifyService.screenLoadingSubject.next(true);\n const file = this.fileUploadInfoList.controls[0].value.file;\n if (this.data.currentSelectedConfig.configName === 'ABM List') {\n this.uploadAbmListPopupService\n .uploadFile(file)\n .pipe(\n finalize(() => {\n this.notifyService.screenLoadingSubject.next(false);\n })\n )\n .subscribe(res => {\n if (res.result === 0) {\n this.step = 2;\n if (res.data.skip) {\n this.skipData = res.data.skip;\n }\n this.addedCaseNum = res.data.add ? res.data.add.length : 0;\n this.removedCaseNum = res.data.remove ? res.data.remove.length : 0;\n } else {\n this.tranToFormGroup(this.fileUploadInfoList.controls[0]).get('errorMessage')?.setValue('Invalid upload file');\n }\n });\n } else if (this.data.currentSelectedConfig.configName === '01_Campaigns_Campaign List') {\n this.uploadCenterService\n .uploadFile(file)\n .pipe(\n finalize(() => {\n this.notifyService.screenLoadingSubject.next(false);\n })\n )\n .subscribe(res => {\n if (res.result === ResponseResult.SUCCESS) {\n this.dialogRef.close({ agree: false });\n this.cdPopupService.openCommon({ data: { message: 'common.action.uploadSuccess' } });\n } else {\n this.tranToFormGroup(this.fileUploadInfoList.controls[0]).get('errorMessage')?.setValue('Invalid upload file');\n }\n });\n }\n }\n }\n}\n","
    \n
    \n Upload document\n
    \n File requirements\n
    \n
    \n
    \n
    \n • A maximum of 1 file with file size limit of 8MB can be uploaded\n
    \n
    \n • File name: prestige_club_member_master_YYYYMMDD\n
    \n
    \n • File name: branch_portfolio_YYYYMMDD\n
    \n
    \n
    \n
    \n
    \n \n
    0\">\n \n
    {{ getErrorMessage(uploadinfo) }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ 'common.cancel' | lang }}\n {{ 'common.upload' | lang }}\n
    \n \n
    \n\n
    \n
    \n
    \n Your changes has been updated\n successfully.\n
    \n
    \n A total of\n {{ addedCaseNum }} cases are added\n and\n {{ removedCaseNum }} cases are removed\n successfully\n
    \n 0\">\n
    \n \n
    \n Please review and upload a new list if needed\n
    \n
    \n
    \n
    \n
    \n Failed Cases:\n
    \n
    \n \n \n \n \n \n \n
    \n {{ i + 1 }}\n
    \n
    \n
    \n \n Action\n \n
    \n {{ element.action }}\n
    \n
    \n
    \n \n Branch Code\n \n
    \n {{ element.branchCode }}\n
    \n
    \n
    \n \n District Name\n \n
    \n {{ element.districtName }}\n
    \n
    \n
    \n \n ABM\n \n
    \n {{ element.abm }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Got it !\n
    \n
    \n
    \n\n 0\">\n
    \n
    \n Got it !\n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { Subject } from 'rxjs';\n\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\nimport { MsalService } from '@azure/msal-angular';\nimport { AuthenticationResult } from '@azure/msal-browser';\n\nimport { DateTime } from 'luxon';\nimport { BTN_CONFIG_PRIMARY, BTN_CONFIG_SECONDARY } from '../../../config/btn.config';\nimport { Session } from '../../../core/models/user';\nimport { AuthenticationService } from '../../../core/services/authentication.service';\nimport { OtpService } from '../../../core/services/otp/otp.service';\nimport { ToastAlertService } from '../../../shared/toast-alert.service';\nimport { addSessionByKey, deleteDB } from '../../../utils/indexdb';\nimport { UserAgreementPopupComponent } from '../../commission/user-agreement-popup.component';\nimport { OTPChannel } from './otp-channel.enum';\nimport { environment } from 'src/environments/environment';\nimport { CdsLangService } from '@cds/ng-core/lang';\n\nexport type LoginType = 'otp' | 'sso' | 'mcf';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n loginBtnCfg = BTN_CONFIG_PRIMARY;\n btnCfg = BTN_CONFIG_SECONDARY;\n\n //otp login\n isInternal = false;\n isExternal = false;\n isLoginEnable = false;\n isShowOTP = false;\n isShowLoading = false;\n isContinueEnable = false;\n isResendEnable = false;\n masked = true;\n\n inputType = 'password';\n second = '60';\n otp = '';\n otpErr = '';\n OTPUser: any = {};\n loginForm: any = {\n username: '',\n passwd: '',\n loginErr: '',\n };\n\n profile = environment.profile;\n mCFMode = environment.mCFMode;\n pwdLogin = environment.pwdLogin;\n mCFAPISuffix = '/auth/mcf/token';\n\n private readonly _destroying$ = new Subject();\n private SSO_API_SUFFIX = '/auth/token';\n private OTP_LOGIN_API_SUFFIX = '/auth/otp/token';\n private DIALOG_DELAY = 5000;\n\n constructor(\n private authService: MsalService,\n private cdsPopup: CdsPopupService,\n private authenticationService: AuthenticationService,\n private router: Router,\n private route: ActivatedRoute,\n private otpService: OtpService,\n private toastAlert: ToastAlertService,\n private langService: CdsLangService\n ) {}\n\n ngOnInit(): void {\n this.authenticationService.currentUserValue().then(data => {\n const obj = this.loginWithMCF();\n if (obj) {\n const popupRef = this.authenticationService.getLoadingDialogRef();\n this.authenticateToken('mcf', obj.accessToken, popupRef, this.mCFAPISuffix, obj.mcfRefreshToken);\n } else {\n if (data.token !== undefined) {\n this.router.navigate(['/home']);\n } else {\n const afterUrl: string = window.location.href;\n if (afterUrl && environment.internalUrl && afterUrl.indexOf(environment.internalUrl) !== -1) {\n this.isInternal = true;\n } else {\n this.isInternal = false;\n }\n\n // if (afterUrl && environment.externalUrl && afterUrl.indexOf(environment.externalUrl) !== -1) {\n // this.isExternal = true;\n // } else {\n // this.isExternal = false;\n // }\n }\n }\n });\n }\n\n redirectMCF() {\n const url = environment.mcfUrl + '&lang=' + (this.langService.currentLang && this.langService.currentLang == 'zh' ? 'zh-hant' : 'en');\n window.location.href = url;\n }\n\n ngOnDestroy(): void {\n this._destroying$.next(undefined);\n this._destroying$.complete();\n }\n\n loginFormChange() {\n this.loginForm.loginErr = '';\n this.isLoginEnable = Boolean(this.loginForm.username && this.loginForm.passwd);\n }\n\n loginWithSSO() {\n const popupRef = this.authenticationService.getLoadingDialogRef();\n this.authenticationService.loginWithSSO().subscribe({\n next: (result: AuthenticationResult) => {\n this.authService.instance.setActiveAccount(result.account);\n this.authenticateToken('sso', result.accessToken, popupRef, this.SSO_API_SUFFIX);\n },\n error: error => {\n console.log(error);\n popupRef.close();\n },\n });\n }\n\n loginWithMCF() {\n const afterUrl: string = window.location.search;\n if (afterUrl != null && afterUrl != '' && afterUrl.indexOf('?') != -1 && afterUrl.indexOf('mcf_token') != -1) {\n let paramsStr = '';\n if (afterUrl.length > afterUrl.indexOf('?')) {\n paramsStr = afterUrl.slice(afterUrl.indexOf('?') + 1, afterUrl.length);\n }\n let params: string[] = [];\n if (afterUrl.indexOf('&') != -1) {\n params = paramsStr.split('&');\n } else {\n params.push(paramsStr);\n }\n if (params && params.length > 0) {\n let accessToken = '';\n let mcfRefreshToken = '';\n let a = 0;\n params.forEach(item => {\n if (item.indexOf('mcf_token') != -1) a = 1;\n if (item.indexOf('mcf_refresh_token') != -1) a = 2;\n if (item && item.indexOf('=') != -1 && a != 0 && ((a == 1 && !accessToken) || (a == 2 && !mcfRefreshToken))) {\n let index = 0;\n for (let i = 0; i < item.length; i++) {\n if (item[i] == '=') {\n index = i;\n break;\n }\n }\n if (index > 0 && item.length > index + 1) {\n if (a == 1) accessToken = item.slice(index + 1, item.length);\n if (a == 2) mcfRefreshToken = item.slice(index + 1, item.length);\n if (item.indexOf('lang') != -1 && item.slice(index + 1, item.length) == 'zh-hant') {\n this.langService.setCurrentLang('zh');\n }\n } else {\n window.alert('mcf token pattern error');\n }\n }\n });\n if (accessToken && mcfRefreshToken) {\n return {\n accessToken,\n mcfRefreshToken,\n };\n } else {\n window.alert('mcf token url error');\n }\n }\n }\n return false;\n }\n\n loginWithManutouch() {\n if (!this.isLoginEnable) return;\n this.loginForm.loginErr = '';\n const popupRef = this.authenticationService.getLoadingDialogRef();\n const username = this.loginForm.username;\n const password = this.loginForm.passwd;\n this.otpService.login({ userId: username, password: password }).subscribe({\n next: res => {\n if (res.result !== 0) {\n popupRef.close();\n this.isShowOTP = false;\n this.loginForm.loginErr = res.message;\n } else {\n this.OTPUser = {\n agentKey: res.data.agentKey,\n emailAddress: res.data.emailAddress,\n phoneNum: res.data.phoneNum,\n sessionToken: res.data.sessionToken,\n };\n this.requestOTP(popupRef);\n this.isShowOTP = true;\n }\n },\n error: err => {\n this.handleError(err.message, 'manutouch', popupRef);\n },\n });\n }\n\n loginWithOTP() {\n this.otpErr = '';\n const popupRef = this.authenticationService.getLoadingDialogRef();\n this.otpService.verifyOTP({ sessionToken: this.OTPUser.sessionToken, otp: this.otp }).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.otpErr = res.message;\n popupRef.close();\n } else {\n const accessToken = res.data.accessToken;\n this.authenticateToken('otp', accessToken, popupRef, this.OTP_LOGIN_API_SUFFIX);\n }\n },\n error: err => {\n this.handleError(err.message, 'otp', popupRef);\n },\n });\n }\n\n requestOTP(popupRef?: any, pageResend?: boolean) {\n if (pageResend && this.second !== '0-1' && !this.isResendEnable) return;\n this.otp = '';\n this.otpErr = '';\n this.isShowLoading = true;\n this.otpService\n .requestOTP({\n sessionToken: this.OTPUser.sessionToken,\n channel: OTPChannel.E,\n })\n .subscribe({\n next: res => {\n if (res.result !== 0) {\n popupRef?.close();\n this.isShowLoading = false;\n this.isResendEnable = true;\n this.otpErr = res.message;\n } else {\n popupRef?.close();\n this.countDown();\n this.OTPUser.sessionToken = res.data.sessionToken;\n this.isShowLoading = false;\n this.isResendEnable = false;\n }\n },\n error: err => {\n this.isShowLoading = false;\n this.isResendEnable = true;\n this.handleError(err.message, 'otp', popupRef);\n },\n });\n }\n\n changeOTP(value: number) {\n this.otpErr = '';\n this.isContinueEnable = !!value && String(value).length === 6;\n }\n\n backToLogin() {\n this.OTPUser = {};\n this.isShowOTP = false;\n }\n\n toggleMask() {\n this.masked = !this.masked;\n this.inputType = this.masked ? 'password' : 'text';\n }\n\n private countDown() {\n // every one minute can resend OTP (unit: seconds)\n let clock = 60;\n const myInterval = setInterval(() => {\n if (clock == -1) {\n clearInterval(myInterval);\n }\n this.second = String(clock < 10 ? '0' + clock : clock);\n clock--;\n }, 1000);\n }\n\n private authenticateToken(\n loginType: LoginType,\n accessToken: string,\n popupRef: MatDialogRef,\n apiSuffix: string,\n mcfRefreshToken?: string\n ) {\n this.authenticationService.authenticateToken(apiSuffix, accessToken, mcfRefreshToken).subscribe({\n next: async res => {\n const end = DateTime.now().toMillis();\n console.log('login backend response time:' + end);\n popupRef.close();\n if (res.result === 0) {\n const userInfo: Session = res.data;\n if (userInfo) {\n const targetUrl = sessionStorage.getItem('targetUrl') || '/home';\n const i = targetUrl.indexOf('?');\n const queryParams: { [key: string]: string } = {};\n if (i > -1) {\n const searchParams = new URLSearchParams(targetUrl.substring(i));\n searchParams.forEach((value, key) => {\n queryParams[key] = value;\n });\n }\n const mParams = this.parseMatrixParams(targetUrl);\n\n userInfo.currentLastUpdate = DateTime.now().toMillis();\n await addSessionByKey(userInfo).then(() => {\n let naviUrl = targetUrl;\n if (i > -1) {\n naviUrl = targetUrl.substring(0, i);\n } else if (targetUrl.includes(';')) {\n naviUrl = targetUrl.substring(0, targetUrl.indexOf(';'));\n }\n this.router.navigate([naviUrl, mParams], { queryParams });\n });\n }\n\n localStorage.setItem('loginType', loginType);\n } else {\n deleteDB();\n let msg = res.message;\n switch (res.result) {\n case 2008:\n msg = 'login.errorMsg.mcf2008';\n break;\n case 2010:\n msg = 'login.errorMsg.mcf2010';\n break;\n case 2019:\n msg = 'login.errorMsg.mcf2019';\n break;\n }\n this.handleError(msg, loginType, popupRef);\n }\n },\n error: err => {\n this.handleError(err.message, loginType, popupRef);\n },\n });\n }\n\n private handleError(message: string, loginType: string, popupRef?: any) {\n popupRef?.close();\n let errMsg = message;\n if (message.indexOf(':') !== -1) {\n errMsg = message.substring(message.lastIndexOf(':') + 2, message.length);\n }\n if (loginType === 'sso') {\n this.router.navigate(['/user/login']);\n this.toastAlert.show('error', 'common.error', errMsg, this.DIALOG_DELAY);\n } else if (loginType === 'manutouch') {\n this.loginForm.loginErr = errMsg;\n } else if (loginType === 'mcf') {\n //this.toastAlert.show('error', 'common.error', errMsg, this.DIALOG_DELAY);\n this.cdsPopup.open(UserAgreementPopupComponent, {\n size: 'md',\n data: {\n message: message,\n continue: 'common.gotIt',\n type: 'alert',\n },\n });\n } else if (loginType === 'otp') {\n if (errMsg.indexOf('401') > -1) {\n this.backToLogin();\n this.toastAlert.show('error', 'common.error', errMsg, this.DIALOG_DELAY);\n } else {\n this.otpErr = errMsg;\n }\n }\n }\n\n private parseMatrixParams(url: string) {\n const lastSegment = url.split('/').pop();\n if (!lastSegment || !lastSegment.includes(';')) {\n return {};\n }\n const paramsString = lastSegment.split(';').slice(1).join(';');\n const params: { [key: string]: string } = {};\n if (paramsString) {\n const pairs = paramsString.split(';');\n pairs.forEach(pair => {\n const [key, value] = pair.split('=');\n if (key && value !== undefined) {\n params[key] = value;\n }\n });\n }\n return params;\n }\n}\n","
    \n
    \n
    \n
    \n {{ 'login.title' | lang }}\n
    \n
    \n \n \n \n\n
    \n Internal Use Login \n
    \n     {{ 'login.line' | lang }}     \n
    \n
    \n\n
    \n \n {{ 'login.sso.button' | lang }}\n \n
    \n     {{ 'login.line' | lang }}     \n
    \n
    \n
    \n
    \n \n {{ 'login.mcf.button' | lang }}\n \n
    \n
    \n     {{ 'login.line' | lang }}    \n
    \n
    \n {{ 'login.subtitle.comment' | lang }}\n
    \n
    \n
    \n {{ 'login.username.label' | lang }}\n
    \n \n\n
    \n {{ 'login.password.label' | lang }}\n
    \n
    \n \n
    \n \n
    \n
    \n {{ loginForm.loginErr }} \n
    \n {{ 'login.button' | lang }}\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n {{ 'login.otp.title' | lang }}\n
    \n
    \n {{ 'login.otp.subtitle' | lang }}\n
    \n
    \n
    \n \n
      {{ 'login.otp.email.comment' | lang }}
    \n
    \n
    \n
          
    \n
      ({{ OTPUser.emailAddress | mystring }})
    \n
    \n
    \n
    \n {{ 'login.otp.label' | lang }}\n
    \n
    \n 6) value = value.slice(0,6)\"\n [(ngModel)]=\"otp\"\n (ngModelChange)=\"changeOTP($event)\" />\n
    \n\n
    \n
    {{ 'login.otp.resend.title' | lang }}     
    \n \n \n
    \n {{ 'login.otp.resend' | lang }}\n
    \n
    ({{ second }}{{ 'login.otp.second' | lang }})
    \n {{ otpErr }} \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'mystring' })\nexport class MyStringPipe implements PipeTransform {\n transform(value: string | null) {\n if (!value) return null;\n\n let val = value,\n suffix = '';\n const index = value.indexOf('@');\n if (index > -1) {\n val = value.substring(0, index);\n suffix = value.substring(index, value.length);\n }\n\n if (val.length > 3) {\n const part1 = val.substring(0, 1);\n const part2 = val.substring(val.length - 3, val.length);\n return part1 + '***' + part2 + suffix;\n }\n\n return val + '**' + suffix;\n }\n}\n","export enum OTPChannel {\n E = 'E',\n S = 'S',\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CdsButtonConfig } from '@cds/ng-core/button';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\n\n@Component({\n selector: 'app-time-out',\n templateUrl: './time-out.component.html',\n styleUrls: ['./time-out.component.scss'],\n})\nexport class TimeOutComponent implements OnInit {\n constructor(private router: Router, private authenticationService: AuthenticationService) {}\n\n ssoButtonConfig: CdsButtonConfig = {\n buttonType: 'button',\n style: 'secondary',\n size: 'sm',\n fullWidth: true,\n };\n\n toLogin() {\n this.router.navigate(['/user/login']);\n }\n\n ngOnInit() {\n this.authenticationService.currentUserValue().then(data => {\n if (data.token !== undefined) {\n this.authenticationService.deleteSession(false);\n } else {\n this.router.navigate(['/user/login']);\n }\n });\n }\n}\n","
    \n
    \n Session time out. \n
    \n
    \n

    Please login and come back again.

    \n
    \n
    \n Login\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthLayoutComponent } from '../layout/auth-layout/auth-layout.component';\nimport { LoginComponent } from './login/login.component';\nimport { TimeOutComponent } from './login/time-out.component';\n\nconst routes: Routes = [\n {\n path: 'user',\n component: AuthLayoutComponent,\n children: [\n { path: 'login', component: LoginComponent },\n { path: 'session-time-out', component: TimeOutComponent },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class UserRoutingModule {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsAssistiveTextModule } from '@cds/ng-web-components/assistive-text';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { CdsProgressModule } from '@cds/ng-web-components/progress';\nimport { CdsTextfieldModule } from '@cds/ng-web-components/textfield';\n\nimport { LoginComponent } from './login/login.component';\nimport { MyStringPipe } from './login/my-string.pipe';\nimport { UserRoutingModule } from './user-routing.module';\n\n@NgModule({\n declarations: [LoginComponent, MyStringPipe],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n OverlayModule,\n\n CdsAssistiveTextModule,\n CdsButtonModule,\n CdsIconModule,\n CdsLanguageModule,\n CdsProgressModule,\n CdsTextfieldModule,\n\n UserRoutingModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class UserModule {\n constructor() {}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CdkDrag, CdkDragEnd, CdkDragStart, DragRef } from '@angular/cdk/drag-drop';\nimport { AfterViewInit, Component, ElementRef, HostListener, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { BTN_CONFIG_TERTIARY } from 'src/app/config/btn.config';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { Session } from 'src/app/core/models/user';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { WidgetInfo } from '../widgets/widget.config';\nimport { ChatService } from '../chatbot/_service/chat.service';\nimport { Subject } from 'rxjs';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { CdsLangService } from '@cds/ng-core/lang';\nimport { Router } from '@angular/router';\nimport { WIDGETS_COMPONENT_NAME, WIDGETS_VIEW_ALL_GOAL } from 'src/app/config/widgets.config';\nimport { environment } from 'src/environments/environment';\n\ninterface Announcement {\n announcementId: number;\n announcementDate: string;\n announcementBodyEng: string;\n announcementBodyChi: string;\n announcementSubjectEng: string;\n announcementSubjectChi: string;\n}\n\ntype RolePriority = 'SuperAdmin' | 'SuperUser' | 'SalesSupport' | 'BranchLevel' | 'SalesJourneyAgent';\n\n@Component({\n selector: 'app-welcome',\n templateUrl: './welcome.component.html',\n styleUrls: ['./welcome.component.scss'],\n})\nexport class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy {\n btnCfg = BTN_CONFIG_TERTIARY;\n PermissionAccess = PermissionAccess;\n PermissionItem = PermissionItem;\n hasSuperAdminRole = false;\n hasSuperUserRole = false;\n hasSalesSupportRole = false;\n hasBranchLevelRole = false;\n hasSalesJourneyAgentRole = false;\n rolePriority?: RolePriority;\n isShowChatBotIcon = false;\n\n startY = 0;\n lastScrollTop?: number = undefined;\n lastScrollLeft?: number = undefined;\n dragEl?: HTMLElement;\n dragRef?: DragRef;\n isDragging = false;\n isAllowAnimal = false;\n isShowAnnouncement = false;\n announcementList: Announcement[] = [];\n @ViewChildren('drag') dragList!: QueryList;\n @ViewChild('landingBox', { static: false }) landingBox!: ElementRef;\n @ViewChild('mobileWidgetsBox', { static: false }) mobileWidgetsBox!: ElementRef;\n\n currentUser: Session = new Session();\n greeting = '';\n displayName = '';\n currentLastUpdate = 0;\n col = 0;\n navigationContent?: HTMLElement;\n currentIndexSlides = 0;\n slidesTouchStartX = 0;\n slidesTouchEndX = 0;\n mobileWidgetsPage = 0;\n\n constructor(\n private authenticationService: AuthenticationService,\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n public chatService: ChatService,\n private permissionService: PermissionService,\n public cdsLangService: CdsLangService,\n private router: Router\n ) {\n this.getIdleTime();\n this.userInactive.subscribe(() => {\n // Alerts.showInfoMessage(\"\")\n });\n }\n\n widgetInfoList: WidgetInfo[] = [];\n\n private readonly defaultAgentWidgetInfoList: WidgetInfo[] = [\n {\n id: 0,\n width: 1,\n height: 330,\n component: 'WidgetsQuickLinksComponent',\n name: 'Quick links',\n isDraggable: false,\n isViewAll: false,\n },\n {\n id: 1,\n width: 2,\n height: 330,\n component: 'WidgetsProductionCreditComponent',\n name: 'Production Credit',\n isDraggable: true,\n isViewAll: false,\n },\n {\n id: 2,\n width: 1,\n height: 330,\n component: 'WidgetsPendingIffComponent',\n name: 'Pending IFF',\n isDraggable: true,\n isViewAll: true,\n },\n {\n id: 3,\n width: 1,\n height: 330,\n component: 'WidgetsCampaignResultComponent',\n name: 'Sales Campaign',\n isDraggable: true,\n isViewAll: false,\n },\n {\n id: 4,\n width: 3,\n height: 554,\n component: 'WidgetsCampaignOverviewComponent',\n name: 'Customer Campaign Overview',\n isDraggable: true,\n isViewAll: true,\n },\n ];\n\n private readonly defaultSuperAdminWidgetInfoList: WidgetInfo[] = [\n {\n id: 0,\n width: 1,\n height: 330,\n component: 'WidgetsQuickLinksComponent',\n name: 'Quick links',\n isDraggable: false,\n isViewAll: false,\n },\n {\n id: 1,\n width: 3,\n height: 554,\n component: 'WidgetsCampaignOverviewComponent',\n name: 'Customer Campaign Overview',\n isDraggable: true,\n isViewAll: true,\n },\n ];\n\n private readonly defaultSuperUserWidgetInfoList: WidgetInfo[] = [\n {\n id: 0,\n width: 1,\n height: 330,\n component: 'WidgetsQuickLinksComponent',\n name: 'Quick links',\n isDraggable: false,\n isViewAll: false,\n },\n {\n id: 1,\n width: 3,\n height: 554,\n component: 'WidgetsCampaignOverviewComponent',\n name: 'Customer Campaign Overview',\n isDraggable: true,\n isViewAll: true,\n },\n ];\n\n private readonly defaultSalesSupportWidgetInfoList: WidgetInfo[] = [\n {\n id: 0,\n width: 1,\n height: 349,\n component: 'WidgetsQuickLinksComponent',\n name: 'Quick links',\n isDraggable: false,\n isViewAll: false,\n },\n {\n id: 1,\n width: 2,\n height: 349,\n component: 'WidgetsProductionCreditByDistrictComponent',\n name: 'Production Credit',\n isDraggable: true,\n isViewAll: false,\n },\n ];\n\n private readonly defaultBranchLevelWidgetInfoList: WidgetInfo[] = [\n {\n id: 0,\n width: 1,\n height: 349,\n component: 'WidgetsQuickLinksComponent',\n name: 'Quick links',\n isDraggable: false,\n isViewAll: false,\n },\n {\n id: 1,\n width: 2,\n height: 349,\n component: 'WidgetsProductionCreditByDistrictComponent',\n name: 'Production Credit',\n isDraggable: true,\n isViewAll: false,\n },\n ];\n\n closeAnnouncement() {\n this.isShowAnnouncement = false;\n }\n\n cdkDragStarted(start: CdkDragStart) {\n this.isAllowAnimal = false;\n this.isDragging = true;\n\n if (this.navigationContent) {\n this.dragRef = start.source._dragRef;\n this.dragEl = start.source.element.nativeElement;\n }\n }\n\n cdkDragEnded(cdkDragEnd: CdkDragEnd) {\n this.isDragging = false;\n this.dragRef = undefined;\n this.dragEl = undefined;\n const draggedEl = cdkDragEnd.source.element.nativeElement;\n const draggedWvIndex = this.widgetInfoList.indexOf(cdkDragEnd.source.data.widgetInfo);\n const overlapFrontmostWv = this.getOverlapFrontmostEl(draggedEl);\n if (overlapFrontmostWv) {\n const overlapFrontmostWvIndex = this.widgetInfoList.indexOf(overlapFrontmostWv);\n this.insertElement(this.widgetInfoList, draggedWvIndex, overlapFrontmostWvIndex);\n this.saveComponentOrder();\n } else {\n this.isAllowAnimal = true;\n setTimeout(() => {\n this.isAllowAnimal = false;\n }, 300);\n }\n\n for (const rectangle of this.dragList) {\n rectangle.reset();\n }\n }\n\n private insertElement(array: WidgetInfo[], draggedWvIndex: number, targetIndex: number) {\n const removedElement = array.splice(draggedWvIndex, 1)[0];\n array.splice(targetIndex, 0, removedElement);\n }\n\n private getOverlapFrontmostEl(drag: HTMLElement) {\n let overlapFrontmostWv = null;\n\n for (const rectangle of this.dragList) {\n if (rectangle.element.nativeElement !== drag) {\n const rect = rectangle.element.nativeElement.getBoundingClientRect();\n const dragRect = drag.getBoundingClientRect();\n if (dragRect.left < rect.right && dragRect.right > rect.left && dragRect.top < rect.bottom && dragRect.bottom > rect.top) {\n if (!rectangle.data.widgetInfo.isDraggable) {\n break;\n }\n overlapFrontmostWv = rectangle.data.widgetInfo as WidgetInfo;\n break;\n }\n }\n }\n\n return overlapFrontmostWv;\n }\n\n ngOnInit(): void {\n this.authenticationService.currentUserValue().then(data => {\n if (data.token) {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.CHATBOT_AGENT).then(boo => {\n this.isShowChatBotIcon = boo;\n });\n if (!['prod', 'uat'].includes(environment.profile)) {\n this.getAnnouncementList();\n this.initRole().then(() => {\n this.loadComponentOrder();\n });\n }\n }\n });\n\n const now: number = new Date().getHours();\n console.log('now hour: ' + now);\n if (now >= 6 && now < 12) {\n this.greeting = 'common.GoodMorning';\n } else if (now >= 12 && now < 17) {\n this.greeting = 'common.GoodAfternoon';\n } else {\n this.greeting = 'common.GoodEvening';\n }\n this.authenticationService.currentUserValue().then(res => {\n this.displayName = res.displayName;\n this.currentLastUpdate = res.currentLastUpdate;\n });\n }\n\n private async initRole() {\n this.hasSuperAdminRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_ADMIN);\n this.hasSuperUserRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SUPER_USER);\n this.hasSalesSupportRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_SALES_SUPPORT);\n this.hasBranchLevelRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_BRANCH_LEVEL);\n this.hasSalesJourneyAgentRole = await this.permissionService.hasPermission(PermissionAccess.R, PermissionItem.SALES_JOURNEY_AGENT);\n\n if (this.hasSuperAdminRole) {\n this.rolePriority = 'SuperAdmin';\n } else if (this.hasSuperUserRole) {\n this.rolePriority = 'SuperUser';\n } else if (this.hasSalesSupportRole) {\n this.rolePriority = 'SalesSupport';\n } else if (this.hasBranchLevelRole) {\n this.rolePriority = 'BranchLevel';\n } else if (this.hasSalesJourneyAgentRole) {\n this.rolePriority = 'SalesJourneyAgent';\n }\n }\n\n pcBox: any;\n\n ngAfterViewInit(): void {\n this.navigationContent = document.querySelector('cds-navigation .cds-navigation-content') as HTMLElement;\n this.resizeListener();\n window.addEventListener('resize', this.resizeListener);\n\n document.addEventListener('mousemove', this.mousemove);\n }\n\n mousemove = (event: MouseEvent) => {\n if (!this.isDragging) {\n return;\n }\n const boundaryCheckingDistance = 40;\n const sensitivity = 20;\n const offsetY = event.clientY - window.innerHeight / 2;\n\n if (this.navigationContent && this.dragEl && this.dragRef) {\n if (offsetY > 0 && offsetY > window.innerHeight / 2 - boundaryCheckingDistance) {\n this.navigationContent.scrollBy(0, sensitivity);\n } else if (offsetY < 0 && offsetY < -window.innerHeight / 2 + boundaryCheckingDistance) {\n this.navigationContent.scrollBy(0, -sensitivity);\n }\n }\n };\n\n landingBoxNumOfCol = 3;\n private resizeListener = () => {\n if (window.matchMedia('only screen and (max-width: 826px)').matches) {\n this.landingBoxNumOfCol = 1;\n this.mobileWidgetsPage = 0;\n } else if (window.matchMedia('only screen and (max-width: 1452px)').matches) {\n this.landingBoxNumOfCol = 2;\n } else {\n this.landingBoxNumOfCol = 3;\n }\n };\n\n ngOnDestroy(): void {\n window.removeEventListener('resize', this.resizeListener);\n document.removeEventListener('mousemove', this.mousemove);\n }\n\n loadComponentOrder() {\n this.cdHttpServeService.get<{ privilege: RolePriority; componentsList: [] }>('/ext/eb-ssms/agent-service/agent/main/component/order', undefined).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n if (res.data && res.data.privilege === this.rolePriority) {\n this.widgetInfoList = res.data.componentsList;\n } else {\n if (this.rolePriority === 'SuperAdmin') {\n this.widgetInfoList = this.defaultSuperAdminWidgetInfoList;\n } else if (this.rolePriority === 'SuperUser') {\n this.widgetInfoList = this.defaultSuperUserWidgetInfoList;\n } else if (this.rolePriority === 'SalesSupport') {\n this.widgetInfoList = this.defaultSalesSupportWidgetInfoList;\n } else if (this.rolePriority === 'BranchLevel') {\n this.widgetInfoList = this.defaultBranchLevelWidgetInfoList;\n } else if (this.rolePriority === 'SalesJourneyAgent') {\n this.widgetInfoList = this.defaultAgentWidgetInfoList;\n }\n this.saveComponentOrder();\n }\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n goGoal(componentName: WIDGETS_COMPONENT_NAME) {\n if (!WIDGETS_VIEW_ALL_GOAL[componentName]) {\n return;\n }\n this.router.navigate([WIDGETS_VIEW_ALL_GOAL[componentName]]);\n }\n\n saveComponentOrder() {\n const params = {\n privilege: this.rolePriority,\n componentsList: this.widgetInfoList,\n };\n this.cdHttpServeService.post('/ext/eb-ssms/agent-service/agent/main/component/order', params).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n getAnnouncementList() {\n this.cdHttpServeService.get('/ext/eb-ssms-sales-journey-service/announcement/list', undefined).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n }\n this.announcementList = res.data;\n if (this.announcementList && this.announcementList.length > 0) {\n this.isShowAnnouncement = true;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n mobileWidgetsPageLast() {\n if (this.mobileWidgetsPage === 0) {\n return;\n }\n this.mobileWidgetsPage--;\n this.showMobileWidgetsPage(this.mobileWidgetsPage);\n }\n\n mobileWidgetsPageNext() {\n if (!((this.widgetInfoList.length >= 3 && this.mobileWidgetsPage < 2) || (this.widgetInfoList.length === 2 && this.mobileWidgetsPage < 1))) {\n return;\n }\n this.mobileWidgetsPage++;\n this.showMobileWidgetsPage(this.mobileWidgetsPage);\n }\n\n showMobileWidgetsPage(index: number) {\n const offset = -index * (100 / 3);\n if (this.mobileWidgetsBox) {\n this.mobileWidgetsBox.nativeElement.style.transform = `translateX(${offset}%)`;\n }\n }\n\n // chatbot-cso ↓\n userActivity: any;\n timer: any;\n userInactive: Subject = new Subject();\n\n setTimeout(time: any) {\n this.userActivity = setTimeout(() => this.userInactive.next(undefined), time);\n }\n\n @HostListener('window:mousemove') refreshUserState() {\n clearTimeout(this.userActivity);\n if (this.timer) {\n this.setTimeout(this.timer);\n }\n }\n\n getIdleTime() {\n this.chatService.getIdleTime().subscribe(resp => {\n if (resp) {\n this.timer = resp.time;\n this.setTimeout(resp.time);\n }\n });\n }\n // chatbot-cso ↑\n}\n","
    \n
    \n
    \n {{ greeting | lang }}\n {{ displayName }}, \n {{ 'welcome.title' | lang }}\n
    \n
    \n {{ 'welcome.last.logged' | lang }} {{ currentLastUpdate | ssmsDateTime }}\n
    \n
    \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Announcement\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n {{ announcement.announcementSubjectEng }}\n {{ announcement.announcementSubjectChi }}\n
    \n \n
    \n
    \n {{ announcement.announcementBodyEng }}\n {{ announcement.announcementBodyChi }}\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ widgetInfo.name }}\n
    \n
    \n
    \n \n
    \n View all\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n Announcement\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n {{ announcement.announcementSubjectEng }}\n {{ announcement.announcementSubjectChi }}\n
    \n \n
    \n
    \n {{ announcement.announcementBodyEng }}\n {{ announcement.announcementBodyChi }}\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ widgetInfo.name }}\n
    \n
    \n
    \n \n
    \n View all\n
    \n
    \n
    \n\n \n
    \n
    \n \n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { CdsButtonModule } from '@cds/ng-web-components/button';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { WelcomeComponent } from './welcome.component';\nimport { UserComponent } from '../chatbot/user/user.component';\nimport { WidgetsModule } from '../widgets/widgets.module';\nimport { DynamicContentModule } from '../dynamic-content/dynamic-content.module';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CdsDialogModule } from '@cds/ng-experimental/dialog';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { CloseChatConfirmComponent } from '../chatbot/close-chat-confirm/close-chat-confirm.component';\n\n@NgModule({\n imports: [\n CommonModule,\n CdsLanguageModule,\n CdsButtonModule,\n SharedModule,\n DragDropModule,\n WidgetsModule,\n DynamicContentModule,\n CdsIconModule,\n FormsModule,\n MatDialogModule,\n ReactiveFormsModule,\n CdsDialogModule,\n ],\n declarations: [WelcomeComponent, UserComponent, CloseChatConfirmComponent],\n entryComponents: [CloseChatConfirmComponent],\n})\nexport class WelcomeModule {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { WidgetComponent } from '../widget.component';\n\nenum DeliveryChannel {\n Email = 'Email',\n SMS = 'SMS',\n}\n\nenum CampaignType {\n Sale = 'Sale',\n Marketing = 'Marketing',\n}\n\nenum PolicyType {\n PA = 'PA',\n CA = 'CA',\n}\n\ninterface TableData {\n policyNo: string;\n startDate: string;\n endDate: string;\n campaignDescription: string;\n policyType: PolicyType;\n eMPFID: string;\n name: string;\n nameTc: string;\n deliveryChannel: DeliveryChannel;\n campaignType: CampaignType;\n}\n\n@Component({\n selector: 'app-widgets-campaign-overview',\n templateUrl: './widgets-campaign-overview.component.html',\n styleUrls: ['./widgets-campaign-overview.component.scss'],\n})\nexport class WidgetsCampaignOverviewComponent implements OnInit, WidgetComponent {\n @Input() data: any;\n DeliveryChannel = DeliveryChannel;\n\n displayedColumns: string[] = ['policyNo', 'campaignDescription', 'policyType', 'eMPFID', 'deliveryChannel', 'campaignType'];\n tableData: TableData[] = [\n {\n policyNo: '04241777',\n startDate: '15/09/2021',\n endDate: '10/11/2024',\n campaignDescription: 'Lusce in metus risus. Pellentesque est enim, ',\n policyType: PolicyType.PA,\n eMPFID: 'M112431743261',\n name: '陳大文',\n nameTc: 'Chan Tai Man',\n deliveryChannel: DeliveryChannel.Email,\n campaignType: CampaignType.Sale,\n },\n {\n policyNo: '04241777',\n startDate: '15/09/2021',\n endDate: '10/11/2024',\n campaignDescription: 'Lusce in metus risus. Pellentesque est enim, ',\n policyType: PolicyType.PA,\n eMPFID: 'M112431743261',\n name: '陳大文',\n nameTc: 'Chan Tai Man',\n deliveryChannel: DeliveryChannel.SMS,\n campaignType: CampaignType.Sale,\n },\n {\n policyNo: '04241777',\n startDate: '15/09/2021',\n endDate: '10/11/2024',\n campaignDescription: 'Lusce in metus risus. Pellentesque est enim, ',\n policyType: PolicyType.PA,\n eMPFID: 'M112431743261',\n name: '陳大文',\n nameTc: 'Chan Tai Man',\n deliveryChannel: DeliveryChannel.Email,\n campaignType: CampaignType.Sale,\n },\n {\n policyNo: '04241777',\n startDate: '15/09/2021',\n endDate: '10/11/2024',\n campaignDescription: 'Lusce in metus risus. Pellentesque est enim, ',\n policyType: PolicyType.PA,\n eMPFID: 'M112431743261',\n name: '陳大文',\n nameTc: 'Chan Tai Man',\n deliveryChannel: DeliveryChannel.SMS,\n campaignType: CampaignType.Sale,\n },\n {\n policyNo: '04241777',\n startDate: '15/09/2021',\n endDate: '10/11/2024',\n campaignDescription: 'Lusce in metus risus. Pellentesque est enim, ',\n policyType: PolicyType.PA,\n eMPFID: 'M112431743261',\n name: '陳大文',\n nameTc: 'Chan Tai Man',\n deliveryChannel: DeliveryChannel.Email,\n campaignType: CampaignType.Sale,\n },\n ];\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n \n \n \n \n Policy No.\n \n
    \n {{ element.policyNo }}\n
    \n
    \n
    \n {{ element.startDate }}\n
    \n
    -
    \n
    \n {{ element.endDate }}\n
    \n
    \n
    \n
    \n \n Campaign Description\n \n
    \n {{ element.campaignDescription }}\n
    \n
    \n
    \n\n \n Policy Type\n \n
    \n \n {{ element.policyType }}\n \n
    \n
    \n
    \n \n eMPF ID\n \n
    \n
    \n \n {{ element.eMPFID }}\n \n
    \n
    \n {{ element.nameTc }}{{ element.name }}\n
    \n
    \n
    \n
    \n \n Delivery Channel\n \n
    \n
    \n \n \n
    \n
    \n {{ element.deliveryChannel }}\n
    \n
    \n
    \n
    \n \n Campaign Type\n \n
    \n {{ element.campaignType }}\n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { WidgetComponent } from '../widget.component';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { Campaign } from 'src/app/core/models/widgets/campaign';\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\nimport { IffService } from '../../salesjourney/service/iff.service';\n\n@Component({\n selector: 'app-widgets-campaign-result',\n templateUrl: './widgets-campaign-result.component.html',\n styleUrls: ['./widgets-campaign-result.component.scss'],\n})\nexport class WidgetsCampaignResultComponent implements OnInit, WidgetComponent {\n @Input() data: any;\n campaign?: Campaign;\n\n constructor(\n private cdHttpServeService: CdHttpServeService,\n private alert: CdsAlertService,\n private authenticationService: AuthenticationService,\n private iffService: IffService\n ) {}\n\n ngOnInit(): void {\n this.authenticationService.currentUserValue().then(res => {\n this.iffService.getAgentCode(res.id + '').subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.getCampaignByAgentcode(res.data.agentCode);\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n });\n }\n\n getCampaignByAgentcode(agentCode: string) {\n this.cdHttpServeService.get(`/ext/eb-ssms/agent-service/campaignList/${agentCode}`, {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.campaign = res.data;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n}\n","
    \n
    \n \n
    \n
    \n N/A\n {{\n campaign?.totalPc | number\n }}\n
    \n
    \n PC earned\n
    \n
    \n As of {{ campaign?.resultAsOfDate | date : 'dd MMM yyyy' }}\n As of N/A\n
    \n
    \n {{ campaign?.membershipCurrent || 'N/A' }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n To minisite\n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { WidgetComponent } from '../widget.component';\nimport { CdHttpServeService } from 'src/app/shared/cd-http-serve/cd-http-serve.service';\nimport { CdsAlertService } from '@cds/ng-web-components/alert';\nimport { IndividualType } from '../../salesjourney/md-iff-summary/md-iff-summary.model';\n\ninterface ProductTypePendingItem {\n pendingToMap: number;\n pending2ndAgent: number;\n pendingCusSubmission: number;\n}\n\ninterface ProductTypePending {\n TVC: ProductTypePendingItem;\n PA: ProductTypePendingItem;\n PAC: ProductTypePendingItem;\n SVC: ProductTypePendingItem;\n ER: ProductTypePendingItem;\n SEP: ProductTypePendingItem;\n}\n\n@Component({\n selector: 'app-widgets-pending-iff',\n templateUrl: './widgets-pending-iff.component.html',\n styleUrls: ['./widgets-pending-iff.component.scss'],\n})\nexport class WidgetsPendingIffComponent implements OnInit, WidgetComponent {\n @Input() data: any;\n IndividualType = IndividualType;\n individualTypeSelected = IndividualType.PA;\n productTypePending?: ProductTypePending;\n\n constructor(private cdHttpServeService: CdHttpServeService, private alert: CdsAlertService) {}\n\n ngOnInit(): void {\n this.getProductTypeSummaries();\n }\n\n checkRecordDetailTag(value: IndividualType) {\n this.individualTypeSelected = value;\n }\n\n getProductTypeSummaries() {\n this.cdHttpServeService.get(`/ext/eb-ssms-sales-journey-service/productTypeSummaries`, {}).subscribe({\n next: res => {\n if (res.result !== 0) {\n this.alert.warning('Warning!', `${res.message}`);\n } else {\n this.productTypePending = res.data;\n }\n },\n error: err => {\n this.alert.error('Error!', err);\n },\n });\n }\n\n getColor(num = 0) {\n if (num >= 100) {\n return 'greater-or-equal-to-100';\n } else if (num > 0) {\n return 'greater-to-0';\n } else if (num === 0) {\n return 'equal-to-0';\n }\n return 'equal-to-0';\n }\n}\n","
    \n
    \n \n \n
    \n
    \n
    \n PA\n
    \n \n TVC\n
    \n \n SVC\n
    \n
    \n
    \n
    \n
    \n \n
    \n Pending to map\n
    \n
    \n
    \n {{ productTypePending?.PA?.pendingToMap }}\n
    \n
    \n
    \n
    \n \n
    \n Pending customer submission\n
    \n
    \n
    \n {{ productTypePending?.PA?.pendingCusSubmission }}\n
    \n
    \n
    \n
    \n \n
    \n Pending split agent\n
    \n
    \n
    \n {{ productTypePending?.PA?.pending2ndAgent }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Pending to map\n
    \n
    \n
    \n {{ productTypePending?.TVC?.pendingToMap }}\n
    \n
    \n
    \n
    \n \n
    \n Pending customer submission\n
    \n
    \n
    \n {{ productTypePending?.TVC?.pendingCusSubmission }}\n
    \n
    \n
    \n
    \n \n
    \n Pending split agent\n
    \n
    \n
    \n {{ productTypePending?.TVC?.pending2ndAgent }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n Pending to map\n
    \n
    \n
    \n {{ productTypePending?.SVC?.pendingToMap }}\n
    \n
    \n
    \n
    \n \n
    \n Pending customer submission\n
    \n
    \n
    \n {{ productTypePending?.SVC?.pendingCusSubmission }}\n
    \n
    \n
    \n
    \n \n
    \n Pending split agent\n
    \n
    \n
    \n {{ productTypePending?.SVC?.pending2ndAgent }}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n Pending to map\n
    \n
    \n
    \n {{ productTypePending?.ER?.pendingToMap }}\n
    \n
    \n
    \n
    \n \n
    \n Pending customer submission\n
    \n
    \n
    \n {{ productTypePending?.ER?.pendingCusSubmission }}\n
    \n
    \n
    \n
    \n \n
    \n Pending split agent\n
    \n
    \n
    \n {{ productTypePending?.ER?.pending2ndAgent }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n Pending to map\n
    \n
    \n
    \n {{ productTypePending?.SEP?.pendingToMap }}\n
    \n
    \n
    \n
    \n \n
    \n Pending customer submission\n
    \n
    \n
    \n {{ productTypePending?.SEP?.pendingCusSubmission }}\n
    \n
    \n
    \n
    \n \n
    \n Pending split agent\n
    \n
    \n
    \n {{ productTypePending?.SEP?.pending2ndAgent }}\n
    \n
    \n
    \n
    \n
    \n \n \n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CdsChartColorMode, CdsDonutPieData, CdsChartColor } from '@cds/ng-charts/core';\nimport { CdsDonutChartType } from '@cds/ng-charts/donut';\nimport { CdsSize, CdsColorTheme } from '@cds/ng-core/configuration';\nimport { WidgetComponent } from '../widget.component';\nimport { FormControl } from '@angular/forms';\nimport { CdsDropdownConfig } from '@cds/ng-core/dropdown';\n\n@Component({\n selector: 'app-widgets-production-credit-by-district',\n templateUrl: './widgets-production-credit-by-district.component.html',\n styleUrls: ['./widgets-production-credit-by-district.component.scss'],\n})\nexport class WidgetsProductionCreditByDistrictComponent implements OnInit, AfterViewInit, OnDestroy, WidgetComponent {\n @Input() data: any;\n @ViewChild('productionCredit', { static: true }) productionCredit!: ElementRef;\n widthLess698 = false;\n districtCode = new FormControl();\n districtCodeConfig: CdsDropdownConfig = {\n options: [\n { label: '001', value: 1 },\n { label: '002', value: 2 },\n { label: '003', value: 3 },\n ],\n };\n\n constructor() {}\n\n ngOnInit(): void {}\n\n type: CdsDonutChartType = 'donut-a';\n size: CdsSize = 'sm';\n keylineWidth = 0;\n color: CdsColorTheme = 'ml';\n colorMode: CdsChartColorMode = 'categorical';\n firstYearPCData: CdsDonutPieData[] = [\n {\n label: 'a',\n value: 67,\n },\n {\n label: 'b',\n value: 33,\n },\n ];\n renewalPCData: CdsDonutPieData[] = [\n {\n label: 'a',\n value: 93,\n },\n {\n label: 'b',\n value: 7,\n },\n ];\n chartColors: CdsChartColor[] = [\n {\n r: 0,\n g: 167,\n b: 88,\n a: 1,\n },\n {\n r: 221,\n g: 222,\n b: 228,\n a: 1,\n },\n ];\n\n ngAfterViewInit(): void {\n this.resizeListener();\n window.addEventListener('resize', this.resizeListener);\n }\n\n private resizeListener = () => {\n this.widthLess698 = this.productionCredit.nativeElement.offsetWidth <= 698;\n };\n\n ngOnDestroy(): void {\n window.removeEventListener('resize', this.resizeListener);\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n District Code\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n 67%\n
    \n
    \n \n
    \n
    \n First Year PC\n
    \n
    \n
    \n 32,180\n
    \n
    \n /\n
    \n
    \n
    \n 50,000 PC\n
    \n
    \n Target submitted details\n
    \n
    \n
    \n\n
    \n \n \n
    \n 93%\n
    \n
    \n \n
    \n
    \n Renewal PC\n
    \n
    \n
    \n 56,180\n
    \n
    \n /\n
    \n
    \n
    \n 60,000 PC\n
    \n
    \n Target submitted details\n
    \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CdsChartColor, CdsChartColorMode, CdsDonutPieData } from '@cds/ng-charts/core';\nimport { CdsDonutChartType } from '@cds/ng-charts/donut';\nimport { CdsColorTheme, CdsSize } from '@cds/ng-core/configuration';\nimport { WidgetComponent } from '../widget.component';\n\n@Component({\n selector: 'app-widgets-production-credit',\n templateUrl: './widgets-production-credit.component.html',\n styleUrls: ['./widgets-production-credit.component.scss'],\n})\nexport class WidgetsProductionCreditComponent implements OnInit, AfterViewInit, OnDestroy, WidgetComponent {\n @Input() data: any;\n @ViewChild('productionCredit', { static: true }) productionCredit!: ElementRef;\n widthLess698 = false;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n type: CdsDonutChartType = 'donut-a';\n size: CdsSize = 'sm';\n keylineWidth = 0;\n color: CdsColorTheme = 'ml';\n colorMode: CdsChartColorMode = 'categorical';\n firstYearPCData: CdsDonutPieData[] = [\n {\n label: 'a',\n value: 67,\n },\n {\n label: 'b',\n value: 33,\n },\n ];\n renewalPCData: CdsDonutPieData[] = [\n {\n label: 'a',\n value: 93,\n },\n {\n label: 'b',\n value: 7,\n },\n ];\n chartColors: CdsChartColor[] = [\n {\n r: 0,\n g: 167,\n b: 88,\n a: 1,\n },\n {\n r: 221,\n g: 222,\n b: 228,\n a: 1,\n },\n ];\n\n ngAfterViewInit(): void {\n this.resizeListener();\n window.addEventListener('resize', this.resizeListener);\n }\n\n private resizeListener = () => {\n this.widthLess698 = this.productionCredit.nativeElement.offsetWidth <= 698;\n };\n\n ngOnDestroy(): void {\n window.removeEventListener('resize', this.resizeListener);\n }\n}\n","
    \n
    \n \n \n
    \n 67%\n
    \n
    \n \n
    \n
    \n First Year PC\n
    \n
    \n
    \n 32,180\n
    \n
    \n /\n
    \n
    \n
    \n 50,000 PC\n
    \n
    \n Target submitted details\n
    \n
    \n
    \n\n
    \n \n \n
    \n 93%\n
    \n
    \n \n
    \n
    \n Renewal PC\n
    \n
    \n
    \n 56,180\n
    \n
    \n /\n
    \n
    \n
    \n 60,000 PC\n
    \n
    \n Target submitted details\n
    \n
    \n
    \n
    \n","import { Router } from '@angular/router';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { PermissionAccess, PermissionItem } from 'src/app/core/models/enum/permission.enum';\nimport { PermissionService } from 'src/app/core/services/permission.service';\nimport { WidgetComponent } from '../widget.component';\nimport { CdsPopupService } from '@cds/ng-web-components/popup';\n\n@Component({\n selector: 'app-widgets-quick-links',\n templateUrl: './widgets-quick-links.component.html',\n styleUrls: ['./widgets-quick-links.component.scss'],\n})\nexport class WidgetsQuickLinksComponent implements OnInit, AfterViewInit, OnDestroy, WidgetComponent {\n @Input() data: any;\n @ViewChild('quickLinks', { static: true }) quickLinks!: ElementRef;\n isShowUpdateABMList = false;\n isFixedCol3 = false;\n\n constructor(private permissionService: PermissionService, private router: Router, private cdsPopup: CdsPopupService) {}\n\n ngOnInit(): void {\n this.permissionService.hasPermission(PermissionAccess.W, PermissionItem.SALES_JOURNEY_SALES_SUPPORT).then(hasPermission => {\n this.isShowUpdateABMList = hasPermission;\n });\n }\n\n ngAfterViewInit(): void {\n this.resizeListener();\n window.addEventListener('resize', this.resizeListener);\n }\n\n private resizeListener = () => {\n this.isFixedCol3 = this.quickLinks.nativeElement.offsetWidth <= 392;\n };\n\n ngOnDestroy(): void {\n window.removeEventListener('resize', this.resizeListener);\n }\n\n onClickUploadABMList() {\n this.router.navigate(['/upload-center', { isOpenUploadABMList: true }]);\n }\n}\n","
    \n \n \n \n \n \n \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WidgetsQuickLinksComponent } from './widgets-quick-links/widgets-quick-links.component';\nimport { CdsTabsModule } from '@cds/ng-web-components/tabs';\nimport { CdsIconModule } from '@cds/ng-web-components/icon';\nimport { WidgetsProductionCreditComponent } from './widgets-production-credit/widgets-production-credit.component';\nimport { CdsDonutChartModule } from '@cds/ng-charts/donut';\nimport { WidgetsPendingIffComponent } from './widgets-pending-iff/widgets-pending-iff.component';\nimport { WidgetsCampaignResultComponent } from './widgets-campaign-result/widgets-campaign-result.component';\nimport { WidgetsCampaignOverviewComponent } from './widgets-campaign-overview/widgets-campaign-overview.component';\nimport { CdsTableModule } from '@cds/ng-data-table/table';\nimport { CdsLanguageModule } from '@cds/ng-core/lang';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { WidgetsProductionCreditByDistrictComponent } from './widgets-production-credit-by-district/widgets-production-credit-by-district.component';\nimport { CdsDropdownModule } from '@cds/ng-web-components/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nconst components = [\n WidgetsQuickLinksComponent,\n WidgetsProductionCreditComponent,\n WidgetsPendingIffComponent,\n WidgetsCampaignResultComponent,\n WidgetsCampaignOverviewComponent,\n WidgetsProductionCreditByDistrictComponent,\n];\n\n@NgModule({\n declarations: [...components],\n exports: [...components],\n imports: [\n CommonModule,\n CdsTabsModule,\n CdsIconModule,\n CdsDonutChartModule,\n CdsTableModule,\n CdsLanguageModule,\n SharedModule,\n CdsDropdownModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class WidgetsModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\nimport packageInfo from '../../package.json';\n\nexport const environment = {\n production: false,\n profile: 'dev',\n currentTimeout: 5,\n alertTimeout: 15,\n httpTimeout: 1000 * 60,\n mCFMode: true,\n pwdLogin: true,\n menuExclusion: [],\n internalUrl: '',\n externalUrl: '',\n ssoLogoutUrl: 'https://sea-emt-dev-api.ap.manulife.com/ext/nest-connect-gateway/ssologout?redirectURL=',\n mcfUrl:\n 'https://sea-emt-dev-api.ap.manulife.com/ext/nest-connect-gateway/auth?client_id=13ef1fcb-5625-41b6-b364-6747f350405b&response_type=id_token%20token&redirect_uri=https%3A%2F%2Fmfcblobebsmssdeveas01.z7.web.core.windows.net%2Fuser%2Flogin&scope=openid%20profile%20mcf_token&nonce=some-nonce&state=some-state',\n languageList: [\n { value: 'en', label: 'English' },\n { value: 'zh', label: '繁體中文' },\n ],\n //apiPrefix: 'http://',\n apiPrefix: 'https://eas-hk-dev-api.ap.manulife.com',\n identityServiceExt: '/ext/eb-ssms/identity-service',\n //commissionServiceExt: 'localhost:8085',\n commissionServiceExt: '/ext/eb-ssms/commission-service-1',\n reportingServiceExt: '/ext/eb-ssms/reporting-service',\n accountingServiceExt: '/ext/eb-ssms/accounting-service',\n manutouchServiceInt: '/ext/eb-ssms/id-manutouch-service',\n notificationServiceExt: '/ext/eb-ssms/notification-service',\n paymentServiceExt: '/ext/eb-ssms/payment-service',\n chatbotWebsocket: 'wss://eas-hk-dev-api.ap.manulife.com',\n appVersion: packageInfo.version,\n organizationDay: '2002',\n clientId: '3ab9aa6e-d55b-4835-9a7b-42f4b709039b',\n mcfClientId: '13ef1fcb-5625-41b6-b364-6747f350405b',\n // clientId: 'bfca76e1-d711-4637-8e9e-a578547882f3',\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 { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .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-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\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-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\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\": 82469,\n\t\"./tg.js\": 82469,\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) */"],"names":["EventEmitter","Subject","take","debounceTime","distinctUntilChanged","i0","ctx_r6","ctx_r8","ctx_r0","ctx_r10","ctx_r12","ctx_r1","CdInputComponent","constructor","asyncValidatorLoading","_asyncValidatorLoading","ngOnInit","changeSubject","pipe","subscribe","val","changeSubjecthandle","asyncValidator","ob","res","asyncErrorInfo","onBlur","blurEvent","emit","ngOnDestroy","unsubscribe","ngAfterViewInit","theInput","nativeElement","onfocus","isFocus","onblur","formControl","value","valueChanges","change","regExpLimit","RegExp","test","group","controls","controlName","setValue","type","isNaN","valueChange","next","_a","_b","markAsDirty","_c","markAsTouched","validator","errorInfo","clearErrorInfo","selectors","viewQuery","from","lastValueFrom","environment","getSessionByKey","JwtInterceptor","intercept","request","handle","req","url","indexOf","apiPrefix","then","session","token","authReq","clone","setHeaders","Authorization","factory","HttpHeaders","MSAL_GUARD_CONFIG","deleteSessionByKey","UserAgreementPopupComponent","map","AuthenticationService","msalGuardConfig","authService","router","http","cdsPopup","dialog","langService","worker","Worker","URL","import","meta","workerRefresh","onmessage","data","response","JSON","parse","status","sessionTimeOut","alert","popupRef","open","message","continue","params","minutes","afterClosed","confirm","postMessage","currentUserValue","setRouterUrl","includes","sessionStorage","setItem","window","location","href","s","path","substring","summaryIdStartIndex","summaryIdEndIndex","id","iffIdStartIndex","iffIdEndIndex","iffId","iffVersionNoStartIndex","iffVersionNoEndIndex","iffVersionNo","lastIndexOf","getItem","authenticateToken","apiSuffix","accessToken","mcfRefreshToken","headers","post","concat","identityServiceExt","loginWithSSO","authRequest","loginPopup","Object","logout","loginType","SSOlogoutLogging","logoutPopup","redirect","clearSsoPopup","logRes","microsoftId","getLoadingDialogRef","logoutMcfPost","mcfId","logoutMcf","b","loading","close","result","catchMcfError","validateMcfToken","get","arr","length","mcfClientId","addLangEntries","logoutMsg","en","zh","popupRef2","size","cancel","agree","msg","closeAll","deleteSession","ssoLogoutUrl","origin","navigate","localStorage","Promise","resolve","removeItem","providedIn","AccountTypes","AccountType","str2Obj","Big","CommissionRelatedPartiesService","Map","forEach","item","accountTypes","set","label","addRelatedParties","commissionServiceExt","editRelatedParties","list","observe","responseType","searchRelatedParties","accounts","filterArrs","MPF_EER","MPF_EEC","CPF_EE","ORSO_EE","MACAU_PPS_EE","MACAU_CPF_EE","filter","accountType","accountTypeStr","queryPara","typesValidateAdd","commissionPoolId","addType","summaryInfo","canAddAccountTypes","MPF_ER","ORSO_ER","waiveMonthlyBonus","validate","errorMsg","groupedAccounts","MPF_SEP","MPF_SEP_AGENT","MACAU_PPS_ER","MACAU_CPF_ER","getRelatedList","active","hasUnGroupedAccount","isAllMacauPPS","hasRelatedParties","typesValidate","typeStr","notAllowEditScenario","MPF_PAP","MACAU_PAP","MPF_TVC","relatedParties","resp","body","dataSource","lastUpdateTime","lastUpdateBy","content","convert","convertList","number","totalPages","i","mainParty","accountCode","customerId","customerType","accountName","customerStatus","servicingAgents","rejoin","contAdjPend","offset","earlyBenefitStartDate","earlyBirdBonusSignal","lastDate","commencementDate","rejoinIntraGroup","isRejoinDisable","toFixed","parseFloat","contAdjPendEdit","firstContributionDate","firstPcReleaseDate","sysAdjustmentDate","sysAdjustmentFlag","apeDependAccount","createBy","createTime","t2","Date","getTime","name","t","currentEffective","toLowerCase","limit","push","deepCopy","MENUS","PermissionAccess","PermissionService","menuFilter","menus","menuExclusion","filterMenus","subMenu","subLink","getMenuExclusions","menuExclusions","menu","initMenu","getUserInfo","userInfo","_MENUS","m","sm","config","route","pre","children","c","tempPath","smPath","re","replace","has","permissionFilter","_menus","hasPermission","role","permission","roles","permissions","flag","userAccess","entries","R","hasR","W","hasW","E","hasE","permissionFilterAsync","Observable","startWith","ctx_r9","ctx_r11","AutocompleteComponent","nullable","_nullable","locked","_locked","disabled","_disabled","fieldErrMsg","_fieldErrMsg","_controlName","selectOptions","GetControl","patchValue","_originalList","filterList","_filter","optionSource","filterObj","find","x","translate","controlLabel","control","controlPlaceholder","placeholder","inputBox","oninput","displayFn","optionSelected","event","option","iconClick","icon","focus","clearInput","ctx","_r3","Session","dbName","sessionTable","version","commissionTable","tableList","employerSystemType","sessionId","DateTime","openTable","openRequest","indexedDB","onupgradeneeded","db","objectStoreNames","contains","createObjectStore","keyPath","openCommissionTable","openDB","getCommissionByKey","scale","getDataByKey","commission","catch","addCommissionByKey","deleteByKey","addData","stringify","updateCommissionByKey","updateDB","deleteCommissionByKey","openSessionTable","sessionDto","sessionInfo","updateSessionByKey","addSessionByKey","deleteDB","deleteDBAll","storeName","reject","onsuccess","target","onerror","nowTime","now","toMillis","transaction","objectStore","add","end","Error","error","key","console","log","getCommissionList","cursorGetData","store","openCursor","e","cursor","getDataByIndex","indexName","indexValue","index","cursorGetDataByIndex","IDBKeyRange","only","ev","put","delete","deleteRequest","deleteDatabase","closeDB","of","ActionIcons","ArrowIcons","AddToItemComponent","updateDelegationEmpValiRespErrHandle","CdWarningPopupComponent","specialCharacter","AgentBranchPopComponent","agentCodeAddPrefix0","agentCodeRemovePrefix0","pageToTop","UserExitEditmodePopComponent","ctx_r13","ctx_r30","ctx_r16","ctx_r35","ctx_r41","ctx_r43","ctx_r24","ctx_r49","ctx_r55","ctx_r56","ctx_r57","ctx_r3","ctx_r66","ctx_r69","ctx_r76","ctx_r78","ctx_r60","ctx_r80","ctx_r82","ctx_r4","ctx_r89","ctx_r92","ctx_r100","ctx_r102","ctx_r103","ctx_r104","ctx_r105","ctx_r5","ctx_r106","ctx_r124","ctx_r116","ctx_r125","ctx_r117","ctx_r127","ctx_r118","ctx_r129","ctx_r119","ctx_r131","ctx_r140","ctx_r143","ctx_r144","ctx_r145","ctx_r146","ctx_r109","SelfRouter","ErDelegationChangeComponent","cdHttpServeService","languageChangeService","employerList","color","button_left_filled","button_down","button_right","right","reload","info_1","employerName","employerNo","delegateAgentCode","page","language","sort","options","style","subscriptionList","lanSubject","lan","employerQueryParams","employerQuery","stopPropagation","tooltipList","changes","toolTip","removeEventListener","addEventListener","matchMedia","matches","stepperTarget","element","asyncAgentCodeValidate","delegateItem","agentCode","newDelegatedAgentCodeIsValidator","newDelegatedAgentName","newDelegatedAgentNameTC","delegateInfoValidate","addDelegationValidate","errorCode","agentCodeTransfer","chineseName","agentCodeCheckResultByLan","isShowProgress","trim","delegationEmployerQueryUrl","isCoolingPeriod","showEligibleDelegatedZero","isDelegated","warn","warning","totalRecords","currentAllPageData","allPageData","pop","totalElements","currentPageNumOrigin","empty","currentPageIndex","delegation","isSelected","employerId","employerNameTC","groupNum","numOfEmployee","employeeAmt","noOfEmployeeDelegated","delegatedIsEligible","delegateAgentInfo","delegatedAgents","a","oldItemPageData","onBack","currentPageData","popupWaring","cb","dialogRef","title","buttons","text","search","clearAllPageData","onResetTable","reset","onSortChange","direction","delegationChangeListIsHalfChecked","isAllChecked","delegationChangeListIsAllChecked","isAllUnChecked","every","onAllCheckedChange","boo","onRowCheckOfDelegationChangeList","onPageChange","goPage","isDisabledContinue","getTotalCheckedNumber","total","itemPage","onGoChange","stickyBarDataReset","updateDelegationDelegatedAgentsData","updateDelegationDelegatedAgentsQuery","currentSite","setTimeout","stepper","setStepList","stepList","setFinishStep","onBackToEmployerList","clearAllCheckFroEmployerList","getGoEEPath","employerNameParam","employerNameParamTC","encodeURI","toggleExpand","isExpend","addToItem","disableAddToItem","newDelegatedAgentCodeSummary","agentCodeErrMsg","delegateInfos","isSeleted","newDelegatedAgentCode","selectReasonCodeOfChange","reasonCodeOfAgentChangeControlSummary","inputReasonOfChange","theOtherReasonOfChangeSummary","newDelegatedAgentNameSummary","newDelegatedAgentNameTCSummary","newDelegatedAgentCodeSummaryIsValidator","refreshStep","delegatedAgentsQuery","unavailable","temp","employerInfo","info","assign","isShowMissReason","isShowMissAgentCode","u","oldAgent","targetAgent","updateDelegatedAgentsAllChecked","delegateItemSeleted","isDelegatedAgentsAllChecked","isDelegatedAgentsHalfChecked","disabledNewDelegatedAgentCodeInput","disableReasonOfAgentChangeDropdown","some","disableReset","disableSubmit","resetDelegationChange","newDelegatedAgentInputList","removeLightsOutStep","onNewDelegatedAgentCodeSummaryChange","reasonOfAgentChangeControlSummaryChange","undefined","theOtherReasonOfChange","submit","editedDelegationDelegatedAgentsData","needUpdateDelegationDelegatedAgentsData","employersSubmitParam","loadEmployersSubmitParam","emp","oldAgentCode","targetAgentCode","employersValidation","messages","delegatedAgentsBranchErrComponentRef","changeSummary","itemParam","delegate","getReasonOfChange","reason","code","onBackChange","cloneList","editedDelegationDelegatedAgentsDataPageCount","Math","ceil","editedDelegationDelegatedAgentsShowData","startIndex","editedDelegationDelegatedAgentsDataPage","slice","editedDataPageChange","onEmployersSubmit","updatedSuccessfullyRef","onCanDelegateAmtToggle","dispatchEvent","Event","reasonCode","reasonOfAgentChangeConfig","employersSubmit","isAllowEdit","resetTable","updateDelegationSelectedTotal","stepNum","setLightsOutStep","checkIsHaveScroll","tableBox","scrollWidth","clientWidth","FormControl","FormGroup","finalize","ContinuePopupComponent","jsonToSheet","PermissionItem","getColor","formatReason","formatDate2","maxDate","minDate","PaymentStatusE","configPrimary","configSecondary","pageInit","I18N_KEY","PaymentMethodE","formatDate","ChequePrintingSaveSuccessPTWComponent","dateValidator","ctx_r14","ctx_r17","ctx_r18","ctx_r19","_r5","_r7","ctx_r27","ctx_r31","ctx_r37","ctx_r39","ctx_r42","ctx_r84","ctx_r79","element_r147","ctx_r189","ctx_r191","ctx_r192","ctx_r194","ctx_r198","ctx_r200","ctx_r196","ctx_r201","ChequeIssuancePTWComponent","service","toastAlert","permissionService","elemRef","HOLD_PAYMENT","STOP_PAYMENT","REISSUE_COMPLETE","EXPIRED","selected","NEW","PASSED_TO_LAWSON","PENDING","PRESENTED","PRINTED","READY_TO_PRINT_ADDRESS","READY_TO_REISSUE","REISSUE_PRESENTED","REISSUE_REJECT","RETURNED_FROM_EE","RETURNED_FROM_ER","UN_PRESENTED","ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_STAFF","ORSO_MACAU_PAYMENT_ISSUANCE_PAYMENT_MANAGER","pageSelectSize","_pageSelected","outChequeNo","recordStatus","curr","amt","payeeName","feedReceiveDate","isReissue","reissueRefNo","reissueReason","payRefNo","appRefNo","exptPayIssue","chequeIssueDate","lastUpdateDate","schemeCode","transactionIdentifier","remarks","chequeIssueDateFrom","chequeIssueDateTo","obj","_paymentStatusList","currSelected","_currList","_currSelected","loadTable","numberBetween","start","round","random","ngOnChanges","firstChange","pageCount","Number","currentValue","onResize","_toolBarPermission","_toolBar","_reEditPermission","_reEdit","search$","outChequeNoChange","initForm","validFn","_valid","form","valid","_sortString","resetStatus","searchFn","r","outChqValidate","canInputChequeNo","cheqNoError","chqInput","_saveDisable","ex","checkedDatasource","getByChqNo","_saveConfigValidate","getRequestParams","listParms","current","getAmount","getList","_progress","getPaymentIssuance","_selectedAll","checked","originData","_totalCount","count","selectButtonsDisableRefresh","toastError","getPaymentIssuanceAmount","transactionAmount","searchDTO","recordStatusList","baseParam","instructionFileDateFrom","instructionFileDateTo","_d","_e","_f","schemeCodeList","_g","payMethod","CHQ","_h","currList","backListClick","_confirmed","confirmClick","changePaymentIssuance","popupWithReload","updateList","_dataList","_edited","searchButtonDisabled","resetButtonDisabled","toConfirm","_checkedList","_checkedDatasourceMap","_length","_stopPaymentDisable","_completePaymentDisable","exportSelectedDisabled","exportMailMerge","_editToolFun","trigger","triggerAll","sizeSelect","paymentStatusSelecte","exportPdf","_checkedIds","_downloading","_exprotStatus","exportPdfStatus","exportAll","_statusList","_param","fileName","fileType","header","sheetHeader","createData","printCount","ids","paymentIssuancePrintCount","exportSelected","editTrigger","isCancel","OriginCheckedDatasource","editReset","doEditReset","editStatusToggle","item2","_editPaymentStatusMap","_config","downConfig","_returnStatusFilter","acctType","outstandingFlag","itemStatus","reissueChnage","validating","inputChange","cancelEdit","cancelButtonName","markAsUntouched","markAsPristine","prefill","zeroCount","repeat","errorMessage","show","innerWidth","isMobile","contentWidth","getElementsByClassName","offsetWidth","screenWidth","document","scrollBarWidth","SchemeCode","ChequePrintingListPTWComponent","ORSO","MACAUCPF","MACAUPPS","orso","macaupps","macaucpf","schemeChange","_schemeList","_selectedList","_search","selectedTabIndexChange","_tabIndex","hostBindings","_r0","_r2","ChequePrintingSaveSuccessComponent","_TxnType","ctx_r28","ctx_r32","ctx_r83","ctx_r107","ctx_r163","ctx_r172","_r156","ctx_r185","element_r176","ctx_r215","ctx_r220","ctx_r222","ctx_r151","ctx_r223","ctx_r225","ctx_r152","ctx_r229","ctx_r231","ctx_r227","ctx_r232","ChequeIssuanceComponent","PENDING_ON_SCT_OR_EMPF","REISSUE","SHK_PAYMENT_ISSUANCE_PAYMENT_STAFF","SHK_PAYMENT_ISSUANCE_PAYMENT_MANAGER","empfid","mpfAcctNo","erempfId","erName","payrollGroupID","txnType","formatTxnType","itemStatusChange","remarksInput","remarksInputError","startsWith","padStart","exportMailMergeTrigger","_temp","reverse","ctx_r7","ChequePrintingListComponent","APIPaths","MessageService","initializeWebSocketConnection","roomId","username","manualClose","stompClient","connected","closeWebSocketConnection","StompJs","Client","webSocketFactory","WebSocket","websocket","activate","onConnect","frame","subscription","receivedMessage","receivedMessagesSubject","onWebSocketError","onWebSocketClose","onStompError","deactivate","sendMessage","publish","destination","joinMessage","leaveRoom","receiveMessages","asObservable","Subscription","Alerts","Helper","CloseChatComponent","TransferChatComponent","CsoCannedMsgComponent","ctx_r45","ctx_r50","ctx_r48","ctx_r54","ctx_r61","ctx_r63","ctx_r65","$event","AgentComponent","chatService","messageService","dataService","cdsDialogService","modalService","cdk","IffService","authenticationService","languageService","idleService","renderer","languageList","initLanNotice","lang","listen","closePopUpIfClickedOutside","getActiveChatList","getPendingChatList","getMessage","recallFucntion","getIdleAgent","setActiveValue","targetElement","chatPopup","querySelector","isShowChatBot","changeLang","selectedLang","setLang","sendData","sharData","onCSOIdle","notifyIdle","messagesSubscription","chatJson","scrollToBottom","detectChanges","agentInfo","getAgentCode","getAgentInfo","decodeURIComponent","idleObject","chineseMsg","activeChat","mode","maskPII","userId","userType","sender","showChat","searchChat","searchTerm","intervalId","clearInterval","onClickChat","isCloseByAgent","agentName","users","Awaiting","Archive","showAgent","gerRoomInfo","getUserChatHistory","updateChatCount","onClickAwaitingChat","onClickArchiveChat","updateStatus","agentStatus","model","userStatus","changeUserStatus","showSuccessMessage","showErrorMessage","getAgentCanedResponse","cannedMessageDDL","onShowChats","openCannedMoal","setModel","agent","modalOptions","backdrop","keyboard","centered","modalRef","onCloseChatModal","CHATBOT_CSO","certificateNumber","roomInfo","cert_no","policyNumber","group_no","onTrasnferChat","getObjectFilePath","parsedContent","filePath","tabChange","tab","joinChat","pendingChat","findIndex","changeChatStatus","displayName","divs","firstDiv","left","width","filer","input","handleKeyboardEvent","messageContainer","scrollTop","scrollHeight","err","selectMessage","cannedMessage","ans","chineseAns","fileChange","getElementById","click","onFileChange","uploadFile","files","file","that","xhr","XMLHttpRequest","formData","FormData","append","fileUploaded","upload","updateProgress","setRequestHeader","encodeURIComponent","email","currentLastUpdate","toString","send","callback","onreadystatechange","readyState","onprogress","lengthComputable","statusBar","loaded","onloadstart","onloadend","showModal","getRoomInfo","room","getAlert","autoMsgType","sec","startSCOListening","setInterval","CloseChatConfirmComponent","ctx_r15","ctx_r26","_r58","ctx_r67","ctx_r72","ctx_r74","ctx_r87","ctx_r91","ctx_r93","ctx_r96","UserComponent","cannedServices","head","verify","agrement","groupNumber","liveChat","check","getIdleUser","getParent","chats","canedList","getBotUser","checkChatbotWidth","cbChatbot","showBotOnMobile","onUserIdle","noCsoAvailable","clearTimer","getServicesAgree","botUser","liveChatEnable","modal","identityId","showPopUp","checkGroupNo","sendGroupNo","groupNo","certNo","checkAvailableCSO","allCsobusy","backToMessage","showBack","oldcanedList","showLiveButton","backToPrevousMessage","parentId","getParentById","sendNumber","inrecmentIndex","introJson","previousIndex","clickinrecmentIndex","ind","getCanedResponse","getNewChatRoom","encodRoom","btoa","reloadSubject","onShowChatbot","isShowChatBotIcon","isShowChatBotCloseIcon","onHideChatbot","onFileSelected","getresponce","ag","enabled","chatlogs","subType","enquiryType","contactName","description","exitChat","getPath","dat","closeChat","showNext","startUserListening","FormArray","Validators","moment","CDS_SIZE","BTN_CONFIG_SECONDARY","ResponseResult","PENDING_TRANSACTION_COLUMNS","COMM_FLAGS","COMM_FLAGS_OTHER","BLANK","PAGE_SIZE","requiredValidator","agentCodeValidator","DefaultScaleType","ctx_r34","ctx_r40","ctx_r44","ctx_r46","ctx_r47","appealCaseComponent","commissionAppealCaseService","scaleCodeAsyncValidator","agentCodeAsyncValidator","commissionDefaultScaleService","details","commFlag","required","trfsppcCode","validators","SCALE_CODE_NULL","asyncValidators","bind","trfspCode","fshkpcCode","COMM_INFO_INDIVIDUAL_TRF","columnsConfig","selector","commFlagConfig","detail","IND_TRF_SP_PC","IND_TRF_SP","IND_FS_PC","validateAgentCode","makeAppeal","formGroup","isResetDisable","dataMakeAppealSource","dataMakeAppeal","rawRalue","getRawValue","tag","tempAgentInfo","keys","rawRalueTemp","originalValueTemp","editRow","isSaveDisable","sumSharing","invalid","dirty","pending","isSaveLoading","initDefaultScale","defaultScaleType","MPF_IND","SUCCESS","defaultScales","agentChannel","compensationRate","initData","openAlertPop","snapshot","paramMap","referenceNo","getMakeAppealData","isSearchloading","previousSearchParams","pageConfig","pageSize","apiParams","receivedDateFrom","format","receivedDateTo","getPendingData","getPendingTransationData","initTableData","errors","totalCount","tempData","dataDisplayed","commFlagLabel","receivedDate","appealDate","cancelledOrRejectedDate","isEditable","rebackTo","isEdit","queryParams","tabType","pageChange","alertPendingTransaction","openPop","referenceClick","row","initMakeAppeal","initFromGroup","initCommFlag","tempArr","sharingPC","sharingComm","createChildFormGroup","setControl","initialValueIsDefault","AGENT_CODE_NULL","AGENT_CODE_INVALID","myValidate","scenario","alertAccountCodeInfo","cancleEdit","COMMON_ACTION_CANCLE","COMMON_CANCLE","COMMON_CONTINUE","addAgent","deleteAgent","splice","removeAt","save","totalSharingPC","totalSharingComm","duplicateAgent","agents","AGENT_CODE_DUPLICATE","SHARING_ERROR","saveMakeAppeal","createParams","COMMON_ACTION_SUCCESS","COMMON_GOT","actionRight","isMPFPAP","isPP","formType","isOther","SCALE_CODE_LIMIT","setErrors","isAgency","scaleCodeInput","toUpperCase","pos","selectionEnd","setSelectionRange","sharingInput","match","sharingChange","inputs","decls","vars","consts","template","switchMap","CommissionRates","IndiTrChannelTypes","IndiTraScaleTypeMap","IndiTraScenarios","ScaleType","CommissionScenario","AgentChannel","fsHKPCValidator","ctx_r33","ctx_r36","IndividualTransferMpfComponent","fb","defaultScaleService","COMMISSION_DEFAULT_SCALE","array","searchParam$","param","quickSearchFormcontrol","resetFilter","channelTypeSelected","commissionRateSelected","channelFilterClick","accountFilterClick","quickSearch","opt","currentPage","getData","createParam","progress","INTERNAL_TRANSFER","internalTransfer","clear","disPlayData","createItemFormGroup","scenarioLabel","channel","channelType","agentChannelLabel","commissionRate","compensationRateLabel","fp","MPF_PAP_MC","updateOn","COMMISSION_SCALE_CODE_EMPTY","COMMISSION_SCALE_CODE_INPUT","editScaleCode","scaleCodeChange","editItem","editIndex","detailsValue","commissionType","scaleCode","update","COMMON_CANCEL","MacauChannelTypes","MacauScaleTypeMap","MacauCommissionRates","AutoChangeListComponent","MacauAccountTypes","CdPopupSize","NewBusinessMacauComponent","accountTypeSelected","IFAST_NB","isEditAble","accountTypeLabel","subscriptionFee","isScaleCodeRequired","scaleType","MACAU_IVC","FS_PC","FY","RY_PC","TRF_SP_PC","TRF_SP","FS_SF","PS_PC","PS","onChangeList","LARGE","MPFCommissionRates","MpfScaleTypeMap","MPFChannelTypes","MPFAccountTypes","NewBusinessMpfComponent","MPF_NB","MPF_FRC","fromISO","RecordDetailList","texts","Status","CommissionAgentChannelMap","_r4","item_r16","ctx_r29","ctx_r53","ctx_r2","agentService","COMM_INFO_AGENT_COMP","COMM_INFO_AGENT_CHANGE","COMM_ADJ_NORMAL","millis","currentClickOpenIndex","createRecord","action","agentDetailId","currentEffectiveDate","recordList","CURRENT","effectiveDate","toAdjustmentAmount","tabSelected","deleteRecord","agentRecord","scrollPage","getRegularList","scrollLoading","agentItems","listRegular","getRegularItems","scaleTypes","isBigger","saReportDate","commissionPoolAgentId","sellingAgent","shareCommission","shareHkpc","poolJoinDate","branch","toFixedTwo","cytd","ptd","calytd","d","scaleLabel","commissionPoolAgentAccumulations","accumulations","agentAccumulationType","amount","alertAgent","agentMsg","alertSuccessContinue","backToTop","top","scrollIntoView","ctx_r21","IndividualTransferComponent","individualService","poolScaleService","all","COMM_ADJ_APPEAL","noPermission","getPoolAccumulations","getAgent","agentAccumulations","fsPcCytd","fsPcPtd","fsPcCal","trfSpPcCytd","trfSpPcPtd","trfSpPcCal","trfSpCytd","trfSpPtd","trfSpCal","regular","commissionPoolScaleAccumulations","accumulation","roundDown","scaleAccumulationType","a1","a2","a3","a4","a5","alertIndividual","backTop","scrollTo","behavior","forkJoin","toISODate","fromISOMonthYear","diffMonths","getMonthFirstByMonthYear","getMonthLastByMonthYear","getMonthLastByNow","COMMISSION_POOL_TAB","RELEATE_PAYTY_RELEASE_TAG","AccumulationType","CommissionPoolStatus","ctx_r51","CommissionPoolInfoComponent","poolService","relatedPartiesService","commonService","COMM_INFO_MAIN_COMM_SUMMARY","firstContributionMonth","nextCommYearStart","caseCount","frozen","oneStPc","reconHitDate","relatedParties$","getPoolInfo","subscription2","scale$","subscription3","applySummary$","announceSummary","summary","tabClick","backLanding","editStatus","getById","monthsDays","diff","isNextYearCommStartDisable","edit","summaryForm","fcMonthError","isReleased","fcMonthAcctTyError","nextCommYearStartError","frozenError","wmBonusError","disableInput","isConfirm","saveDisabled","initFormStatus","getScaleRecordCurrentInfo","scaleRecordInfo","scaleValidator","relatedPartiesInfo","relatedPartiesValidator","scaleRecordRes","zero","PREMIUM_PTD","eq","relatedPartiesRes","hasApeDependAccountRelatedParty","fcMonthDisabledEditScenario","fcMonthWarning","fcMonthWaring","monthsDiff","monthYearInput","String","field","originalValue","originalNextCommYearStart","monthYearReg","laterSixMonth","backSystemMonth","backFirstContributionMonth","fcMonthAccountTypeError","notEditReleased","months","days","notEditBackDay","fcMonthLaterSix","nextCommYearBackDay","nextCommYearLater","changeDisable","agentBroker","isAllPrevious","FUTURE","res2","BROKER","IA_BROKER","fcMonthChange","cancelMsg","backToEdit","saveOrUpdate","popData","alertSuccessMsg","alertFailedMsg","alertFailedContinue","respMsg","j","scaleCodeValidator","ScaleCodeAsyncValidator","index_r11","ctx_r22","ctx_r25","AddScaleRecordsComponent","alarmChecked","effectiveDateChange","defaultValue","alarmChange","getScaleRecordList","scaleDetailId","getCommissionPoolInfo","getScaleRecordInfo","commissionPoolScaleItems","initValue","commissionScaleDto","MAX_VALUE","order","date","setValidators","scaleCodeItemChange","isShowDatepiker","isSaveing","createScaleDetails","resultNum","COMMON_SUCCESS","COMMON_GOTIT","COMMON_FAILED","alertAlarm","commissionPoolScales","features","ScaleMap","ClawBackFlagMap","BREAKPOINT_TYPE_OPTIONS","CALCULATION_TYPE_OPTIONS","item_r18","ctx_r90","ctx_r112","ctx_r113","ctx_r114","ctx_r115","CommissionRecordDetailsComponent","COMM_INFO_SCALE_RECORD","removable","editScale","mthlyClawBack","summary$","editRecordDetailStatus","editError","recordHistoryList","recordInfoList","reloadRecordList","recordHistoryPage","scaleRecord","DELETED","lastUpdateName","respAccumulations","respAcc","scaleAcc","sa","accumulationType","PLAN_HIGH","RELEASED_CYTD","deleteDisplay","editDisplay","scaleInfoLoading","scaleList","clawBackAmount","clawBackMonth","annualizeFlag","annualizeFlagStr","scaleId","commissionScaleId","calcBasis","currPolYrCommRate","crfRate","calculationType","f","calcType","breakpointType","breakpoints","breakPoint","point","year","key2","value2","k","displayAmount","percentage","deleteRecordTitle","deleteRecordMsg","p1","p2","deleteHistory","announceScale","checkRecordDetailTag","checkedAll","editRecordDetail","recordDetail","recordDetailForm","commissionPoolScaleId","clawBackAmountError","clawBackMonthError","originalDetail","cancelEditRecordDetail","editScaleInfoSave","editScaleInfo","inputClawBackAmount","lt","roundHalfUp","inputClawBackMonth","inputAccumulation","GROSS_PREM_CYTD","PREMIUM_CYTD","applySummaryInfo","RelatedPartiesAddComponent","AccountCodeExplain","RejoinIntraGroupExplain","ApeDependAccountExplain","ctx_r38","item_r24","j_r25","_r26","_r29","ctx_r64","RelatedPartiesListComponent","COMM_INFO_MAIN_PARTIES_CONT_ADJ","COMM_INFO_MAIN_PARTIES_OTHERS","account","formSubscription","quickSearchDisabled","sss","addNew","announceRelatedParties","pendChange","apeDependAccountChange","apeDependAccountWarning","apeDependAccountError","relatedParty","formChange","rejoinConfirm","no","yes","dataSourceOriginal","saveDisable","isApeDepAccEditable","relatedPartyDate","mainPartyDate","month","getElementsByTagName","setProperty","accountExplain","alertMsg","rejoinIntraGroupExplain","apeDependAccountExplain","Sort","descriptionValidator","numberStringValidator","rangeValidator","startAndEndDateValidator","aggregateInvestedAmountCurrencyDropdownOptions","CurrencyE","lineOfBusinessOptions","memberAccountTypeOptions","policyStatusOptions","servicingChannelOptions","empfCountryOption","_r49","_r51","ctx_r81","ctx_r85","ctx_r86","ctx_r101","item_r103","ctx_r108","EmployeeListComponent","layoutHeaderService","toFormat","getNowTime","fromJSDate","maxTime","residentAddressDistrict","getContryCodeOptions","toDateStr","toDate","fromDateStr","memberAccountCode","originalMemberAccountCode","empfId","memberName","intermediatoryCode","aggregateInvestedAmountCurrency","aggregateInvestedAmountFrom","aggregateInvestedAmountTo","phoneNumber","countryCode","hkidOrPassport","enrolmentCompletionDateFromControl","enrolmentCompletionDateToControl","enrolmentCompletionDateFromValue","enrolmentCompletionDateToValue","companyName","employerAccountCode","servicingAgentCode","ageFrom","ageTo","assetType","assetSizeFrom","assetSizeTo","lastEcaMonthYearOrYear","_sortChange","columnItem","prop","DEFAULT","tempSeardhParams","getPageList","CUSTOMER_EMPLOYEE","isStaff","doHidenBackButton","documentElement","maxLength","memberNameValidTip","memberAccountType","policyStatus","lineOfBusiness","phoneNumberExt","hkidPassportValidTip","enrolmentCompletionDateFrom","nowTimeInstr","enrolmentCompletionDateTo","servicingChannel","birthDayMonth","monthYearValidator","formReady","onCountryCodeChange","onPhoneNumberChange","clearValidators","updateValueAndValidity","skipCheck","_pageCount","getTempSearchParams","goToDetail","md5","goToPolicyDetail","expandRow","_eeRecordList","getListExpansion","expandData","profileAgentInfo","defaultPaymentMethodStr","str","showTable","assetTypeChange","transToOpionts","countryCallingCode","crsCountryCode","resultMsg","dateTrans","getRequestValueFromOptions","join","phoneNumberValidator","countryCodeControl","numberControl","markAllAsTouched","amountCurrencyValidator","currencyControl","amountFromControl","amountToControl","currency","amountFrom","amountTo","fromErrors","toErrors","HKD","channelStrGen","advanceSearchToggle","isAdvanceSearch","dateString","regexYYYY","regexMMYYYY","dateInvalid","getDataSource","Array","isArray","assetSizeChange","ctx_r58","EmployerListComponent","origErAcctCd","eMpfId","CUSTOMER_EMPLOYER","isLoading","employerNameValidTip","_totalLiveModel","amountCUrrency","_erRecordList","currencyChange","noChange","num","abs","_noResutlMsg","startTotalLives","endTotalLives","SortMode","paymentMethodOptions","findOptionLabelByValue","_r17","element_r23","SuspenseRecordComponent","sticky","originColumnsConfig","receiptReferenceNo","paymentSubmissionReferenceNo","paymentReceivedDate","paymentMethod","receiptReferenceNoControl","paymentSubmissionReferenceNoControl","paymentReceivedDateControl","paymentMethodControl","previousValue","payrollGroupId","getAccountBalance","numberOfElements","records","_searched","reloadTable","column","forfeitureAccount","reservedAccount","suspenseRecord","paymentMethodRender","toDetail","_table","CDS_CONFIG_SERVICE","CdsBaseComponent","CdsLogoIcons","BehaviorSubject","combineLatest","takeUntil","CdsNavigationFooterLocalComponent","configService","cdr","navService","domSanitizer","hidden","items","socialMedia","facebook","youtube","linkedin","weChat","country","logo","htmlContent","isMdView$","selectedIndex$","onDestroy$","selectedIndex","isMdView","setSelectedIndex","complete","getLegalLogo","legal","Manulife_rgb_w","sanitize","bypassSecurityTrustHtml","setProperties","hostVars","PaymentReportType","formatDate3","formatDate4","PaymentReportSubType","ctx_r23","_r16","_r18","PaymentReportShkpComponent","STATUS_REPORT","RECORD_REPORT","PASSED_TO_BANK","COMPLETED","REJECTED","dateFrom","dateEnd","statusFrom","statusTo","chqNo","genDate","createdAt","fromPaymentStatus","fromStatusUpdateDate","toPaymentStatus","toStatusUpdateDate","turnaroundDays","_paymentStatusListCHQ","getMinDate","subtract","getLogList","_resetValid","BTL","BTO","statusFromConfig","_paymentStatusListBANK","statusToConfig","_showError","typeChange","_type","statusChange","_editPaymentCHQMap","BANK","_editPaymentBANKMap","reportType","getHistory","getPaymentLog","_name","getName","exportCsvStatus","saveHistory","sheetHeaderRecord","sheetHeaderStatus","createDataRecord","createDataStaus","isoFormat","o","formatType","formatStatus","_allStatus","statusUpdateDateFrom","statusUpdateDateTo","reportName","ValidateEmpfRefNoRequest","AgentInfo","AgentSubmissionRequest","EMPFRefNoUsedComponent","IffSubmissionSuccPopupComponent","ExitIffWarnPopupComponent","PreferredLanguageType","SalesJourneyProdType","_r48","ctx_r59","ctx_r68","EmployerIdentifierEnum","DeclarationIffErComponent","iffService","cdsLangService","agentChannelService","displayContent","clientHeight","isScrollBottom","isValid","lengthError","exec","rmReferralCode","rmReferralCodeVali","inputCustomerId","inputCustomerIdVali","sourceCode","sourceCodeVali","campaignCode","campaignCodeVali","Chinese","disable","English","bRNumber","agentInfoResp","isSplitSecondAgent","secondAgentInfo","secondAgentEmail","emailAddress","secondAgentPhoneNo","mobileNumber","labelOfEmail","labelOfPhone","charIndex","firstPart","secondPart","revisedEmail","phoneNoMasked","secondAgentContactEmail","secondAgentContactPhone","secondAgentRadioConfig","secondAgentContactTypeSelected","secondAgentNotificationChannel","secondAgentCode","thirdAgentCode","invalidSecondAgentCode","getThirdAgentInfo","invalidSplitAgentCode","currentStage","onSecondAgentContactTypeChange","isSplitThirdAgent","thirdAgentInfo","conductedRegulatorActivityFlag","isSecondAgentConduct","isThirdAgentConduct","thirdAgentInfoTmp","thirdAgentEmail","thirdAgentPhoneNo","thirdAgentContactEmail","thirdAgentContactPhone","thirdAgentRadioConfig","thirdAgentContactTypeSelected","thirdAgentNotificationChannel","onThirdAgentContactTypeChange","invalidThirdAgentCode","empfRefNoStatus","dialogRefEMPFRefNoUsed","eMPFReferenceNo","usedEMPFRefNo","isSplitAgentFine","agentInfoArr","agentIdentityId","servicingAgentId","isRegulatedAct","regulatedAct","agentNotificationChannel","primaryAgent","agentSubmissionRequest","empfRefNo","contactType","mobileNo","phoneNo","emailAddr","caseSplit","employerIdentifierControl","employerNameOrBrNo","companyNameChn","businessRefNo","agentInfo2","agentid","agentId","smsLanguage","secondAgentPreferredLanguage","agentInfo3","thirdAgentPreferredLanguage","agentInfos","domainType","Corperate","productType","isChannelDBS","dbs","dbsRmReferralCd","dbsCustomerId","dbsCampaignCd","dbsSourceCd","preferredLanguage","agentSubmission","isToAgentConfirmation","iffSubmissionSuccDialogRef","refresh","formatError","megaphone","onScoll","errorSub","lanChangeSubscription","validateEmpfRefNoSubscription","agentSubmissionSubscription","secondAgentInfoSubscription","secondAgentCodeValueSubscription","thirdAgentInfoSubscription","errorIffSubject","alertTitle","agentInfoDataSubject","agentInfoDataSubjectCallBack","thirdAgentInfoDataSubject","thirdAgentInfoDataSubjectCallBack","validateEmpfRefNoSubject","validateEmpfRefNoSubjectCallBack","agentSubmissionSubject","agentSubmissionSubjectCallBack","iffErForm","preferredLanguageVali","isIntragroupTransfer","countryCodeAndPhoneNoUnionValidate","enable","employerNameOrBrNoControlRegExpLimit","employerIdentifierControlChange","employerNameOrBrNoControlPlaceholder","toIffErForm","resetIffErForm","preferredLanguageConfig","cdRadioPreferredLanguage","refreshConfig","onClickInfoIcon","dbsInputHasErrors","closeCurrentPopup","exitIffWarnDialogRef","inputBlur","eControl","onIffPartSubmit","validateEmpfRefNoRequest","clientType","hkPhoneNoValidateAsync","hkPhoneNo","isValidHKPhoneNo","invalidPhoneNo","hkPhoneNoValidate","isValidChiPhoneNo","onContactTypeChange","removeControl","emailFormControl","addControl","countryCodeFormControl","phoneNoFormControl","backToIffErForm","iffSubmission","validateInputtedEMPFReferenceNo","disableIffSplitAgentContinue","Boolean","iffSplitAgentContinue","secondAgentPreferredLanguageConfig","cdRadioSecondAgentPreferredLanguage","thirdAgentPreferredLanguageConfig","cdRadioThirdAgentPreferredLanguage","backToSplitAgentPage","intraGroup","iffSplitAgentSubmission","backToForm","getAgentName","currentLang","agentNameTC","DBS","isDisabled","CORPORATE","tmp_b_0","CDS_POPUP_DATA","_r28","_r39","DeclarationIffComponent","splitAgentCode","Individual","hkidOrPassportNo","idType","hKIDPassportNoFormControl","iffForm","domain","SEP","hKIDPassportNoChange","toIFFForm","hkidOrPassportNoInputBlur","hkId","eMPFReferenceNoInputBlur","splitAgentCodeInputBlur","resetIffForm","hkid","idtype","fromValue","backToIffForm","validateEmpfRefNo","WillBeLostComponent","keepDecimalDigitFull","AddNewCommissionPopupComponent","LeastOneWarningComponent","UpdatedSuccessfullyComponent","EditAgentDetailsComponent","empfAppStatusService","notifyService","salesjourneyService","agentList","screen","notifyHideNavigationLang","erCaseDetails","erAgentsInfos","servicingAgent","shareHKPC","screenLoadingSubject","caseDetails","eeAgentsInfos","errPercentage100","errPercentage100Values","errPercentage100Sub","errPercentage100SubValues","errEquallySplit","errEquallySplitValues","errEquallySplitSub","errEquallySplitSubValues","resizeListener","notifyDisplayNavigationLang","initRole","hasSalesJourneySuperAdmin","SALES_JOURNEY_SUPER_ADMIN","hasSalesSupportRole","SALES_JOURNEY_SALES_SUPPORT","hasSalesJourneyAgentRole","SALES_JOURNEY_AGENT","rolePriority","disableEditAgentByChannel","mdNo","targetType","urlRolePart","postMemberCaseDetailsCallBack","postEmployerCaseDetailsCallBack","agentsInfos","splitAgents","isConfirming","back","servicingAgentChange","asFormGroup","isErrEquallySplit","isErrPercentage100","isServiceAgent","commissionPt","hkPcPercentagePt","exist","ref","clearErrPercentage100","isErrSmallerOne","clearErrEquallySplit","clearErrSmallerOne","isDisableSave","sumShareHKPC","sumShareCommission","shareHKPCVal","shareCommissionVal","isDeleted","at","isDisableAddNewSplitAgent","addNewSplitAgent","agentCodeList","getAgentNameFormControl","shareHKPCBlur","needN","shareCommissionBlur","isShowItemWarning","isScbBrokerCorporateChannel","EMPF_App_Status_Value","MdStatusValue","cdsPopupBackdropOntouchmovePreventDefault","cdsPopupBackdropUnOntouchmovePreventDefault","AddMdReferenceNumberPopupComponent","AddMpfReferenceNumberPopupComponent","EmpfAppStatusPopupComponent","IffStatusFlowPopupComponent","RefNoType","ResendEiffComponent","ResendEiffResendType","TRANSFER_DETAILS_DECLINED_REASON_OPTIONS","DeclineReason","AdviseTransferStatusComponent","TransferStatusValue","ctx_r122","ctx_r73","ctx_r126","_r9","_r22","EmpfCaseDetailsComponent","iffStatusService","transferStatusService","isDisplayUpdateMPFReferenceNo","caseDetailsResponse","empfCaseDetail","empfNo","mdCaseDetail","Pending_eMPF_Return_Data","Not_Applicable","empfStatus","PendingSplitAgentSubmission","agentIffStatus","getSplitAgentName","isShowMdIffStatusMouseover","mdStatus","Pending_Split_Agent","Expired","iffDeclineExpireReasons","refNoType","tabIndex","prodType","getCaseDetail","initRejectReasons","urlParamPart","MD","EMPF","transfers","rejectReasonCombination","rejectReasons","isExpand","isOfDeclined","CaseCannotMatchWithEMPFData","ClientHKIDPassportNoMismatchedWithEMPFData","EmployerNameMismatchedWithEMPFData","BRNoMismatchedWithEMPFData","AuthorizedPersonNameMismatchedWithEMPFData","AgentInformationMismatchedWithEMPFData","DeclinedDueToRejectApplicationInEMPFPortal","isOfExpired","PendingToSend","PendingSplitAgents","PendingCustomerSubmission","typeOneIffDeclineExpireReasons","errorType","noTypeOneIffDeclineExpireReasons","toTop","onDisplayAdviseIFF","onDisplayAdviseEmpf","onOpenAddEmpfRefNoPopup","onOpenAddMDRefNoPopup","openResendEIFF","resendType","EE","isRefresh","afterOpened","onMDIFFStatusShowToggle","onGoEditAgentDetails","openTransferStatusStatus","numRanking","ctx_r123","ctx_r128","_r20","ErEmpfCaseDetailsComponent","erCaseDetailsResponse","ER","CdPopupType","ResetWarningComponent","HasBeenSentCustomerPopupComponent","PendingSplitAgentConfirPopupComponent","WillBeLoseInputComponent","ctx_r71","ctx_r77","ctx_r99","ctx_r94","ctx_r95","Show","EmployerForMdComponent","validateService","employer","authpersonEmailAddress","authpersonCountryCode","authpersonPhoneNumber","employerFullName","BRNumber","declaredLives","isChangedAnyValues","preventDefault","returnValue","history","pushState","parent","employerFullNameOrBrNumber","authpersonContact","CN_PHONE","errorPhoneNumber","authpersonContactConfig","employerFullNameOrBrNumberConfig","refreshRelevantRegulatedActivitiesConfig","refreshinTransferConfig","refreshSecondAgentClientContactConfig","refreshThirdAgentClientContactConfig","refreshSecondAgentRelevantRegulatedActivitiesConfig","refreshThirdAgentRelevantRegulatedActivitiesConfig","refreshSecondAgentLanguageConfig","refreshThridAgentLanguageConfig","secondAgentCodeError","thirdAgentCodeError","employerForm","defaultFormGroupValues","isTryConfirm","relevantRegulatedActivitiesValue","inTransferValue","resetDatePicker","beforeunload","popstate","lanSubjectChange","authpersonEmailAddressVali","authpersonPhoneNumberVali","employerFullNameVali","brNumberVali","secondAgentCodeValidators","agentValidate","thirdAgentCodeValidators","secondAgentLanguageConfig","radioSecondAgentLanguage","thirdAgentLanguageConfig","radioThirdAgentLanguage","authpersonContactChange","authpersonCountryCodeChange","shortEmail","ea","endIndex","shortPhone","secondAgentClientContactConfig","secondAgentClientContact","radioSecondAgentClientContact","thirdAgentClientContactConfig","thirdAgentClientContact","radioThirdAgentClientContact","resetWarningComponentPopupCloseCall","isDisableNext","getSecondAgentName","getThirdAgentName","secondAgentRelevantRegulatedActivities","secondAgentLanguage","secondAgentRelevantRegulatedActivitiesConfig","thirdAgentRelevantRegulatedActivities","thirdAgentLanguage","thirdAgentRelevantRegulatedActivitiesConfig","getAgentInfoByAgentCode","agentInfoList","tempAgentCode2","tempAgentCode3","setRelevantRegulatedActivitiesDisable","setInTransferConfigDisable","intermediary","relevantRegulatedActivitiesConfig","radioRelevantRegulatedActivities","setRelevantRegulatedActivitiesEnable","inTransferConfig","radioInTransferValue","setInTransferConfigEnable","openCommon","CONTINUE","businessRegisterNo","commChannel","phoneCountry","phone","isRegulatedActivities","productTypes","secondAgent","thirdAgent","mainId","values","employerFullNameOrBrNumberChange","secondAgentCodeChange","secondAgentClientContactChange","thirdAgentClientContactChange","isDisableIntermediaryNext","getSecondAgentLanguage","getThirdAgentLanguage","intermediaryNext","radioSecondAgentRelevantRegulatedActivities","radioThirdAgentRelevantRegulatedActivities","backToEdit1","backToEdit2","arraysAreEqual","ProductType","Domain","ctx_r75","ctx_r88","IndividualComponent","individuals","PA","TVC","SVC","orientation","clientContactConfig","idTypeConfigOptions","clientContact","clientCountryCode","individualsForm","passportFormatError","hkidFormatError","customerSurname","customerGivenName","isCustomerError","clientPhoneNumber","clientEmailAddress","hkidOrPassportNoChange","clientCountryCodeChange","clientContactChange","sep","indFormHkidOrPassportNoVali","clientEmailVali","idFormClientPhoneNumberVali","idFormPreferredLanguageVali","isAllowPast","lastName","fastName","passportNo","IffCompletionStepsPopupComponent","AgentProductSummary","ProductTypeCountDetailsPopupComponent","IndividualType","QuickSearchIffStatus","TabIndex","MdIffSummaryComponent","ALL","All","mdiff","pa","paSummary","tvc","tvcSummary","svc","svcSummary","er","erSummary","sepSummary","prodTypeFormControl","tempTabIndex","onClickGetDetailsByProductType","productTypeCount","onBackSummayIconClick","hasSalesJourneySuperAdminRole","getProductTypeSummaries","respData","pendingAgent","pending2ndAgent","pendingcustomer","pendingCusSubmission","pendingToMap","tvcPendingAgent","tvcPendingCust","tvcPendingToSend","allPendingCount","paPendingAgent","paPendingCust","paPendingToSend","frcPendingAgent","frcPendingCust","frcPendingToSend","erPendingAgent","erPendingCust","erPendingToSend","sepPendingAgent","sepPendingCust","sepPendingToSend","quickGuide","prodTypeChange","tabIndexChange","aoaToSheet","FileType","_r11","element_r30","AgentPerformanceHeadEnrolmentComponent","period","assignmentDateFrom","assignmentDateTo","UP","exportData","getAgentPerformanceHeadEnrolmentList","excelData","createExcelData","CSV","EXCEL_COLUMNS","getExpandData","contactMap","agentNameChi","noOfCases","outStanding","initialContact","scheduleMeetUp","canNotReachClient","rejectedByClient","completed","frontReloadTable","dataList","exportDataList","_size","trunc","isExport","assignmentDateToShow","assignmentDateFromShow","showDatePicker","dateStr","sortChange","noOfContact","AgentPerformanceHeadComponent","getAgentPerformanceHeadList","transferToGs","whitespaceValidator","AlertPopupComponent","ConfirmPopupComponent","RoleInfoFormComponent","roleService","toast","roleName","profile","minLength","popupWithRedirect","deleteRole","submittable","roleId","deleteById","saveRole","formPermissions","outputs","errorEvent","UploadDocumentComponent","UploadCenterComponent","getCampaignByAgentcode","isOpenUploadABMList","abm","configItem","uploadCenterConfigs","configName","currentSelectedConfig","refrushCdSearch","isRefrushCdSearch","tempOptions","configRole","AccountTypesCommissionpool","numberValidator","UploadCustomerDataComponent","serviceAgentAsyncValidator","uploadCustomerDataService","isRequired","controlValue","isCreating","createPool","addCommissionEvents","uploading","BTN_CONFIG_PRIMARY","OTPChannel","ctx_r20","_r23","LoginComponent","otpService","passwd","loginErr","mCFMode","pwdLogin","loginWithMCF","mCFAPISuffix","afterUrl","internalUrl","isInternal","redirectMCF","mcfUrl","_destroying$","loginFormChange","loginForm","isLoginEnable","instance","setActiveAccount","SSO_API_SUFFIX","paramsStr","split","setCurrentLang","loginWithManutouch","password","login","isShowOTP","OTPUser","agentKey","phoneNum","sessionToken","requestOTP","handleError","loginWithOTP","otpErr","verifyOTP","otp","OTP_LOGIN_API_SUFFIX","pageResend","second","isResendEnable","isShowLoading","countDown","changeOTP","isContinueEnable","backToLogin","toggleMask","masked","inputType","clock","myInterval","targetUrl","searchParams","URLSearchParams","mParams","parseMatrixParams","naviUrl","errMsg","DIALOG_DELAY","lastSegment","paramsString","pairs","pair","_r1","BTN_CONFIG_TERTIARY","WIDGETS_VIEW_ALL_GOAL","WelcomeComponent","height","component","isDraggable","isViewAll","isDragging","boundaryCheckingDistance","sensitivity","offsetY","clientY","innerHeight","navigationContent","dragEl","dragRef","scrollBy","landingBoxNumOfCol","mobileWidgetsPage","getIdleTime","userInactive","closeAnnouncement","isShowAnnouncement","cdkDragStarted","isAllowAnimal","source","_dragRef","cdkDragEnded","cdkDragEnd","draggedEl","draggedWvIndex","widgetInfoList","widgetInfo","overlapFrontmostWv","getOverlapFrontmostEl","overlapFrontmostWvIndex","insertElement","saveComponentOrder","rectangle","dragList","targetIndex","removedElement","drag","rect","getBoundingClientRect","dragRect","bottom","CHATBOT_AGENT","getAnnouncementList","loadComponentOrder","getHours","greeting","hasSuperAdminRole","hasSuperUserRole","SALES_JOURNEY_SUPER_USER","hasBranchLevelRole","SALES_JOURNEY_BRANCH_LEVEL","mousemove","privilege","componentsList","defaultSuperAdminWidgetInfoList","defaultSuperUserWidgetInfoList","defaultSalesSupportWidgetInfoList","defaultBranchLevelWidgetInfoList","defaultAgentWidgetInfoList","goGoal","componentName","announcementList","mobileWidgetsPageLast","showMobileWidgetsPage","mobileWidgetsPageNext","mobileWidgetsBox","transform","time","userActivity","refreshUserState","clearTimeout","timer"],"sourceRoot":"webpack:///"}